WO2014051320A1 - 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치 - Google Patents

움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치 Download PDF

Info

Publication number
WO2014051320A1
WO2014051320A1 PCT/KR2013/008563 KR2013008563W WO2014051320A1 WO 2014051320 A1 WO2014051320 A1 WO 2014051320A1 KR 2013008563 W KR2013008563 W KR 2013008563W WO 2014051320 A1 WO2014051320 A1 WO 2014051320A1
Authority
WO
WIPO (PCT)
Prior art keywords
disparity vector
current block
block
vector
depth
Prior art date
Application number
PCT/KR2013/008563
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
Priority claimed from KR1020130112962A external-priority patent/KR102137266B1/ko
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to CN201380051109.1A priority Critical patent/CN104704832B/zh
Priority to US14/432,410 priority patent/US20150245049A1/en
Publication of WO2014051320A1 publication Critical patent/WO2014051320A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0085Motion estimation from stereoscopic image signals

Definitions

  • the following description is for efficient compression and reconstruction of 3D video, and more particularly, relates to an image processing method and apparatus for predicting a motion vector and a disparity vector.
  • the stereoscopic image refers to a 3D image that provides shape information about depth and space simultaneously with the image information.
  • images of different viewpoints are provided to the left and right eyes, whereas stereoscopic images provide the same images as viewed from different directions whenever the viewer views different views. Therefore, in order to generate a stereoscopic image, images captured at various viewpoints are required.
  • Images taken from various viewpoints to generate stereoscopic images have a large amount of data. Therefore, considering the network infrastructure, terrestrial bandwidth, etc. for stereoscopic video, even compression is performed using an encoding device optimized for Single-View Video Coding such as MPEG-2, H.264 / AVC, and HEVC. It is almost impossible to realize.
  • An image processing method includes identifying a depth image corresponding to a current block of a color image; And determining a disparity vector of the current block based on a depth value of a pixel included in the depth image.
  • An image processing method includes identifying a disparity vector of at least one neighboring block neighboring a current block of a color image; If the neighboring block does not have a disparity vector, determining a disparity vector of the neighboring block by using a depth image corresponding to the color image; And determining the disparity vector of the current block based on the disparity vector of the at least one neighboring block.
  • An image processing method may include determining a disparity vector of the current block by using a disparity vector of at least one neighboring block neighboring a current block of a color image; And determining the motion vector of the current block by using the determined disparity vector of the current block.
  • An image processing method includes identifying a motion vector of at least one neighboring block neighboring a current block of a color image; When the neighboring block does not have a motion vector, determining a motion vector of the neighboring block by using a depth image corresponding to the color image; And determining the motion vector of the current block based on the motion vector of the at least one neighboring block.
  • An image processing apparatus may include a depth image identification unit identifying a depth image corresponding to a current block of a color image; And a disparity vector determiner configured to determine a disparity vector of the current block based on a depth value of a pixel included in the depth image.
  • An image processing apparatus may include a disparity vector extractor extracting a disparity vector of at least one neighboring block neighboring a current block of a color image; And a disparity vector determiner configured to determine a disparity vector of the current block based on the disparity vector of the at least one neighboring block.
  • An image processing apparatus may include a disparity vector determiner configured to determine a disparity vector of the current block by using a disparity vector of at least one neighboring block neighboring a current block of a color image; And a motion vector determiner configured to determine a motion vector of the current block by using the determined disparity vector of the current block.
  • An image processing apparatus may include a motion vector extractor configured to extract a motion vector of at least one neighboring block neighboring a current block of a color image; And a motion vector determiner configured to determine a motion vector of the current block based on the motion vectors of the at least one neighboring block.
  • FIG. 1 is a diagram illustrating an operation of an encoding apparatus and a decoding apparatus, according to an exemplary embodiment.
  • FIG. 2 is a diagram illustrating an image processing apparatus for predicting a disparity vector of a current block, according to an exemplary embodiment.
  • FIG. 3 is a diagram illustrating an image processing apparatus for predicting a motion vector of a current block, according to an exemplary embodiment.
  • FIG. 4 is a diagram illustrating an image processing apparatus for predicting a motion vector of a current block, according to another exemplary embodiment.
  • FIG. 5 is a diagram illustrating an image processing apparatus for predicting a motion vector of a current block, according to another exemplary embodiment.
  • FIG. 6 is a diagram illustrating a structure of a multiview video, according to an embodiment.
  • FIG. 7 illustrates a reference picture used when coding a current block according to an embodiment.
  • FIG. 8 is a diagram for describing an operation of an encoding apparatus according to an embodiment in detail.
  • FIG. 9 is a diagram for describing an operation of a decoding apparatus according to an embodiment in detail.
  • FIG. 10 illustrates a process of predicting a disparity vector of a current block according to an embodiment.
  • FIG. 11 is a diagram illustrating a process of predicting a motion vector of a current block for a skip mode and a direct mode according to an embodiment.
  • FIG. 12 illustrates a process of predicting a motion vector of a current block by using a disparity vector, according to an exemplary embodiment.
  • FIG. 13 is a diagram illustrating a process of predicting a motion vector of a current block for an inter mode according to an embodiment.
  • FIG. 14 is a flowchart illustrating an image processing method of predicting a disparity vector of a current block, according to an exemplary embodiment.
  • 15 is a flowchart illustrating an image processing method of predicting a motion vector of a current block, according to an exemplary embodiment.
  • 16 is a flowchart illustrating an image processing method of predicting a motion vector of a current block according to another embodiment.
  • 17 is a flowchart illustrating an image processing method of predicting a motion vector of a current block according to another embodiment.
  • Corresponding Depth Image corresponding to the current block A depth image corresponding to a color image (current color image) including the current block.
  • Neighboring Block around the current block Represents at least one coded or decoded block neighboring the current block.
  • the neighboring block may be located at the top of the current block, at the top right of the current block, at the left of the current block, or at the top left of the current block.
  • a depth image block included in a depth image corresponding to a current block may include a block at the same position as the current block in the depth image corresponding to the color image.
  • Colocated Depth Macroblock A higher depth concept block including a corresponding block of a depth image.
  • Neighboring Color Image around the color image comprising the Current Color Block A color image having a viewpoint different from a viewpoint of a color image including a current block.
  • the peripheral color image may be a color image encoded or decoded before image processing of the current block is performed.
  • FIG. 1 is a diagram illustrating an operation of an encoding apparatus and a decoding apparatus, according to an exemplary embodiment.
  • the encoding apparatus 110 may encode 3D video, generate encoded data in a bitstream form, and transmit the encoded data to the decoding apparatus 120.
  • the 3D video may include color images and depth images of various views. 3D video has not only temporal redundancy between successive images in time but also inter-view redundancy between images of different viewpoints.
  • the encoding apparatus 110 may efficiently remove 3D video by effectively removing such temporal redundancy and inter-view redundancy.
  • the encoding apparatus 110 may improve encoding efficiency by removing redundancy between images as much as possible in the process of encoding 3D video.
  • the encoding apparatus 110 and the decoding apparatus 120 may perform block-based prediction to remove redundancy between color images.
  • the encoding apparatus 110 and the decoding apparatus 120 may use the depth image to efficiently remove redundancy between color images.
  • the encoding apparatus 110 and the decoding apparatus 120 remove temporal redundancy by using a motion vector (Motion Vector, MV, or Temporal MV) of the neighboring block, and remove the disparity vector (Disparity Vector, or Inter-View MV) of the neighboring block. ) And the depth image corresponding to the color image may be used to remove the inter-view redundancy.
  • the encoding apparatus 110 may minimize redundancy between the color images by efficiently encoding the motion vector in the process of encoding the color image of the 3D video.
  • the size of the depth image corresponding to the color image may be different from the size of the color image.
  • the encoding apparatus 110 and the decoding apparatus 120 may adjust the size of the depth image so that the size of the depth image is equal to the size of the color image. For example, when the size of the depth image is smaller than the size of the color image, the encoding apparatus 110 and the decoding apparatus 120 up-sample the depth image so that the size of the depth image is equal to the size of the color image.
  • the size of the depth image can be adjusted to be the same.
  • the depth image of the original size may be used as it is.
  • the process of converting the size of the depth image is not required, complexity may be reduced and memory requirements may be reduced.
  • the image processing apparatus described with reference to FIGS. 2 to 17 may be implemented inside or outside the encoding apparatus 110 or the decoding apparatus 120 of FIG. 1.
  • FIG. 2 is a diagram illustrating an image processing apparatus for predicting a disparity vector of a current block, according to an exemplary embodiment.
  • the image processing apparatus 200 may include a depth image identification unit 210 and a disparity vector determiner 220.
  • the depth image identification unit 210 may identify a depth image corresponding to the current block of the color image. When the depth image corresponding to the color image does not exist, the depth image identification unit 210 uses the neighboring blocks neighboring the current block or the neighboring color image of the color image including the current block or another depth image. A depth image corresponding to may be estimated.
  • the disparity vector determiner 220 may determine the disparity vector of the current block by using depth information of the depth image corresponding to the current block.
  • the disparity vector determiner 220 may identify at least one pixel among the pixels included in the depth image, and convert the largest depth value among the identified depth values into a disparity vector of the current block.
  • the disparity vector determiner 220 may determine the disparity vector of the current block based on the depth value of the pixel included in the corresponding block of the depth image corresponding to the current block.
  • the disparity vector determiner 220 may identify at least one pixel among pixels included in the corresponding block of the depth image corresponding to the current block.
  • the disparity vector determiner 220 may convert the largest depth value among the identified depth values of the pixel into a disparity vector, and determine the transformed disparity vector as the disparity vector of the current block.
  • the disparity vector determiner 220 may convert the largest depth value among the depth values of all pixels included in the corresponding block of the depth image into the disparity vector.
  • the disparity vector determiner 220 may consider only some pixels among the pixels included in the corresponding block of the depth image, and may convert the largest depth value among the depth values of some pixels into a disparity vector.
  • the disparity vector determiner 220 may identify pixels located in a predetermined area of the depth image, and may convert the largest depth value of the identified pixel depth values into a disparity vector of the current block.
  • the disparity vector determiner 220 identifies pixels located at the corners of the corresponding block, which is a preset area in the depth image, and converts the largest depth value among the identified depth values into the disparity vector of the current block. can do.
  • the disparity vector determiner 220 may convert the largest depth value of the depth value of the pixel located at the edge of the corresponding block and the depth value at the center of the corresponding block into the disparity vector of the current block.
  • the disparity vector determiner 220 may determine the disparity vector of the current block based on the macroblock including the corresponding block of the depth image. For example, the disparity vector determiner 220 may convert the largest depth value among the depth values of the pixels included in the macroblock into a disparity vector and determine the transformed disparity vector as the disparity vector of the current block. Alternatively, the disparity vector determiner 220 may convert the largest depth value of the depth values of arbitrary pixels included in the macro block including the corresponding block into the disparity vector of the current block. For example, the disparity vector determiner 220 may determine the disparity vector of the current block by converting the largest depth value among the depth values of the pixels located at the edge of the macro block.
  • the disparity vector determiner 220 may consider only any pixel in the depth image corresponding to the current color image to determine the disparity vector of the current block. For example, the disparity vector determiner 220 may convert a depth value of any one pixel included in the depth image into a disparity vector, and determine the transformed disparity vector as the disparity vector of the current block. Alternatively, the variation vector determiner 220 may convert the depth value of any one pixel in the corresponding block (or macro block) into the variation vector of the current block.
  • the disparity vector determiner 220 considers the relationship between the moving object and the depth value in order to predict the disparity vector of the current block.
  • the disparity vector determiner 220 may use camera parameter information in the process of converting the depth value into the disparity vector.
  • the disparity vector determiner 220 may generate a disparity vector by converting a depth value and determine the generated disparity vector as the disparity vector of the current block.
  • the disparity vector determiner 220 may use the disparity vector of the neighboring block adjacent to the current block to determine the disparity vector of the current block of the color image.
  • the disparity vector determiner 220 may determine the disparity vector of the neighboring block by using the depth value of the pixel included in the depth image corresponding to the color image. .
  • the disparity vector determiner 220 converts the largest depth value among the depth values of the pixels included in the macroblock or the corresponding block of the depth image corresponding to the current block into a disparity vector, and converts the transformed disparity vector into a peripheral vector. It can be determined by the disparity vector of the block.
  • the disparity vector determiner 220 may convert the largest depth value of the depth values of arbitrary pixels included in the macro block including the corresponding block into the disparity vector of the neighboring block. For example, the disparity vector determiner 220 may determine the disparity vector of the neighboring block by converting the largest depth value among the depth values of the pixels located at the edge of the macro block. The disparity vector determiner 220 may consider only any pixel in the depth image corresponding to the current color image to determine the disparity vector of the neighboring block. For example, the disparity vector determiner 220 may convert a depth value of any one pixel included in the depth image into a disparity vector and determine the transformed disparity vector as the disparity vector of the neighboring block.
  • the disparity vector determiner 220 may determine the disparity vector of the current block using the disparity vector and the median filter of the neighboring block. For example, the disparity vector determiner 220 may apply a median filter to the disparity vector of at least one neighboring block adjacent to the current block, and determine a result of applying the median filter as the current disparity vector.
  • FIG. 3 is a diagram illustrating an image processing apparatus for predicting a motion vector of a current block, according to an exemplary embodiment.
  • the image processing apparatus 300 may include a disparity vector extractor 310 and a disparity vector determiner 320.
  • the image processing apparatus 300 may predict the disparity vector of the current block through the disparity vector extractor 310 and the disparity vector determiner 320.
  • the image processing apparatus 300 may further include a motion vector determiner 330, and may predict the motion vector of the current block through the motion vector determiner 330.
  • the disparity vector extractor 310 may extract disparity vectors of neighboring blocks neighboring the current block of the color image.
  • the disparity vector extractor 310 determines whether a disparity vector exists in the neighboring block, and when the neighboring block does not have the disparity vector, the disparity vector extractor 310 may determine the disparity vector of the neighboring block by using a depth image corresponding to the color image. have. According to another embodiment, the disparity vector extractor 310 may determine the disparity vector of the neighboring block using depth information of the depth image without determining whether the disparity vector exists in the neighboring block.
  • the disparity vector extractor 310 may identify at least one pixel among pixels included in the depth image corresponding to the current block.
  • the disparity vector extractor 310 may convert the largest depth value of the identified pixel depth values into a disparity vector and determine the transformed disparity vector as the disparity vector of the neighboring block.
  • the disparity vector extractor 310 may consider only some pixels among the pixels included in the depth image, and may convert the largest depth value of the depth values of the some pixels into the disparity vector of the neighboring block.
  • the disparity vector extractor 310 when there is a neighboring block that does not have a disparity vector, the disparity vector extractor 310 has the largest depth value among at least one pixel included in the corresponding block of the depth image corresponding to the current block. Can be transformed into the disparity vector of the neighboring block.
  • the disparity vector extracting unit 310 identifies the depth value of the pixel located in the preset area in the depth image, and converts the largest depth value of the depth value of the pixel located in the preset area into the disparity vector of the neighboring block. You may.
  • the disparity vector extractor 310 may convert the largest depth value of the depth values of the pixels located at the corners of the corresponding block and the depth value located at the center of the corresponding block into the disparity vector of the neighboring block.
  • the disparity vector extractor 310 may determine the disparity vector of the neighboring block based on the macroblock including the corresponding block of the depth image. For example, the disparity vector extractor 310 may convert the largest depth value among the depth values of the pixels included in the macroblock into a disparity vector, and determine the transformed disparity vector as the disparity vector of the neighboring block. Alternatively, the disparity vector extractor 310 may convert the largest depth value of the depth values of arbitrary pixels included in the macro block including the corresponding block into the disparity vector of the neighboring block. For example, the disparity vector extractor 310 may determine the disparity vector of the neighboring block by converting the largest depth value among the depth values of the pixels located at the edge of the macro block.
  • the disparity vector extractor 310 may consider only any pixel in the depth image corresponding to the current color image to determine the disparity vector of the neighboring block. For example, the disparity vector extracting unit 310 may convert the depth value of any one pixel included in the depth image into a disparity vector and determine the transformed disparity vector as the disparity vector of the neighboring block.
  • the disparity vector determiner 320 may determine the disparity vector of the current block based on the disparity vector of the neighboring block. For example, the disparity vector determiner 320 may apply a median filter to the disparity vector of the neighboring block and determine the result of applying the median filter as the disparity vector of the current block.
  • the motion vector determiner 330 may determine the motion vector of the current block by using the determined disparity vector of the current block. In detail, the motion vector determiner 330 identifies a position in the neighboring color image of the color image including the current block by using the disparity vector of the current block, and uses the motion vector at the identified position as the motion vector of the current block. Can be determined.
  • the motion vector determiner 330 may determine the motion vector of the current block by using a neighboring block neighboring the current block.
  • the motion vector determiner 330 may determine the motion vector of the current block based on at least one of the disparity vector and the motion vector of the neighboring block. For example, when the reference image index indicates a color image at the same time, the motion vector determiner 330 applies a median filter to the motion vectors of neighboring blocks, and outputs the result of applying the median filter to the motion vector of the current block. Can be determined.
  • the motion vector determiner 330 may determine a result of applying the median filter to the disparity vector of the neighboring blocks as the motion vector of the current block. In other cases, the motion vector determiner 330 may determine a zero motion vector as the motion vector of the current block.
  • FIG. 4 is a diagram illustrating an image processing apparatus for predicting a motion vector of a current block, according to another exemplary embodiment.
  • the image processing apparatus 400 may include a disparity vector determiner 410 and a motion vector determiner 420.
  • the disparity vector determiner 410 may determine the disparity vector of the current block by using the disparity vector of the neighboring block neighboring the current block of the color image. The disparity vector determiner 410 determines whether a disparity vector exists in the neighboring block, and when the neighboring block does not have the disparity vector, the disparity vector determiner 410 may determine the disparity vector of the neighboring block using a depth image corresponding to the color image. have. According to another embodiment, the disparity vector determiner 410 may determine the disparity vector of the neighboring block using depth information of the depth image without determining whether the disparity vector exists in the neighboring block.
  • the disparity vector determiner 410 may identify at least one pixel among pixels included in the depth image corresponding to the current block.
  • the disparity vector determiner 410 may convert the largest depth value of the identified depth values into a disparity vector and determine the transformed disparity vector as the disparity vector of the neighboring block.
  • the disparity vector determiner 410 may consider only some pixels among the pixels included in the depth image, and may convert the largest depth value among the depth values of some pixels as the disparity vector of the neighboring block.
  • the disparity vector determiner 410 when the neighboring block does not have the disparity vector, the disparity vector determiner 410 based on the depth value of at least one pixel included in the corresponding block of the depth image corresponding to the current block of the color image.
  • the disparity vector of the block may be determined, and the disparity vector of the current block may be determined based on the disparity vector of the neighboring block.
  • the disparity vector determiner 410 may convert the largest depth value among the depth values of at least one pixel included in the corresponding block of the depth image into the disparity vector of the neighboring block.
  • the disparity vector determiner 410 may convert the largest depth value among the depth values of the pixels positioned in the preset area into the disparity vector of the neighboring block in the depth image.
  • the disparity vector determiner 410 may determine the disparity vector of the neighboring block based on the macroblock including the corresponding block of the depth image. For example, the disparity vector determiner 410 may convert the largest depth value among the depth values of the pixels included in the macro block into a disparity vector and determine the transformed disparity vector as the disparity vector of the neighboring block. Alternatively, the disparity vector determiner 410 may convert the largest depth value of the depth values of arbitrary pixels included in the macro block including the corresponding block into the disparity vector of the neighboring block. For example, the disparity vector determiner 410 may determine the disparity vector of the neighboring block by converting the largest depth value among the depth values of the pixels located at the edge of the macro block.
  • the disparity vector determiner 410 may consider only any pixel in the depth image corresponding to the current color image to determine the disparity vector of the neighboring block. For example, the disparity vector determiner 410 may convert the depth value of any one pixel included in the depth image into a disparity vector and determine the transformed disparity vector as the disparity vector of the neighboring block.
  • the disparity vector determiner 410 may determine the disparity vector of the current block based on the disparity vector of the neighboring block. For example, the disparity vector determiner 410 may apply a median filter to the disparity vector of the neighboring block, and determine the result of applying the median filter as the disparity vector of the current block.
  • the motion vector determiner 420 may determine the motion vector of the current block by using the determined disparity vector of the current block.
  • the motion vector determiner 420 may identify a position in the neighboring color image of the color image including the current block by using the disparity vector of the current block, and determine the motion vector at the identified position as the motion vector of the current block. have.
  • the motion vector determiner 420 may determine the motion vector of the current block by using a neighboring block neighboring the current block.
  • the motion vector determiner 420 may determine the motion vector of the current block based on at least one of the disparity vector and the motion vector of the neighboring block.
  • the motion vector determiner 420 may determine the zero vector as the motion vector of the current block when the motion vector of the current block cannot be determined even by the disparity vector or the motion vector of the neighboring block.
  • FIG. 5 is a diagram illustrating an image processing apparatus for predicting a motion vector of a current block, according to another exemplary embodiment.
  • the image processing apparatus 500 may include a motion vector extractor 510 and a motion vector determiner 520.
  • the motion vector extractor 510 may extract a motion vector of a neighboring block neighboring the current block of the color image.
  • the motion vector extractor 510 determines whether a motion vector exists in a neighboring block.
  • the motion vector extractor 510 may determine a motion vector of the neighboring block by using a depth image corresponding to a color image. have.
  • the motion vector extractor 510 may acquire a motion vector of a neighboring block in which a motion vector does not exist from a color image of another viewpoint, and use a depth image to obtain a motion vector of a neighboring block from a color image of another viewpoint. Can be.
  • the motion vector extractor 510 may determine the motion vector of the neighboring block using depth information of the depth image without determining whether the motion vector exists in the neighboring block.
  • the motion vector extractor 510 may acquire the disparity vector by using the depth image to determine the motion vector of the neighboring block.
  • the motion vector extractor 510 may identify at least one pixel included in the depth image corresponding to the current block, and obtain a disparity vector based on the identified depth value of the pixel. For example, the motion vector extractor 510 may convert the largest depth value among the depth values of at least one pixel included in the corresponding block of the depth image corresponding to the current block into a disparity vector.
  • the motion vector extractor 510 may use camera parameter information in the process of obtaining the disparity vector.
  • the motion vector extractor 510 may search for the motion vector of the neighboring block in the neighboring color image of the color image including the current block by using the disparity vector.
  • the motion vector extractor 510 converts the largest depth value among the depth values of the pixels located in the preset area in the depth image corresponding to the current block into a disparity vector, and the current block is converted using the transformed disparity vector.
  • the motion vector of the neighboring block may be searched in the neighboring color image of the included color image.
  • the motion vector extractor 510 may determine the motion vector of the neighboring block based on the macro block including the corresponding block of the depth image. For example, the motion vector extractor 510 converts the largest depth value among the depth values of the pixels included in the macro block into a disparity vector, and converts the motion vector at the position indicated by the transformed disparity vector into the motion vector of the neighboring block. Can be determined. Alternatively, the motion vector extractor 510 converts the largest depth value of the depth values of arbitrary pixels included in the macro block including the corresponding block into a disparity vector of the neighboring block, and uses the transformed disparity vector to surround the neighboring block. You can also search for the motion vector of.
  • the motion vector extractor 510 may consider only any pixel in the depth image corresponding to the current color image to determine the motion vector of the neighboring block. For example, the motion vector extractor 510 converts the depth value of any one pixel included in the depth image into a disparity vector, and converts the motion vector where the transformed disparity vector points to the motion vector of the neighboring block. Can be determined.
  • the motion vector extractor 510 may determine the motion vector of the neighboring block as a zero vector. In addition, the motion vector extractor 510 may determine the motion vector of the neighboring block as a zero vector when the reference image index of the current block does not coincide with the reference image index obtained from the color image of another viewpoint.
  • the motion vector determiner 520 may determine the motion vector of the current block based on the motion vector of the neighboring block. For example, the motion vector determiner 520 may apply a median filter to the motion vectors of neighboring blocks, and determine the result of applying the median filter as the motion vector of the current block.
  • FIG. 6 is a diagram illustrating a structure of a multiview video, according to an embodiment.
  • GOP Group of Picture
  • MVC -view Video Coding
  • the process of encoding a multi-view image basically uses the concept of hierarchical B picture (or hierarchical B-frame) as the temporal axis and the view axis. Redundancy of the liver can be reduced.
  • the encoding apparatus 110 of FIG. 1 encodes a left picture (I-view) according to the structure of the multi-view image shown in FIG. 6, and performs a right picture (P-view) and a center image (Center).
  • a picture corresponding to three viewpoints can be encoded by sequentially encoding Picture: B-view.
  • an area similar to the left image may be searched from previous images through motion estimation, and temporal redundancy may be reduced by using information of the searched area. Since the right image encoded after the left image is encoded with reference to the already encoded left image, not only temporal redundancy through motion estimation but also view redundancy through disparity estimation may be reduced. In addition, since the center image may perform encoding through disparity estimation by referring to both the left image and the right image that are already encoded, redundancy between views may be reduced.
  • an image that is encoded without using an image of another view like the left image is encoded by predicting an image of another view in one direction such as an I-View image and a right image.
  • the image to be encoded may be defined as a P-View image, and an image encoded by predicting images of different views in both directions, such as a center image, as a B-View image.
  • FIG. 7 is a diagram illustrating a reference image used when encoding a current block according to an embodiment.
  • the image processing apparatus may use the neighboring color images 720 to 750 as a reference image. For example, the image processing apparatus may identify a similar block most similar to the current block in the surrounding color images 720 to 750, and may encode a residual signal between the current block and the similar block.
  • an encoding mode for searching similar blocks using a reference image may include P Slice Only / Direct (B Slice Only), 16x16, 16x8, 8x16, and P8x8 modes.
  • an encoding mode for searching for a similar block by using a reference picture may include SKIP, MERGE, 2Nx2N, 2NxN, Nx2N, and the like.
  • the image processing apparatus may use reference images 720 and 730 located in time around the current color image to reduce temporal redundancy.
  • the image processing apparatus may use reference images 740 and 750 located in the vicinity of the viewpoint with respect to the current color image in order to reduce the redundancy between the viewpoints.
  • the image processing apparatus may use the Ref1 image 720 and the Ref2 image 730 to obtain motion information, and may use the Ref3 image 740 and the Ref4 image 750 to obtain the variation information.
  • FIG. 8 is a diagram for describing an operation of an encoding apparatus according to an embodiment in detail.
  • FIG. 8 illustrates a process of encoding a color image by an encoding apparatus.
  • the encoding apparatus encodes a color image as follows.
  • the encoding apparatus may receive a color image in operation 810 and select an encoding mode in operation 845.
  • the encoding apparatus may determine the residual signal between the color image and the prediction image derived through block based prediction based on the selected encoding mode. Then, the encoding apparatus may transform the residual signal 815, perform quantization 820, and entropy encoding 825.
  • the block-based prediction process may include a prediction process for reducing temporal redundancy and an inter-view prediction for reducing redundancy between viewpoints.
  • a deblocking filtering process 875 may be performed to accurately predict the next color image.
  • inverse quantization 830 of the quantized image 820 and inverse transform 835 may be performed.
  • the reference images generated by the deblocking filtering process 925 may be stored and used in the encoding process of the next color image.
  • the encoding apparatus may perform a prediction process to remove temporal redundancy and inter-view redundancy through intra prediction 850, motion prediction / compensation 855, or disparity prediction / compensation 860.
  • the image processing apparatus may perform a process of motion prediction / compensation 855 and disparity prediction / compensation 860.
  • the image processing apparatus converts 865 depth information 870 (eg, depth value) into disparity information (eg, disparity vector) based on camera parameter 840 for motion prediction / compensation 855.
  • the motion prediction / compensation process 855 may be performed using the disparity information.
  • the image processing apparatus converts the depth information 870 (eg, depth value) into the disparity information (eg, a disparity vector) based on the camera parameter 840 for the disparity prediction / compensation 860 (865). Mutation prediction / compensation 860 may be performed.
  • the process of motion prediction / compensation 855 and disparity prediction / compensation 860 is important for efficient encoding of 3D video.
  • the image processing apparatus predicts / compensates the motion of the current block by using the motion vector information of the neighboring blocks, the encoding information about the color image of another viewpoint, or the depth image corresponding to the current block in the motion prediction / compensation process 855.
  • Process can be performed.
  • the image processing apparatus may use the disparity prediction / compensation process 860 for disparity prediction / compensation of the current block by using disparity vector information of neighboring blocks, encoding information about a color image of another viewpoint, or a depth image corresponding to the current block. 860 may be performed.
  • FIG. 9 is a diagram for describing an operation of a decoding apparatus according to an embodiment in detail.
  • the decoding apparatus may reverse the operation of the encoding apparatus of FIG. 8 described above in order to decode the encoded bitstream and output a color image.
  • the process of decoding the encoded 3D image data by the decoding apparatus is as follows.
  • the decoding apparatus may receive a bitstream including the encoded 3D image data (905) and perform entropy decoding (910).
  • the decoding apparatus may perform the processes of inverse quantization 915 and inverse transformation 920, and select a decoding mode 940.
  • the decoding apparatus may efficiently decode the bitstream through the intra prediction 945, the motion prediction / compensation 950, or the disparity prediction / compensation 955 according to the selected decoding mode.
  • the image processing apparatus may perform a process of motion prediction / compensation 950 and disparity prediction / compensation 955.
  • the image processing apparatus converts the depth information 965 into the disparity information 960 based on the camera parameter 935 for the motion prediction / compensation 950, and processes the motion prediction / compensation 950 using the converted information. Can be performed.
  • the image processing apparatus may convert 960 the depth information 965 into the disparity information based on the camera parameter 935 and perform the disparity prediction / compensation 955 for the disparity prediction / compensation 955. .
  • the image processing apparatus predicts / compensates the motion of the current block using the motion vector information of the neighboring blocks, the decoding information of the color image at different views, or the depth image corresponding to the current block in the motion prediction / compensation process 950. ) Process can be performed. In addition, the image processing apparatus may use the variation vector information of the neighboring block, the decoding information of the color image of another viewpoint, or the depth prediction / compensation of the current block in the process of disparity prediction / compensation 955. (955) can be performed.
  • a deblocking filtering process 925 may be performed to decode the next color image.
  • Reference images generated by the deblocking filtering process 925 may be stored and used in decoding of the next color image.
  • FIG. 10 illustrates a process of predicting a disparity vector of a current block according to an embodiment.
  • block Cb represents a current block to be encoded in a color image.
  • Blocks A, B, and C represent neighboring blocks existing at positions adjacent to the current block.
  • the image processing apparatus may identify the disparity vector of the neighboring blocks A, B, and C, and apply a median filter to the identified disparity vectors.
  • the image processing apparatus may replace the disparity vector of the neighboring block in which the disparity vector does not exist with a specific disparity vector. For example, suppose that the disparity vector of neighboring block A does not exist.
  • the image processing apparatus may convert the largest depth value among the depth values among the pixels included in the depth image corresponding to the current block to the displacement vector to determine the variation vector of the neighboring block A.
  • the image processing apparatus may convert the largest depth value of the depth values of some pixels in the depth image into the disparity vector of the neighboring block A.
  • the image processing apparatus may convert the largest depth value among the depth values of pixels located in a predetermined region such as an edge in a corresponding block of the depth image corresponding to the current block into a disparity vector.
  • the image processing apparatus may convert the largest depth value of the depth value of the pixel located in a predetermined region such as an edge in a macro block including the corresponding block of the depth image corresponding to the current block into a disparity vector.
  • the image processing apparatus may determine the disparity vector of the current block Cb by determining the transformed disparity vector as the disparity vector of the neighboring block A and applying a media filter to the disparity vectors of the neighboring blocks A, B, and C.
  • the image processing apparatus may determine the disparity vector of the current block Cb based on the macro block including the corresponding block of the depth image. For example, the image processing apparatus may convert the largest depth value of the depth values of the pixels included in the macro block into the disparity vector of the current block Cb, or determine the largest depth value of the depth values of any pixels included in the macro block. The disparity vector of the current block Cb can be converted. Also, the image processing apparatus may consider only any pixel in the depth image corresponding to the current block Cb. For example, the image processing apparatus may convert the depth value of any one pixel included in the depth image corresponding to the current block Cb into a disparity vector and determine the transformed disparity vector as the disparity vector of the current block. .
  • the image processing apparatus may use camera parameter information to convert the depth value into the disparity vector.
  • the motion vector and the disparity vector of the current block derived through FIG. 10 may be used as prediction disparity vectors based on 16x16, 16x8, 8x16, and P8x8 modes, respectively.
  • the image processing apparatus may search for the last disparity vector of the current block by performing disparity estimation through the disparity estimation vector.
  • the process of predicting the disparity vector of the current block by the image processing apparatus is as follows.
  • the image processing apparatus may identify disparity vectors of neighboring blocks A, B, and C of the current block Cb. In operation 1020, the image processing apparatus may determine whether a variation vector of the neighboring block exists.
  • the image processing apparatus may determine the disparity vector of the neighboring block in which the disparity vector does not exist using the depth image. For example, the image processing apparatus may identify at least one pixel among the pixels included in the depth image corresponding to the current block, convert the largest depth value among the depth values of the identified pixels into a disparity vector, and convert the transformed disparity.
  • the vector may be determined as the disparity vector of the neighboring block in which the disparity vector does not exist.
  • the image processing apparatus may consider only any pixel in the depth image corresponding to the current color image to determine the disparity vector of the neighboring block. For example, the image processing apparatus may convert the depth value of any one pixel included in the depth image into a disparity vector, and determine the transformed disparity vector as the disparity vector of the neighboring block.
  • the image processing apparatus may refer to the pixels in the macroblock including the corresponding block or the corresponding block of the depth image corresponding to the current block to convert the depth value into the disparity vector.
  • the image processing apparatus may convert the largest depth value of the depth values of the pixels included in the corresponding block (or macro block) of the depth image into the disparity vector of the neighboring block, or correspond to the corresponding block (or macro block).
  • the largest depth value of the depth values of the pixels existing in the preset area may be converted into the disparity vector of the neighboring block.
  • the image processing apparatus may apply a median filter to the disparity vector of the neighboring block.
  • the image processing apparatus may determine a median-filtered disparity vector to which the median filter is applied as the disparity vector of the current block Cb.
  • the image processing apparatus may encode the disparity vector of the current block Cb.
  • the image processing apparatus does not use the disparity vectors of the neighboring blocks A, B, and C of the current block Cb, but has the largest depth value among the depth values of pixels included in the corresponding block of the depth image corresponding to the current block Cb. Can be transformed into a disparity vector.
  • the image processing apparatus may use only a depth value of some pixels included in the corresponding block of the depth image corresponding to the current block Cb to convert the disparity vector.
  • the image processing apparatus may convert the largest depth value of the depth values of the four pixels positioned at the corners of the corresponding block and the pixels at the center position into a disparity vector.
  • the image processing apparatus may use camera parameter information in the process of converting the depth value into the disparity vector.
  • the image processing apparatus may determine the transformed disparity vector as the disparity vector of the current block.
  • the determined disparity vector of the current block may provide an initial point in a disparity estimation process for the inter mode.
  • FIG. 11 is a diagram illustrating a process of predicting a motion vector of a current block for a skip mode and a direct mode according to an embodiment.
  • Blocks A, B, and C represent neighboring blocks existing at positions adjacent to the current block Cb.
  • the image processing apparatus may use the disparity vectors of the neighboring blocks A, B, and C to predict the motion vector of the current block Cb.
  • the image processing apparatus may use information of the already-encoded / decoded I-View image to predict the motion vector for the skip mode and the direct mode.
  • the image processing apparatus may not only select the I-View image but also the P-View image and the I-View image to predict the motion vector for the skip mode and the direct mode. You can also use the B-View image.
  • the image processing apparatus may identify the disparity vector of the neighboring block neighboring the current block Cb in the color image. In operation 1120, the image processing apparatus may determine whether a variation vector of a neighboring block exists.
  • the image processing apparatus may determine the disparity vector of the neighboring block in which the disparity vector does not exist using the depth image.
  • the image processing apparatus may identify at least one pixel among the pixels included in the depth image corresponding to the current block Cb, and convert the largest depth value among the identified depth values into a disparity vector.
  • the image processing apparatus may determine the transformed disparity vector as the disparity vector of the neighboring block in which the disparity vector does not exist. Also, the image processing apparatus may consider only the depth values of some pixels included in the depth image in order to convert the depth value into the disparity vector.
  • the image processing apparatus may convert a depth value of any one pixel included in the depth image corresponding to the current block Cb into a disparity vector and determine the transformed disparity vector as the disparity vector of the neighboring block. .
  • the image processing apparatus may use camera parameter information in the process of converting the depth value into the disparity vector.
  • the image processing apparatus may determine the disparity vector of the neighboring block based on the corresponding block of the depth image corresponding to the current block or the macro block including the corresponding block. For example, the image processing apparatus may convert the largest depth value of the depth values of the pixels included in the corresponding block (or the macro block) into the disparity vector of the neighboring block, or any included in the corresponding block (or the macro block). The largest depth value of the depth values of the pixels may be converted into the disparity vector of the neighboring block.
  • the image processing apparatus may apply a median filter to the disparity vector of the neighboring block.
  • the image processing apparatus may determine the motion vector of the current block Cb using the disparity vector to which the median filter is applied.
  • the image processing apparatus may determine the motion vector at the position indicated by the disparity vector to which the median filter is applied as the motion vector of the current block Cb. For example, if the disparity vector to which the median filter is applied points to an I-View image, the position of the disparity vector to which the median filter is applied is identified in the I-View image at the same time zone as the current color image, and the current block Cb The motion information at the identified location can be used to determine the motion vector of.
  • the image processing apparatus may determine the motion vector of the current block Cb by using the neighboring blocks A, B, and C of the current block Cb.
  • the image processing apparatus may use the smallest index among the reference image indexes of the neighboring blocks A, B, and C as the reference image index of the current block Cb (for example, in the case of a P-picture, the reference image index is 0).
  • the image processing apparatus may determine a result of applying the median filter to the motion vectors of the neighboring blocks A, B, and C as the motion vector of the current block Cb.
  • the image processing apparatus may determine the result of applying the median filter to the disparity vectors of the neighboring blocks A, B, and C as the motion vector of the current block Cb. In other cases, the image processing apparatus may determine the zero vector as the motion vector of the current block Cb.
  • the image processing apparatus may use the determined motion vector of the current block Cb as a motion vector for the skip mode and the direct mode.
  • the image processing apparatus may use the reference image index at the position indicated by the disparity vector to which the median filter is applied as the reference image index in the skip mode and the direct mode.
  • FIG. 12 illustrates a process of predicting a motion vector of a current block by using a disparity vector, according to an exemplary embodiment.
  • the image processing apparatus may determine the motion vector 1260 of the current block 1230 using the disparity vector 1240 of the current block 1230 in the current color image 1210. For example, the image processing apparatus may apply a median filter to the disparity vector of the neighboring blocks to determine the disparity vector 1240 of the current block 1230. The image processing apparatus identifies a position in the reference image 1220 indicated by the disparity vector 1240 to which the median filter is applied, and converts the motion vector 1250 at the identified position into the motion vector 1260 of the current block 1230. You can decide.
  • FIG. 13 is a diagram illustrating a process of predicting a motion vector of a current block for an inter mode according to an embodiment.
  • a block Cb represents a current block to be encoded in a color image.
  • Blocks A, B, and C represent neighboring blocks existing at positions adjacent to the current block Cb.
  • the image processing apparatus may use the motion vectors of the neighboring blocks A, B, and C to predict the motion vector of the current block Cb.
  • the image processing apparatus may identify a motion vector of the neighboring block of the current block Cb. In operation 1320, the image processing apparatus may determine whether a motion vector of a neighboring block exists.
  • the image processing apparatus may determine a motion vector of the neighboring block in which the motion vector does not exist using the depth image.
  • the image processing apparatus may obtain a motion vector of a neighboring block in which a motion vector does not exist from a color image of another viewpoint, and use the depth image to obtain a motion vector of a neighboring block from a color image of another viewpoint.
  • the image processing apparatus may identify at least one pixel among the pixels included in the depth image corresponding to the current block Cb, and convert the largest depth value among the identified depth values into a disparity vector.
  • the image processing apparatus may consider only the depth values of some pixels included in the depth image in order to convert the depth value into the disparity vector. For example, the image processing apparatus may convert the largest depth value of the depth values of the pixels included in the corresponding block of the depth image corresponding to the current block Cb into a disparity vector. Alternatively, the image processing apparatus may convert the largest value of the depth value of the four pixels located at the corner of the corresponding block and the depth value of the pixel located at the center of the corresponding block into a disparity vector.
  • the image processing apparatus may use camera parameter information in the process of converting the depth value into the disparity vector.
  • the image processing apparatus may determine the motion vector of the neighboring block by using the disparity vector.
  • the image processing apparatus may determine the motion vector at the position indicated by the disparity vector as the motion vector of the neighboring block.
  • the image processing apparatus may determine the motion vector of the neighboring block based on the macro block including the corresponding block of the depth image. For example, the image processing apparatus may convert the largest depth value among the depth values of the pixels included in the macro block into a disparity vector, and determine the motion vector at the position indicated by the transformed disparity vector as the motion vector of the neighboring block. . Alternatively, the image processing apparatus may convert the largest depth value of the depth values of arbitrary pixels included in the macro block including the corresponding block into a disparity vector of the neighboring block, and convert the motion vector of the neighboring block by using the transformed disparity vector. You can also explore.
  • the image processing apparatus may consider only any pixel in the depth image corresponding to the current color image to determine the motion vector of the neighboring block. For example, the image processing apparatus converts a depth value of any one pixel included in the depth image corresponding to the current color image into a disparity vector, and converts a motion vector of the transformed disparity vector to a neighboring block. It can be determined by the motion vector.
  • the image processing apparatus may determine the motion vector of the neighboring block as a zero vector. For example, when the disparity vector generated through the conversion of the depth value points to the I-View image, the position of the disparity vector is identified in the I-View image in the same time zone as the current color image, and the motion of the current block Cb is detected. The motion information at that identified location can be used to determine the vector. If the motion vector does not exist at the position indicated by the disparity vector, the image processing apparatus may use the zero vector as the motion vector of the neighboring block.
  • the image processing apparatus may determine the motion vector of the current block Cb by applying a median filter to the motion vector of the neighboring block.
  • the image processing apparatus may perform motion search in the inter mode using the motion vector to which the median filter is applied.
  • the image processing apparatus may use the motion vector to which the median filter is applied as the predicted motion vector in the inter mode.
  • the predicted motion vector may provide an initial point in motion estimation for motion mode.
  • Sub-macroblock partition subMbPartIdx Sub-macroblock partition subMbPartIdx.
  • Luma motion vectors mvL0 and mvL1 chroma motion vectors mvCL0 and mvCL1 when ChromaArrayType is nonzero
  • Prediction list utilization flags predFlagL0 and predFlagL1 are predFlagL0 and predFlagL1,
  • nal_unit_type is equal to 21
  • DepthFlag is equal to 0
  • dmvp_flag is equal to 1
  • depth based on luma motion vectors of skipped macroblocks included in P slice and SP slice in subclause J.8.3.1.1
  • the derivation process is invoked, with the output that the luma motion vector mvL0, the reference index refIdxL0, and predFlagL0 are set to one.
  • luma motion of skipped macroblocks included in P slice and SP slice in subclause J.8.4.1.1 The depth-based derivation process for the vectors is called, with the output that the luma motion vector mvL0, reference index refIdxL0, and predFlagL0 are set to one.
  • the derivation process for the luma motion vectors of the VSP skipped macroblocks included in the P slice and the SP slice in subclause J.8.3.1.2 is called, wherein the luma motion vectors mvL0, reference index refIdxL0, and predFlagL0 are set to 1. Has the output set.
  • mb_type is equal to B_Skip or B_Direct_16x16, or sub_mb_type [mbPartIdx] is equal to B_Direct_8x8, the following applies.
  • variable vspFlag is specified as shown in Table 1 below.
  • predFlagLX is equal to 1
  • DepthFlag is equal to 0
  • dmvp_flag is equal to 1
  • the derivation process for luma motion vector prediction in subclause 8.3.1.7 is invoked, with inputs of mbPartIdx subMbPartIdx, refIdxLX, and currSubMbType Has the output of mvpLX.
  • the output is a motion vector mvL0 and a reference index refIdxL0.
  • the reference index refIdxL0 for the VSP skipped macroblock is obtained as a synthetic picture appearing first of RefPicList0.
  • the inputs are the partition indexes mbPartIdx and subMbPartIdx of the current macroblock.
  • Outputs in this process are reference indices refIdxL0 and refIdxL1, motion vectors mvL0 and mvL1, motion vector count variable subMvCnt, and prediction list use flags predFlagL0 and predFlagL1.
  • the reference indices refIdxL0 and refIdxL1 are derived by the following Table 2.
  • mvLX is allocated.
  • the inputs are the depth reference view component depthPic, the positions of the top-left samples (dbx1, dby1) of the partition, and the listSuffixFlag.
  • the output in this process is the picture InterViewPic, the offset vector dv, and the variable InterViewAvailable.
  • Table 3 below applies to obtaining an InterViewPic that is an inter-view reference picture or an inter-view only reference picture with listFuffixFlag set to 1 or 0 and other values of X being set to 1.
  • mbPartIdx is set to 0 as input
  • subMbPartIdx is set to 0
  • currSubMbType is set to "na”
  • listSuffixFlag is set to 0.
  • reference indices refIdxCandL0 [i] and motion vectors mvCandL0 [i] are set, where i is 0, 1, or 2 corresponding to each of neighboring partitions A, B, and C, respectively. Has the value of.
  • mbPartIdx is set to 0 as input
  • subMbPartIdx is set to 0
  • currSubMbType is set to "na”
  • listSuffixFlag is set to 1.
  • reference indices refIdxCandL1 [i] and motion vectors mvCandL1 [i] are set, where i is 0, 1, or 2 corresponding to each of neighboring partitions A, B, and C, respectively. Has a value.
  • variable dv is determined according to the following steps.
  • DvAvailable [i] is set according to the following table 4, where i has a value of 0, 1, or 2 corresponding to neighboring partitions A, B, and C, respectively.
  • DvAvailable [0], DvAvailable [1], DvAvailable [2] is 1,
  • variable maxDepth is set as shown in Table 5 below.
  • variable disp is set as shown in Table 6 below.
  • Each component of the variable dv is given as the median value of the corresponding vector components of the motion vectors mvCandLX [0], mvCandLX [1], and mvCandLX [2].
  • dv [0] Median (mvCandLX [0] [0], mvCandLX [1] [0], and mvCandLX [2] [0])
  • dv [1] Median (mvCandLX [0] [1], mvCandLX [1] [1], and mvCandLX [2] [1])
  • Inputs in this process are mbPartIdx, subMbPartIdx, and listSuffixFlag.
  • the output is a motion vector mvCorrespondand and a reference index refIdxCorrespond.
  • the Inter-view reference picture InterViewPic and the offset vector dv are derived as specified by the following steps.
  • the inverse macroblock scanning process is called, at which time CurrMbAddr is set as input and (x1, y1) is assigned as output.
  • mbPartIdx is set as input and (dx1, dy1) is assigned as output.
  • mbPartIdx and subMbPartIdx are set as inputs and (dx2, dy2) are assigned as outputs.
  • subclause J.8.3.1.4 The process specified in subclause J.8.3.1.4 is invoked, at which time the inputs are DepthCurrPic, dbx1 set to x1 + dx1 + dx2, dby1 and listSuffixFlag set to y1 + dy1 + dy2, and the InterViewPic, offset vector dv as output And the and variable InterViewAvailable are assigned.
  • refIdxCorrespond and mvCorrespond can be set as follows.
  • variable luma4x4BlkIdx is derived as (4 * mbPartIdx + subMbPartIdx).
  • luma4x4BlkIdx is set as input and (x, y) is assigned as output.
  • (xCorrespond, yCorrespond) is set to (x + (dv [0] >> 4), y + (dv [1] >> 4)), and mbAddrCorrespond is ((CurrMbAddr / PicWidthInMbs) + (dv [1 ] >> 6)) * PicWidthInMbs + (CurrMbAddr% PicWidthInMbs) + (dv [0] >> 6).
  • mbTypeCorrespond to the syntax element mb_type of the macroblock with the address of mbAddrCorrespond in the picture InterViewPic. If mbTypeCorrespond is equal to P_8x8, P_8x8ref0, or B_8x8, set subMbTypeCorrespond to the syntax element sub_mb_type of the macroblock having the address of mbAddrCorrespond in the picture InterViewPic.
  • mbPartIdxCorrespond is set to the macroblock partition index of the corresponding partition
  • subMbPartIdxCorrespond is set to the sub-macroblock partition index of the corresponding sub-macroblock partition.
  • the derivation process for the macroblock partition index and the sub-macroblock partition index is called, with inputs the luma location equal to luma location equal to (xCorrespond, yCorrespond), the macroblock type equal to mbTypeCorrespond, and when mbTypeCorrespond equals P_8x8,
  • the list subMbTypeCorrespond of the sub-macroblock type when equal to P_8x8ref0 or B_8x8 is set.
  • macroblock partition index mbPartIdxCorrespond and sub-macroblock partition index subMbPartIdxCorrespond are assigned.
  • the motion vector mvCorrespond and the reference index refIdxCorrespond are determined according to the following.
  • the components of mvCorrespond are set to 0 and the components of refIdxCorrespond are set to -1.
  • prediction usage flags predFlagLXCorrespond is set to PredFlagLX [mbPartIdxCorrespond], the prediction block using the macroblock partition mbAddrCorrespond ⁇ mbPartIdxCorrespond of picture InterViewPic.
  • PredFlagLX [mbPartIdxCorrespond]
  • MvLX [mbPartIdxCorrespond] [subMbPartIdxCorrespond] and RefIdxLX [mbPartIdxCorrespond] are respectively assigned to the (sub-) macroblock partition mbAddrCorrespond ⁇ mbPartIdxCorrespond ⁇ subMbPartIdxCorrespond in the picture InterViewPic.
  • Outputs in this process are the motion vectors mvL0, mvL1, and the reference indices refIdxL0 and refIdxL1.
  • the reference index refIdxLX of the VSP skipped / direct macroblock is derived as the synthetic reference component that appears first in the reference picture list X. Where X is replaced by 0 or 1. If there is no synthetic picture in the reference picture list X, refIdxLX is set to zero.
  • the motion vector mvLX is set to a zero motion vector, where X is replaced with 0 or 1.
  • the input in this process is:
  • Sub-macroblock partition index subMbPartIdx subMbPartIdx
  • the output in this process is the predicted mvpLX (where X is 0 or 1) of the motion vector mvLX.
  • mbAddrN ⁇ mbPartIdxN ⁇ subMbPartIdxN is marked as not available.
  • refIdxLX is a reference index for an inter-view reference component or an inter-view only reference component
  • a depth-based derivation process for median luma inter-view motion vector prediction is called, with mbAddrN as input.
  • ⁇ mbPartIdxN ⁇ subMbPartIdxN, mvLXN, refIdxLXN (where N is replaced with A, B, or C), refIdxLX is set.
  • the motion vector predictor mvpLX is assigned.
  • refIdxLX is a reference index for an inter reference component or inter only reference component
  • a depth-based derivation process for the median luma temporal motion vector prediction is called, with mbAddrN ⁇ mbPartIdxN ⁇ subMbPartIdxN, mvLXN as inputs.
  • refIdxLXN (where N is replaced with A, B, or C)
  • refIdxLX is set.
  • the motion vector predictor mvpLX is assigned.
  • MbPartWidth (mb_type) is 8
  • MbPartHeight (mb_type) is 16
  • refIdxLXC is equal to refIdxLX
  • the input in this process is:
  • the output in this process is motion vector prediction mvpLX.
  • mvLXN is derived in the following order.
  • the inverse macroblock scanning process is called, where input is set to CurrMbAddr and output is assigned to (x1, y1).
  • the inverse macroblock partition scanning process is called, where the input is set to mbPartIdx and the output is assigned to (dx1, dy1).
  • Each component of the motion vector prediction mvpLX is determined based on the median value of the corresponding vector components of the motion vectors mvLXA, mvLXB, and mvLXC as follows.
  • mvpLX [0] Median (mvLXA [0], mvLXB [0], mvLXC [0])
  • mvpLX [1] Median (mvLXA [1], mvLXB [1], mvLXC [1])
  • the input in this process is:
  • Depth reference view component depthPic Depth reference view component depthPic
  • the output in this process is the motion vector mv.
  • variable maxDepth can be determined based on the following Table 7.
  • variable mv can be determined based on Table 8 below.
  • the input in this process is:
  • the output in this process is motion vector prediction mvpLX.
  • mvLXN is derived in the following order.
  • the inverse macroblock scanning process is called, where the input is CurrMbAddr and the output is assigned to (x1, y1).
  • the inverse macroblock partition scanning process is called, where the input is mbPartIdx and the output is assigned to (dx1, dy1).
  • refIdxCorrespond and mvCorrespond are set according to the following.
  • variable luma4x4BlkIdx is derived as (4 * mbPartIdx + subMbPartIdx).
  • the inverse 4x4 luma block scanning process is called, where the input is luma4x4BlkIdx and the output is (x, y). Also, (xCorrespond, yCorrespond) is set to (x + (dv [0] >> 4), y + (dv [1] >> 4)), and mbAddrCorrespond is ((CurrMbAddr / PicWidthInMbs) + (dv [1 ] >> 6)) * PicWidthInMbs + (CurrMbAddr% PicWidthInMbs) + (dv [0] >> 6).
  • mbTypeCorrespond to the syntax element mb_type of the macroblock with the address mbAddrCorrespond in the picture InterViewPic. If mbTypeCorrespond is equal to P_8x8, P_8x8ref0, or B_8x8, subMbTypeCorrespond is set to the syntax element sub_mb_type of the macroblock with the address mbAddrCorrespond in the picture InterViewPic.
  • the derivation process for macroblock and sub-macroblock partition indices is invoked, with inputs having a luma location equal to (xCorrespond, yCorrespond), a macroblock type equal to mbTypeCorrespond, and a mbTypeCorrespond equal to P_8x8, P_8x8ref0, Or a list of sub-macroblock types subMbTypeCorrespond when equal to B_8x8.
  • the output is the macroblock partition index mbPartIdxCorrespond and the sub-macroblock partition index subMbPartIdxCorrespond.
  • the motion vector mvCorrespond and the reference index refIdxCorrespond are determined based on the following.
  • the component of mvCorrespond is set to 0 and the component of refIdxCorrespond is set to -1.
  • the prediction usage flags are set to predFlagLXCorrespond with PredFlagLX [mbPartIdxCorrespond], the prediction block using the macroblock partition mbAddrCorrespond ⁇ mbPartIdxCorrespond of the picture InterViewPic.
  • the following procedures apply.
  • MvLX [mbPartIdxCorrespond] [subMbPartIdxCorrespond] and RefIdxLX [mbPartIdxCorrespond] are the (sub-) macroblock partitions mbAddrCorrespond ⁇ mbPartIdxCorrespond ⁇ subMbPartIdxLxddIdCxress respectively assigned to the picture InterViewPic
  • the motion vectors mvLXN are derived according to Table 9 below.
  • Each component of the motion vector prediction mvpLX is determined based on the median value of the corresponding vector components of the motion vectors mvLXA, mvLXB, and mvLXC.
  • mvpLX [0] Median (mvLXA [0], mvLXB [0], mvLXC [0])
  • mvpLX [1] Median (mvLXA [1], mvLXB [1], mvLXC [1])
  • Inputs in this process are the depth reference view component depthPic, the position of the top-left samples (dbx1, dby1) of the partition, and listSuffixFlag.
  • Outputs in this process are picture InterViewPic, offset vector dv, and variable InterViewAvailable.
  • FIG. 14 is a flowchart illustrating an image processing method of predicting a disparity vector of a current block, according to an exemplary embodiment.
  • the image processing apparatus may identify a depth image corresponding to the current block of the color image.
  • the image processing apparatus may estimate the depth image corresponding to the current block by using the neighboring color image or another depth image of the color image including the current block.
  • the image processing apparatus may determine the disparity vector of the current block based on the depth value of the pixel included in the depth image.
  • the image processing apparatus may determine the disparity vector of the current block by using depth information of the depth image corresponding to the current block.
  • the image processing apparatus may identify at least one pixel among the pixels included in the depth image, and may convert the largest depth value among the identified depth values of the pixel into the disparity vector of the current block.
  • the image processing apparatus may determine the disparity vector of the current block based on the depth value of the pixel included in the corresponding block of the depth image corresponding to the current block.
  • the image processing apparatus may convert the largest depth value among the depth values of at least one pixel included in the corresponding block of the depth image into a disparity vector.
  • the image processing apparatus may identify a depth value of a pixel located in a preset area of the depth image among the plurality of pixels included in the corresponding block of the depth image.
  • the image processing apparatus may identify a depth value of a pixel located at an edge of the corresponding block or identify a depth value of a pixel located at an edge of the corresponding block and a depth value at the center of the corresponding block.
  • the image processing apparatus may convert the largest depth value among the depth values of the pixels positioned in the preset area into the disparity vector.
  • the image processing apparatus may determine the transformed disparity vector as the disparity vector of the current block.
  • the image processing apparatus may determine the disparity vector of the current block based on the macro block including the corresponding block of the depth image. For example, the image processing apparatus may convert the largest depth value of the depth values of the pixels included in the macro block into a disparity vector of the current block, or may present the largest depth value of the depth values of any pixels included in the macro block. The disparity vector of the block can be converted. Also, the image processing apparatus may consider only any pixel in the depth image corresponding to the current block. For example, the image processing apparatus may convert a depth value of any one pixel included in the depth image corresponding to the current block into a disparity vector, and determine the transformed disparity vector as the disparity vector of the current block. Alternatively, the image processing apparatus may convert the depth value of any one pixel in the corresponding block (or macro block) into the disparity vector of the current block.
  • the image processing apparatus may use camera parameter information in the process of converting the depth value into the disparity vector.
  • 15 is a flowchart illustrating an image processing method of predicting a motion vector of a current block, according to an exemplary embodiment.
  • the image processing apparatus may identify the disparity vector of the neighboring block neighboring the current block of the color image and determine whether the disparity vector exists in the neighboring block.
  • the image processing apparatus may determine the disparity vector of the neighboring block by using a depth image corresponding to the color image.
  • the image processing apparatus may identify at least one pixel among pixels included in the depth image corresponding to the current block.
  • the image processing apparatus may convert the largest depth value among the identified depth values of the pixel into a disparity vector and determine the transformed disparity vector as the disparity vector of the neighboring block.
  • the image processing apparatus may consider only some pixels among the pixels included in the depth image, and may convert the largest depth value of the depth values of the some pixels as the disparity vector of the neighboring block. For example, the image processing apparatus may convert a depth value of any one pixel included in the depth image corresponding to the current block into a disparity vector.
  • the image processing apparatus may convert the largest depth value of at least one pixel included in the corresponding block of the depth image corresponding to the current block into a disparity vector to determine the disparity vector of the neighboring block.
  • the image processing apparatus may identify a depth value of a pixel located in a preset area among a plurality of pixels included in the corresponding block of the depth image corresponding to the current block.
  • the image processing apparatus may identify a depth value of a pixel located at an edge of the corresponding block or identify a depth value of a pixel located at an edge of the corresponding block and a depth value at the center of the corresponding block.
  • the image processing apparatus may convert the largest depth value among the depth values of the pixels positioned in the preset area into the disparity vector.
  • the image processing apparatus may determine the transformed disparity vector as the disparity vector of the neighboring block.
  • the image processing apparatus may determine the disparity vector of the neighboring block based on the macro block including the corresponding block of the depth image. For example, the image processing apparatus converts the largest depth value of the depth values of the pixels included in the macro block into the disparity vector of the neighboring block, or surrounds the largest depth value of the depth values of any pixels included in the macro block. The disparity vector of the block can be converted.
  • the image processing apparatus may determine the disparity vector of the current block based on the disparity vector of the neighboring block. For example, the image processing apparatus may apply the median filter to the disparity vector of the neighboring block and determine the result of applying the median filter as the disparity vector of the current block.
  • the image processing apparatus may determine the motion vector of the current block using the disparity vector of the current block.
  • the image processing apparatus may identify a position in the neighboring color image of the color image including the current block by using the disparity vector of the current block, and determine the motion vector at the identified position as the motion vector of the current block.
  • the image processing apparatus may identify a position in the neighboring color image of the color image including the current block by using the determined disparity vector of the current block.
  • the image processing apparatus may determine the motion vector at the identified position as the motion vector of the current block. If there is no motion vector at the identified position, the image processing apparatus may determine the motion vector of the current block by using a neighboring block neighboring the current block.
  • the image processing apparatus may determine the motion vector of the current block based on at least one of the disparity vector and the motion vector of the neighboring block.
  • 16 is a flowchart illustrating an image processing method of predicting a motion vector of a current block according to another embodiment.
  • the image processing apparatus may determine the disparity vector of the current block by using the disparity vector of the neighboring block neighboring the current block of the color image.
  • the image processing apparatus may determine whether a disparity vector exists in the neighboring block, and when the neighboring block does not have the disparity vector, the image processing apparatus may determine the disparity vector of the neighboring block by using a depth image corresponding to the color image.
  • the image processing apparatus may identify a depth image corresponding to the current block of the color image.
  • the image processing apparatus may determine the disparity vector of the neighboring block based on the depth value of at least one pixel included in the depth image.
  • the image processing apparatus may convert the largest depth value of the depth values of at least one pixel included in the corresponding block (or macro block) of the depth image corresponding to the current block into a disparity vector to transform the disparity vector of the neighboring block. Can be determined.
  • the image processing apparatus may consider only some pixels among the pixels included in the corresponding block (or macro block) of the depth image, and convert the largest depth value of the depth values of some pixels as the disparity vector of the neighboring block. Can be.
  • the image processing apparatus converts the largest depth value among the depth values of pixels located in a predetermined area into a disparity vector in a corresponding block (or macro block) of a depth image corresponding to the current block, to determine the neighboring block. It can be determined by disparity vector.
  • the image processing apparatus may consider only any pixel in the depth image corresponding to the current block. For example, the image processing apparatus may convert the depth value of any one pixel included in the depth image corresponding to the current block into a disparity vector, and determine the transformed disparity vector as the disparity vector of the neighboring block.
  • the image processing apparatus may determine the disparity vector of the current block based on the disparity vector of the neighboring block. For example, the image processing apparatus may determine the disparity vector of the current block by applying a median filter to the disparity vector of the neighboring block.
  • the image processing apparatus may determine the motion vector of the current block using the disparity vector of the current block.
  • the image processing apparatus may identify a position in the neighboring color image of the color image including the current block by using the disparity vector of the current block.
  • the image processing apparatus may determine the motion vector at the identified position as the motion vector of the current block.
  • the image processing apparatus may determine the motion vector of the current block based on at least one of the disparity vector and the motion vector of the neighboring block neighboring the current block. If the motion vector of the current block cannot be determined even by the disparity vector or the motion vector of the neighboring block, the image processing apparatus may determine the zero vector as the motion vector of the current block.
  • 17 is a flowchart illustrating an image processing method of predicting a motion vector of a current block according to another embodiment.
  • the image processing apparatus may identify a motion vector of a neighboring block neighboring the current block of the color image.
  • the image processing apparatus may determine whether a motion vector exists in the neighboring block.
  • the image processing apparatus may determine a motion vector of the neighboring block by using a depth image corresponding to the color image.
  • the image processing apparatus may first acquire a disparity vector using the depth image to determine the motion vector of the neighboring block. For example, the image processing apparatus may identify at least one pixel included in the depth image corresponding to the current block, and convert the largest depth value among the depth values of the identified pixels into a disparity vector. Alternatively, the image processing apparatus may consider only any pixel in the depth image corresponding to the current color image to determine the motion vector of the neighboring block.
  • the image processing apparatus may determine the motion vector of the neighboring block based on the macro block including the corresponding block of the depth image. For example, the image processing apparatus converts the largest depth value of the depth values of arbitrary pixels included in the macro block including the corresponding block into a disparity vector of the neighboring block, and moves the neighboring block using the transformed disparity vector. You can also search for vectors.
  • the image processing apparatus may identify a position indicated by the disparity vector based on the disparity vector.
  • the image processing apparatus may determine the motion vector at the identified position as the motion vector of the neighboring block. If there is no motion vector at the identified position, the image processing apparatus may determine the zero vector as the motion vector of the neighboring block.
  • the image processing apparatus may determine the motion vector of the current block based on the motion vector of the neighboring block. For example, the image processing apparatus may determine the motion vector of the current block by applying a median filter to the motion vector of the neighboring block.
  • the method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

Landscapes

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

Abstract

움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치가 개시된다. 일실시예에 따른 영상 처리 방법은 컬러 영상에 대응하는 깊이 영상을 이용하여 컬러 영상에 포함된 현재 블록의 변이 벡터를 결정할 수 있다. 깊이 영상을 이용하여 움직임 벡터 또는 변이 벡터를 예측함으로써, 3D 비디오를 효율적으로 압축할 수 있다.

Description

움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치
아래의 설명은 3차원 비디오의 효율적인 압축 및 복원을 위한 것으로, 보다 구체적으로는 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치에 관한 것이다.
입체 영상이란 깊이 및 공간에 대한 형상 정보를 영상 정보와 동시에 제공하는 3차원 영상을 의미한다. 스테레오 영상의 경우, 좌우 눈에 각각 다른 시점의 영상을 제공하는 반면에, 입체 영상은 관찰자가 보는 시점을 달리할 때마다 다른 방향에서 본 것과 같은 영상을 제공한다. 따라서, 입체 영상을 생성하기 위해서는 여러 시점에서 촬영한 영상들이 필요하다.
입체 영상을 생성하기 위해 여러 시점에서 찍은 영상들은 데이터량이 방대하다. 따라서, 입체 영상을 위해 네트워크 인프라, 지상파 대역폭 등을 고려하면 MPEG-2, H.264/AVC, 그리고 HEVC 등과 같은 단일시점 비디오 압축(Single-View Video Coding)에 최적화된 부호화 장치를 사용하여 압축하더라도 실현이 거의 불가능하다.
따라서, 입체 영상을 생성하기 위해 최적화된 다시점 영상 부호화 장치가 요구된다. 특히, 시간 및 시점 간의 중복성을 효율적으로 감소시키기 위한 기술 개발이 필요하다.
일실시예에 따른 영상 처리 방법은, 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별하는 단계; 및 상기 깊이 영상에 포함된 픽셀의 깊이값에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 단계를 포함할 수 있다.
일실시예에 따른 영상 처리 방법은, 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 식별하는 단계; 상기 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상을 이용하여 상기 주변 블록의 변이 벡터를 결정하는 단계; 및 상기 적어도 하나의 주변 블록의 변이 벡터에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 단계를 포함할 수 있다.
일실시예에 따른 영상 처리 방법은, 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 단계; 및 상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계를 포함할 수 있다.
일실시예에 따른 영상 처리 방법은, 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 움직임 벡터를 식별하는 단계; 상기 주변 블록이 움직임 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상을 이용하여 상기 주변 블록의 움직임 벡터를 결정하는 단계; 및 상기 적어도 하나의 주변 블록의 움직임 벡터에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 단계를 포함할 수 있다.
일실시예에 따른 영상 처리 장치는, 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별하는 깊이 영상 식별부; 및 상기 깊이 영상에 포함된 픽셀의 깊이값에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 변이 벡터 결정부를 포함할 수 있다.
일실시예에 따른 영상 처리 장치는, 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 추출하는 변이 벡터 추출부; 및 상기 적어도 하나의 주변 블록의 변이 벡터에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 변이 벡터 결정부를 포함할 수 있다.
일실시예에 따른 영상 처리 장치는, 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 변이 벡터 결정부; 및 상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 움직임 벡터 결정부를 포함할 수 있다.
일실시예에 따른 영상 처리 장치는, 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 움직임 벡터를 추출하는 움직임 벡터 추출부; 및 상기 적어도 하나의 주변 블록의 움직임 벡터에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 움직임 벡터 결정부를 포함할 수 있다.
도 1은 일실시예에 따른 부호화 장치와 복호화 장치의 동작을 설명하기 위한 도면이다.
도 2는 일실시예에 따른 현재 블록의 변이 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 3은 일실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 4는 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 5는 또 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 6은 일실시예에 따른 일실시예에 따른 다시점 비디오의 구조를 도시한 도면이다.
도 7은 일실시예에 따른 현재 블록을 코딩할 때 사용되는 참조 영상을 도시한 도면이다.
도 8은 일실시예에 따른 부호화 장치의 동작을 상세하게 설명하기 위한 도면이다.
도 9는 일실시예에 따른 복호화 장치의 동작을 상세하게 설명하기 위한 도면이다.
도 10은 일실시예에 따른 현재 블록의 변이 벡터를 예측하는 과정을 도시한 도면이다.
도 11은 일실시예에 따른 스킵 모드 및 다이렉트 모드에 대한 현재 블록의 움직임 벡터를 예측하는 과정을 도시한 도면이다.
도 12는 일실시예에 따른 변이 벡터를 이용하여 현재 블록의 움직임 벡터를 예측하는 과정을 도시한 도면이다.
도 13은 일실시예에 따른 인터 모드에 대한 현재 블록의 움직임 벡터를 예측하는 과정을 도시한 도면이다.
도 14는 일실시예에 따른 현재 블록의 변이 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
도 15는 일실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
도 16은 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
도 17은 또 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 아래의 특정한 구조적 내지 기능적 설명들은 단지 발명의 실시예들을 설명하기 위한 목적으로 예시된 것으로, 발명의 범위가 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 안된다. 일실시예에 따른 영상 처리 방법은 영상 처리 장치에 의해 수행될 수 있으며, 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
실시예들을 상세하게 설명하기 전에, 실시예 또는 특허청구범위에 기재된 용어들을 다음과 같이 정의한다.
(1) 현재 블록(Current Color Block): 부호화 또는 복호화하고자 하는 컬러 영상의 블록을 의미한다.
(2) 현재 컬러 영상(Current Color Image): 현재 블록이 포함된 컬러 영상을 의미한다. 구체적으로, 현재 컬러 영상은 부호화 또는 복호화하고자 하는 블록을 포함하고 있는 컬러 영상을 나타낸다.
(3) 현재 블록에 대응하는 깊이 영상(Corresponding Depth Image): 현재 블록이 포함된 컬러 영상(현재 컬러 영상)에 대응하는 깊이 영상을 의미한다.
(4) 주변 블록(Neighboring Block around the current block): 현재 블록에 이웃하는 부호화되었거나 또는 복호화된 적어도 하나의 블록을 나타낸다. 예를 들어, 주변 블록은 현재 블록의 상단, 현재 블록의 우측 상단, 현재 블록의 좌측, 또는 현재 블록의 좌측 상단에 위치할 수 있다.
(5) 대응 블록(Colocated Depth Block in the corresponding depth map): 현재 블록에 대응하는 깊이 영상에 포함된 깊이 영상 블록을 의미한다. 예를 들어, 대응 블록은 컬러 영상에 대응하는 깊이 영상에서 현재 블록과 동일한 위치에 있는 블록을 포함할 수 있다.
(6) 매크로 블록(Colocated Depth Macroblock): 깊이 영상의 대응 블록을 포함하는 상위 개념의 깊이 영상 블록을 의미한다.
(7) 주변 컬러 영상(Neighboring Color Image around the color image comprising the Current Color Block): 현재 블록이 포함된 컬러 영상의 시점과 다른 시점을 갖는 컬러 영상을 의미한다. 주변 컬러 영상은 현재 블록에 대한 영상 처리 과정이 수행되기 이전에 부호화된 또는 복호화된 컬러 영상일 수 있다.
도 1은 일실시예에 따른 부호화 장치와 복호화 장치의 동작을 설명하기 위한 도면이다.
일실시예에 따른 부호화 장치(110)는 3D(dimensional) 비디오를 부호화하고, 부호화된 데이터를 비트스트림 형태로 생성하여 복호화 장치(120)에 전송할 수 있다. 3D 비디오는 여러 시점의 컬러 영상과 깊이 영상을 포함할 수 있다. 3D 비디오는 시간적으로 연속적인 영상들간에 나타나는 시간적 중복성뿐만 아니라 서로 다른 시점의 영상들 간에 나타나는 시점간 중복성을 가지고 있다. 부호화 장치(110)는 이러한 시간적 중복성 및 시점간 중복성을 효과적으로 제거하여 3D 비디오를 효율적으로 부호화할 수 있다. 부호화 장치(110)는 3D 비디오를 부호화는 과정에서 영상들 간의 중복성을 최대한으로 제거함으로써 부호화 효율을 향상시킬 수 있다.
부호화 장치(110)와 복호화 장치(120)는 컬러 영상들 간의 중복성을 제거하기 위해 블록 기반의 예측을 수행할 수 있다. 부호화 장치(110) 및 복호화 장치(120)는 컬러 영상들 간의 중복성을 효율적으로 제거하기 위해 깊이 영상을 이용할 수 있다. 부호화 장치(110) 및 복호화 장치(120)는 주변 블록의 움직임 벡터(Motion Vector, MV, 또는 Temporal MV)를 이용하여 시간적 중복성을 제거하고, 주변 블록의 변이 벡터(Disparity Vector, 또는 Inter-View MV) 및 컬러 영상에 대응하는 깊이 영상을 이용하여 시점간 중복성을 제거할 수 있다. 부호화 장치(110)는 3D 비디오의 컬러 영상을 부호화하는 과정에서, 움직임 벡터를 효율적으로 부호화함으로써 컬러 영상들 간의 중복성을 최소화할 수 있다.
컬러 영상에 대응하는 깊이 영상의 크기는 컬러 영상의 크기와 다를 수 있다. 깊이 영상의 크기가 컬러 영상의 크기와 다른 경우, 부호화 장치(110) 및 복호화 장치(120)는 깊이 영상의 크기를 컬러 영상의 크기와 동일하도록 깊이 영상의 크기를 조절할 수 있다. 예를 들어, 깊이 영상의 크기가 컬러 영상의 크기보다 작은 경우, 부호화 장치(110) 및 복호화 장치(120)는 깊이 영상을 업샘플링(up-sampling)함으로써 깊이 영상의 크기가 컬러 영상의 크기와 동일하도록 깊이 영상의 크기를 조절할 수 있다.
다른 실시예에 따르면, 깊이 영상의 크기와 컬러 영상의 크기가 서로 다르더라도, 원래 크기의 깊이 영상이 그대로 이용될 수 있다. 원래 크기의 깊이 영상을 이용하는 경우, 깊이 영상의 크기를 변환하는 과정이 요구되지 않기에 복잡도가 감소하고 메모리 요구량이 감소될 수 있다.
도 2 내지 도 17에서 언급되는 영상 처리 장치는 도 1의 부호화 장치(110) 또는 복호화 장치(120)의 내부 또는 외부에서 구현될 수 있다.
도 2는 일실시예에 따른 현재 블록의 변이 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 2를 참조하면, 영상 처리 장치(200)는 깊이 영상 식별부(210) 및 변이 벡터 결정부(220)를 포함할 수 있다.
깊이 영상 식별부(210)는 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별할 수 있다. 컬러 영상에 대응하는 깊이 영상이 존재하지 않는 경우, 깊이 영상 식별부(210)는 현재 블록에 이웃하는 주변 블록들 또는 현재 블록이 포함된 컬러 영상의 주변 컬러 영상 또는 다른 깊이 영상을 이용하여 현재 블록에 대응하는 깊이 영상을 추정할 수도 있다.
변이 벡터 결정부(220)는 현재 블록에 대응하는 깊이 영상의 깊이 정보를 이용하여 현재 블록의 변이 벡터를 결정할 수 있다. 변이 벡터 결정부(220)는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 식별한 픽셀의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수 있다.
예를 들어, 변이 벡터 결정부(220)는 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀의 깊이값에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 변이 벡터 결정부(220)는 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별할 수 있다. 변이 벡터 결정부(220)는 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다. 변이 벡터 결정부(220)는 깊이 영상의 대응 블록에 포함된 전체 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 변이 벡터 결정부(220)는 깊이 영상의 대응 블록에 포함된 픽셀들 중 일부 픽셀들만을 고려할 수도 있고, 일부 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 일례에 따르면, 변이 벡터 결정부(220)는 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀들을 식별하고, 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수도 있다. 예를 들어, 변이 벡터 결정부(220)는 깊이 영상 내 미리 설정된 영역인 대응 블록의 모서리에 위치하는 픽셀들을 식별하고, 식별된 픽셀들의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수 있다. 또는, 변이 벡터 결정부(220)는 대응 블록의 모서리에 위치하는 픽셀의 깊이값 및 대응 블록의 중앙에서의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수도 있다.
또한, 변이 벡터 결정부(220)는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 결정부(220)는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다. 또는, 변이 벡터 결정부(220)는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수 있다. 예를 들어, 변이 벡터 결정부(220)는 매크로 블록의 모서리에 위치하는 픽셀들의 깊이값 중 가장 큰 깊이값을 변환하여 현재 블록의 변이 벡터를 결정할 수 있다.
변이 벡터 결정부(220)는 현재 블록의 변이 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 변이 벡터 결정부(220)는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다. 또는, 변이 벡터 결정부(220)는 대응 블록(또는, 매크로 블록) 내 임의의 한 개의 픽셀의 깊이값을 현재 블록의 변이 벡터로 변환할 수도 있다.
시점간 예측(Inter-View Prediction)에서 움직이는 물체를 정확히 예측하는 것은 중요하다. 일반적으로, 대부분의 움직이는 물체는 배경보다 카메라에 가까이 있기 때문에 가장 큰 깊이값을 가진다. 변이 벡터 결정부(220)는 현재 블록의 변이 벡터를 예측하기 위해 이러한 움직이는 물체와 깊이값 간의 관계를 고려한다.
변이 벡터 결정부(220)는 깊이값을 변이 벡터로 변환하는 과정에서 카메라 파라미터 정보를 이용할 수 있다. 변이 벡터 결정부(220)는 깊이값의 변환을 통해 변이 벡터를 생성하고, 생성된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다.
다른 실시예에 따르면, 변이 벡터 결정부(220)는 컬러 영상의 현재 블록의 변이 벡터를 결정하기 위해 현재 블록에 이웃한 주변 블록의 변이 벡터를 이용할 수 있다. 변이 벡터 결정부(220)는 현재 블록에 이웃한 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상에 포함된 픽셀의 깊이값을 이용하여 주변 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 결정부(220)는 현재 블록에 대응하는 깊이 영상의 매크로 블록 또는 대응 블록에 포함된 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 또는, 변이 벡터 결정부(220)는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다. 예를 들어, 변이 벡터 결정부(220)는 매크로 블록의 모서리에 위치하는 픽셀들의 깊이값 중 가장 큰 깊이값을 변환하여 주변 블록의 변이 벡터를 결정할 수 있다. 변이 벡터 결정부(220)는 주변 블록의 변이 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 변이 벡터 결정부(220)는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다.
변이 벡터 결정부(220)는 주변 블록의 변이 벡터가 결정되면, 주변 블록의 변이 벡터와 미디언 필터(Median Filter)를 이용하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 결정부(220)는 현재 블록에 이웃한 적어도 하나의 주변 블록의 변이 벡터에 미디언 필터를 적용하고, 미디언 필터가 적용된 결과를 현재의 변이 벡터로 결정할 수 있다.
도 3은 일실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 3을 참조하면, 영상 처리 장치(300)는 변이 벡터 추출부(310) 및 변이 벡터 결정부(320)를 포함할 수 있다. 영상 처리 장치(300)는 변이 벡터 추출부(310)와 변이 벡터 결정부(320)를 통해 현재 블록의 변이 벡터를 예측할 수 있다. 다른 실시예에 따르면, 영상 처리 장치(300)는 움직임 벡터 결정부(330)를 추가적으로 포함할 수 있고, 움직임 벡터 결정부(330)를 통해 현재 블록의 움직임 벡터를 예측할 수 있다.
변이 벡터 추출부(310)는 컬러 영상의 현재 블록에 이웃하는 주변 블록의 변이 벡터를 추출할 수 있다. 변이 벡터 추출부(310)는 주변 블록에 변이 벡터가 존재하는지 여부를 판단하고, 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상을 이용하여 주변 블록의 변이 벡터를 결정할 수 있다. 다른 실시예에 따르면, 변이 벡터 추출부(310)는 주변 블록에 변이 벡터가 존재하는지 여부를 판단하지 않고, 바로 깊이 영상의 깊이 정보를 이용하여 주변 블록의 변이 벡터를 결정할 수도 있다.
변이 벡터 추출부(310)는 현재 블록에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별할 수 있다. 변이 벡터 추출부(310)는 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 또는, 변이 벡터 추출부(310)는 깊이 영상에 포함된 픽셀들 중 일부 픽셀들만을 고려할 수도 있고, 일부 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다.
예를 들어, 변이 벡터 추출부(310)는 변이 벡터를 가지고 있지 않은 주변 블록이 존재하는 경우, 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다. 또는, 변이 벡터 추출부(310)는 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀의 깊이값을 식별하고, 미리 설정된 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수도 있다. 예를 들어, 변이 벡터 추출부(310)는 대응 블록의 모서리에 위치하는 픽셀들의 깊이값 및 대응 블록의 중앙에 위치하는 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다.
변이 벡터 추출부(310)는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 추출부(310)는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 또는, 변이 벡터 추출부(310)는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다. 예를 들어, 변이 벡터 추출부(310)는 매크로 블록의 모서리에 위치하는 픽셀들의 깊이값 중 가장 큰 깊이값을 변환하여 주변 블록의 변이 벡터를 결정할 수 있다.
변이 벡터 추출부(310)는 주변 블록의 변이 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 변이 벡터 추출부(310)는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다.
변이 벡터 결정부(320)는 주변 블록의 변이 벡터에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 결정부(320)는 주변 블록의 변이 벡터에 미디언 필터를 적용하고, 미디언 필터가 적용된 결과를 현재 블록의 변이 벡터로 결정할 수 있다.
움직임 벡터 결정부(330)는 결정된 현재 블록의 변이 벡터를 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 구체적으로, 움직임 벡터 결정부(330)는 현재 블록의 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하고, 식별된 위치에서의 움직임 벡터를 현재 블록의 움직임 벡터로 결정할 수 있다.
식별된 위치에 움직임 벡터가 존재하지 않는 경우, 움직임 벡터 결정부(330)는 현재 블록에 이웃한 주변 블록을 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 움직임 벡터 결정부(330)는 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 현재 블록의 움직임 벡터를 결정할 수 있다. 예를 들어, 움직임 벡터 결정부(330)는 참조 영상 인덱스가 동일 시점의 컬러 영상을 가리키는 경우, 주변 블록들의 움직임 벡터에 미디언 필터를 적용하고, 미디언 필터가 적용된 결과를 현재 블록의 움직임 벡터로 결정할 수 있다. 참조 영상 인덱스가 다른 시점의 컬러 영상을 가리키는 경우에는, 움직임 벡터 결정부(330)는 주변 블록들의 변이 벡터에 미디언 필터가 적용된 결과를 현재 블록의 움직임 벡터로 결정할 수 있다. 위 두 경우가 모두 아닌 경우, 움직임 벡터 결정부(330)는 영벡터(Zero Motion Vector)를 현재 블록의 움직임 벡터로 결정할 수 있다.
도 4는 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 4를 참조하면, 영상 처리 장치(400)는 변이 벡터 결정부(410) 및 움직임 벡터 결정부(420)를 포함할 수 있다.
변이 벡터 결정부(410)는 컬러 영상의 현재 블록에 이웃하는 주변 블록의 변이 벡터를 이용하여 현재 블록의 변이 벡터를 결정할 수 있다. 변이 벡터 결정부(410)는 주변 블록에 변이 벡터가 존재하는지 여부를 판단하고, 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상을 이용하여 주변 블록의 변이 벡터를 결정할 수 있다. 다른 실시예에 따르면, 변이 벡터 결정부(410)는 주변 블록에 변이 벡터가 존재하는지 여부를 판단하지 않고, 바로 깊이 영상의 깊이 정보를 이용하여 주변 블록의 변이 벡터를 결정할 수도 있다.
변이 벡터 결정부(410)는 현재 블록에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별할 수 있다. 변이 벡터 결정부(410)는 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 변이 벡터 결정부(410)는 깊이 영상에 포함된 픽셀들 중 일부 픽셀들만을 고려할 수도 있고, 일부 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로서 변환할 수 있다.
예를 들어, 변이 벡터 결정부(410)는 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상의 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 적어도 하나의 픽셀의 깊이값에 기초하여 주변 블록의 변이 벡터를 결정하고, 주변 블록의 변이 벡터에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 변이 벡터 결정부(410)는 깊이 영상의 대응 블록에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다. 또는, 변이 벡터 결정부(410)는 깊이 영상에서, 미리 설정된 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수도 있다.
변이 벡터 결정부(410)는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 결정부(410)는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 또는, 변이 벡터 결정부(410)는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다. 예를 들어, 변이 벡터 결정부(410)는 매크로 블록의 모서리에 위치하는 픽셀들의 깊이값 중 가장 큰 깊이값을 변환하여 주변 블록의 변이 벡터를 결정할 수 있다.
변이 벡터 결정부(410)는 주변 블록의 변이 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 변이 벡터 결정부(410)는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다.
변이 벡터 결정부(410)는 주변 블록의 변이 벡터에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 변이 벡터 결정부(410)는 주변 블록의 변이 벡터에 미디언 필터를 적용하고, 미디언 필터가 적용된 결과를 현재 블록의 변이 벡터로 결정할 수 있다.
움직임 벡터 결정부(420)는 결정된 현재 블록의 변이 벡터를 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 움직임 벡터 결정부(420)는 현재 블록의 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하고, 식별된 위치에서의 움직임 벡터를 현재 블록의 움직임 벡터로 결정할 수 있다.
식별된 위치에 움직임 벡터가 존재하지 않는 경우, 움직임 벡터 결정부(420)는 현재 블록에 이웃한 주변 블록을 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 움직임 벡터 결정부(420)는 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 현재 블록의 움직임 벡터를 결정할 수 있다. 움직임 벡터 결정부(420)는 주변 블록의 변이 벡터 또는 움직임 벡터로도 현재 블록의 움직임 벡터를 결정할 수 없는 경우에는 영벡터를 현재 블록의 움직임 벡터로 결정할 수 있다.
도 5는 또 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 장치를 도시한 도면이다.
도 5를 참조하면, 영상 처리 장치(500)는 움직임 벡터 추출부(510) 및 움직임 벡터 결정부(520)를 포함할 수 있다.
움직임 벡터 추출부(510)는 컬러 영상의 현재 블록에 이웃하는 주변 블록의 움직임 벡터를 추출할 수 있다. 움직임 벡터 추출부(510)는 주변 블록에 움직임 벡터가 존재하는지 여부를 판단하여, 주변 블록이 움직임 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상을 이용하여 주변 블록의 움직임 벡터를 결정할 수 있다. 움직임 벡터 추출부(510)는 움직임 벡터가 존재하지 않는 주변 블록의 움직임 벡터를 다른 시점의 컬러 영상으로부터 획득할 수 있고, 주변 블록의 움직임 벡터를 다른 시점의 컬러 영상으로부터 획득하기 위해 깊이 영상을 이용할 수 있다. 다른 실시예에 따르면, 움직임 벡터 추출부(510)는 주변 블록에 움직임 벡터가 존재하는지 여부를 판단하지 않고, 바로 깊이 영상의 깊이 정보를 이용하여 주변 블록의 움직임 벡터를 결정할 수도 있다.
움직임 벡터 추출부(510)는 주변 블록의 움직임 벡터를 결정하기 위해 깊이 영상을 이용하여 변이 벡터를 획득할 수 있다. 움직임 벡터 추출부(510)는 현재 블록에 대응하는 깊이 영상에 포함된 적어도 하나의 픽셀을 식별하고, 식별된 픽셀의 깊이값에 기초하여 변이 벡터를 획득할 수 있다. 예를 들어, 움직임 벡터 추출부(510)는 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 움직임 벡터 추출부(510)는 변이 벡터를 획득하는 과정에서 카메라 파라미터 정보를 이용할 수 있다. 움직임 벡터 추출부(510)는 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서 주변 블록의 움직임 벡터를 탐색할 수 있다. 또는, 움직임 벡터 추출부(510)는 현재 블록에 대응하는 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서 주변 블록의 움직임 벡터를 탐색할 수도 있다
움직임 벡터 추출부(510)는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 움직임 벡터를 결정할 수 있다. 예를 들어, 움직임 벡터 추출부(510)는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터가 가리키는 위치에서의 움직임 벡터를 주변 블록의 움직임 벡터로 결정할 수 있다. 또는, 움직임 벡터 추출부(510)는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환하고, 변환된 변이 벡터를 이용하여 주변 블록의 움직임 벡터를 탐색할 수도 있다.
움직임 벡터 추출부(510)는 주변 블록의 움직임 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 움직임 벡터 추출부(510)는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터가 가리키는 곳의 움직임 벡터를 주변 블록의 움직임 벡터로 결정할 수 있다.
움직임 벡터 추출부(510)는 변이 벡터가 가리키는 위치에 움직임 벡터가 존재하지 않는 경우에는 주변 블록의 움직임 벡터를 영벡터로 결정할 수 있다. 또한, 움직임 벡터 추출부(510)는 현재 블록의 참조 영상 인덱스와 다른 시점의 컬러 영상에서 가져온 참조 영상 인덱스가 일치하지 않을 경우, 주변 블록의 움직임 벡터를 영벡터로 결정할 수 있다.
움직임 벡터 결정부(520)는 주변 블록의 움직임 벡터에 기초하여 현재 블록의 움직임 벡터를 결정할 수 있다. 예를 들어, 움직임 벡터 결정부(520)는 주변 블록들의 움직임 벡터에 미디언 필터를 적용하고, 미디언 필터가 적용된 결과를 현재 블록의 움직임 벡터로 결정할 수 있다.
도 6은 일실시예에 따른 일실시예에 따른 다시점 비디오의 구조를 도시한 도면이다.
도 6을 참고하면, 일실시예에 따라 3개 시점(Left view, Center view, Right view)의 영상을 입력 받았을 때, GOP(Group of Picture) '8'로 부호화하는 다시점 영상 부호화 방식(Multi-view Video Coding, MVC)을 나타낸다. GOP는 I-프레임으로 시작하는 연속적인 이미지들의 집합을 의미한다.
다시점(Multi-view) 영상을 부호화하는 과정에서는 기본적으로 시간(Temporal)축과 시점(View)축으로 계층적 B 영상(Hierarchical B Picture, 또는 계층적 B-프레임)의 개념을 이용하기 때문에 영상 간의 중복성(Redundancy)은 감소될 수 있다.
도 1의 부호화 장치(110)는 도 6에 도시된 다시점 영상의 구조에 따라 좌측 영상(Left Picture: I-view)을 부호화하고, 우측 영상(Right Picture: P-view)과 중앙 영상(Center Picture: B-view)를 차례대로 부호화함으로써 3개 시점에 대응하는 영상을 부호화할 수 있다.
좌측 영상을 부호화하는 과정에서, 움직임 추정(Motion Estimation)을 통해 이전 영상들에서 좌측 영상과 비슷한 영역을 탐색할 수 있고, 탐색된 영역의 정보를 이용함으로써 시간적 중복성은 감소될 수 있다. 좌측 영상 이후에 부호화되는 우측 영상은 이미 부호화된 좌측 영상을 참조하여 부호화되기 때문에, 움직임 추정을 통한 시간적 중복성뿐만 아니라 변이 추정(Disparity Estimation)을 통한 시점간의 중복성(View Redundancy)도 감소될 수 있다. 또한, 중앙 영상은 이미 부호화된 좌측 영상과 우측 영상을 모두 참조하여 변이 추정을 통한 부호화를 수행할 수 있기 때문에, 시점 간 중복성이 감소될 수 있다.
도 6을 참고하면, 다시점 영상을 부호화하는 과정에서, 좌측 영상과 같이 다른 시점의 영상을 이용하지 않고 부호화되는 영상은 I-View 영상, 우측 영상과 같이 다른 시점의 영상을 단방향으로 예측하여 부호화되는 영상은 P-View 영상, 그리고 중앙 영상과 같이 서로 다른 시점의 영상들을 양방향으로 예측하여 부호화되는 영상은 B-View 영상이라고 정의될 수 있다.
도 7은 일실시예에 따른 현재 블록을 부호화할 때 사용되는 참조 영상을 도시한 도면이다.
영상 처리 장치는 현재 컬러 영상에 포함된 현재 블록을 부호화할 때, 주변 컬러 영상들(720~750)을 참조 영상으로 이용할 수 있다. 예를 들어, 영상 처리 장치는 주변 컬러 영상들(720~750)에서 현재 블록과 가장 유사한 유사 블록을 식별하고, 현재 블록과 유사 블록 사이의 잔차 신호(Residue)를 부호화할 수 있다. H.264/AVC의 경우, 참조 영상을 이용하여 유사 블록을 탐색하는 부호화 모드는 SKIP(P Slice Only)/Direct(B Slice Only), 16x16, 16x8, 8x16, P8x8 모드 등을 포함할 수 있고, HEVC의 경우, 참조 영상을 이용하여 유사 블록을 탐색하는 부호화 모드는 SKIP, MERGE, 2Nx2N, 2NxN, Nx2N 등을 포함할 수 있다.
영상 처리 장치는 현재 블록을 부호화하는 과정에서, 시간적 중복성을 감소시키기 위해 현재 컬러 영상에 대해 시간상으로 주변에 위치하는 참조 영상(720, 730)을 이용할 수 있다. 또한, 영상 처리 장치는 시점간 중복성을 감소시키기 위해 현재 컬러 영상에 대해 시점상 주변에 위치하는 참조 영상(740, 750)을 이용할 수 있다. 영상 처리 장치는 움직임 정보를 획득하기 위해 Ref1 영상(720) 및 Ref2 영상(730)을 이용할 수 있고, 변이 정보를 획득하기 위해 Ref3 영상(740) 및 Ref4 영상(750)을 이용할 수 있다.
도 8은 일실시예에 따른 부호화 장치의 동작을 상세하게 설명하기 위한 도면이다.
구체적으로, 도 8은 부호화 장치가 컬러 영상을 부호화하는 과정을 도시하고 있다. 일실시예에 따르면, 부호화 장치가 컬러 영상을 부호화하는 과정은 다음과 같다. 부호화 장치는 컬러 영상을 수신(810)하고, 부호화 모드를 선택(845)할 수 있다. 부호화 장치는 선택된 부호화 모드에 기초하여 컬러 영상과 블록 기반의 예측(Block Prediction)을 통해 도출된 예측 영상 간의 잔차 신호를 결정할 수 있다. 그러면, 부호화 장치는 잔차 신호를 변환(815)하고, 양자화(820) 및 엔트로피 부호화(825)할 수 있다.
블록 기반의 예측 과정은 시간적 중복성을 감소시키기 위한 예측 과정(Temporal Prediction)과 시점간의 중복성을 감소시키기 위한 예측 과정(Inter-View Prediction)을 포함할 수 있다.
그리고, 다음 컬러 영상에서의 정확한 예측을 위해 디블로킹 필터링(Deblocking Filtering) 과정(875)이 수행될 수 있다. 디블로킹 필터링 과정(875)을 수행하기 위해 양자화(820)된 영상을 다시 역양자화(830)하는 과정 및 역변환(835)의 과정이 수행될 수 있다. 디블로킹 필터링 과정(925)으로 생성된 참조 영상들은 저장되어 다음 컬러 영상의 부호화 과정에서 이용될 수 있다.
부호화 장치는 화면 내 예측(850), 움직임 예측/보상(855), 또는 변이 예측/보상(860)을 통해 시간적 중복성과 시점간 중복성을 제거하기 위한 예측 과정을 수행할 수 있다. 영상 처리 장치는 움직임 예측/보상(855)과 변이 예측/보상(860)의 과정을 수행할 수 있다. 영상 처리 장치는 움직임 예측/보상(855)을 위해 카메라 파라미터(840)에 기초하여 깊이 정보(870, 예를 들어, 깊이값)를 변이 정보(예를 들어, 변이 벡터)로 변환(865)하고, 이 변이 정보를 이용하여 움직임 예측/보상(855) 과정을 수행할 수 있다. 또는, 영상 처리 장치는 변이 예측/보상(860)을 위해 카메라 파라미터(840)에 기초하여 깊이 정보(870, 예를 들어, 깊이값)를 변이 정보(예를 들어, 변이 벡터)로 변환(865)하고 변이 예측/보상(860) 과정을 수행할 수 있다.
블록 기반의 예측을 통해 도출된 예측 영상이 원본 영상과 유사할수록 잔차 신호의 양이 적고, 이에 따라 부호화되어 생성된 비트수도 감소할 수 있다. 따라서, 3D 비디오의 효율적인 부호화를 위해서는 움직임 예측/보상(855) 및 변이 예측/보상(860)의 과정이 중요하다.
영상 처리 장치는 움직임 예측/보상(855) 과정에서 주변 블록의 움직임 벡터 정보, 다른 시점의 컬러 영상에 대한 부호화 정보, 또는 현재 블록에 대응하는 깊이 영상을 이용하여 현재 블록의 움직임 예측/보상(855) 과정을 수행할 수 있다. 또한, 영상 처리 장치는 변이 예측/보상(860) 과정에서 주변 블록의 변이 벡터 정보, 다른 시점의 컬러 영상에 대한 부호화 정보, 또는 현재 블록에 대응하는 깊이 영상을 이용하여 현재 블록의 변이 예측/보상(860) 과정을 수행할 수 있다.
도 9는 일실시예에 따른 복호화 장치의 동작을 상세하게 설명하기 위한 도면이다.
복호화 장치는 부호화된 비트스트림을 복호화하여 컬러 영상을 출력하기 위해, 앞서 설명한 도 8의 부호화 장치의 동작을 역으로 수행할 수 있다. 일실시예에 따르면, 복호화 장치가 부호화된 3D 영상 데이터를 복호화하는 과정은 다음과 같다. 복호화 장치는 부호화된 3D 영상 데이터를 포함하고 있는 비트스트림을 수신(905)하고, 엔트로피 복호화(910)를 수행할 수 있다.
그 후, 복호화 장치는 역양자화(915) 및 역변환(920)의 과정을 수행하고, 복호화 모드를 선택(940)할 수 있다. 복호화 장치는 선택된 복호화 모드에 따라 화면내 예측(945), 움직임 예측/보상(950), 또는 변이 예측/보상(955) 과정을 통해 비트스트림을 효율적으로 복호화할 수 있다.
영상 처리 장치는 움직임 예측/보상(950)과 변이 예측/보상(955)의 과정을 수행할 수 있다. 영상 처리 장치는 움직임 예측/보상(950)을 위해 카메라 파라미터(935)에 기초하여 깊이 정보(965)를 변이 정보로 변환(960)하고, 이 변환 정보를 이용하여 움직임 예측/보상(950) 과정을 수행할 수 있다. 또는, 영상 처리 장치는 변이 예측/보상(955)을 위해 카메라 파라미터(935)에 기초하여 깊이 정보(965)를 변이 정보로 변환(960)하고 변이 예측/보상(955) 과정을 수행할 수 있다.
영상 처리 장치는 움직임 예측/보상(950) 과정에서 주변 블록의 움직임 벡터 정보, 다른 시점의 컬러 영상에 대한 복호화 정보, 또는 현재 블록에 대응하는 깊이 영상을 이용하여 현재 블록의 움직임 예측/보상(950) 과정을 수행할 수 있다. 또한, 영상 처리 장치는 변이 예측/보상(955) 과정에서 주변 블록의 변이 벡터 정보, 다른 시점의 컬러 영상에 대한 복호화 정보, 또는 현재 블록에 대응하는 깊이 영상을 이용하여 현재 블록의 변이 예측/보상(955) 과정을 수행할 수 있다.
그리고, 다음 컬러 영상의 복호화를 위해 디블로킹 필터링(925) 과정이 수행될 수 있다. 디블로킹 필터링 과정(925)으로 생성된 참조 영상들은 저장되어 다음 컬러 영상의 복호화 과정에서 이용될 수 있다.
도 10은 일실시예에 따른 현재 블록의 변이 벡터를 예측하는 과정을 도시한 도면이다.
도 10을 참고하면, 블록 Cb는 컬러 영상에서 부호화하고자 하는 현재 블록을 나타낸다. 그리고, 블록 A, B, C는 현재 블록에 인접한 위치에 존재하는 주변 블록들을 나타낸다. 영상 처리 장치는 현재 블록의 변이 벡터를 예측하기 위해, 주변 블록 A, B, C의 변이 벡터를 식별하고, 식별된 변이 벡터들에 미디언 필터를 적용할 수 있다.
주변 블록 A, B, C 중 변이 벡터가 존재하지 않는 블록이 있는 경우, 영상 처리 장치는 변이 벡터가 존재하지 않는 주변 블록의 변이 벡터를 특정 변이 벡터로 대체할 수 있다. 예를 들어, 주변 블록 A의 변이 벡터가 존재하지 않는다고 가정한다. 영상 처리 장치는 주변 블록 A의 변이 벡터를 결정하기 위해 현재 블록에 대응하는 깊이 영상에 포함된 픽셀 중 의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 영상 처리 장치는 깊이 영상 내 일부 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록 A의 변이 벡터로 변환할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록 내 모서리 등과 같은 일정한 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록을 포함하는 매크로 블록 내 모서리 등과 같은 일정한 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 영상 처리 장치는 변환된 변이 벡터를 주변 블록 A의 변이 벡터로 결정하고, 주변 블록 A, B, C의 변이 벡터들에 미디어 필터를 적용하여 현재 블록 Cb의 변이 벡터를 결정할 수 있다.
영상 처리 장치는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 현재 블록 Cb의 변이 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 현재 블록 Cb의 변이 벡터로 변환하거나 또는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 현재 블록 Cb의 변이 벡터로 변환할 수 있다. 또한, 영상 처리 장치는 현재 블록 Cb에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 영상 처리 장치는 현재 블록 Cb에 대응하는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다.
영상 처리 장치는 깊이값을 변이 벡터로 변환하기 위해, 카메라 파라미터 정보를 이용할 수도 있다. 도 10을 통해 도출된 현재 블록의 움직임 벡터 및 변이 벡터는 각각 16x16, 16x8, 8x16, 그리고 P8x8 모드에 기초한 예측 변이 벡터로 사용될 수 있다. 영상 처리 장치는 예측 변이 벡터를 통해 변이 탐색 (Disparity Estimation)을 수행함으로써, 현재 블록의 최종 변이 벡터를 탐색할 수 있다.
영상 처리 장치가 현재 블록의 변이 벡터를 예측하는 과정은 다음과 같다.
단계(1010)에서, 영상 처리 장치는 현재 블록 Cb의 주변 블록 A, B, C의 변이 벡터를 식별할 수 있다. 그 후, 단계(1020)에서, 영상 처리 장치는 주변 블록의 변이 벡터가 존재하는지 여부를 판단할 수 있다.
변이 벡터가 존재하지 않는 주변 블록이 존재하는 경우, 단계(1030)에서, 영상 처리 장치는 변이 벡터가 존재하지 않는 주변 블록의 변이 벡터를 깊이 영상을 이용하여 결정할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 변이 벡터가 존재하지 않는 주변 블록의 변이 벡터로 결정할 수 있다. 영상 처리 장치는 주변 블록의 변이 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 영상 처리 장치는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다.
영상 처리 장치는 깊이값을 변이 벡터를 변환하기 위해 현재 블록에 대응하는 깊이 영상의 대응 블록 또는 대응 블록을 포함하는 매크로 블록 내 픽셀들을 기준으로 할 수 있다. 예를 들어, 영상 처리 장치는 깊이 영상의 대응 블록(또는, 매크로 블록)에 포함되는 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환하거나, 또는 대응 블록(또는, 매크로 블록) 내 미리 설정된 영역에 존재하는 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다.
단계(1040)에서, 영상 처리 장치는 주변 블록의 변이 벡터에 미디언 필터를 적용할 수 있다. 단계(1050)에서, 영상 처리 장치는 미디언 필터가 적용된 변이 벡터(Median-Filtered Disparity Vector)를 현재 블록 Cb의 변이 벡터로 결정할 수 있다. 영상 처리 장치는 현재 블록 Cb의 변이 벡터를 부호화할 수 있다.
앞서 설명한 변이 벡터를 대체하는 과정 이외에, 다음과 같은 실시예가 구현될 수도 있다. 구체적으로, 영상 처리 장치는 현재 블록 Cb의 주변 블록 A, B, C의 변이 벡터를 이용하지 않고, 바로 현재 블록 Cb에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 영상 처리 장치는 변이 벡터의 변환을 위해 현재 블록 Cb에 대응하는 깊이 영상의 대응 블록에 포함된 일부 픽셀의 깊이값만을 이용할 수도 있다. 예를 들어, 영상 처리 장치는 대응 블록의 모서리에 위치한 네 픽셀들과 중앙 위치의 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 영상 처리 장치는 깊이값을 변이 벡터로 변환하는 과정에서 카메라 파라미터 정보를 이용할 수 있다. 영상 처리 장치는 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다. 일실시예에서, 결정된 현재 블록의 변이 벡터는 인터 모드에 대한 변이 탐색(Disparity Estimation) 과정에서 초기점(Initial Point)을 제공할 수 있다.
도 11은 일실시예에 따른 스킵 모드(Skip Mode) 및 다이렉트 모드(Direct Mode)에 대한 현재 블록의 움직임 벡터를 예측하는 과정을 도시한 도면이다.
도 11을 참고하면, 컬러 영상에서 현재 블록 Cb의 스킵 모드 및 다이렉트 모드에 대한 최종 움직임 벡터를 결정하는 과정을 도시하고 있다. 스킵 모드와 다이렉트 모드에서는 움직임 탐색과 변이 탐색을 수행하지 않는다. 블록 A, B, C는 현재 블록 Cb에 인접한 위치에 존재하는 주변 블록들을 나타낸다.
영상 처리 장치는 현재 블록 Cb의 움직임 벡터를 예측하기 위해, 주변 블록 A, B, C의 변이 벡터를 이용할 수 있다. 영상 처리 장치는 P-View 영상 또는 B-View 영상들을 부/복호화할 때, 스킵 모드 및 다이렉트 모드에 대한 움직임 벡터를 예측하기 위해 이미 부/복호화된 I-View 영상의 정보를 이용할 수 있다. 또한, 다른 시점의 P-View 영상 또는 B-View 영상이 이미 부/복호화된 경우, 영상 처리 장치는 스킵 모드 및 다이렉트 모드에 대한 움직임 벡터를 예측하기 위해 I-View 영상 뿐만 아니라 P-View 영상 및 B-View 영상을 이용할 수도 있다.
단계(1110)에서, 영상 처리 장치는 컬러 영상에서 현재 블록 Cb에 이웃한 주변 블록의 변이 벡터를 식별할 수 있다. 단계(1120)에서, 영상 처리 장치는 주변 블록의 변이 벡터가 존재하는지 여부를 판단할 수 있다.
변이 벡터가 존재하지 않는 주변 블록이 존재하는 경우, 단계(1130)에서, 영상 처리 장치는 변이 벡터가 존재하지 않는 주변 블록의 변이 벡터를 깊이 영상을 이용하여 결정할 수 있다. 영상 처리 장치는 현재 블록 Cb에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 영상 처리 장치는 변환된 변이 벡터를 변이 벡터가 존재하지 않는 주변 블록의 변이 벡터로 결정할 수 있다. 또한, 영상 처리 장치는 깊이값을 변이 벡터를 변환하기 위해 깊이 영상에 포함된 일부 픽셀들의 깊이값만을 고려할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록 Cb에 대응하는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 영상 처리 장치는 깊이값을 변이 벡터로 변환하는 과정에서 카메라 파라미터 정보를 이용할 수 있다.
영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록 또는 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 대응 블록(또는, 매크로 블록)에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환하거나 또는 대응 블록(또는, 매크로 블록)에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다.
단계(1140)에서, 영상 처리 장치는 주변 블록의 변이 벡터에 미디언 필터를 적용할 수 있다. 단계(1150)에서, 영상 처리 장치는 미디언 필터가 적용된 변이 벡터를 이용하여 현재 블록 Cb의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 미디언 필터가 적용된 변이 벡터가 가리키는 위치에서의 움직임 벡터를 현재 블록 Cb의 움직임 벡터로 결정할 수 있다. 예를 들어, 미디언 필터가 적용된 변이 벡터가 I-View 영상을 가리키는 경우, 현재 컬러 영상과 같은 시간대에 있는 I-View 영상에서 미디언 필터가 적용된 변이 벡터가 가리키는 위치를 식별하고, 현재 블록 Cb의 움직임 벡터를 결정하기 위해 그 식별된 위치에서의 움직임 정보를 이용할 수 있다.
미디언 필터가 적용된 변이 벡터가 가리키는 위치에 움직임 벡터가 존재하지 않는 경우, 영상 처리 장치는 현재 블록 Cb의 주변 블록 A, B, C 들을 이용하여 현재 블록 Cb의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 현재 블록 Cb의 참조 영상 인덱스는 주변 블록 A, B, C 의 참조 영상 인덱스 중 가장 작은 인덱스를 이용할 수 있다.(예를 들어, P-픽쳐의 경우 참조 영상 인덱스는 0)
참조 영상 인덱스가 동일 시점의 컬러 영상을 가리키는 경우, 영상 처리 장치는 주변 블록 A, B, C의 움직임 벡터에 미디언 필터가 적용된 결과를 현재 블록 Cb의 움직임 벡터로 결정할 수 있다. 참조 영상 인덱스가 다른 시점의 컬러 영상을 가리키는 경우에는, 영상 처리 장치는 주변 블록 A, B, C의 변이 벡터에 미디언 필터가 적용된 결과를 현재 블록 Cb의 움직임 벡터로 결정할 수 있다. 위 두 경우가 모두 아닌 경우, 영상 처리 장치는 영벡터를 현재 블록 Cb의 움직임 벡터로 결정할 수 있다.
단계(1160)에서, 영상 처리 장치는 결정된 현재 블록 Cb의 움직임 벡터를 스킵 모드 및 다이렉트 모드에 대한 움직임 벡터로 이용할 수 있다. 또한, 영상 처리 장치는 미디언 필터가 적용된 변이 벡터가 가리키는 위치에서의 참조 영상 인덱스를 스킵 모드 및 다이렉트 모드에서의 참조 영상 인덱스로 이용할 수 있다.
도 12는 일실시예에 따른 변이 벡터를 이용하여 현재 블록의 움직임 벡터를 예측하는 과정을 도시한 도면이다.
도 12를 참조하면, 영상 처리 장치는 현재 컬러 영상(1210)에서 현재 블록(1230)의 변이 벡터(1240)를 이용하여 현재 블록(1230)의 움직임 벡터(1260)를 결정할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록(1230)의 변이 벡터(1240)을 결정하기 위해 주변 블록들의 변이 벡터에 미디언 필터를 적용할 수 있다. 영상 처리 장치는 미디언 필터가 적용된 변이 벡터(1240)가 가리키는 참조 영상(1220) 내 위치를 식별하고, 식별된 위치에서의 움직임 벡터(1250)를 현재 블록(1230)의 움직임 벡터(1260)로 결정할 수 있다.
도 13은 일실시예에 따른 인터 모드에 대한 현재 블록의 움직임 벡터를 예측하는 과정을 도시한 도면이다.
도 13을 참고하면, 블록 Cb는 컬러 영상에서 부호화하고자 하는 현재 블록을 나타낸다. 그리고, 블록 A, B, C는 현재 블록 Cb에 인접한 위치에 존재하는 주변 블록들을 나타낸다. 영상 처리 장치는 현재 블록 Cb의 움직임 벡터를 예측하기 위해, 주변 블록 A, B, C의 움직임 벡터를 이용할 수 있다.
단계(1310)에서, 영상 처리 장치는 현재 블록 Cb의 주변 블록의 움직임 벡터를 식별할 수 있다. 단계(1320)에서, 영상 처리 장치는 주변 블록의 움직임 벡터가 존재하는지 여부를 판단할 수 있다.
움직임 벡터가 존재하지 않는 주변 블록이 존재하는 경우, 단계(1330)에서, 영상 처리 장치는 움직임 벡터가 존재하지 않는 주변 블록의 움직임 벡터를 깊이 영상을 이용하여 결정할 수 있다. 영상 처리 장치는 움직임 벡터가 존재하지 않는 주변 블록의 움직임 벡터를 다른 시점의 컬러 영상으로부터 획득할 수 있고, 주변 블록의 움직임 벡터를 다른 시점의 컬러 영상으로부터 획득하기 위해 깊이 영상을 이용할 수 있다.
영상 처리 장치는 현재 블록 Cb에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 영상 처리 장치는 깊이값을 변이 벡터를 변환하기 위해 깊이 영상에 포함된 일부 픽셀들의 깊이값만을 고려할 수도 있다. 예를 들어, 영상 처리 장치는 영상 처리 장치는 현재 블록 Cb에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 영상 처리 장치는 대응 블록 내 모서리에 위치한 네 픽셀들의 깊이값 및 대응 블록의 중앙에 위치한 픽셀의 깊이값 중 가장 큰 값을 변이 벡터로 변환할 수도 있다. 영상 처리 장치는 깊이값을 변이 벡터로 변환하는 과정에서 카메라 파라미터 정보를 이용할 수 있다. 영상 처리 장치는 변이 벡터를 이용하여 주변 블록의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 변이 벡터가 가리키는 위치에서의 움직임 벡터를 주변 블록의 움직임 벡터로 결정할 수 있다.
영상 처리 장치는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 움직임 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터가 가리키는 위치에서의 움직임 벡터를 주변 블록의 움직임 벡터로 결정할 수 있다. 또는, 영상 처리 장치는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환하고, 변환된 변이 벡터를 이용하여 주변 블록의 움직임 벡터를 탐색할 수도 있다.
영상 처리 장치는 주변 블록의 움직임 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 영상 처리 장치는 현재 컬러 영상에 대응하는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터가 가리키는 곳의 움직임 벡터를 주변 블록의 움직임 벡터로 결정할 수 있다.
현재 블록 Cb의 참조 영상 인덱스와 다른 시점의 컬러 영상에서 가져온 참조 영상 인덱스가 일치하지 않을 경우, 영상 처리 장치는 주변 블록의 움직임 벡터를 영벡터로 결정할 수 있다. 예를 들어, 깊이값의 변환을 통해 생성된 변이 벡터가 I-View 영상을 가리키는 경우, 현재 컬러 영상과 같은 시간대에 있는 I-View 영상에서 변이 벡터가 가리키는 위치를 식별하고, 현재 블록 Cb의 움직임 벡터를 결정하기 위해 그 식별된 위치에서의 움직임 정보를 이용할 수 있다. 변이 벡터가 가리키는 위치에 움직임 벡터가 존재하지 않을 경우, 영상 처리 장치는 주변 블록의 움직임 벡터로서 영벡터를 이용할 수 있다.
단계(1340)에서, 영상 처리 장치는 주변 블록의 움직임 벡터에 미디언 필터를 적용하여 현재 블록 Cb의 움직임 벡터를 결정할 수 있다. 단계(1350)에서, 영상 처리 장치는 미디언 필터가 적용된 움직임 벡터를 이용하여 인터 모드에서의 움직임 탐색을 수행할 수 있다. 영상 처리 장치는 미디언 필터가 적용된 움직임 벡터를 인터 모드에서의 예측 움직임 벡터로 이용할 수 있다. 예측 움직임 벡터는 인터 모드에 대한 움직임 탐색(Motion Estimation) 시 초기점을 제공할 수 있다.
일실시예에 따르면, 도 10 내지 도 13에서 설명된 내용은 아래의 실시예에 따라 구현될 수 있다.
<J.8.3.1 움직임 벡터 컴포넌트들과 참조 인덱스들에 대한 유도 과정(derivation process)>
(1) 이 과정에서의 입력:
- 매크로블록 파티션(macroblock partition) mbPartIdx
- 서브-매크로블록 파티션(sub-macroblock partition) subMbPartIdx.
(2) 이 과정에서의 출력:
- ChromaArrayType이 0이 아닐 때, 루마(luma) 움직임 벡터들 mvL0과 mvL1, 크로마(chroma) 움직임 벡터들 mvCL0과 mvCL1,
- 참조 인덱스들 refIdxL0 및 refIdxL1,
- 예측 리스트 이용 플래그들(prediction list utilization flags) predFlagL0 및 predFlagL1,
- 움직임 벡터 카운트 변수 subMvCnt.
(3) refIdxL0, refIdxL1, mvL0, mvL1 변수들의 유도를 위해 다음과 같은 내용이 적용될 수 있다.
A. mb_type이 P_Skip과 동일한 경우,
a) MbVSSkipFlag가 0과 동일한 경우,
- nal_unit_type이 21과 동일하고, DepthFlag이 0과 동일하며, dmvp_flag이 1과 동일한 경우, subclause J.8.3.1.1에서의 P 슬라이스 및 SP 슬라이스에 포함된 skipped 매크로블록들의 루마 모션 벡터들에 대한 깊이 기반 유도 과정이 호출(invoke)되고, 이 때 루마 움직임 벡터 mvL0, 참조 인덱스 refIdxL0, 및 predFlagL0이 1 로 설정되는 출력을 가진다.
- 다른 경우(nal_unit_type이 21과 동일하지 않거나, DepthFlag이 1과 동일하거나, 또는 dmvp_flag이 0과 동일한 경우), subclause J.8.4.1.1에서의 P 슬라이스 및 SP 슬라이스에 포함된 skipped 매크로블록들의 루마 모션 벡터들에 대한 깊이 기반 유도 과정이 호출되고, 이 때 루마 움직임 벡터 mvL0, 참조 인덱스 refIdxL0, 및 predFlagL0이 1 로 설정되는 출력을 가진다.
b) MbVSSkipFlag가 1과 동일한 경우,
- subclause J.8.3.1.2에서의 P 슬라이스 및 SP 슬라이스에 포함된 VSP skipped 매크로블록의 루마 움직임 벡터들에 대한 유도 과정이 호출되고, 이 때 루마 움직임 벡터 mvL0, 참조 인덱스 refIdxL0, 및 predFlagL0이 1 로 설정되는 출력을 가진다.
c) mvL1 및 refIdxL1이 이용 가능한 것으로 마크되지 않고, predFlagL1이 0과 동일한 경우, 움직임 벡터 카운트 변수 subMvCnt는 1로 설정된다.
B. mb_type이 B_Skip 또는 B_Direct_16x16과 동일하거나, 또는 sub_mb_type [mbPartIdx]이 B_Direct_8x8과 동일한 경우, 다음 사항이 적용된다.
a) 변수 vspFlag은 다음의 표 1과 같이 구체화된다.
Figure PCTKR2013008563-appb-I000001
b) 만일 vspFlag가 0과 동일하고, nal_unit_type이 21과 동일하며, DepthFlag이 0과 동일하고, dmvp_flag이 1과 동일한 경우, subclause J.8.3.1.3에서의 B 슬라이스들에 포함된 B_Skip, B_Direct_16x16, 및 B_Direct_8x8의 루마 움직임 벡터들에 대한 깊이 기반 유도 과정이 호출되며, 이 때 mbPartIdx 및 subMbPartIdx의 입력을 가지고, 루마 움직임 벡터들 mvL0과 mvL1, 참조 인덱스들 refIdxL0과 refIdxL1, 움직임 벡터 카운트 변수 subMvCnt, 및 예측 리스트 이용 플래그들 predFlagL0과 predFlagL1의 출력을 가진다.
c) vspFlag가 0과 동일하고, nal_unit_type이 21과 동일하지 않거나, 또는 DepthFlag이 1과 동일하거나, 또는 dmvp_flag이 0과 동일한 경우, subclause J.8.4.1.2에서의 B 슬라이스들에 포함된 B_Skip, B_Direct_16x16, 및 B_Direct_8x8의 루마 움직임 벡터들에 대한 유도 과정이 호출되고, 이 때 mbPartIdx 및 subMbPartIdx의 입력을 가지고, 루마 움직임 벡터들 mvL0과 mvL1, 참조 인덱스들 refIdxL0과 refIdxL1, 움직임 벡터 카운트 변수 subMvCnt, 및 예측 리스트 이용 플래그들 predFlagL0과 predFlagL1의 출력을 가진다.
d) vspFlag가 1과 동일한 경우, subclause J.8.3.1.6에서의 B 슬라이스들에 포함된 B_Skip, B_Direct_16x16, 및 B_Direct_8x8의 루마 움직임 벡터들에 대한 유도 과정이 호출된다.
subclause J.8.4.1에서,
predFlagLX이 1과 동일하고, DepthFlag가 0과 동일하며, dmvp_flag이 1과 동일한 경우, subclause 8.3.1.7에서의 루마 움직임 벡터 예측에 대한 유도 과정이 호출되고, 이 때 mbPartIdx subMbPartIdx, refIdxLX, 및 currSubMbType의 입력을 가지고 mvpLX의 출력을 가진다. predFlagLX이 1과 동일하고, DepthFlag가 1과 동일하거나, 또는 dmvp_flag이 0과 동일한 경우, subclause 8.4.1.3에서의 루마 움직임 벡터 예측에 대한 유도 과정이 호출되고, 이 때 mbPartIdx subMbPartIdx, refIdxLX, 및 currSubMbType의 입력을 가지고 mvpLX의 출력을 가진다.
<J.8.3.1.1 P 슬라이스와 SP 슬라이스에서 skipped 매크로블록들의 루마 움직임 벡터들에 대한 유도 프로세스>
이 과정은 mb_type이 P_Skip과 동일하고, nal_unit_type이 21과 동일하며, DepthFlag이 0과 동일하고, dmvp_flag이 1과 동일하며, MbVSSkipFlag이 0과 동일한 경우에 호출된다.
(1) 프로세스의 출력:
- 움직임 벡터 mvL0,
- 참조 인덱스 refIdxL0.
(2) P_Skip 매크로블록 타입의 refIdxL0, 및 움직임 벡터 mvL0의 유도를 위해, 다음의 단계들이 구체화된다.
a. subclause J.8.3.1.5에 명시된 과정이 호출되고, 이 때 입력으로 mbPartIdx는 0으로 설정되고, subMbPartIdx는 0으로 설정되며, currSubMbType는 "na"로 설정되고, listSuffixFlag는 0으로 설정된다. 출력으로는 움직임 벡터 mvL0와 참조 인덱스 refIdxL0가 할당된다.
b. refIdxL0가 -1인 경우:
- skipped 매크로블록에 대한 참조 인덱스 refIdxL0는 refIdxL0 = 0으로 도출된다.
- subclause J.8.3.1.7에서의 루마 움직임 벡터 예측에 대한 유도 과정이 호출되고, 이 때 입력으로서 mbPartIdx = 0,subMbPartIdx = 0, refIdxL0, and currSubMbType = "na"가 설정되고, 출력으로서 mvL0가 설정된다.
<J.8.3.1.2 P 슬라이스 및 SP 슬라이스에 포함된 VSP skipped 매크로블록들의 루마 움직임 벡터들에 대한 유도 과정>
이 과정은 mb_type이 P_Skip과 동일하고, nal_unit_type이 21과 동일하며, DepthFlag이 0이고, MbVSSkipFlag이 1인 경우에 호출된다.
이 과정에서 출력은 움직임 벡터 mvL0과 참조 인덱스 refIdxL0이다.
VSP skipped 매크로블록을 위한 참조 인덱스 refIdxL0는 RefPicList0의 첫 번째에 나타나는 합성한 픽쳐(synthetic picture)로서 획득된다.
<J.8.3.1.3 B_Skip, B_Direct_16x16, 및 B_Direct_8x8의 루마 움직임 벡터들에 대한 유도 과정>
이 과정에서 입력은 현재 매크로블록의 파티션 인덱스 mbPartIdx 및 subMbPartIdx이다.
이 과정에서 출력은 참조 인덱스 refIdxL0 및 refIdxL1, 움직임 벡터들 mvL0 및mvL1,움직임 벡터 카운트 변수 subMvCnt, 예측 리스트 이용 플래그들 predFlagL0 및 predFlagL1이다.
출력의 유도를 위해 다음의 단계들이 명시된다.
1. 변수 currSubMbType를 sub_mb_type[ mbPartIdx ]와 동일하도록 설정한다.
2. subclause J.8.3.1.5에 명시된 과정이 호출되고, 입력으로서 mbPartIdx는0으로 설정되고, subMbPartIdx는 0으로 설정되며, currSubMbType 및 listSuffixFlag는 0으로 설정된다. 출력은 움직임 벡터 mvL0 및 참조 인덱스 refIdxL0에 할당된다.
3. subclause J.8.3.1.5에 명시된 과정이 호출되고, mbPartIdx는 0으로 설정되고, subMbPartIdx는 0으로 설정되며, currSubMbType 및 listSuffixFlag는 1로 설정된다. 출력은 움직임 벡터 mvL1 및 참조 인덱스 refIdxL1에 할당된다.
4. 참조 인덱스들 refIdxL0 및 refIdxL1이 모두 -1과 동일한 경우, 다음의 과정이 적용된다.
- 참조 인덱스들 refIdxL0 및 refIdxL1은 다음의 표 2에 의해 도출된다.
Figure PCTKR2013008563-appb-I000002
- subclause J.8.3.1.7에서의 루마 움직임 벡터 예측에 대한 유도 과정이 호출되고, 입력으로서 mbPartIdx = 0, subMbPartIdx = 0, refIdxLX (X는 0 또는 1), 및 currSubMbType이 설정된다. 출력으로서 mvLX이 할당된다.
<J.8.3.1.4 변이 벡터(disparity vector) 및 inter-view reference에 대한 유도 과정>
이 과정에서 입력은 깊이 참조 시점 컴포넌트(depth reference view component) depthPic, 파티션의 top-left 샘플 (dbx1, dby1)의 위치 및 listSuffixFlag이다.
이 과정에서 출력은 픽쳐 InterViewPic, 오프셋 벡터 dv, 및 변수 InterViewAvailable이다.
InterViewAvailable를 0으로 설정한다.
다음의 표 3은 listFuffixFlag가 1 또는 0, 그 외의 값을 가지고 X가 1로 설정된 상태에서 inter-view reference picture 또는 inter-view only reference picture인 InterViewPic을 획득하는데 적용된다.
Figure PCTKR2013008563-appb-I000003
InterViewAvailable가 1일 때, 다음의 단계들이 순서대로 적용된다.
- subclause 8.4.1.3.2에 명시된 과정이 호출되고, 입력으로서 mbPartIdx가 0으로 설정되고, subMbPartIdx가 0으로 설정되며, currSubMbType가 "na"으로 설정되고, listSuffixFlag가 0으로 설정된다. 그리고, 출력으로서 참조 인덱스들 refIdxCandL0[i], 움직임 벡터들 mvCandL0[i]이 설정되며, 여기서 i는 이웃하는 파티션(neighbouring partition) A, B, 및 C에 각각에 대응되는 0, 1, 또는 2의 값을 갖는다.
- subclause 8.4.1.3.2에 명시된 과정이 호출되고, 입력으로서 mbPartIdx가 0으로 설정되고, subMbPartIdx가 0으로 설정되며, currSubMbType가 "na"으로 설정되고, listSuffixFlag가 1로 설정된다. 그리고, 출력으로서 참조 인덱스들 refIdxCandL1[i], 움직임 벡터들 mvCandL1[i]이 설정되며, 여기서 i는 이웃 파티션(neighbouring partition) A, B, 및 C에 각각에 대응되는 0, 1, 또는 2의 값을 갖는다.
변수 dv는 다음의 단계들에 따라 결정된다.
- DvAvailable[i]는 다음의 표 4에 따라 설정되고, 여기서 i는 이웃 파티션 A, B, 및 C에 각각에 대응되는 0, 1, 또는 2의 값을 갖는다.
Figure PCTKR2013008563-appb-I000004
- DvAvailable[0], DvAvailable[1], DvAvailable[2] 중 어느 하나가 1일 때,
dv[0] = mvCandLX[i][0]
dv[1] = mvCandLX[i][1].
- 그 외의 경우에,는 다음의 단계들이 순서대로 적용된다.
1. 변수 maxDepth는 다음의 표 5와 같이 설정된다.
Figure PCTKR2013008563-appb-I000005
2. 변수 disp는 다음의 표 6과 같이 설정된다.
Figure PCTKR2013008563-appb-I000006
3. DvAvailable[i]이 0일 때,
mvCandLX[i] = disp
4. 변수 dv의 각각의 컴포넌트가 움직임 벡터 mvCandLX[0], mvCandLX[1], 및 mvCandLX[2]의 대응되는 벡터 컴포넌트들의 미디안(median) 값으로 주어진다.
dv[0] = Median(mvCandLX[0][0], mvCandLX[1][0], and mvCandLX[2][0])
dv[1] = Median(mvCandLX[0][1], mvCandLX[1][1], and mvCandLX[2][1])
<J.8.3.1.5 inter-view reference에서 inter-view 움직임 벡터에 대한 유도 과정>
이 과정에서 입력은 mbPartIdx, subMbPartIdx, 및 listSuffixFlag이다.
이 과정에서 출력은 움직임 벡터 mvCorrespondand, 참조 인덱스 refIdxCorrespond이다.
Inter-view 참조 픽쳐 InterViewPic 및 오프셋 벡터 dv는 다음의 단계들에 의해 명시된 것에 따라 도출된다.
- 역(inverse) 매크로블록 스캐닝(scanning) 과정이 호출되고, 이 때 입력으로서 CurrMbAddr이 설정되고, 출력으로서 (x1, y1)이 할당된다.
- 역 매크로블록 파티션 스캐닝 과정이 호출되고, 이 때 입력으로서 mbPartIdx이 설정되고, 출력으로서 (dx1, dy1)이 할당된다.
- 역 서브-매크로블록 파티션 스캐닝 과정이 호출되고, 이 때 입력으로서 mbPartIdx 및 subMbPartIdx 이 설정되고, 출력으로서 (dx2, dy2)이 할당된다.
- subclause J.8.3.1.4에 명시된 과정이 호출되고, 이 때 입력으로서 DepthCurrPic, x1 + dx1 + dx2로 설정된 dbx1, y1 + dy1 + dy2로 설정된 dby1 및 listSuffixFlag이 설정되고, 출력으로서 InterViewPic, 오프셋 벡터 dv 및 and 변수 InterViewAvailable이 할당된다.
refIdxCorrespond 및 mvCorrespond는 다음과 같이 설정될 수 잇다.
- InterViewAvailable이 0인 경우, refIdxCorrespond는 -1로 설정되고, mvCorrespond [ 0 ] 및 mvCorrespond [ 1 ]는 모두 0으로 설정된다.
- 그 외의 경우에는, 다음 단계들이 순서대로 적용된다.
- 변수 luma4x4BlkIdx이 (4 * mbPartIdx + subMbPartIdx)과 같이 도출된다.
- 역 4x4 루마 블록 스캐닝 과정이 호출되고, 이 때 입력으로서 luma4x4BlkIdx이 설정되고, 출력으로서 ( x, y )가 할당된다. 또한, ( xCorrespond, yCorrespond )는 ( x + ( dv[ 0 ]>>4 ), y + ( dv [ 1 ]>>4 ) )로 설정되고, mbAddrCorrespond는 ( ( CurrMbAddr / PicWidthInMbs ) + ( dv[1] >>6 ) ) * PicWidthInMbs + ( CurrMbAddr % PicWidthInMbs ) + ( dv[0] >>6 )으로 설정된다.
- mbTypeCorrespond를 픽쳐 InterViewPic 내 mbAddrCorrespond의 어드레스를 가진 매크로블록의 신택스 엘리먼트(syntax element) mb_type로 설정한다. mbTypeCorrespond가 P_8x8, P_8x8ref0, 또는 B_8x8와 동일한 경우, subMbTypeCorrespond를 픽쳐 InterViewPic 내 mbAddrCorrespond의 어드레스를 가진 매크로블록의 신택스 엘리먼트 sub_mb_type로 설정한다.
- mbPartIdxCorrespond를 대응하는 파티션의 매크로블록 파티션 인덱스로 설하고, subMbPartIdxCorrespond를 대응하는 서브-매크로블록 파티션의 서브-매크로블록 파티션 인덱스로 설정한다. 매크로블록 파티션 인덱스 및 서브-매크로블록 파티션 인덱스에 대한 유도 과정이 호출되고, 이 때 입력으로서 luma location equal to ( xCorrespond, yCorrespond )와 동일한 루마 위치, mbTypeCorrespond와 동일한 매크로블록 타입, 및 when mbTypeCorrespond가 P_8x8, P_8x8ref0, 또는 B_8x8와 동일할 때의 서브-매크로블록 타입의 리스트 subMbTypeCorrespond이 설정된다. 출력으로서 매크로블록 파티션 인덱스 mbPartIdxCorrespond 및 서브-매크로블록 파티션 인덱스 subMbPartIdxCorrespond가 할당된다.
- 움직임 벡터 mvCorrespond 및 참조 인덱스 refIdxCorrespond는 다음에 따라 결정된다.
- 매크로블록 mbAddrCorrespond이 인트라 예측 모드(intra prediction mode)로 부호화된 경우, mvCorrespond의 컴포넌트들은 0으로 설정되고, refIdxCorrespond의 컴포넌트들은 -1로 설정된다.
- 그 외의 경우(매크로블록 mbAddrCorrespond이 인트라 예측 모드로 부호화되지 않은 경우), 예측 이용 플래그들 predFlagLXCorrespond이 PredFlagLX[ mbPartIdxCorrespond ], 픽쳐 InterViewPic의 매크로블록 파티션 mbAddrCorrespond\mbPartIdxCorrespond의 예측 이용 플래그로 설정된다. 또한, 다음의 과정이 적용된다.
- predFlagLXCorrespond이 1인 경우, mvCorrespond와 참조 인덱스 refIdxCorrespond는 각각 MvLX[ mbPartIdxCorrespond ][ subMbPartIdxCorrespond ] 및 RefIdxLX[ mbPartIdxCorrespond ]로 설정된다. MvLX[ mbPartIdxCorrespond ][ subMbPartIdxCorrespond ] 및 RefIdxLX[ mbPartIdxCorrespond ]는 각각 픽쳐 InterViewPic 내의 (서브-) 매크로블록 파티션 mbAddrCorrespond\mbPartIdxCorrespond\subMbPartIdxCorrespond에 할당된 움직임 벡터 mvLX 및 참조 인덱스 refIdxLX이다.
<J.8.3.1.6 B 슬라이스들에 포함된 VSP skipped/direct 매크로블록들의 루마 움직임 벡터들에 대한 유도 과정>
이 과정에서의 출력은 움직임 벡터 mvL0, mvL1 및 참조 인덱스 refIdxL0, refIdxL1이다.
VSP skipped/direct 매크로블록의 참조 인덱스 refIdxLX가 reference picture list X에 첫 번째로 나타내는 synthetic reference 컴포넌트로서 도출된다. 여기서, X는 0 또는 1로 대체된다. reference picture list X에 synthetic picture가 없는 경우, refIdxLX는 0으로 설정된다.
움직임 벡터 mvLX는 영(zero) 움직임 벡터로 설정되고, 여기서 X는 0 또는 1로 대체된다.
<J.8.3.1.7 루마 움직임 벡터 예측에 대한 유도 과정>
이 과정에서의 입력은 다음과 같다.
- 매크로블록 파티션 인덱스 mbPartIdx,
- 서브-매크로블록 파티션 인덱스 subMbPartIdx,
- 현재 파티션 refIdxLX의 참조 인덱스(여기서, X는 0 또는 1),
- 변수 currSubMbType.
이 과정에서의 출력은 움직임 벡터 mvLX의 예측 mvpLX (여기서, X는 0 또는 1)이다.
subclause J.8.4.1.3에는 다음의 사항들이 적용된다.
N = A, B, 또는 C이고, X가 0 또는 1과 동일한 조건에서, refIdxLX가 to refIdxLXN와 동일하지 않은 경우에는 다음의 사항들이 적용된다.
mbAddrN\mbPartIdxN\subMbPartIdxN는 이용 가능하지 않은 것으로 마크된다.
refIdxLXN = -1
mvLXN[ 0 ] = 0
mvLXN[ 1 ] = 0
움직임 데이터의 인접 블록들에 대한 유도 과정이 호출되고, 이 때 입력으로서 mbPartIdx, subMbPartIdx, currSubMbType, 및 listSuffixFlag = X (여기서, X는 refIdxLX 또는 refIdxL1에 대해 각각 0 또는 1)이 설정되고, 출력으로서 mbAddrN\mbPartIdxN\subMbPartIdxN, 참조 인덱스들 refIdxLXN 및 움직임 벡터들 mvLXN(여기서, N은 A, B, 또는 C로 대체됨)이 할당된다.
- 다음의 추가적인 사항들이 적용된다.
- 그 외의 경우에, refIdxLX이 inter-view reference 컴포넌트 또는 inter-view only reference 컴포넌트에 대한 참조 인덱스일 때, 미디안 루마 inter-view 움직임 벡터 예측에 대한 깊이 기반 유도 과정이 호출되고, 이 때 입력으로서 mbAddrN\mbPartIdxN\subMbPartIdxN, mvLXN, refIdxLXN (여기서, N은 A, B, 또는 C로 대체됨), refIdxLX이 설정된다. 출력으로서 움직임 벡터 예측 변수(motion vector predictor) mvpLX가 할당된다.
- 그 외의 경우에, refIdxLX이 inter reference 컴포넌트 또는 inter only reference 컴포넌트에 대한 참조 인덱스일 때, 미디안 루마 temporal 움직임 벡터 예측에 대한 깊이 기반 유도 과정이 호출되고, 이 때 입력으로서 mbAddrN\mbPartIdxN\subMbPartIdxN, mvLXN, refIdxLXN (여기서, N은 A, B, 또는 C로 대체됨), refIdxLX이 설정된다. 출력으로서 움직임 벡터 예측 변수(motion vector predictor) mvpLX가 할당된다.
- 그 외의 경우에, MbPartWidth( mb_type )이 8이고, MbPartHeight( mb_type )이 16이며, mbPartIdx가 mvpLX = mvLXCto 1와 같고, refIdxLXC가 refIdxLX와 동일한 경우, 움직임 벡터 예측 변수 mvpLX는 다음과 같이 도출된다.
mvpLX = mvLXC
<J.8.3.1.8 미디안 루마 inter-view 움직임 벡터 예측에 대한 깊이 기반 유도 과정>
이 과정에서의 입력은 다음과 같다.
- 이웃 파티션들 mbAddrN\mbPartIdxN\subMbPartIdxN(여기서, N은 A, B, 또는 C로 대체됨),
- 이웃 파티션들의 움직임 벡터들 mvLXN(여기서, N은 A, B, 또는 C로 대체됨),
- 이웃 파티션들의 참조 인덱스들 refIdxLXN(여기서, N은 A, B, 또는 C로 대체됨),
- 현재 파티션들의 참조 인덱스들 refIdxLXN.
이 과정에서의 출력은 움직임 벡터 예측 mvpLX이다.
파티션 mbAddrN\mbPartIdxN\subMbPartIdxN이 이용 가능하지 않거나 또는 refIdxLXN이 refIdxLX과 동일하지 않은 경우, mvLXN은 다음의 순서에 따라 도출된다.
1. 역 매크로블록 스캐닝 과정이 호출되고, 여기서 입력은 CurrMbAddr이 설정되며, 출력은 ( x1, y1 )로 할당된다.
2. 역 매크로블록 파티션 스캐닝 과정이 호출되고, 여기서 입력은 mbPartIdx이 설정되며, 출력은 ( dx1, dy1 )로 할당된다.
3. 역 서브-매크로블록 파티션 스캐닝 과정이 호출되고, 여기서 입력은 mbPartIdx 및 subMbPartIdx이 설정되며, 출력은 ( dx2, dy2 )로 할당된다.
4. 미디안 루마 움직임 벡터 예측에서 inter-view 움직임 벡터의 수정(modification) 과정이 호출되고, 여기서 입력은 DepthRefPicList0[ refIdxL0 ]와 동일한 depthPic, x1 + dx1 + dx2와 동일한 dbx1, y1 + dy1 + dy2와 동일한 dby1, 및 mvL0와 동일한 mv이 설정된다. 출력은 움직임 벡터 mvLXN로 할당된다.
움직임 벡터 예측 mvpLX의 각각의 컴포넌트는 다음과 같이 움직임 벡터 mvLXA, mvLXB, 및 mvLXC의 대응되는 벡터 컴포넌트들의 미디안 값에 기초하여 결정된다.
mvpLX[ 0 ] = Median( mvLXA[ 0 ], mvLXB[ 0 ], mvLXC[ 0 ] )
mvpLX[ 1 ] = Median( mvLXA[ 1 ], mvLXB[ 1 ], mvLXC[ 1 ] )
<8.3.1.8.1 미디안 루마 움직임 벡터 예측에서 inter-view 움직임 벡터에 대한 수정 과정>
이 과정에서의 입력은 다음과 같다.
- 깊이 참조 시점 컴포넌트(depth reference view component) depthPic,
- 파티션의 top-left 샘플 ( dbx1, dby1 )의 위치,
- 움직임 벡터 mv.
이 과정에서의 출력은 움직임 벡터 mv이다.
refViewId가 depthPic의 view_id 값이라고 가정한다.
다음의 과정이 순서대로 적용된다.
1. numSamples가 partWidth * partHeight라고 가정한다.
2. 변수 maxDepth는 다음의 표 7에 기초하여 결정될 수 있다.
Figure PCTKR2013008563-appb-I000007
3. 변수 mv 다음의 표 8에 기초하여 결정될 수 있다.
Figure PCTKR2013008563-appb-I000008
<J.8.3.1.9 미디안 루마 temporal 움직임 벡터 예측에 대한 깊이 기반 유도 과정>
이 과정에서의 입력은 다음과 같다.
- 이웃 파티션들 mbAddrN\mbPartIdxN\subMbPartIdxN (여기서, N은 A, B, 또는 C로 대체됨),
- 이웃 파티션들의 움직임 벡터들 mvLXN (여기서, N은 A, B, 또는 C로 대체됨),
- 이웃 파티션들의 참조 인덱스들 refIdxLXN (여기서, N은 A, B, 또는 C로 대체됨),
- 현재 파티션의 참조 인덱스 refIdxLX.
이 과정에서의 출력은 움직임 벡터 예측 mvpLX이다.
파티션 mbAddrN\mbPartIdxN\subMbPartIdxN이 이용 가능하지 않거나, 또는 refIdxLXN이 refIdxLX과 동일하지 않은 경우, mvLXN는 다음의 순서에 따라 도출된다.
1. 역 매크로블록 스캐닝 과정이 호출되고, 여기서 입력은 CurrMbAddr이 되며, 출력은 ( x1, y1 )에 할당된다.
2. 역 매크로블록 파티션 스캐닝 과정이 호출되고, 여기서 입력은 mbPartIdx이 되고, 출력은 ( dx1, dy1 )에 할당된다.
3. 역 서브-매크로블록 파티션 스캐닝 과정이 호출되고, 여기서 입력은 mbPartIdx 및 subMbPartIdx이 되고, 출력은 ( dx2, dy2 )에 할당된다.
4. subclause J.8.3.1.10에 명시된 과정이 호출되고, 여기서 입력은 DepthCurrPic로 설정된 depthPic, x1 + dx1 + dx2로 설정된 dbx1, y1 + dy1 + dy2로 설정된 dby1 및 listSuffixFlag이고, 출력은 InterViewPic, 오프셋 벡터 dv 및 변수 InterViewAvailable로 할당된다.
5. refIdxCorrespond 및 mvCorrespond은 다음에 따라 설정된다.
- InterViewAvailable이 0d인 경우, refIdxCorrespond 는 -1로 설정되고, mvCorrespond [ 0 ] 및 mvCorrespond [ 1 ]는 모두 0으로 설정된다.
- 그 외의 경우에는 다음의 과정들이 순서대로 적용된다.
- 변수 luma4x4BlkIdx가 (4 * mbPartIdx + subMbPartIdx)로서 도출된다.
- 역 4x4 루마 블록 스캐닝 과정이 호출되고, 여기서 입력은 luma4x4BlkIdx가 되고, 출력은 ( x, y )가 된다. 또한, ( xCorrespond, yCorrespond )는 ( x + ( dv[ 0 ]>>4 ), y + ( dv [ 1 ]>>4 ) )로 설정되고, mbAddrCorrespond는 ( ( CurrMbAddr / PicWidthInMbs ) + ( dv[1] >>6 ) ) * PicWidthInMbs + ( CurrMbAddr % PicWidthInMbs ) + ( dv[0] >>6 )로 설정된다.
- mbTypeCorrespond를 픽쳐 InterViewPic 내의 어드레스 mbAddrCorrespond를 가진 매크로블록의 신택스 엘리먼트 mb_type로 설정한다. mbTypeCorrespond가 P_8x8, P_8x8ref0, 또는 B_8x8와 동일한 경우, subMbTypeCorrespond는 픽쳐 InterViewPic 내의 어드레스 mbAddrCorrespond를 가진 매크로블록의 신택스 엘리먼트 sub_mb_type로 설정된다.
- mbPartIdxCorrespond을 대응하는 파티션의 매크로블록 파티션 인덱스로 설정하고, subMbPartIdxCorrespond를 대응하는 서브-매크로블록 파티션의 서브-매크로블록 파티션 인덱스로 설정한다. 매크로블록 및 sub-매크로블록 파티션 인덱스들에 대한 유도 과정이 호출되고, 이 때 입력은 ( xCorrespond, yCorrespond )와 동일한 루마 위치(luma location), mbTypeCorrespond와 동일한 매크로블록 타입, 및 mbTypeCorrespond이 P_8x8, P_8x8ref0, 또는 B_8x8과 동일할 때의 서브-매크로블록 타입들 subMbTypeCorrespond의 리스트이다. 출력은 매크로블록 파티션 인덱스 mbPartIdxCorrespond 및 서브-매크로블록 파티션 인덱스 subMbPartIdxCorrespond이다.
- 움직임 벡터 mvCorrespond 및 참조 인덱스 refIdxCorrespond는 다음에 기초하여 결정된다.
- 매크로블록 mbAddrCorrespond이 인트라 예측 모드로 부호화된 경우, mvCorrespond의 컴포넌트는 0으로 설정되고, refIdxCorrespond의 컴포넌트는 -1로 설정된다.
- 그 외의 경우(매크로블록 mbAddrCorrespond이 인트라 예측 모드로 부호화되지 않은 경우), 예측 이용 플래그들은 predFlagLXCorrespond은 PredFlagLX[ mbPartIdxCorrespond ], 픽쳐 InterViewPic의 매크로블록 파티션 mbAddrCorrespond\mbPartIdxCorrespond의 예측 이용 플래그로 설정된다. 또한, 다음 과정들이 적용된다.
- predFlagLXCorrespond이 1인 경우, mvCorrespond 및 참조 인덱스 refIdxCorrespond는 각각 MvLX[ mbPartIdxCorrespond ][ subMbPartIdxCorrespond ] 및 RefIdxLX[ mbPartIdxCorrespond ]로 설정된다. 여기서, MvLX[ mbPartIdxCorrespond ][ subMbPartIdxCorrespond ] 및 RefIdxLX[ mbPartIdxCorrespond ]는 각각 픽쳐 InterViewPic 내의 (서브-)매크로블록 파티션 mbAddrCorrespond\mbPartIdxCorrespond\subMbPartIdxCorrespond에 할당된 움직임 벡터 mvLX 및 참조 인덱스 refIdxLX이다.
6. 움직임 벡터들 mvLXN은 다음의 표 9에 따라 도출된다.
Figure PCTKR2013008563-appb-I000009
움직임 벡터 예측 mvpLX의 각각의 컴포넌트는 움직임 벡터 mvLXA, mvLXB, and mvLXC의 대응되는 벡터 컴포넌트들의 미디안 값에 기초하여 결정된다.
mvpLX[ 0 ] = Median( mvLXA[ 0 ], mvLXB[ 0 ], mvLXC[ 0 ] )
mvpLX[ 1 ] = Median( mvLXA[ 1 ], mvLXB[ 1 ], mvLXC[ 1 ] )
<J.8.3.1.10 inter-view reference 및 변이 벡터에 대한 유도 과정>
이 과정에서의 입력은 깊이 참조 시점 컴포넌트 depthPic, 파티션(partition)의 top-left 샘플 (dbx1, dby1) 의 위치, 및 listSuffixFlag가 있다.
이 과정에서의 출력은 픽쳐(picture) InterViewPic, 오프셋 벡터(offset vector) dv, 및 변수 InterViewAvailable가 있다.
InterViewAvailable를 0으로 설정한다.
다음의 표 10은 inter-view reference picture 또는 inter-view only reference picture, InterViewPic를 도출하는데 적용되고, 이 때 listFuffixFlag가 1 또는 0 그 밖의 경우 X는 1로 설정된다.
Figure PCTKR2013008563-appb-I000010
InterViewAvailable이 1인 경우, 다음의 단계들이 차례대로 적용된다.
(1) 변수 maxDepth는 다음의 표 11과 같이 지정된다.
Figure PCTKR2013008563-appb-I000011
(2) 변수 dv는 다음의 표 12와 같이 지정된다.
Figure PCTKR2013008563-appb-I000012
도 14는 일실시예에 따른 현재 블록의 변이 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
단계(1410)에서, 영상 처리 장치는 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별할 수 있다. 영상 처리 장치는 컬러 영상에 대응하는 깊이 영상이 존재하지 않는 경우, 현재 블록이 포함된 컬러 영상의 주변 컬러 영상 또는 다른 깊이 영상을 이용하여 현재 블록에 대응하는 깊이 영상을 추정할 수도 있다.
단계(1420)에서, 영상 처리 장치는 깊이 영상에 포함된 픽셀의 깊이값에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 깊이 정보를 이용하여 현재 블록의 변이 벡터를 결정할 수 있다. 영상 처리 장치는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 식별한 픽셀의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수 있다.
예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀의 깊이값에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 영상 처리 장치는 깊이 영상의 대응 블록에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 영상 처리 장치는 깊이 영상의 대응 블록에 포함된 복수의 픽셀들 중 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀의 깊이값을 식별할 수 있다. 예를 들어, 영상 처리 장치는 대응 블록의 모서리에 위치하는 픽셀의 깊이값을 식별하거나 또는 대응 블록의 모서리에 위치하는 픽셀의 깊이값 및 대응 블록의 중앙에서의 깊이값을 식별할 수 있다. 영상 처리 장치는 미리 설정된 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 영상 처리 장치는 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다.
영상 처리 장치는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환하거나 또는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 현재 블록의 변이 벡터로 변환할 수 있다. 또한, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 현재 블록의 변이 벡터로 결정할 수 있다. 또는, 영상 처리 장치는 대응 블록(또는, 매크로 블록) 내 임의의 한 개의 픽셀의 깊이값을 현재 블록의 변이 벡터로 변환할 수도 있다.
영상 처리 장치는 깊이값을 변이 벡터로 변환하는 과정에서 카메라 파라미터 정보를 이용할 수 있다.
도 15는 일실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
단계(1510)에서, 영상 처리 장치는 컬러 영상의 현재 블록에 이웃하는 주변 블록의 변이 벡터를 식별하고, 주변 블록에 변이 벡터가 존재하는지 여부를 판단할 수 있다.
단계(1520)에서, 영상 처리 장치는 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상을 이용하여 주변 블록의 변이 벡터를 결정할 수 있다.
영상 처리 장치는 현재 블록에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별할 수 있다. 영상 처리 장치는 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다. 영상 처리 장치는 깊이 영상에 포함된 픽셀들 중 일부 픽셀들만을 고려할 수도 있고, 일부 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로서 변환할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환할 수 있다.
영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하여 주변 블록의 변이 벡터로 결정할 수 있다. 또는, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 복수의 픽셀들 중 미리 설정된 영역에 위치하는 픽셀의 깊이값을 식별할 수 있다. 예를 들어, 영상 처리 장치는 대응 블록의 모서리에 위치하는 픽셀의 깊이값을 식별하거나 또는 대응 블록의 모서리에 위치하는 픽셀의 깊이값 및 대응 블록의 중앙에서의 깊이값을 식별할 수 있다. 영상 처리 장치는 미리 설정된 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 영상 처리 장치는 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다.
영상 처리 장치는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 매크로 블록에 포함된 픽셀의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환하거나 또는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환할 수 있다.
단계(1530)에서, 영상 처리 장치는 주변 블록의 변이 벡터에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 주변 블록의 변이 벡터에 미디언 필터를 적용하고, 미디언 필터가 적용된 결과를 현재 블록의 변이 벡터로 결정할 수 있다.
단계(1540)에서, 영상 처리 장치는 현재 블록의 변이 벡터를 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 현재 블록의 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하고, 식별된 위치에서의 움직임 벡터를 현재 블록의 움직임 벡터로 결정할 수 있다.
영상 처리 장치는 결정된 현재 블록의 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별할 수 있다. 영상 처리 장치는 식별된 위치에서의 움직임 벡터를 현재 블록의 움직임 벡터로 결정할 수 있다. 영상 처리 장치는 식별된 위치에서의 움직임 벡터가 존재하지 않는 경우, 영상 처리 장치는 현재 블록에 이웃한 주변 블록을 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 현재 블록의 움직임 벡터를 결정할 수 있다.
도 16은 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
단계(1610)에서, 영상 처리 장치는 컬러 영상의 현재 블록에 이웃하는 주변 블록의 변이 벡터를 이용하여 현재 블록의 변이 벡터를 결정할 수 있다. 영상 처리 장치는 주변 블록에 변이 벡터가 존재하는지 여부를 판단하고, 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상을 이용하여 주변 블록의 변이 벡터를 결정할 수 있다.
영상 처리 장치는 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별할 수 있다. 영상 처리 장치는 깊이 영상에 포함된 적어도 하나의 픽셀의 깊이값에 기초하여 주변 블록의 변이 벡터를 결정할 수 있다.
예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록(또는, 매크로 블록)에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하여 주변 블록의 변이 벡터로 결정할 수 있다.
또는, 영상 처리 장치는 깊이 영상의 대응 블록(또는, 매크로 블록)에 포함된 픽셀들 중 일부 픽셀들만을 고려할 수도 있고, 일부 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로서 변환할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상의 대응 블록(또는, 매크로 블록)에서, 미리 설정된 영역에 위치하는 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하여 주변 블록의 변이 벡터로 결정할 수 있다.
또한, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상에 포함된 임의의 하나의 픽셀이 가지고 있는 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 주변 블록의 변이 벡터로 결정할 수 있다.
영상 처리 장치는 주변 블록의 변이 벡터에 기초하여 현재 블록의 변이 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 주변 블록의 변이 벡터에 미디언 필터를 적용하여 현재 블록의 변이 벡터를 결정할 수 있다.
단계(1620)에서, 영상 처리 장치는 현재 블록의 변이 벡터를 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 현재 블록의 변이 벡터를 이용하여 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별할 수 있다. 영상 처리 장치는 식별된 위치에서의 움직임 벡터를 현재 블록의 움직임 벡터로 결정할 수 있다. 영상 처리 장치는 식별된 위치에서의 움직임 벡터가 존재하지 않는 경우, 현재 블록에 이웃한 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 현재 블록의 움직임 벡터를 결정할 수 있다. 영상 처리 장치는 주변 블록의 변이 벡터 또는 움직임 벡터로도 현재 블록의 움직임 벡터를 결정할 수 없는 경우에는 영벡터를 현재 블록의 움직임 벡터로 결정할 수 있다.
도 17은 또 다른 실시예에 따른 현재 블록의 움직임 벡터를 예측하는 영상 처리 방법을 도시한 흐름도이다.
단계(1710)에서, 영상 처리 장치는 컬러 영상의 현재 블록에 이웃하는 주변 블록의 움직임 벡터를 식별할 수 있다. 영상 처리 장치는 주변 블록에 움직임 벡터가 존재하는지 여부를 판단할 수 있다.
단계(1720)에서, 영상 처리 장치는 주변 블록이 움직임 벡터를 가지고 있지 않은 경우, 컬러 영상에 대응하는 깊이 영상을 이용하여 주변 블록의 움직임 벡터를 결정할 수 있다.
영상 처리 장치는 주변 블록의 움직임 벡터를 결정하기 위해 먼저 깊이 영상을 이용하여 변이 벡터를 획득할 수 있다. 예를 들어, 영상 처리 장치는 현재 블록에 대응하는 깊이 영상에 포함된 적어도 하나의 픽셀을 식별하고, 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환할 수 있다. 또는, 영상 처리 장치는 주변 블록의 움직임 벡터를 결정하기 위해 현재 컬러 영상에 대응하는 깊이 영상 내 임의의 픽셀만을 고려할 수도 있다.
영상 처리 장치는 깊이 영상의 대응 블록을 포함하는 매크로 블록에 기초하여 주변 블록의 움직임 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 대응 블록을 포함하는 매크로 블록에 포함된 임의의 픽셀들의 깊이값 중 가장 큰 깊이값을 주변 블록의 변이 벡터로 변환하고, 변환된 변이 벡터를 이용하여 주변 블록의 움직임 벡터를 탐색할 수도 있다.
영상 처리 장치는 변이 벡터에 기초하여 변이 벡터가 가리키는 위치를 식별할 수 있다. 영상 처리 장치는 식별된 위치에서의 움직임 벡터를 주변 블록의 움직임 벡터로 결정할 수 있다. 영상 처리 장치는 식별된 위치에 움직임 벡터가 존재하지 않는 경우, 영벡터를 주변 블록의 움직임 벡터로 결정할 수 있다.
단계(1730)에서, 영상 처리 장치는 주변 블록의 움직임 벡터에 기초하여 현재 블록의 움직임 벡터를 결정할 수 있다. 예를 들어, 영상 처리 장치는 주변 블록의 움직임 벡터에 미디언 필터를 적용하여 현재 블록의 움직임 벡터를 결정할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (51)

  1. 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별하는 단계; 및
    상기 깊이 영상에 포함된 픽셀의 깊이값에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  2. 제1항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하는 단계; 및
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 상기 변환된 변이 벡터를 상기 현재 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  3. 제1항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하는 단계; 및
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 현재 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  4. 제1항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀들을 식별하는 단계; 및
    상기 식별된 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 현재 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  5. 제1항에 있어서,
    상기 미리 설정된 영역에 위치하는 픽셀들을 식별하는 단계는,
    상기 현재 블록에 대응하는 매크로 블록 내 모서리에 위치한 픽셀들을 식별하는 영상 처리 방법.
  6. 제1항에 있어서,
    상기 미리 설정된 영역에 위치하는 픽셀들을 식별하는 단계는,
    상기 현재 블록에 대응하는 매크로 블록 내 모서리 및 상기 대응 블록의 중앙에 위치한 픽셀들을 식별하는 영상 처리 방법.
  7. 제1항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상의 매크로 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하는 단계; 및
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 현재 블록의 변이 벡터로 결정하는 단계
    를 포함하고,
    상기 매크로 블록은, 상기 현재 블록에 대응하는 깊이 영상의 대응 블록을 포함하는 깊이 영상 블록인 영상 처리 방법.
  8. 제1항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 깊이 영상을 촬영한 카메라의 파라미터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 영상 처리 방법.
  9. 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 식별하는 단계;
    상기 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상을 이용하여 상기 주변 블록의 변이 벡터를 결정하는 단계; 및
    상기 적어도 하나의 주변 블록의 변이 벡터에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  10. 제9항에 있어서,
    상기 주변 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상에 포함된 적어도 하나의 픽셀을 식별하는 단계; 및
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 주변 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  11. 제9항에 있어서,
    상기 주변 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하는 단계; 및
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 주변 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  12. 제9항에 있어서,
    상기 주변 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀들을 식별하는 단계; 및
    상기 식별된 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 주변 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  13. 제9항에 있어서,
    상기 주변 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상의 매크로 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하는 단계; 및
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 주변 블록의 변이 벡터로 결정하는 단계
    를 포함하고,
    상기 매크로 블록은, 상기 현재 블록에 대응하는 깊이 영상의 대응 블록을 포함하는 깊이 영상 블록인 영상 처리 방법.
  14. 제9항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 적어도 하나의 주변 블록의 변이 벡터에 미디언 필터를 적용하여 상기 현재 블록의 변이 벡터를 결정하는 영상 처리 방법.
  15. 제9항에 있어서,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계
    를 더 포함하는 영상 처리 방법.
  16. 제15항에 있어서,
    상기 현재 블록의 움직임 벡터를 결정하는 단계는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하는 단계; 및
    상기 식별된 위치에서의 움직임 벡터를 상기 현재 블록의 움직임 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  17. 제15항에 있어서,
    상기 현재 블록의 움직임 벡터를 결정하는 단계는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하는 단계; 및
    상기 식별된 위치에서의 움직임 벡터가 존재하지 않는 경우, 상기 현재 블록에 이웃한 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  18. 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 단계; 및
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  19. 제18항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 적어도 하나의 주변 블록의 변이 벡터에 미디언 필터를 적용하여 상기 현재 블록의 변이 벡터를 결정하는 영상 처리 방법.
  20. 제18항에 있어서,
    상기 현재 블록의 변이 벡터를 결정하는 단계는,
    상기 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 컬러 영상의 현재 블록에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하는 단계;
    상기 식별된 픽셀의 깊이값에 상기 주변 블록의 변이 벡터를 결정하는 단계; 및
    상기 결정된 주변 블록의 변이 벡터에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  21. 제20항에 있어서,
    상기 주변 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상의 매크로 블록에 포함된 적어도 하나의 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하여 상기 주변 블록의 변이 벡터로 결정하고,
    상기 매크로 블록은, 상기 현재 블록에 대응하는 깊이 영상의 대응 블록을 포함하는 깊이 영상 블록인 영상 처리 방법.
  22. 제20항에 있어서,
    상기 주변 블록의 변이 벡터를 결정하는 단계는,
    상기 현재 블록에 대응하는 깊이 영상의 매크로 블록 내 미리 설정된 영역에 위치하는 픽셀들을 식별하는 단계; 및
    상기 식별된 픽셀들의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하고, 변환된 변이 벡터를 상기 주변 블록의 변이 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  23. 제18항에 있어서,
    상기 현재 블록의 움직임 벡터를 결정하는 단계는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하는 단계; 및
    상기 식별된 위치에서의 움직임 벡터를 상기 현재 블록의 움직임 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  24. 제18항에 있어서,
    상기 현재 블록의 움직임 벡터를 결정하는 단계는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하는 단계; 및
    상기 식별된 위치에 움직임 벡터가 존재하지 않는 경우, 상기 현재 블록에 이웃한 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  25. 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 움직임 벡터를 식별하는 단계;
    상기 주변 블록이 움직임 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상을 이용하여 상기 주변 블록의 움직임 벡터를 결정하는 단계; 및
    상기 적어도 하나의 주변 블록의 움직임 벡터에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 단계
    를 포함하는 영상 처리 방법.
  26. 제25항에 있어서,
    상기 주변 블록의 움직임 벡터를 결정하는 단계는,
    상기 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하는 단계;
    상기 변이 벡터에 기초하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하는 단계; 및
    상기 식별된 위치에서의 움직임 벡터를 상기 주변 블록의 움직임 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  27. 제26항에 있어서,
    상기 주변 블록의 움직임 벡터를 결정하는 단계는,
    상기 식별된 위치에 움직임 벡터가 존재하지 않는 경우, 영벡터를 주변 블록의 움직임 벡터로 결정하는 영상 처리 방법.
  28. 제25항에 있어서,
    상기 주변 블록의 움직임 벡터를 결정하는 단계는,
    상기 깊이 영상의 매크로 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하는 단계;
    상기 변환된 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하는 단계; 및
    상기 식별된 위치에서의 움직임 벡터를 상기 주변 블록의 움직임 벡터로 결정하는 단계
    를 포함하는 영상 처리 방법.
  29. 제25항에 있어서,
    상기 현재 블록의 움직임 벡터를 결정하는 단계는,
    상기 적어도 하나의 주변 블록의 움직임 벡터에 미디언 필터를 적용하여 상기 현재 블록의 움직임 벡터를 결정하는 영상 처리 방법.
  30. 제1항 내지 제29항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체.
  31. 컬러 영상의 현재 블록에 대응하는 깊이 영상을 식별하는 깊이 영상 식별부; 및
    상기 깊이 영상에 포함된 픽셀의 깊이값에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 변이 벡터 결정부
    를 포함하는 영상 처리 장치.
  32. 제31항에 있어서,
    상기 변이 벡터 결정부는,
    상기 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 상기 식별한 픽셀의 깊이값 중 가장 큰 깊이값을 상기 현재 블록의 변이 벡터로 변환하는 영상 처리 장치.
  33. 제31항에 있어서,
    상기 변이 벡터 결정부는,
    상기 현재 블록에 이웃한 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 현재 블록에 대응하는 상기 깊이 영상의 매크로 블록 내 픽셀들의 깊이값 중 가장 큰 깊이값을 상기 주변 블록의 변이 벡터로 변환하고, 상기 변환된 주변 블록의 변이 벡터와 미디언 필터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 영상 처리 장치.
  34. 제31항에 있어서,
    상기 변이 벡터 결정부는,
    상기 현재 블록에 대응하는 깊이 영상의 대응 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 상기 식별한 픽셀의 깊이값 중 가장 큰 깊이값을 상기 현재 블록의 변이 벡터로 변환하는 영상 처리 장치.
  35. 제31항에 있어서,
    상기 변이 벡터 결정부는,
    상기 현재 블록에 대응하는 깊이 영상 내 미리 설정된 영역에 위치하는 픽셀들을 식별하고, 상기 식별된 픽셀들의 깊이값 중 가장 큰 깊이값을 상기 현재 블록의 변이 벡터로 변환하는 영상 처리 장치.
  36. 제31항에 있어서,
    상기 변이 벡터 결정부는,
    상기 현재 블록에 대응하는 깊이 영상의 매크로 블록에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 상기 현재 블록의 변이 벡터로 변환하고,
    상기 매크로 블록은, 상기 현재 블록에 대응하는 깊이 영상의 대응 블록을 포함하는 깊이 영상 블록인 영상 처리 장치.
  37. 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 추출하는 변이 벡터 추출부; 및
    상기 적어도 하나의 주변 블록의 변이 벡터에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 변이 벡터 결정부
    를 포함하는 영상 처리 장치.
  38. 제37항에 있어서,
    상기 변이 벡터 추출부는,
    상기 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상을 이용하여 상기 주변 블록의 변이 벡터를 결정하는 영상 처리 장치.
  39. 제37항에 있어서,
    상기 변이 벡터 추출부는,
    상기 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 상기 식별한 픽셀의 깊이값 중 가장 큰 깊이값을 상기 주변 블록의 변이 벡터로 변환하는 영상 처리 장치.
  40. 제37항에 있어서,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 움직임 벡터 결정부
    를 더 포함하는 영상 처리 장치.
  41. 제40항에 있어서,
    상기 움직임 벡터 결정부는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하고, 상기 식별된 위치에서의 움직임 벡터를 상기 현재 블록의 움직임 벡터로 결정하는 영상 처리 장치.
  42. 제40항에 있어서,
    상기 움직임 벡터 결정부는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하고, 상기 식별된 위치에서의 움직임 벡터가 존재하지 않는 경우, 상기 현재 블록에 이웃한 주변 블록의 변이 벡터 및 움직임 벡터 중 적어도 하나에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 영상 처리 장치.
  43. 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 변이 벡터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 변이 벡터 결정부; 및
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 움직임 벡터 결정부
    를 포함하는 영상 처리 장치.
  44. 제43항에 있어서,
    상기 변이 벡터 결정부는,
    상기 주변 블록이 변이 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상에 포함된 적어도 하나의 픽셀을 식별하고, 상기 식별된 픽셀의 깊이값에 기초하여 상기 현재 블록의 변이 벡터를 결정하는 영상 처리 장치.
  45. 제44항에 있어서,
    상기 변이 벡터 결정부는,
    상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 상기 주변 블록의 변이 벡터로 변환하고, 상기 변환된 주변 블록의 변이 벡터를 이용하여 상기 현재 블록의 변이 벡터를 결정하는 영상 처리 장치.
  46. 제43항에 있어서,
    상기 움직임 벡터 결정부는,
    상기 결정된 현재 블록의 변이 벡터를 이용하여 상기 현재 블록이 포함된 컬러 영상의 주변 컬러 영상에서의 위치를 식별하고, 상기 식별된 위치에서의 움직임 벡터를 상기 현재 블록의 움직임 벡터로 결정하는 영상 처리 장치.
  47. 컬러 영상의 현재 블록에 이웃하는 적어도 하나의 주변 블록의 움직임 벡터를 추출하는 움직임 벡터 추출부; 및
    상기 적어도 하나의 주변 블록의 움직임 벡터에 기초하여 상기 현재 블록의 움직임 벡터를 결정하는 움직임 벡터 결정부
    를 포함하는 영상 처리 장치.
  48. 제47항에 있어서,
    상기 움직임 벡터 추출부는,
    상기 주변 블록이 움직임 벡터를 가지고 있지 않은 경우, 상기 컬러 영상에 대응하는 깊이 영상을 이용하여 상기 주변 블록의 움직임 벡터를 결정하는 영상 처리 장치.
  49. 제48항에 있어서,
    상기 움직임 벡터 추출부는,
    상기 깊이 영상에 포함된 적어도 하나의 픽셀을 식별하고, 상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하며, 상기 변환된 변이 벡터를 이용하여 상기 주변 블록의 움직임 벡터를 상기 컬러 영상의 주변 컬러 영상에서 탐색하는 영상 처리 장치.
  50. 컬러 영상에 포함된 현재 블록의 변이 벡터를 결정하는 영상 처리 장치에 있어서,
    상기 영상 처리 장치는, 상기 컬러 영상에 대응하는 깊이 영상의 깊이 정보를 이용하여 상기 현재 블록의 변이 벡터를 결정하고,
    상기 결정된 변이 벡터는, 상기 현재 블록에 대응하는 깊이 영상에 포함된 적어도 하나의 픽셀의 깊이값에 기초하여 결정되는 영상 처리 장치.
  51. 제50항에 있어서,
    상기 영상 처리 장치는,
    상기 깊이 영상에 포함된 픽셀들 중 적어도 하나의 픽셀을 식별하고, 상기 식별된 픽셀의 깊이값 중 가장 큰 깊이값을 변이 벡터로 변환하여 상기 현재 블록의 변이 벡터로 결정하는 영상 처리 장치.
PCT/KR2013/008563 2012-09-28 2013-09-25 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치 WO2014051320A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201380051109.1A CN104704832B (zh) 2012-09-28 2013-09-25 用于预测运动矢量和视差矢量的图像处理方法和设备
US14/432,410 US20150245049A1 (en) 2012-09-28 2013-09-25 Image processing method and apparatus for predicting motion vector and disparity vector

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201261707524P 2012-09-28 2012-09-28
US61/707,524 2012-09-28
US201261746272P 2012-12-27 2012-12-27
US61/746,272 2012-12-27
KR10-2013-0112962 2013-09-24
KR1020130112962A KR102137266B1 (ko) 2012-09-28 2013-09-24 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치

Publications (1)

Publication Number Publication Date
WO2014051320A1 true WO2014051320A1 (ko) 2014-04-03

Family

ID=50388626

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/008563 WO2014051320A1 (ko) 2012-09-28 2013-09-25 움직임 벡터와 변이 벡터를 예측하는 영상 처리 방법 및 장치

Country Status (1)

Country Link
WO (1) WO2014051320A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2801154C1 (ru) * 2020-04-10 2023-08-02 Самсунг Электроникс Ко., Лтд. Устройство и способ для кодирования вектора движения и устройство и способ для декодирования вектора движения
US11997286B2 (en) 2020-04-10 2024-05-28 Samsung Electronics Co., Ltd. Device and method for encoding motion vector, and device and method for decoding motion vector

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060129433A (ko) * 2004-03-01 2006-12-15 이아티아 이미징 피티와이 엘티디 깊이 정보를 포함하는 영상을 생성하기 위한 방법 및 장치
KR20100014553A (ko) * 2007-04-25 2010-02-10 엘지전자 주식회사 비디오 신호의 인코딩/디코딩 방법 및 장치
KR20100064031A (ko) * 2008-12-04 2010-06-14 삼성전자주식회사 깊이 영상을 보정하는 방법 및 장치
KR20110003549A (ko) * 2008-04-25 2011-01-12 톰슨 라이센싱 깊이 신호의 코딩
KR20120080122A (ko) * 2011-01-06 2012-07-16 삼성전자주식회사 경쟁 기반의 다시점 비디오 부호화/복호화 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060129433A (ko) * 2004-03-01 2006-12-15 이아티아 이미징 피티와이 엘티디 깊이 정보를 포함하는 영상을 생성하기 위한 방법 및 장치
KR20100014553A (ko) * 2007-04-25 2010-02-10 엘지전자 주식회사 비디오 신호의 인코딩/디코딩 방법 및 장치
KR20110003549A (ko) * 2008-04-25 2011-01-12 톰슨 라이센싱 깊이 신호의 코딩
KR20100064031A (ko) * 2008-12-04 2010-06-14 삼성전자주식회사 깊이 영상을 보정하는 방법 및 장치
KR20120080122A (ko) * 2011-01-06 2012-07-16 삼성전자주식회사 경쟁 기반의 다시점 비디오 부호화/복호화 장치 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2801154C1 (ru) * 2020-04-10 2023-08-02 Самсунг Электроникс Ко., Лтд. Устройство и способ для кодирования вектора движения и устройство и способ для декодирования вектора движения
RU2818966C2 (ru) * 2020-04-10 2024-05-08 Самсунг Электроникс Ко., Лтд. Устройство и способ для кодирования вектора движения и устройство и способ для декодирования вектора движения
US11997286B2 (en) 2020-04-10 2024-05-28 Samsung Electronics Co., Ltd. Device and method for encoding motion vector, and device and method for decoding motion vector

Similar Documents

Publication Publication Date Title
WO2018026118A1 (ko) 영상 부호화/복호화 방법
WO2020180155A1 (ko) 비디오 신호를 처리하기 위한 방법 및 장치
WO2021025451A1 (ko) 움직임 정보 후보를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2018097693A2 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018066867A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018030773A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2017204532A1 (ko) 영상 부호화/복호화 방법 및 이를 위한 기록 매체
WO2018070809A1 (ko) 영상 처리 방법, 그를 이용한 영상 복호화 및 부호화 방법
WO2018097692A2 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2017204427A1 (ko) 영상 처리 방법, 그를 이용한 영상 복호화 및 부호화 방법
WO2017026681A1 (ko) 비디오 코딩 시스템에서 인터 예측 방법 및 장치
WO2012005520A2 (en) Method and apparatus for encoding video by using block merging, and method and apparatus for decoding video by using block merging
WO2017086748A1 (ko) 기하 변환 영상을 이용하는 영상의 부호화/복호화 방법 및 장치
WO2020004990A1 (ko) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2019066524A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2021054676A1 (ko) Prof를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2020085800A1 (ko) 서브블록 기반의 모션 보상을 이용한 비디오 신호 처리 방법 및 장치
WO2020096428A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020096427A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2019182295A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019190199A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020180129A1 (ko) 인터 예측을 위한 비디오 신호의 처리 방법 및 장치
WO2019194653A1 (ko) 움직임 정보의 복합적 머지 모드 처리를 제공하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치
WO2019194514A1 (ko) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2019216714A1 (ko) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13842611

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14432410

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 13842611

Country of ref document: EP

Kind code of ref document: A1