WO2012153440A1 - 予測ベクトル生成方法、予測ベクトル生成装置、予測ベクトル生成プログラム、画像符号化方法、画像符号化装置、画像符号化プログラム、画像復号方法、画像復号装置、及び画像復号プログラム - Google Patents

予測ベクトル生成方法、予測ベクトル生成装置、予測ベクトル生成プログラム、画像符号化方法、画像符号化装置、画像符号化プログラム、画像復号方法、画像復号装置、及び画像復号プログラム Download PDF

Info

Publication number
WO2012153440A1
WO2012153440A1 PCT/JP2011/079631 JP2011079631W WO2012153440A1 WO 2012153440 A1 WO2012153440 A1 WO 2012153440A1 JP 2011079631 W JP2011079631 W JP 2011079631W WO 2012153440 A1 WO2012153440 A1 WO 2012153440A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
image
prediction vector
unit
depth map
Prior art date
Application number
PCT/JP2011/079631
Other languages
English (en)
French (fr)
Inventor
貴也 山本
Original Assignee
シャープ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シャープ株式会社 filed Critical シャープ株式会社
Publication of WO2012153440A1 publication Critical patent/WO2012153440A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors

Definitions

  • the present invention relates to a prediction vector generation method, a prediction vector generation device, a prediction vector generation program, an image encoding method, an image encoding device, an image encoding program, an image decoding method, an image decoding device, and an image decoding program.
  • An image encoding apparatus using this method divides an image into blocks, searches for a region having a high correlation with the divided block from a reference image that has already been encoded or decoded, and based on the reference image of the searched region. To generate a predicted image.
  • the image encoding apparatus encodes the position of the searched area as a motion vector.
  • Non-Patent Document 1 discloses a code for generating a prediction vector based on a motion vector of a block adjacent to a block to be encoded and encoding a difference between the motion vector of the block to be encoded and the generated prediction vector. The conversion method is described.
  • Japanese Patent Application Laid-Open No. 2004-151867 discloses an encoding method for calculating a prediction vector by block matching an edge image showing a portion where a pixel value changes spatially in a reference image and an edge image of a residual image of an encoding target block. Is described.
  • Non-Patent Document 1 when the correlation between the motion vector of the encoding target block and the motion vector of the adjacent block is low, the prediction vector can approximate the motion vector of the encoding target block. However, there is a problem of reducing the encoding efficiency. Since the encoding method described in Patent Document 1 uses a residual signal to generate a prediction vector, in the case where the residual signal is not encoded or decoded (for example, skipped macroblock mode). There is a problem that it cannot be used.
  • the present invention has been made in view of the above points, and its purpose is to provide a prediction vector generation method, an image encoding method, an image decoding method, an image encoding device, an image decoding device, an image encoding program, and an image code. Is to provide a computerized program.
  • the present invention has been made in order to solve the above-described problems, and one aspect of the present invention provides a past for each block which is a partial region constituting a texture image composed of luminance values for each pixel.
  • a prediction vector generation method executed by a prediction vector generation device that predicts a motion vector indicating a movement amount from a texture image of the texture image, wherein the prediction vector generation device includes a motion vector of one of the blocks, A depth map block that is an area corresponding to the one block among depth maps including a motion vector of an adjacent block adjacent to one block and a depth value indicating a distance from the viewpoint for each pixel, and the one block Is a region corresponding to the one block of the reference depth map which is a depth map encoded or decoded in the past.
  • a predictive vector generation method characterized by having a prediction vector generating step of generating a predicted vector.
  • the prediction vector generation step includes a step of calculating an initial prediction vector based on a motion vector of the adjacent block, the initial prediction vector, the depth map block, and the reference depth.
  • the prediction vector generation method according to (1) including a step of calculating the prediction vector based on a correlation with a map block.
  • a prediction vector that predicts a motion vector indicating a movement amount from a past texture image for each block, which is a partial region constituting a texture image composed of luminance values for each pixel.
  • the depth maps comprising a motion vector of one of the blocks, a motion vector of an adjacent block adjacent to the one block, and a depth value indicating a distance from the viewpoint for each pixel.
  • Prediction characterized by comprising a prediction vector generation unit that generates a prediction vector based on a block of a reference depth map A vector generation device.
  • Another aspect of the present invention is a prediction vector for predicting a motion vector indicating a movement amount from a past texture image for each block, which is a partial region constituting a texture image composed of luminance values for each pixel.
  • the depth maps comprising a motion vector of one of the blocks, a motion vector of an adjacent block adjacent to the one block, and a depth value indicating a distance from the viewpoint for each pixel.
  • Prediction vector generation to execute a procedure to generate a prediction vector based on a block of the reference depth map Is a program.
  • the motion vector indicating the movement amount from the past texture image is predicted for each block which is a partial area constituting the texture image including the luminance value for each pixel
  • An image encoding method executed by an image encoding apparatus that encodes a texture image wherein the image encoding apparatus includes a motion vector of one of the blocks and an adjacent block adjacent to the one block.
  • the depth map that is a region corresponding to the one block of the depth map indicating the distance from the viewpoint of each pixel and the depth value indicating the distance from the viewpoint for each pixel, and the past corresponding to the one block or Based on a reference depth map block that is an area corresponding to the one block of the reference depth map that is a decoded depth map.
  • An image encoding method characterized by having a prediction vector generating step of generating a predicted vector.
  • the motion vector indicating the amount of movement from the past texture image is predicted for each block that is a partial region constituting the texture image including the luminance value for each pixel
  • An image encoding apparatus for encoding a texture image, the motion vector of one of the blocks, the motion vector of an adjacent block adjacent to the one block, and the distance from the viewpoint for each pixel The depth map block that is an area corresponding to the one block in the depth map composed of depth values, and the reference depth map that is a depth map that has been encoded or decoded in the past corresponding to the one block.
  • a prediction vector generation unit is provided that generates a prediction vector based on a reference depth map block that is an area corresponding to one block.
  • the motion vector indicating the amount of movement from the past texture image is predicted for each block which is a partial region constituting the texture image including the luminance value for each pixel, and Shows the motion vector of one of the blocks, the motion vector of an adjacent block adjacent to the one block, and the distance from the viewpoint for each pixel to the computer of the image encoding device that encodes the texture image
  • the depth map block that is an area corresponding to the one block in the depth map composed of depth values, and the reference depth map that is a depth map that has been encoded or decoded in the past corresponding to the one block.
  • the motion vector indicating the amount of movement from the past texture image is predicted for each block, which is a partial region constituting the texture image including the luminance value for each pixel, and
  • An image decoding method executed by an image decoding apparatus for decoding a texture image wherein the image decoding apparatus includes: a motion vector of one block of the blocks; and a motion vector of an adjacent block adjacent to the one block.
  • a depth map block that is an area corresponding to the one block in a depth map including a depth value indicating a distance from the viewpoint for each pixel, and a depth that has been encoded or decoded in the past corresponding to the one block
  • a prediction vector is calculated.
  • An image decoding method characterized by having a prediction vector generating process of generating a torque.
  • the motion vector indicating the amount of movement from the past texture image is predicted for each block that is a partial region constituting the texture image including the luminance value for each pixel
  • An image decoding apparatus for decoding a texture image wherein a motion vector of one of the blocks, a motion vector of an adjacent block adjacent to the one block, and a depth value indicating a distance from a viewpoint for each pixel
  • a depth map block that is an area corresponding to the one block of the depth map, and the one block of a reference depth map that is a depth map previously encoded or decoded corresponding to the one block.
  • a prediction vector generation unit that generates a prediction vector based on a block of a reference depth map that is an area corresponding to It is an image decoding apparatus according to claim.
  • the motion vector indicating the amount of movement from the past texture image is predicted for each block which is a partial region constituting the texture image including the luminance value for each pixel, and Depth value indicating the distance from the viewpoint for each pixel, the motion vector of one of the blocks, the motion vector of an adjacent block adjacent to the one block, and the computer of the image decoding apparatus that decodes the texture image
  • an image can be encoded or decoded with excellent encoding efficiency.
  • FIG. 1 is a schematic diagram illustrating a three-dimensional image capturing system according to a first embodiment of the present invention. It is the schematic which shows the structure of the image coding apparatus which concerns on this embodiment. It is the schematic which shows the structure of the prediction vector production
  • FIG. 1 is a schematic diagram illustrating a three-dimensional image capturing system according to the present embodiment.
  • This image capturing system includes an image capturing device 31, an image capturing device 32, an image preprocessing unit 21, and an image encoding device 1.
  • the imaging device 31 and the imaging device 32 are set at different positions (viewpoints) and take images of subjects included in the same visual field at predetermined time intervals.
  • the imaging device 31 and the imaging device 32 each output an image signal indicating the captured image to the image preprocessing unit 21.
  • This image signal is a signal value (luminance value) representing the color and shade of the subject and background included in the subject space, and is an image signal composed of signal values for each pixel arranged on a two-dimensional plane.
  • This image signal is an image signal having a signal value representing a color space for each pixel, for example, an RGB signal.
  • the RGB signal includes an R signal that represents the luminance value of the red component, a G signal that represents the luminance value of the green component, and a B signal that represents the luminance value of the blue component.
  • the image pre-processing unit 21 may refer to an image input from one of the imaging device 31 and the imaging device 32, for example, the imaging device 31, as a texture image (“text map”; “reference image”, “two-dimensional image”). .) Therefore, the texture image is also a signal value (luminance value) representing the color and shading of the subject and background included in the subject space, and is a general two-dimensional signal composed of signal values for each pixel arranged on the two-dimensional plane. It is an image signal.
  • the image preprocessing unit 21 calculates the parallax between the texture image and the image input from the other imaging device 32 for each pixel, and generates a depth map.
  • a depth map (sometimes referred to as a depth map, “depth image”, or “distance image”) is a signal value corresponding to a distance from a subject or background viewpoint (such as a photographing device) included in the subject space. It may be referred to as “depth value”, “depth value”, or “depth”), and is an image signal composed of signal values for each pixel arranged on a two-dimensional plane.
  • the pixels constituting the depth map correspond to the pixels constituting the texture image. Therefore, the depth map is a clue for representing a three-dimensional object space using a texture image that is a reference image signal obtained by projecting the object space in two dimensions.
  • the image prefix processing unit 21 outputs the texture image and the generated depth map to the image encoding device 1.
  • the number of imaging devices provided in the image capturing system is not limited to two, and may be three or more. Further, the texture image and the depth map input to the image encoding device 1 do not have to be based on images captured by the imaging device 31 and the imaging device 32, and may be images synthesized in advance, for example.
  • FIG. 2 is a schematic diagram illustrating a configuration of the image encoding device 1 according to the present embodiment.
  • the image encoding device 1 includes a texture image input unit 101, a depth map encoding unit 102, a depth map memory 103, a reference image memory 104, a motion search unit 105, a motion vector memory 106, a prediction vector generation unit 107, a subtraction unit 108, A subtractor 109, a DCT unit 110, a quantizer 111, an inverse quantizer 112, an inverse DCT unit 113, an adder 114 and an information source encoder 115 are configured.
  • the texture image input unit 101 receives the texture image from the image preprocessing unit 21 for each frame, and extracts a block (texture image block) from the input texture image.
  • the texture image input unit 101 outputs the extracted texture image block to the motion search unit 105 and the subtraction unit 109.
  • the texture image block includes a predetermined number of pixels (for example, 3 pixels in the horizontal direction ⁇ 3 pixels in the vertical direction).
  • the texture image input unit 101 shifts the position of the block from which the texture image block is extracted in the raster scan order so that the blocks do not overlap. That is, the texture image input unit 101 sequentially moves a block from which a texture image block is extracted from the upper left end of the frame to the right by the number of pixels in the horizontal direction of the block. After the right end of the block from which the texture image block is extracted reaches the right end of the frame, the texture image input unit 101 moves the block downward by the number of pixels in the vertical direction of the block and to the left end of the frame. The texture image input unit 101 moves the block from which the texture image block is extracted in this way until it reaches the lower right of the frame.
  • the extracted texture image block may be referred to as an encoding target block or a target block.
  • the depth map encoding unit 102 receives the depth map from the image preprocessing unit 21 for each frame, and a known image encoding method for each block constituting each frame, for example, ITU-T H.264.
  • the depth map is encoded using an encoding method corresponding to the decoding method described in the H.264 standard.
  • the depth map encoding unit 102 outputs the depth map code generated by encoding to the outside of the image encoding device 1.
  • the depth map encoding unit 102 outputs the reference signal block generated in the encoding process to the depth map memory 103 as a depth block.
  • the reference signal block generated in the encoding process is generated based on the depth map code obtained also on the decoding side.
  • the depth map memory 103 arranges the depth block input from the depth map encoding unit 102 at the position of the encoding target block in the corresponding frame and stores it as a depth map. This depth map is obtained by encoding and then decoding a depth map input in the past. This decoded depth map is called a reference depth map.
  • the depth map memory 103 sequentially stores the depth maps of the past frames for a preset number of frames (for example, 5 frames) from the current time, and deletes the depth maps of the previous past frames.
  • a depth map block having the same coordinates in the same frame (time) as the input texture image block is referred to as a target depth block.
  • a block that is a partial area of the reference depth map and has the same size (number of pixels) as the texture image block is referred to as a reference depth block.
  • the reference image memory 104 arranges the reference image block input from the adding unit 114 at the position of the encoding target block in the corresponding frame and stores it as a reference image.
  • This reference image block is an image block obtained by encoding and decoding a texture image block input in the past.
  • An image signal of a frame configured by arranging reference image blocks in this way is referred to as a reference image.
  • the reference image memory 104 sequentially stores reference images of frames that have been set in advance from the current number of frames (for example, 5 frames), and deletes the reference images of the previous frames.
  • the motion search unit 105 reads a reference image block constituting a reference image from the reference image memory 104.
  • the size (number of pixels) of the reference image block read by the motion search unit 105 is the same as the size of the texture image block.
  • the motion search unit 105 performs block matching between the texture image block input from the texture image input unit 101 and the reference image block. That is, the position at which the reference image block is read from the frame of the past reference image stored in the reference image memory 104 is set one pixel at a time in the horizontal direction or the vertical direction within a preset range from the position of the input texture image block. Move.
  • the motion search unit 105 detects a difference between the input coordinate of the texture image block and the coordinate of the most similar reference image block as a motion vector.
  • the motion search unit 105 performs an index value indicating the similarity between the signal value for each pixel included in the texture image block and the signal for each pixel included in the reference image block, for example, SAD (Sum of Absolute Difference, difference). (Absolute value sum) is calculated.
  • the motion search unit 105 determines the reference image block that minimizes the index value as the reference image block that is most similar to the texture image block.
  • the motion search unit 105 calculates a motion vector based on the coordinates of the texture image block and the determined coordinates of the reference image block.
  • the motion search unit 105 performs motion prediction based on the determined reference image block, and generates a predicted image block.
  • motion prediction the motion search unit 105 generates a predicted image block, for example, by matching the coordinates of the determined reference image block with the coordinates of the input texture image block.
  • the motion search unit 105 outputs the generated predicted image block to the subtraction unit 109 and the addition unit 114, stores the motion vector in the motion vector memory 106, and outputs the motion vector to the subtraction unit 108.
  • the motion search unit 105 receives the prediction vector from the prediction vector generation unit 107.
  • the motion search unit 105 calculates a difference vector between the calculated motion vector and the input prediction vector, calculates the absolute value of the horizontal component of the calculated difference vector, the absolute value of the vertical component, the texture image block, the texture image block, and the most.
  • the sum of the index values between similar reference blocks is calculated as the first cost value.
  • the motion search unit 105 reads a reference image block from the reference image memory 104 as a predicted reference image block from the coordinates obtained by adding the input prediction vector and the coordinates of the encoding target image block.
  • the motion search unit 105 calculates an index value between the read prediction reference block and the texture image block as the second cost value.
  • the motion search unit 105 compares the calculated first cost value with the second cost value, and when the second cost value is smaller, the motion search unit 105 indicates that the coding mode is the skipped macroblock mode. Generate a mode signal.
  • the motion search unit 105 outputs the generated encoding mode signal to the information source encoding unit 115 (this path is indicated by a broken line).
  • the motion vector memory 106 stores the motion vector input from the motion search unit 105 for each frame and block.
  • the prediction vector generation unit 107 reads out motion vectors of blocks adjacent to the target block and subjected to processing related to encoding, for example, blocks adjacent to the left, upper, and upper right of the target block.
  • the prediction vector generation unit 107 determines an initial prediction vector based on the read motion vector.
  • the prediction vector generation unit 107 reads the target depth block and the reference depth block from the depth map memory 103. Similar to the motion search unit 105, the prediction vector generation unit 107 performs block matching between the target depth block and the reference depth block, and determines a reference depth block having the smallest index value with the target depth block.
  • the prediction vector generation unit 107 sets the initial value of the coordinates for reading the reference depth block as coordinates based on the determined initial prediction vector.
  • the prediction vector generation unit 107 calculates a difference in coordinates of the target depth block as a prediction vector from the determined coordinates of the reference depth block.
  • the prediction vector generation unit 107 outputs the calculated prediction vector to the motion search unit 105 and the subtraction unit 108. The configuration and processing of the prediction vector generation unit 107 will be described later.
  • the subtraction unit 108 subtracts the prediction vector input from the prediction vector generation unit 107 from the motion vector input from the motion search unit 105 to calculate a difference vector.
  • the subtraction unit 108 outputs the calculated difference vector to the information source encoding unit 115.
  • the subtracting unit 109 subtracts the signal value of each pixel included in the predicted image block input from the motion search unit 105 from the signal value of each pixel included in the texture image block input from the texture image input unit 101, A residual signal block is calculated.
  • the subtraction unit 109 outputs the calculated residual signal block to the DCT unit 110.
  • the DCT unit 110 performs two-dimensional DCT (Discrete Cosine Transform) on the residual signal block input from the subtracting unit 109 and calculates DCT coefficients as a frequency domain signal.
  • the DCT unit 110 outputs the calculated DCT coefficient to the quantization unit 111.
  • the quantization unit 111 quantizes the DCT coefficient input from the DCT unit 110 to generate a quantized DCT coefficient.
  • the quantization is a process of converting an input DCT coefficient into one of discrete representative values.
  • the quantization unit 111 outputs the generated quantized DCT coefficient to the inverse quantization unit 112 and the information source coding unit 115.
  • the inverse quantization unit 112 performs inverse quantization (de-quantization) on the quantized DCT coefficient input from the quantization unit 111 to generate an inverse quantized DCT coefficient.
  • the inverse quantization unit 112 outputs the generated inverse quantization DCT coefficient to the inverse DCT unit 113.
  • the inverse DCT unit 113 performs a two-dimensional inverse DCT (Inverse Discrete Cosine Transform) on the inversely quantized DCT coefficient input from the inverse quantizer 112 and decodes the residual signal as a spatial domain signal. Generate a block.
  • this residual signal block is referred to as a decoded residual signal block.
  • the inverse DCT unit 113 outputs the generated decoded residual signal block to the adding unit 114.
  • the adding unit 114 adds the signal value of each pixel included in the predicted image block input from the motion search unit 105 and the signal value of each pixel included in the decoded residual signal block input from the inverse DCT unit 113. To generate a reference image block.
  • the adding unit 114 stores the generated reference image block in the reference image memory 104.
  • the information source encoding unit 115 encodes the quantized DCT coefficient input from the quantization unit 111 and the difference vector input from the subtraction unit 108, and generates an encoded stream.
  • the information source encoding unit 115 performs, for example, variable length encoding as encoding for generating an encoded stream having a smaller amount of information than input information.
  • the variable-length coding is a coding method that compresses the amount of information by converting shorter codes for information with higher appearance frequency into longer codes for information with lower appearance frequency in input information.
  • the information source encoding unit 115 when the information source encoding unit 115 receives an encoding mode signal indicating that it is a skipped macroblock mode from the motion search unit 105, the information source encoding unit 115 does not use the quantized DCT coefficient and the difference vector.
  • the encoded encoding mode signal is encoded to generate an encoded stream.
  • the skipped macroblock mode is an encoding mode (or decoding mode) in which a texture image block is decoded based on a reference signal block and a prediction vector without decoding a residual signal block.
  • the information source encoding unit 115 outputs the generated encoded stream to the outside of the image encoding device 1.
  • FIG. 3 is a schematic diagram illustrating a configuration of the prediction vector generation unit 107 according to the present embodiment.
  • the prediction vector generation unit 107 includes a motion vector prediction unit 1071 and a block matching unit 1072.
  • the motion vector prediction unit 1071 receives the motion vector of the encoding target block from the motion vector memory 106 and a block that is adjacent to the encoding target block and has already undergone processing related to encoding, for example, the encoding target block.
  • the motion vectors of the left adjacent, top adjacent, and upper right adjacent blocks are read out.
  • FIG. 4 is a conceptual diagram illustrating an example of a prediction vector according to the present embodiment.
  • the upper part of FIG. 4 shows the depth map f1 corresponding to the texture image of the encoding target frame.
  • a rectangular frame on the right side of the depth map f1 indicates the target depth block bf1.
  • the lower part of FIG. 4 shows the reference depth map r0 stored in the depth map memory 104.
  • the rectangular frame on the right side of the reference depth map r0 indicates the reference depth block br0 indicated by the initial prediction vector generated by the motion vector prediction unit 1071, and the rectangular frame on the right side of the reference depth block br0 is generated by the block matching unit 1072.
  • the reference depth block br1 indicated by the predicted vector is shown.
  • the motion vector predicting unit 1071 extracts the median value of the horizontal component and the median value of the vertical component from the vector of the read adjacent block (the block adjacent to the left, top, and top right or top left). .
  • the motion vector prediction unit 1071 generates an initial prediction vector by using the extracted median value of the horizontal component and vertical component, and outputs the generated initial prediction vector to the block matching unit 1072.
  • the block matching unit 1072 reads the target depth block and the reference depth block from the depth map memory 103, and receives the initial prediction vector from the motion vector prediction unit 1071.
  • the block matching unit 1072 performs block matching between the target depth block and the reference depth block, and determines a reference depth block that is most similar to the target depth block (having the smallest index value).
  • the block matching unit 1072 determines an area from which a reference depth block is read, with coordinates calculated based on the initial prediction vector input from the coordinates of the target depth block as initial values.
  • the reference depth block changes the coordinates of the area from which the reference depth block is read within a predetermined range from its initial value, one pixel at a time in the horizontal or vertical direction.
  • the range for changing the coordinates for reading the reference depth block may be determined in advance according to the processing capability of the image encoding device 1 or the image decoding device 4 described later.
  • the range is, for example, 16 pixels in the horizontal direction ⁇ 16 pixels in the vertical direction, 32 pixels in the horizontal direction ⁇ 32 pixels in the vertical direction, and the like.
  • the block matching unit 1072 calculates a prediction vector based on the coordinates of the reference depth block and the coordinates of the target depth block. When there are a plurality of reference depth blocks having the same index value, the block matching unit 1072 determines a reference depth block spatially closest to the coordinates indicated by the initial prediction vector and its depth prediction vector. The block matching unit 1072 discards prediction vectors corresponding to other reference depth blocks. The block matching unit 1072 outputs the determined prediction vector to the motion search unit 105 and the subtraction unit 109.
  • FIG. 5 is a flowchart showing an image encoding process performed by the image encoding device 1 according to the present embodiment.
  • the texture image input unit 101 receives a texture image from the image preprocessing unit 21 for each frame. Then, it progresses to step S102.
  • the depth map encoding unit 102 inputs a depth map for each frame from the image preprocessing unit 21, and encodes each depth block constituting each frame.
  • the depth map encoding unit 102 outputs the depth map code generated by encoding to the outside of the image encoding device 1. Thereafter, the process proceeds to step S103.
  • the depth map encoding unit 102 stores the reference signal block generated in the encoding process in the depth map memory 103 as a depth block. Thereafter, the process proceeds to step S104.
  • Step S104 The image encoding device 1 performs the processing of steps S105 to S122 for each block included in the input frame.
  • Step S105 The texture image input unit 101 extracts a texture image block that is an encoding target block from the input texture image, and outputs the extracted texture image block to the motion search unit 105 and the subtraction unit 109. Thereafter, the process proceeds to step S106.
  • the prediction vector generation unit 107 reads a motion vector of a block that is adjacent to the target block and has undergone processing related to encoding.
  • the prediction vector generation unit 107 determines an initial prediction vector based on the read motion vector, and sets the initial value of coordinates for reading the reference depth block based on the determined initial prediction vector.
  • the prediction vector generation unit 107 reads the target depth block and the reference depth block from the depth map memory 103, and performs block matching between the target depth block and the reference depth block.
  • the prediction vector generation unit 107 determines a reference depth block having the smallest index value with respect to the target depth block, and calculates a prediction vector based on the determined coordinates of the reference depth block and the coordinates of the target depth block.
  • the prediction vector generation unit 107 outputs the calculated prediction vector to the motion search unit 105 and the subtraction unit 108.
  • the prediction vector generation process performed by the prediction vector generation unit 107 will be described later. Thereafter, the process proceeds to step S107.
  • Step S107 The motion search unit 105 reads a reference image block from the reference image memory 104, and performs block matching between the read reference image block and the texture image block input from the texture image input unit 101. In block matching, the motion search unit 105 determines a texture image block and a reference image block having the smallest index value, and calculates a motion vector based on the coordinates of the determined reference image block and texture image block. The motion search unit 105 generates a predicted image block by matching the coordinates of the determined reference image block with the coordinates of the input texture image block. The motion search unit 105 outputs the calculated motion vector to the motion vector memory 106 and the subtraction unit 108. The motion search unit 105 outputs the generated predicted image block to the subtraction unit 109 and the addition unit 114. Thereafter, the process proceeds to step S108.
  • the motion search unit 105 receives a prediction vector from the prediction vector generation unit 107.
  • the motion search unit 105 calculates a difference vector between the calculated motion vector and the input prediction vector, and calculates the sum of the absolute value of the horizontal component, the absolute value of the vertical component, and the index value of the calculated difference vector as the first cost. Calculate as a value.
  • the motion search unit 105 reads a reference image block from the reference image memory 104 as a predicted reference image block from coordinates based on the input prediction vector.
  • the motion search unit 105 calculates an index value between the read prediction reference block and the texture image block as the second cost value.
  • the motion search unit 105 compares the calculated first cost value with the second cost value, and when the second cost value is smaller, the motion search unit 105 indicates that the coding mode is the skipped macroblock mode. Generate a mode signal. The motion search unit 105 outputs the generated encoding mode signal to the information source encoding unit 115. Thereafter, the process proceeds to step S109.
  • Step S109 The subtraction unit 109 calculates the signal value of each pixel included in the predicted image block input from the motion search unit 105 from the signal value of each pixel included in the texture image block input from the texture image input unit 101. Subtraction is performed to calculate a residual signal block. The subtraction unit 109 outputs the calculated residual signal block to the DCT unit 110. Then, it progresses to step S110.
  • Step S ⁇ b> 110 The DCT unit 110 performs two-dimensional DCT on the residual signal block input from the subtraction unit 109 to calculate a DCT coefficient. The DCT unit 110 outputs the calculated DCT coefficient to the quantization unit 111. Then, it progresses to step S111.
  • Step S111 The quantization unit 111 quantizes the DCT coefficient input from the DCT unit 110, and generates a quantized DCT coefficient.
  • the quantization unit 111 outputs the generated quantized DCT coefficient to the inverse quantization unit 112 and the information source coding unit 115. Thereafter, the process proceeds to step S112.
  • Step S112 The inverse quantization unit 112 performs inverse quantization on the quantized DCT coefficient input from the quantization unit 111 to generate an inverse quantized DCT coefficient.
  • the inverse quantization unit 112 outputs the generated inverse quantization DCT coefficient to the inverse DCT unit 113. Thereafter, the process proceeds to step S113.
  • Step S113 The inverse DCT unit 113 performs two-dimensional inverse DCT on the inverse quantized DCT coefficient input from the inverse quantization unit 112, and generates a decoded residual signal block.
  • the inverse DCT unit 113 outputs the generated decoded residual signal block to the adding unit 114. Thereafter, the process proceeds to step S114.
  • Step S114 The addition unit 114 receives the signal value of each pixel included in the predicted image block input from the motion search unit 105 and the signal of each pixel included in the decoded residual signal block input from the inverse DCT unit 113.
  • the reference image block is generated by adding the values. Thereafter, the process proceeds to step S115.
  • Step S ⁇ b> 115 The adding unit 114 stores the generated reference image block in the reference image memory 104. Thereafter, the process proceeds to step S116.
  • Step S116 The motion vector memory 106 stores the motion vector input from the motion search unit 105 for each frame and block. Thereafter, the process proceeds to step S117.
  • Step S117 The subtraction unit 108 subtracts the prediction vector input from the prediction vector generation unit 107 from the motion vector input from the motion search unit 105 to calculate a difference vector.
  • the subtraction unit 108 outputs the calculated difference vector to the information source encoding unit 115. Thereafter, the process proceeds to step S118.
  • Step S118 The information source encoding unit 115 determines whether or not an encoding mode signal indicating a skipped macroblock mode has been input from the motion search unit 105. When the information source encoding unit 115 determines that the encoding mode signal indicating the skipped macroblock mode is input (Y in step S118), the information source encoding unit 115 proceeds to step S120. When the information source encoding unit 115 determines that the encoding mode signal indicating the skipped macroblock mode has not been input (NO in step S118), the information source encoding unit 115 proceeds to step S119.
  • Step S119 The information source encoding unit 115 encodes the quantized DCT coefficient input from the quantization unit 111 and the difference vector input from the subtraction unit 108, and generates an encoded stream. Thereafter, the process proceeds to step S121.
  • Step S120 The information source encoding unit 115 encodes the encoding mode signal input from the motion search unit 105, and generates an encoded stream. Thereafter, the process proceeds to step S121.
  • Step S121 The information source encoding unit 115 outputs the generated encoded stream to the outside of the image encoding device 1. Thereafter, the process proceeds to step S122.
  • Step S122 The image encoding device 1 sequentially changes the encoding target block in the order of raster scan, and returns to step S104. However, if the image encoding device 1 determines that there is no block that has not yet been subjected to encoding processing in the frame of the input texture image, it ends the processing for that frame.
  • FIG. 6 is a flowchart showing a prediction vector generation process in the prediction vector generation unit 107 according to the present embodiment.
  • the motion vector predicting unit 1071 (FIG. 3) has already performed processing related to encoding from the motion vector memory 106, the motion vector of the encoding target block, and a block adjacent to the encoding target block. Read the motion vector of the block.
  • the motion vector prediction unit 1071 extracts the median value of the horizontal component and the median value of the vertical component from the read adjacent block vector.
  • the motion vector prediction unit 1071 generates an initial prediction vector by using the extracted median value of the horizontal component and vertical component, and outputs the generated initial prediction vector to the block matching unit 1072. Thereafter, the process proceeds to step S202.
  • Step S202 The block matching unit 1072 reads the target depth block from the depth map memory 103, and receives the initial prediction vector from the motion vector prediction unit 1071.
  • the block matching unit 1072 determines an initial value of coordinates for reading the reference depth block based on the coordinates of the encoding target block and the input initial prediction vector.
  • the block matching unit 1072 repeats the processing of steps S203 to S204 using coordinates within a predetermined range from the determined initial value as coordinates for reading the reference depth block. Thereafter, the process proceeds to step S203.
  • Step S203 The block matching unit 1072 reads the reference depth block from the depth map memory 103, and calculates index values of the read reference depth block and the target depth block. Thereafter, the process proceeds to step S204.
  • Step S204 The block matching unit 1072 changes the coordinates for reading out the reference depth block one pixel at a time in the horizontal direction or the vertical direction. However, the block matching unit 1072 proceeds to step S205 when the process of step S203 is performed for all coordinates within a predetermined range.
  • the block matching unit 1072 determines a reference depth block having the smallest index value of the target depth block, and calculates a prediction vector based on the determined coordinates of the reference depth block and the coordinates of the target depth block.
  • the block matching unit 1072 outputs the calculated prediction vector to the motion search unit 105 and the subtraction unit 109, and ends the process.
  • the prediction vector generation unit 406 described below outputs the prediction vector calculated in step S205 to the addition unit 404.
  • the prediction vector generation unit 107 and the prediction vector generation unit 406 use the coordinates indicated by the initial prediction vector when performing block matching as the initial values of the coordinates for reading the reference depth block.
  • the reference depth block read based on this initial value is similar to the target depth block and the reference depth block. Therefore, for example, even when the image of the entire frame moves remarkably due to a change in the position of the photographing device or the optical axis direction, the reduction or increase in the number of processing repetitions is suppressed, and the processing efficiency is improved.
  • FIG. 7 is a schematic diagram illustrating a configuration of the image decoding device 4 according to the present embodiment.
  • the image decoding device 4 includes an information source decoding unit 401, a depth map decoding unit 402, a depth map memory 403, an addition unit 404, a motion vector memory 405, a prediction vector generation unit 406, an inverse quantization unit 407, an inverse DCT unit 408, an addition 409, a reference image memory 410, a motion compensation unit 411, and an image output unit 412.
  • the information source decoding unit 401 decodes an encoded stream for each block input from the outside of the image decoding device 4, generates a quantized DCT coefficient and a difference vector, or encodes indicating a skipped macroblock mode Generate a mode signal.
  • the decoding method performed by the information source decoding unit 401 is a process opposite to the encoding method performed by the information source encoding unit 115. That is, when the information source encoding unit 115 performs variable length encoding, the information source decoding unit 401 performs variable length decoding.
  • the information source decoding unit 401 outputs the generated difference vector to the addition unit 404.
  • the information source decoding unit 401 When the information source decoding unit 401 generates the quantized DCT coefficient, the information source decoding unit 401 outputs the generated quantized DCT coefficient to the inverse quantization unit 407.
  • the information source decoding unit 401 When the information source decoding unit 401 generates a coding mode signal indicating the skipped macroblock mode, the information source decoding unit 401 outputs a quantized DCT coefficient indicating that the value is zero to the inverse quantization unit 407.
  • the information source decoding unit 401 outputs a difference vector indicating that the value is zero to the adding unit 404.
  • the residual signal described later is also zero, and the image decoding device 4 generates a decoded image without using the residual signal. Therefore, in this case, the inverse DCT unit 408 may generate a residual signal in which the signal value of each pixel becomes zero, and output the generated residual signal to the adding unit 409.
  • the depth map decoding unit 402 receives a depth map code for each block from the outside of the image decoding device 4, and a known image decoding method such as ITU-T H.264. Decoding is performed using a decoding method described in the H.264 standard.
  • the depth map decoding unit 402 stores the depth block generated by decoding in the depth map memory 403 and outputs the depth block to the outside of the image decoding device 4.
  • the depth map memory 403 arranges the depth block input from the depth map decoding unit 402 at the position of the decoding target block in the corresponding frame and stores it as a depth map.
  • the addition unit 404 adds the difference vector input from the information source decoding unit 401 and the prediction vector input from the prediction vector generation unit 406 to generate a motion vector.
  • the addition unit 404 stores the generated motion vector in the motion vector memory 405 and outputs the motion vector to the motion compensation unit 411.
  • the motion vector memory 405 stores the motion vector input from the adding unit 404 for each frame and block.
  • the prediction vector generation unit 406 reads a motion vector of a block that is adjacent to the decoding target block and that has performed processing related to decoding.
  • the prediction vector generation unit 406 calculates a prediction vector based on the read motion vector, the target depth block and the reference depth block read from the depth map memory 403.
  • the configuration and processing for the prediction vector generation unit 406 to calculate the prediction vector are the same as those of the prediction vector generation unit 107 (see FIGS. 3 and 6).
  • the prediction vector generation unit 406 outputs the calculated prediction vector to the addition unit 404.
  • the inverse quantization unit 407 performs inverse quantization on the quantized DCT coefficient input from the information source decoding unit 401 to generate an inverse quantized DCT coefficient.
  • the inverse quantization unit 407 outputs the generated inverse quantization DCT coefficient to the inverse DCT unit 408.
  • the inverse DCT unit 408 performs two-dimensional inverse DCT on the inverse quantized DCT coefficient input from the inverse quantization unit 407 and generates a decoded residual signal block as a spatial domain signal.
  • the inverse DCT unit 408 outputs the decoded residual signal block to the addition unit 409.
  • the adding unit 409 adds the signal value of each pixel included in the prediction image block input from the motion compensation unit 411 and the signal value of each pixel included in the decoded residual signal block input from the inverse DCT unit 408. To generate a reference image block.
  • the adder 409 stores the generated reference image block in the reference image memory 410 and outputs it to the image output unit 412.
  • the reference image memory 410 arranges the reference image block input from the adding unit 409 at the position of the decoding target block in the corresponding frame and stores it as a reference image.
  • the reference image memory 410 stores a reference image of a past frame for a preset number of frames (for example, 5 frames) from the present, and deletes a reference image of a past frame before that.
  • the motion compensation unit 411 reads a reference image block that constitutes a reference image from the reference image memory 410.
  • the coordinates at which the motion compensation unit 411 reads the reference image block are coordinates compensated by adding the motion vector input from the addition unit 404 to the coordinates of the decoding target block.
  • the motion compensation unit 411 outputs the read reference image block to the addition unit 409 as a predicted image block.
  • the image output unit 412 generates the reference image for each frame by arranging the reference image block input from the adder 409 at the position of the decoding target block in the corresponding frame.
  • the image output unit 412 outputs the generated reference image as a decoded texture image to the outside of the image decoding device 4 for each frame.
  • FIG. 8 is a flowchart showing an image decoding process performed by the image decoding device 4 according to this embodiment.
  • the image decoding device 4 performs the processing of steps S302 to S314 for each block.
  • the information source decoding unit 401 receives an encoded stream for each block from the outside of the image decoding device 4. Thereafter, the process proceeds to step S303.
  • the information source decoding unit 401 decodes the input encoded stream, generates a quantized DCT coefficient and a difference vector, or generates a coding mode signal indicating the skipped macroblock mode.
  • the information source decoding unit 401 outputs the generated difference vector to the addition unit 404. Thereafter, the process proceeds to step S304.
  • Step S304 The information source decoding unit 401 determines whether or not there is an encoding mode signal indicating that the generated signal is a skipped macroblock mode. When the information source decoding unit 401 determines that the generated signal includes a coding mode signal indicating the skipped macroblock mode (Y in step S304), the information source decoding unit 401 proceeds to step S305. When the information source decoding unit 401 determines that there is no coding mode signal indicating that the generated signal is in the skipped macroblock mode (N in step S304), the information source decoding unit 401 proceeds to step S306.
  • Step S305 The information source decoding unit 401 outputs a quantized DCT coefficient indicating that the value is zero to the inverse quantization unit 407.
  • the information source decoding unit 401 outputs a difference vector indicating that the value is zero to the adding unit 404. Thereafter, the process proceeds to step S306.
  • Step S306 The inverse quantization unit 407 performs inverse quantization on the quantized DCT coefficient input from the information source decoding unit 401, and generates an inverse quantized DCT coefficient.
  • the inverse quantization unit 407 outputs the generated inverse quantization DCT coefficient to the inverse DCT unit 408. Thereafter, the process proceeds to step S307.
  • Step S307 The inverse DCT unit 408 performs two-dimensional inverse DCT on the inverse quantized DCT coefficient input from the inverse quantization unit 407, and generates a decoded residual signal block.
  • the inverse DCT unit 408 outputs the decoded residual signal block to the addition unit 409. Thereafter, the process proceeds to step S308.
  • Step S308 The depth map decoding unit 402 decodes a depth map code input from the outside of the image decoding device 4, and generates a depth block.
  • the depth map decoding unit 402 stores the generated depth block in the depth map memory 403. Thereafter, the process proceeds to step S309.
  • Step S309) The prediction vector generation unit 406 reads a motion vector of a block that is adjacent to the decoding target block and that has performed processing related to decoding.
  • the prediction vector generation unit 406 calculates a prediction vector based on the read motion vector, the target depth block and the reference depth block read from the depth map memory 403.
  • generation part 406 performs the prediction vector production
  • Step S310 The addition unit 404 adds the difference vector input from the information source decoding unit 401 and the prediction vector input from the prediction vector generation unit 406 to generate a motion vector.
  • the addition unit 404 stores the generated motion vector in the motion vector memory 405 and outputs the motion vector to the motion compensation unit 411. Thereafter, the process proceeds to step S311.
  • Step S 311) The motion compensation unit 411 determines coordinates for reading the reference image block based on the motion vector input from the addition unit 404, and calculates the reference image block from the coordinates determined by the reference image stored in the reference image memory 410. read out.
  • the motion compensation unit 411 outputs the read reference image block to the addition unit 409 as a predicted image block. Thereafter, the process proceeds to step S312.
  • Step S312 The addition unit 409 receives the signal value of each pixel included in the predicted image block input from the motion compensation unit 411 and the signal of each pixel included in the decoded residual signal block input from the inverse DCT unit 408.
  • the reference image block is generated by adding the values. Thereafter, the process proceeds to step S313.
  • Step S ⁇ b> 313) The addition unit 409 stores the generated reference image block in the reference image memory 410 and outputs it to the image output unit 412. Thereafter, the process proceeds to step S314.
  • Step S314 The image decoding apparatus 4 changes the decoding target block in the raster scan order, and returns to step S302. However, when the image decoding apparatus 4 determines that there is no block that has not been decoded in the frame of the input encoded stream, the image decoding apparatus 4 ends the processing for the frame.
  • the motion vector indicating the amount of movement from the past texture image is predicted for each block that is a partial region constituting the texture image including the luminance value for each pixel, and
  • a depth map comprising a motion vector of one of the blocks, a motion vector of an adjacent block adjacent to the one block, and a depth value indicating a distance from the viewpoint for each pixel.
  • the blocks of the depth map that are areas corresponding to the one block, and the areas corresponding to the one block of the reference depth map that is a depth map that was previously encoded or decoded corresponding to the one block.
  • a prediction vector is generated based on the reference depth map block.
  • the texture image is predicted by predicting the motion vector indicating the amount of movement from the past texture image for each block which is a partial region constituting the texture image including the luminance value for each pixel. Is decoded, among the depth maps composed of the motion vectors of one of the blocks, the motion vectors of adjacent blocks adjacent to the one block, and the depth value indicating the distance from the viewpoint for each pixel.
  • a depth map block that is an area corresponding to one block and a reference that is an area corresponding to the one block among reference depth maps that are previously encoded or decoded corresponding to the one block.
  • a prediction vector is generated based on the block of the depth map.
  • the motion vector of the encoding target block is corrected based on the depth map of the corresponding frame to generate a prediction vector. Therefore, the generated prediction vector approximates the motion vector of the encoding target block. Therefore, even if the similarity between the motion vector of the encoding target block and the motion vector of the adjacent block is low, this embodiment can reduce the prediction error of the prediction vector and improve the encoding efficiency. .
  • FIG. 9 is a schematic diagram illustrating a configuration of the image encoding device 5 according to the present embodiment.
  • the image encoding device 5 includes a texture image input unit 101, a depth map encoding unit 102, a depth map memory 103, a reference image memory 104, a motion search unit 105, a motion vector memory 106, a prediction vector generation unit 507, a subtraction unit 108, A subtractor 109, a DCT unit 110, a quantizer 111, an inverse quantizer 112, an inverse DCT unit 113, an adder 114 and an information source encoder 115 are configured.
  • the image encoding device 5 is different in that a prediction vector generation unit 507 is provided instead of the prediction vector generation unit 107 of the image encoding device 2 shown in FIG. Other configurations are the same. Similar to the prediction vector generation unit 107, the prediction vector generation unit 507 reads a motion vector from the motion vector memory 106, and reads a target depth map and a reference depth map from the depth map memory 103. In addition, the prediction vector generation unit 507 generates a prediction vector based on the read motion vector, target depth map, and reference depth map, and outputs the generated prediction vector to the subtraction unit 108.
  • FIG. 10 is a schematic diagram illustrating a configuration of the prediction vector generation unit 507 according to the present embodiment.
  • the prediction vector generation unit 507 includes a motion vector prediction unit 5071, a block matching unit 5072, an edge image generation unit 5073, and a prediction vector determination unit 5074.
  • the motion vector prediction unit 5071 receives the motion vector of the encoding target block from the motion vector memory 106 and a block that is adjacent to the encoding target block and has already undergone processing related to encoding, for example, the encoding target block.
  • the motion vectors of the left adjacent, top adjacent, and upper right adjacent blocks are read out. However, when the encoding target block is the rightmost block of the frame, since there is no upper right adjacent block, the motion vector prediction unit 5071 may read the motion vector of the upper left adjacent block.
  • the motion vector predicting unit 5071 extracts the median value of the horizontal component and the median value of the vertical component from the vector of the read adjacent block (the block adjacent to the left, top, and top right or top left).
  • the motion vector prediction unit 5071 generates an initial prediction vector using the extracted median value of the horizontal component and the median value of the vertical component, and outputs the generated initial prediction vector to the block matching unit 5072 and the prediction vector determination unit 5074.
  • the block matching unit 5072 reads the target depth block and the reference depth block from the depth map memory 103, and receives the initial prediction vector from the motion vector prediction unit 5071.
  • the block matching unit 5072 performs block matching between the target depth block and the reference depth block, and determines a reference depth block that is most similar to the target depth block (having the smallest index value).
  • the block matching unit 5072 determines an area from which a reference depth block is read, with coordinates calculated based on the initial prediction vector input from the coordinates of the target depth block as initial values.
  • the reference depth block changes the coordinates of the area from which the reference depth block is read within a predetermined range from its initial value, one pixel at a time in the horizontal or vertical direction.
  • the block matching unit 5072 calculates a candidate vector based on the coordinates of the reference depth block and the coordinates of the target depth block. When there are a plurality of reference depth blocks having the same index value, the block matching unit 5072 determines a reference depth block spatially closest to the coordinates indicated by the initial prediction vector and its candidate vector. The block matching unit 5072 rejects candidate vectors corresponding to other reference depth blocks. The block matching unit 5072 outputs the determined candidate vector to the predicted vector determination unit 5074. The block matching unit 5072 outputs the determined reference depth block to the edge image generation unit 5073.
  • the edge image generation unit 5073 performs edge detection processing on the target depth block read from the depth map memory 103, and generates an edge image block indicating a region (pixel) where the edge is detected.
  • the edge image generation unit 5073 outputs the generated edge image block to the prediction vector determination unit 5074.
  • An edge is a region where a spatial change in signal value is significant.
  • the edge image block includes, for each pixel, a signal value indicating whether or not an edge is detected, for example, a signal value indicating whether or not the spatial change of the depth value is larger than a preset threshold value.
  • the edge image generation unit 5073 uses, for example, a 3-by-3 Sobel filter shown in Expression (1). That is, the Sobel filter is a filter that gives a gradient of signal values between pixels adjacent in the horizontal direction and a gradient of signal values between pixels adjacent in the vertical direction.
  • the edge image generation unit 5073 multiplies a sub-block of 3 pixels in the horizontal direction and 3 pixels in the vertical direction including the pixel (center pixel) as a center by applying a Sobel filter to generate a pixel.
  • the slope of each signal value is calculated.
  • the signal value of the top row, bottom row, leftmost column or rightmost column of each sub-block is The value is equal to the signal value of the center value.
  • the edge image generation unit 5073 determines a signal value (for example, 1) indicating that it is an edge for a pixel in which the absolute value of the calculated gradient for each pixel is larger than a preset threshold value.
  • the edge image generation unit 5073 determines a signal value (for example, 0) indicating that the calculated absolute value of the gradient for each pixel is not an edge for a pixel equal to or smaller than a preset threshold value.
  • the edge image generation unit 5073 outputs a signal value indicating whether or not each pixel is an edge to the prediction vector determination unit 5074 as an edge image block.
  • the prediction vector determination unit 5074 receives the initial prediction vector from the motion vector prediction unit 5071, the candidate vector from the block matching unit 5072, and the edge image block from the edge image generation unit 1273.
  • the prediction vector determination unit 5074 determines whether an edge component is detected in the target depth block based on the input edge image block. For example, when the input edge image block includes a signal value indicating an edge, the prediction vector determination unit 5074 determines that an edge component has been detected. In this case, the prediction vector determination unit 5074 outputs the candidate vector as a prediction vector to the motion search unit 105 and the subtraction unit 108.
  • the predictive vector determination unit 5074 determines that no edge component is detected when there is no signal value indicating that the input edge image block is not an edge. In this case, the prediction vector determination unit 5074 outputs the initial prediction vector to the motion search unit 105 and the subtraction unit 108 as a prediction vector.
  • FIG. 11 is a flowchart showing prediction vector generation processing in the prediction vector generation units 507 and 606 according to the present embodiment.
  • Step S401 The motion vector predicting unit 5071 stores the motion vector of the block to be encoded from the motion vector memory 106 and the motion vector of the block that is adjacent to the block to be encoded and has already been subjected to the encoding process. Is read.
  • the motion vector prediction unit 5071 extracts the median value of the horizontal component and the median value of the vertical component from the read adjacent block vector.
  • the motion vector prediction unit 5071 generates an initial prediction vector using the extracted median value of the horizontal component and the median value of the vertical component, and outputs the generated initial prediction vector to the block matching unit 5072 and the prediction vector determination unit 5074. Thereafter, the process proceeds to step S402.
  • Step S402 The block matching unit 5072 reads the target depth block from the depth map memory 103, and receives an initial prediction vector from the motion vector prediction unit 5071.
  • the block matching unit 5072 determines an initial value of coordinates for reading the reference depth block based on the coordinates of the encoding target block and the input initial prediction vector.
  • the block matching unit 5072 repeats the processes of steps S403 to S404.
  • the coordinates for reading the reference depth block are coordinates within a predetermined range from the predetermined initial value. Thereafter, the process proceeds to step S403.
  • Step S403 The block matching unit 5072 reads the reference depth block from the depth map memory 103, and calculates the index value of the read reference depth block and the target depth block. Thereafter, the process proceeds to step S404.
  • Step S404 The block matching unit 5072 changes the coordinates for reading the reference depth block one pixel at a time in the horizontal direction or the vertical direction. However, the block matching unit 5072 proceeds to step S405 when the process of step S403 is performed for all coordinates within a predetermined range.
  • Step S405 The block matching unit 5072 determines a reference depth block having the smallest index value of the target depth block, and calculates a candidate vector based on the determined coordinates of the reference depth block and the coordinates of the target depth block.
  • the block matching unit 5072 outputs the calculated candidate vector to the predicted vector determination unit 5074. Thereafter, the process proceeds to step S406.
  • Step S406 The edge image generation unit 5073 performs edge detection processing on the target depth block read from the depth map memory 103 using, for example, a Sobel filter represented by Expression (1), and generates an edge image block.
  • the edge image generation unit 5073 outputs the generated edge image block to the prediction vector determination unit 5074. Thereafter, the process proceeds to step S407.
  • Step S407 The prediction vector determination unit 5074 receives the initial prediction vector from the motion vector prediction unit 5071, the candidate vector from the block matching unit 5072, and the edge image block from the edge image generation unit 5073. The prediction vector determination unit 5074 determines whether an edge is detected in the target depth block based on the input edge image block. If the predicted vector determination unit 5074 detects an edge (Y in step S407), the process proceeds to step S408. If the predicted vector determining unit 5074 does not detect an edge (N in step S407), the process proceeds to step S409.
  • the prediction vector determination unit 5074 determines the candidate vector as a prediction vector, outputs the determined prediction vector to the motion search unit 105 and the subtraction unit 108, and ends the process. (Step S409) The prediction vector determination unit 5074 determines the initial prediction vector as a prediction vector, outputs the determined prediction vector to the motion search unit 105 and the subtraction unit 108, and ends the process.
  • FIG. 12 is a schematic diagram illustrating the configuration of the image decoding device 6 according to the present embodiment.
  • the image decoding device 6 includes an information source decoding unit 401, a depth map decoding unit 402, a depth map memory 403, an addition unit 404, a motion vector memory 405, a prediction vector generation unit 606, an inverse quantization unit 407, an inverse DCT unit 408, an addition. 409, a reference image memory 410, a motion compensation unit 411, and an image output unit 412.
  • the image decoding device 6 is different in that a prediction vector generation unit 606 is provided instead of the prediction vector generation unit 406 of the image decoding device 4 shown in FIG. Other configurations are the same.
  • the prediction vector generation unit 606 Similar to the prediction vector generation unit 406, the prediction vector generation unit 606 reads a motion vector from the motion vector memory 405 and reads a target depth map and a reference depth map from the depth map memory 403. In addition, the prediction vector generation unit 606 generates a prediction vector based on the read motion vector, target depth map, and reference depth map, and outputs the generated prediction vector to the addition unit 404. Further, the prediction vector generation unit 606 has the same configuration as the prediction vector generation unit 507 shown in FIG. 10, and performs the same processing as the prediction vector generation processing shown in FIG.
  • the initial prediction vector is calculated based on the motion vector of the adjacent block, it is determined whether the edge component is detected from the depth block, and when it is determined that the edge component is not detected, the initial prediction vector is calculated. It is defined as the prediction vector. Accordingly, in the present embodiment, by detecting an edge component in the target depth block, a subject with a change in the subject distance and a pattern portion without a change in the subject distance from a spatial change in the signal value in the target texture image block. It is possible to distinguish the outer edge portion of. In the former case, the prediction vector is determined based on the texture image block, and in the latter case, the prediction vector is determined based on the depth block, so that the estimation accuracy of the prediction vector and thus the coding efficiency is improved.
  • the prediction vector generation units 107, 406, and 507 and the prediction vector generation unit 606 may output the candidate vectors calculated by the block matching units 1072 and 5072 as prediction vectors.
  • the block matching units 1072 and 5072 calculate a candidate vector using a preset coordinate value as an initial value.
  • the motion vector prediction units 1071 and 5071 may read the motion vector of the upper left adjacent block from the motion vector memories 106 and 405.
  • the number of pixels included in the texture image block, the reference image block, the depth block, and the reference depth block is 3 pixels in the horizontal direction ⁇ 3 pixels in the vertical direction, but the present embodiment is not limited thereto. In this embodiment, as long as the number of pixels can be arranged in at least 2 blocks in the horizontal direction and 2 blocks or more in the vertical direction, for example, 4 pixels in the horizontal direction ⁇ 4 pixels in the vertical direction or 8 pixels in the horizontal direction ⁇ 8 pixels in the vertical direction. , Etc.
  • a part of the image encoding device 1, the image decoding device 4, the image encoding device 5, and the image decoding device 6 in the above-described embodiment for example, the motion search unit 105, the prediction vector generation unit 107, the subtraction unit 108, and the subtraction Unit 109, DCT unit 110, quantization unit 111, inverse quantization unit 112, inverse DCT unit 113, addition unit 114, information source encoding unit 115, information source decoding unit 401, addition unit 404, prediction vector generation unit 406,
  • the inverse quantization unit 407, the inverse DCT unit 408, the addition unit 409, the motion compensation unit 411, the prediction vector generation unit 507, and the prediction vector generation unit 606 may be realized by a computer.
  • the program for realizing the control function may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read by a computer system and executed.
  • the “computer system” is a computer system built in the image encoding device 1, the image decoding device 4, the image encoding device 5, or the image decoding device 6, and includes hardware such as an OS and peripheral devices. Wear.
  • the “computer-readable recording medium” refers to a storage device such as a flexible medium, a magneto-optical disk, a portable medium such as a ROM or a CD-ROM, and a hard disk incorporated in a computer system.
  • the “computer-readable recording medium” is a medium that dynamically holds a program for a short time, such as a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line,
  • a volatile memory inside a computer system serving as a server or a client may be included and a program that holds a program for a certain period of time.
  • the program may be a program for realizing a part of the functions described above, and may be a program capable of realizing the functions described above in combination with a program already recorded in a computer system.
  • part or all of the image encoding device 1, the image decoding device 4, the image encoding device 5, and the image decoding device 6 in the above-described embodiment is realized as an integrated circuit such as an LSI (Large Scale Integration). Also good.
  • LSI Large Scale Integration
  • Each functional block of the image encoding device 1, the image decoding device 4, the image encoding device 5, and the image decoding device 6 may be individually made into a processor, or a part or all of them may be integrated into a processor.
  • the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. Further, in the case where an integrated circuit technology that replaces LSI appears due to progress in semiconductor technology, an integrated circuit based on the technology may be used.
  • Image encoding device 101 ... texture image input unit, 102 ... Depth map encoding unit, 103 ... depth map memory, 104: Reference image memory, 105 ... motion search unit, 106 ... motion vector memory, 107 ... predicted vector generation unit, 1071 ... Motion vector prediction unit, 1072 ... Block matching unit, 108, 109 ... subtraction unit, 110 ... DCT section, 111 ... Quantization unit, 112 ... Inverse quantization unit, 113 ... Inverse DCT section, 114 ... addition part, 115 ... Information source encoding unit, 21: Image pre-processing unit, 31, 32 ... photographing apparatus, 4 Image decoding device, 401 ...
  • information source decoding unit 402: Depth map decoding unit, 403 ... Depth map memory, 404 ... addition part, 405 ... motion vector memory, 406 ... Predicted vector generator, 407 ... Inverse quantization unit, 408 ... Inverse DCT section, 409 ... addition unit, 410 ... reference image memory, 411: Motion compensation unit, 412: Image output unit, 5: Image encoding device, 507 ... a prediction vector generation unit, 5071 ... a motion vector prediction unit, 5072 ... Block matching unit, 5073 ... an edge image generation unit, 5074 ... Predictive vector discrimination unit, 6: Image decoding device, 606 ... Predicted vector generation unit

Landscapes

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

Abstract

画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を符号化し、予測ベクトル生成部は、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックに基づいて、予測ベクトルを生成する。これにより優れた符号化効率を奏する予測ベクトル生成方法、画像符号化方法、及び画像復号方法等を提供する。

Description

予測ベクトル生成方法、予測ベクトル生成装置、予測ベクトル生成プログラム、画像符号化方法、画像符号化装置、画像符号化プログラム、画像復号方法、画像復号装置、及び画像復号プログラム
 本発明は、予測ベクトル生成方法、予測ベクトル生成装置、予測ベクトル生成プログラム、画像符号化方法、画像符号化装置、画像符号化プログラム、画像復号方法、画像復号装置、及び画像復号プログラムに関する。
 本願は、2011年5月9日に、日本に出願された特願2011-104511号に基づき優先権を主張し、その内容をここに援用する。
動画像の符号化においては、動き補償フレーム間予測を行う方式が提案され、国際標準化規格であるMPEG(Moving Picture Experts Group)-2、MPEG-4、MPEG-4 AVC/H.264で採用されている。動き補償フレーム間予測では、動画像の時間方向の相関性を利用して情報量を削減している。この方式を用いた画像符号化装置は、画像をブロック単位に分割し、分割されたブロックと相関が高い領域を既に符号化又は復号した参照画像から探索し、探索された領域の参照画像に基づいて予測画像を生成する。ここで、画像符号化装置は、探索された領域の位置を動きベクトルとして符号化する。
例えば、非特許文献1には、符号化対象のブロックと隣接するブロックの動きベクトルに基づき予測ベクトルを生成し、符号化対象のブロックの動きベクトルと生成した予測ベクトルとの差分を符号化する符号化方式が記載されている。
 特許文献1には、参照画像において画素値が空間的に急激に変化する部分を示すエッジ画像と符号化対象ブロックの残差画像のエッジ画像とをブロックマッチングして予測ベクトルを算出する符号化方式が記載されている。
特開2010-103683号公報
大久保榮 監修、角野眞也、菊池義浩、鈴木輝彦 共編、動きベクトルの予測、「改訂三版 H.264/AVC教科書」、インプレスR&D、2009年1月1日、p.123-125
しかしながら、非特許文献1に記載の符号化方式は、符号化対象ブロックの動きベクトルと隣接ブロックの動きベクトルとの間の相関性が低い場合、予測ベクトルは符号化対象ブロックの動きベクトルを近似できず、符号化効率を低下させる問題がある。
 特許文献1に記載の符号化方式は、予測ベクトルを生成するために残差信号を用いるため、残差信号を符号化又は復号しない場合(例えば、スキップト・マクロブロックモード(skipped macroblock mode))では利用できないという問題がある。
 本発明は上記の点に鑑みてなされたものであり、その目的は、予測ベクトル生成方法、画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、画像符号化プログラム、及び画像符号化プログラムを提供することにある。
(1)本発明は上記の課題を解決するためになされたものであり、本発明の一態様は、画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測する予測ベクトル生成装置が実行する予測ベクトル生成方法であって、前記予測ベクトル生成装置が、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックとに基づいて、予測ベクトルを生成する予測ベクトル生成過程を有することを特徴とする予測ベクトル生成方法である。
(2)本発明のその他の態様は、前記予測ベクトル生成過程は、前記隣接ブロックの動きベクトルに基づき初期予測ベクトルを算出する過程と、前記初期予測ベクトルと、前記デプスマップのブロックと前記参照デプスマップのブロックとの相関に基づいて前記予測ベクトルを算出する過程を有することを特徴とする(1)の予測ベクトル生成方法である。
(3)本発明のその他の態様は、前記予測ベクトル生成過程は、前記デプスマップのブロックからエッジ成分を検出したか否か判断し、エッジ成分を検出しないと判断した場合、前記算出した初期予測ベクトルを前記予測ベクトルと定める過程を有することを特徴とする(2)の予測ベクトル生成方法である。
(4)本発明のその他の態様は、画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測する予測ベクトル生成装置であって、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックに基づいて、予測ベクトルを生成する予測ベクトル生成部を備えることを特徴とする予測ベクトル生成装置である。
(5)本発明のその他の態様は、画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測する予測ベクトル生成装置のコンピュータに、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックに基づいて、予測ベクトルを生成する手順を実行させるための予測ベクトル生成プログラムである。
(6)本発明のその他の態様は、画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を符号化する画像符号化装置が実行する画像符号化方法であって、前記画像符号化装置が、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックに基づいて、予測ベクトルを生成する予測ベクトル生成過程を有することを特徴とする画像符号化方法である。
(7)本発明のその他の態様は、画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を符号化する画像符号化装置であって、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックに基づいて、予測ベクトルを生成する予測ベクトル生成部を備えることを特徴とする画像符号化装置である。
(8)本発明のその他の態様は、画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を符号化する画像符号化装置のコンピュータに、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックに基づいて、予測ベクトルを生成する手順を実行させることを特徴とする画像符号化プログラムである。
(9)本発明のその他の態様は、画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を復号する画像復号装置が実行する画像復号方法であって、前記画像復号装置が、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックに基づいて、予測ベクトルを生成する予測ベクトル生成過程を有することを特徴とする画像復号方法である。
(10)本発明のその他の態様は、画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を復号する画像復号装置であって、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックに基づいて、予測ベクトルを生成する予測ベクトル生成部を備えることを特徴とする画像復号装置である。
(11)本発明のその他の態様は、画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を復号する画像復号装置のコンピュータに、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックに基づいて、予測ベクトルを生成する手順を実行させることを特徴とする画像復号プログラム。
 本発明によれば、優れた符号化効率で画像を符号化又は復号することができる。
本発明の第1の実施形態に係る3次元画像撮影システムを示す概略図である。 本実施形態に係る画像符号化装置の構成を示す概略図である。 本実施形態に係る予測ベクトル生成部の構成を示す概略図である。 本実施形態に係る予測ベクトルの一例を示す概念図である。 本実施形態に係る画像符号化装置が行う画像符号化処理を示すフローチャートである。 本実施形態に係る予測ベクトル生成部における予測ベクトル生成処理を示すフローチャートである。 本実施形態に係る画像復号装置の構成を示す概略図である。 本実施形態に係る画像復号装置が行う画像復号処理を示すフローチャートである。 本発明の第2の実施形態に係る画像符号化装置の構成を示す概略図である。 本実施形態に係る予測ベクトル生成部の構成を示す概略図である。 本実施形態に係る予測ベクトル生成部における予測ベクトル生成処理を示すフローチャートである。 本実施形態に係る画像復号装置6の構成を示す概略図である。
(第1の実施形態)
 以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図1は、本実施形態に係る3次元画像撮影システムを示す概略図である。
 この画像撮影システムは、撮影装置31、撮影装置32、画像前置処理部21及び画像符号化装置1を含んで構成される。
 撮影装置31及び撮影装置32は、互いに異なる位置(視点)に設置され同一の視野に含まれる被写体の画像を予め定めた時間間隔で撮影する。撮影装置31及び撮影装置32は、撮影した画像を示す画像信号をそれぞれ画像前置処理部21に出力する。
この画像信号は、被写空間に含まれる被写体や背景の色彩や濃淡を表す信号値(輝度値)であって、二次元平面に配置された画素毎の信号値からなる画像信号である。この画像信号は、画素毎に色空間を表す信号値を有する画像信号、例えばRGB信号である。RGB信号は、赤色成分の輝度値を表すR信号、緑色成分の輝度値を示すG信号、青色成分の輝度値を示すB信号を含む。
 画像前置処理部21は、撮影装置31及び撮影装置32のいずれか一方、例えば撮影装置31から入力された画像をテクスチャ画像(texture map;「基準画像」、「二次元画像」ということがある。)と定める。従って、テクスチャ画像も被写空間に含まれる被写体や背景の色彩や濃淡を表す信号値(輝度値)であって、二次元平面に配置された画素毎の信号値からなる一般的な二次元の画像信号である。
画像前置処理部21は、テクスチャ画像と、他の撮影装置32から入力された画像との視差を画素毎に算出し、デプスマップを生成する。デプスマップ(depth map、「深度画像」、「距離画像」ということがある。)とは、被写空間に含まれる被写体や背景の視点(撮影装置等)からの距離に対応する信号値(「デプス値」、「深度値」、「デプス」ということがある。)であって、二次元平面に配置された画素毎の信号値からなる画像信号である。デプスマップを構成する画素は、テクスチャ画像を構成する画素と対応する。従って、デプスマップは、被写空間を二次元に射影した基準となる画像信号であるテクスチャ画像を用いて、三次元の被写空間を表すための手がかりとなる。
画像前置処理部21は、テクスチャ画像と生成したデプスマップを画像符号化装置1に出力する。
 なお、本実施形態では、画像撮影システムが備える撮影装置の数は2台に限らず、3台以上であってもよい。また、画像符号化装置1が入力されるテクスチャ画像及びデプスマップは、撮影装置31及び撮影装置32が撮影した画像に基づくものでなくともよく、例えば、予め合成された画像であってもよい。
 次に、本実施形態に係る画像符号化装置1の構成及び機能について説明する。
 図2は、本実施形態に係る画像符号化装置1の構成を示す概略図である。
 画像符号化装置1は、テクスチャ画像入力部101、デプスマップ符号化部102、デプスマップメモリ103、参照画像メモリ104、動き探索部105、動きベクトルメモリ106、予測ベクトル生成部107、減算部108、減算部109、DCT部110、量子化部111、逆量子化部112、逆DCT部113、加算部114及び情報源符号化部115を含んで構成される。
テクスチャ画像入力部101は、画像前置処理部21からテクスチャ画像をフレーム毎に入力され、入力されたテクスチャ画像からブロック(テクスチャ画像ブロック)を抽出する。
テクスチャ画像入力部101は、抽出したテクスチャ画像ブロックを動き探索部105及び減算部109に出力する。テクスチャ画像ブロックは、予め定めた数の画素(例えば、水平方向3画素×垂直方向3画素)からなる。
テクスチャ画像入力部101は、ラスタースキャンの順序でテクスチャ画像ブロックを抽出するブロックの位置を、各ブロックが重ならないようにシフトさせる。即ち、テクスチャ画像入力部101は、テクスチャ画像ブロックを抽出するブロックをフレームの左上端から順次ブロックの水平方向の画素数だけ右に移動させる。テクスチャ画像入力部101は、テクスチャ画像ブロックを抽出するブロックの右端がフレームの右端に達した後、そのブロックをブロックの垂直方向の画素数だけ下で、かつフレームの左端に移動させる。テクスチャ画像入力部101は、このようにしてテクスチャ画像ブロックを抽出するブロックがフレームの右下に達するまで移動させる。なお、以下では、抽出されたテクスチャ画像ブロックを符号化対象ブロック又は対象ブロックと呼ぶことがある。
 デプスマップ符号化部102は、画像前置処理部21からデプスマップをフレーム毎に入力され、各フレームを構成するブロック毎に公知の画像符号化方法、例えばITU-T H.264規格書に記載されている復号方法に対応する符号化方法を用いてデプスマップを符号化する。デプスマップ符号化部102は、符号化して生成したデプスマップ符号を画像符号化装置1の外部に出力する。デプスマップ符号化部102は、符号化の過程で生成した参照信号ブロックをデプスブロックとしてデプスマップメモリ103に出力する。この符号化の過程で生成した参照信号ブロックは、復号側でも得られるデプスマップ符号に基づいて生成したものである。
デプスマップメモリ103は、デプスマップ符号化部102から入力されたデプスブロックを、対応するフレームにおける符号化対象ブロックの位置に配置してデプスマップとして記憶する。このデプスマップは、過去に入力されたデプスマップを符号化し、次いで復号したものである。この復号したデプスマップを参照デプスマップと呼ぶ。デプスマップメモリ103は、現在から予め設定されたフレーム数(例えば5フレーム)過去のフレームのデプスマップを順次に記憶し、それ以前の過去のフレームのデプスマップを削除する。
以下では、入力されたテクスチャ画像ブロックと同一のフレーム(時刻)で同一の座標のデプスマップのブロックを対象デプスブロックと呼ぶ。参照デプスマップの一部の領域であって、テクスチャ画像ブロックと同一の大きさ(画素数)のブロックを参照デプスブロックと呼ぶ。
参照画像メモリ104は、加算部114から入力された参照画像ブロックを、対応するフレームにおける符号化対象ブロックの位置に配置して参照画像として記憶する。この参照画像ブロックは、過去に入力されたテクスチャ画像ブロックを符号化し、復号された画像ブロックである。このように参照画像ブロックを配置して構成したフレームの画像信号を参照画像と呼ぶ。参照画像メモリ104は、現在から予め設定されたフレーム数(例えば5フレーム)過去のフレームの参照画像を順次に記憶し、それ以前の過去のフレームの参照画像を削除する。
動き探索部105は、参照画像メモリ104から参照画像を構成する参照画像ブロックを読み出す。動き探索部105が読み出す参照画像ブロックの大きさ(画素数)はテクスチャ画像ブロックの大きさと同一である。ここで、動き探索部105は、テクスチャ画像入力部101から入力されたテクスチャ画像ブロックと参照画像ブロックとの間でブロックマッチングを行う。即ち、参照画像メモリ104に記憶されている過去の参照画像のフレームから参照画像ブロックを読み出す位置を、入力されたテクスチャ画像ブロックの位置から予め設定した範囲内において水平方向又は垂直方向に1画素ずつ移動させる。動き探索部105は、入力されたテクスチャ画像ブロックの座標と最も類似する参照画像ブロックの座標との差分を、動きベクトルとして検出する。
ここで、動き探索部105は、テクスチャ画像ブロックに含まれる画素毎の信号値と参照画像ブロックに含まれる画素毎の信号との類似性を示す指標値、例えば、SAD(Sum of Absolute Difference、差分絶対値和)を算出する。動き探索部105は、指標値を最小とする参照画像ブロックを、テクスチャ画像ブロックと最も類似する参照画像ブロックと定める。動き探索部105は、テクスチャ画像ブロックの座標と定めた参照画像ブロックの座標に基づき動きベクトルを算出する。
動き探索部105は、定めた参照画像ブロックに基づき動き予測を行い、予測画像ブロックを生成する。動き探索部105は、動き予測において、例えば、定めた参照画像ブロックの座標を入力されたテクスチャ画像ブロックの座標に合わせることによって予測画像ブロックを生成する。
動き探索部105は、生成した予測画像ブロックを減算部109と加算部114に出力し、動きベクトルを動きベクトルメモリ106に記憶し、また減算部108に出力する。
動き探索部105は、予測ベクトル生成部107から予測ベクトルを入力される。動き探索部105は、算出した動きベクトルと入力された予測ベクトルの差分ベクトルを算出し、算出した差分ベクトルの水平成分の絶対値、その垂直成分の絶対値及びテクスチャ画像ブロックとテクスチャ画像ブロックと最も類似する参照ブロックとの間の指標値の和を第1のコスト値として算出する。
動き探索部105は、入力された予測ベクトルと符号化対象画像ブロックの座標を加算して得られた座標から参照画像ブロックを参照画像メモリ104から予測参照画像ブロックとして読み出す。動き探索部105は、読み出した予測参照ブロックとテクスチャ画像ブロックとの間の指標値を第2のコスト値として算出する。
動き探索部105は、算出した第1のコスト値と第2のコスト値を比較し、第2のコスト値の方が小さい場合、符号化モードがスキップト・マクロブロックモードであることを示す符号化モード信号を生成する。動き探索部105は、生成した符号化モード信号を情報源符号化部115に出力する(この経路を破線で示す)。
動きベクトルメモリ106は、動き探索部105から入力された動きベクトルを、フレーム及びブロック毎に記憶する。
予測ベクトル生成部107は、対象ブロックに隣接し、符号化に係る処理を行ったブロック、例えば対象ブロックの左、上、及び右上に隣接するブロックの動きベクトルを読み出す。予測ベクトル生成部107は、読み出した動きベクトルに基づき初期予測ベクトルを定める。
予測ベクトル生成部107は、デプスマップメモリ103から対象デプスブロックと参照デプスブロックを読み出す。予測ベクトル生成部107は、動き探索部105と同様に、対象デプスブロックと参照デプスブロックとの間でブロックマッチングを行い、対象デプスブロックとの指標値が最も小さくなる参照デプスブロックを決定する。ブロックマッチングにおいて、予測ベクトル生成部107は、参照デプスブロックを読み出す座標の初期値を、定めた初期予測ベクトルに基づく座標とする。予測ベクトル生成部107は、決定した参照デプスブロックの座標から対象デプスブロックの座標の差分を予測ベクトルとして算出する。予測ベクトル生成部107は、算出した予測ベクトルを動き探索部105及び減算部108に出力する。なお、予測ベクトル生成部107の構成及び処理については後述する。
減算部108は、動き探索部105から入力された動きベクトルから予測ベクトル生成部107から入力された予測ベクトルを減算して差分ベクトルを算出する。減算部108は、算出した差分ベクトルを情報源符号化部115に出力する。
 減算部109は、テクスチャ画像入力部101から入力されたテクスチャ画像ブロックに含まれる各画素の信号値から動き探索部105から入力された予測画像ブロックに含まれる各画素の信号値を減算して、残差信号ブロックを算出する。減算部109は、算出した残差信号ブロックをDCT部110に出力する。
 DCT部110は、減算部109から入力された残差信号ブロックに対して二次元DCT(Discrete Cosine Transform、離散コサイン変換)を行い周波数領域信号としてDCT係数を算出する。DCT部110は、算出したDCT係数を量子化部111に出力する。
 量子化部111は、DCT部110から入力されたDCT係数を量子化(quantization)し、量子化DCT係数を生成する。ここで、量子化とは、入力されたDCT係数を離散的な代表値の1つに変換する処理である。量子化部111は、生成した量子化DCT係数を逆量子化部112及び情報源符号化部115に出力する。
逆量子化部112は、量子化部111から入力された量子化DCT係数に逆量子化(de-quantization)を行い、逆量子化DCT係数を生成する。逆量子化部112は、生成した逆量子化DCT係数を逆DCT部113に出力する。
 逆DCT部113は、逆量子化部112から入力された逆量子化DCT係数に対して2次元逆DCT(inverse Discrete Cosine Transform、離散コサイン変換)を行い、空間領域信号として復号された残差信号ブロックを生成する。以下、この残差信号ブロックを、復号残差信号ブロックと呼ぶ。逆DCT部113は、生成した復号残差信号ブロックを加算部114に出力する。
 加算部114は、動き探索部105から入力された予測画像ブロックに含まれる各画素の信号値と、逆DCT部113から入力された復号残差信号ブロックに含まれる各画素の信号値を加算して参照画像ブロックを生成する。加算部114は、生成した参照画像ブロックを参照画像メモリ104に記憶する。
 情報源符号化部115は、量子化部111から入力された量子化DCT係数と減算部108から入力された差分ベクトルに対して符号化し、符号化ストリームを生成する。情報源符号化部115は、入力された情報よりも情報量が少ない符号化ストリームを生成する符号化として、例えば可変長符号化を行う。可変長符号化とは、入力された情報において出現頻度がより高い情報ほどより短い符号を、出現頻度が低い情報ほどより長い符号に変換することによって、情報量を圧縮する符号化方式である。
但し、情報源符号化部115は、動き探索部105からスキップト・マクロブロックモードであることを示す符号化モード信号を入力された場合には、量子化DCT係数と差分ベクトルを用いずに、入力された符号化モード信号を符号化して符号化ストリームとして生成する。スキップト・マクロブロックモードとは、残差信号ブロックを復号せずに参照信号ブロックと予測ベクトルに基づいてテクスチャ画像ブロックを復号する符号化モード(又は復号モード)である。
情報源符号化部115は、生成した符号化ストリームを画像符号化装置1の外部へ出力する。
 次に、本実施形態に係る予測ベクトル生成部107の構成及び処理について説明する。
 図3は、本実施形態に係る予測ベクトル生成部107の構成を示す概略図である。予測ベクトル生成部107は、動きベクトル予測部1071及びブロックマッチング部1072を含んで構成される。
 動きベクトル予測部1071は、動きベクトルメモリ106から符号化対象ブロックの動きベクトルと、符号化対象ブロックと隣接するブロックであって既に符号化に係る処理が行われたブロック、例えば符号化対象ブロックの左隣、上隣及び右上隣のブロック、の動きベクトルを読み出す。
ここで、本実施形態に係る予測ベクトルの一例について説明する。
図4は、本実施形態に係る予測ベクトルの一例を示す概念図である。
図4の上段は、符号化対象のフレームのテクスチャ画像に対応するデプスマップf1を示す。デプスマップf1の右側の矩形の枠は対象デプスブロックbf1を示す。
図4の下段は、デプスマップメモリ104に記憶された参照デプスマップr0を示す。参照デプスマップr0の右側の矩形の枠は、動きベクトル予測部1071が生成した初期予測ベクトルが示す参照デプスブロックbr0を示し、参照デプスブロックbr0の右隣の矩形の枠はブロックマッチング部1072が生成した予測ベクトルが示す参照デプスブロックbr1を示す。
参照デプスブロックbr0の座標から、当該ブロックを参照先とする矢印の参照元である対象デプスブロックbf1の座標の差分が、初期予測ベクトルとなる。また、参照デプスブロックbr1の座標から、当該ブロックを参照先とする矢印の参照元である対象デプスブロックbf1の座標の差分が、予測ベクトルとなる。
図3に戻り、動きベクトル予測部1071は、読み出した隣接ブロック(左隣、上隣、及び右上隣もしくは左上隣のブロック)のベクトルから、水平成分の中央値及び垂直成分の中央値を抽出する。動きベクトル予測部1071は、抽出した水平成分の中央値及び垂直成分の中央値を用いて初期予測ベクトルを生成し、生成した初期予測ベクトルをブロックマッチング部1072に出力する。
 ブロックマッチング部1072は、デプスマップメモリ103から対象デプスブロックと参照デプスブロックを読み出し、動きベクトル予測部1071から初期予測ベクトルを入力される。ブロックマッチング部1072は、対象デプスブロックと参照デプスブロックとの間でブロックマッチングを行い、対象デプスブロックに最も類似する(指標値が最も小さい)参照デプスブロックを定める。ブロックマッチングにおいて、ブロックマッチング部1072は、対象デプスブロックの座標から入力された初期予測ベクトルに基づいて算出した座標を初期値として、参照デプスブロックを読み出す領域を定める。参照デプスブロックは、その初期値から予め定めた範囲内において参照デプスブロックを読み出す領域の座標を水平方向又は垂直方向に対して1画素ずつ変化させる。参照デプスブロックを読み出す座標を変化させる範囲は、画像符号化装置1又は後述する画像復号装置4の処理能力に応じて予め定めておけばよい。その範囲は、例えば、水平方向16画素×垂直方向16画素や、水平方向32画素×垂直方向32画素、等である。
ブロックマッチング部1072は、参照デプスブロックの座標と対象デプスブロックの座標に基づき予測ベクトルを算出する。指標値が等しい参照デプスブロックが複数存在する場合には、ブロックマッチング部1072は、初期予測ベクトルの示す座標から空間的に最も近い参照デプスブロックとそのデプス予測ベクトルを定める。ブロックマッチング部1072は、その他の参照デプスブロックと対応する予測ベクトルを破棄する。
 ブロックマッチング部1072は、定めた予測ベクトルを動き探索部105及び減算部109へ出力する。
 次に、本実施形態に係る画像符号化装置1が行う画像符号化処理について説明する。
 図5は、本実施形態に係る画像符号化装置1が行う画像符号化処理を示すフローチャートである。
(ステップS101)テクスチャ画像入力部101は、画像前置処理部21からテクスチャ画像をフレーム毎に入力される。その後、ステップS102へ進む。
(ステップS102)デプスマップ符号化部102は、画像前置処理部21からデプスマップをフレーム毎に入力し、各フレームを構成するデプスブロック毎に符号化する。デプスマップ符号化部102は、符号化して生成したデプスマップ符号を画像符号化装置1の外部に出力する。その後、ステップS103へ進む。
(ステップS103)デプスマップ符号化部102は、符号化の過程で生成した参照信号ブロックをデプスブロックとしてデプスマップメモリ103に記憶する。その後、ステップS104へ進む。
(ステップS104)画像符号化装置1は、ステップS105-S122の処理を入力されたフレームに含まれるブロック毎に行う。
(ステップS105)テクスチャ画像入力部101は、入力されたテクスチャ画像から符号化対象ブロックであるテクスチャ画像ブロックを抽出し、抽出したテクスチャ画像ブロックを動き探索部105及び減算部109に出力する。その後、ステップS106へ進む。
(ステップS106)予測ベクトル生成部107は、対象ブロックに隣接し、符号化に係る処理を行ったブロックの動きベクトルを読み出す。予測ベクトル生成部107は、読み出した動きベクトルに基づき初期予測ベクトルを定め、定めた初期予測ベクトルに基づいて参照デプスブロックを読み出す座標の初期値とする。
予測ベクトル生成部107は、デプスマップメモリ103から対象デプスブロックと参照デプスブロックを読み出し、対象デプスブロックと参照デプスブロックとの間でブロックマッチングを行う。予測ベクトル生成部107は、対象デプスブロックとの指標値が最も小さくなる参照デプスブロックを定め、定めた参照デプスブロックの座標と対象デプスブロックの座標に基づき予測ベクトルを算出する。予測ベクトル生成部107は、算出した予測ベクトルを動き探索部105及び減算部108に出力する。なお、予測ベクトル生成部107が行う予測ベクトル生成処理については後述する。その後、ステップS107へ進む。
(ステップS107)動き探索部105は、参照画像メモリ104から参照画像ブロックを読み出し、読み出した参照画像ブロックとテクスチャ画像入力部101から入力されたテクスチャ画像ブロックとの間でブロックマッチングを行う。動き探索部105は、ブロックマッチングにおいて、テクスチャ画像ブロックと最も指標値が小さい参照画像ブロックを定め、定めた参照画像ブロックとテクスチャ画像ブロックの座標に基づいて動きベクトルを算出する。動き探索部105は、定めた参照画像ブロックの座標を入力されたテクスチャ画像ブロックの座標に合わせることによって予測画像ブロックを生成する。動き探索部105は、算出した動きベクトルを動きベクトルメモリ106及び減算部108に出力する。動き探索部105は、生成した予測画像ブロックを減算部109及び加算部114に出力する。その後、ステップS108に進む。
(ステップS108)動き探索部105は、予測ベクトル生成部107から予測ベクトルを入力される。動き探索部105は、算出した動きベクトルと入力された予測ベクトルの差分ベクトルを算出し、算出した差分ベクトルの水平成分の絶対値、その垂直成分の絶対値及び指標値の和を第1のコスト値として算出する。
動き探索部105は、入力された予測ベクトルに基づく座標から参照画像ブロックを参照画像メモリ104から予測参照画像ブロックとして読み出す。動き探索部105は、読み出した予測参照ブロックとテクスチャ画像ブロックとの間の指標値を第2のコスト値として算出する。
動き探索部105は、算出した第1のコスト値と第2のコスト値を比較し、第2のコスト値の方が小さい場合、符号化モードがスキップト・マクロブロックモードであることを示す符号化モード信号を生成する。動き探索部105は、生成した符号化モード信号を情報源符号化部115に出力する。その後、ステップS109に進む。
(ステップS109)減算部109は、テクスチャ画像入力部101から入力されたテクスチャ画像ブロックに含まれる各画素の信号値から動き探索部105から入力された予測画像ブロックに含まれる各画素の信号値を減算して、残差信号ブロックを算出する。減算部109は、算出した残差信号ブロックをDCT部110に出力する。その後、ステップS110に進む。
(ステップS110)DCT部110は、減算部109から入力された残差信号ブロックに対して二次元DCTを行い、DCT係数を算出する。DCT部110は、算出したDCT係数を量子化部111に出力する。その後、ステップS111に進む。
(ステップS111)量子化部111は、DCT部110から入力されたDCT係数を量子化し、量子化DCT係数を生成する。量子化部111は、生成した量子化DCT係数を逆量子化部112及び情報源符号化部115に出力する。その後、ステップS112に進む。
(ステップS112)逆量子化部112は、量子化部111から入力された量子化DCT係数に逆量子化を行い、逆量子化DCT係数を生成する。逆量子化部112は、生成した逆量子化DCT係数を逆DCT部113に出力する。その後、ステップS113に進む。
(ステップS113)逆DCT部113は、逆量子化部112から入力された逆量子化DCT係数に対して2次元逆DCTを行い、復号残差信号ブロックを生成する。逆DCT部113は、生成した復号残差信号ブロックを加算部114に出力する。その後、ステップS114に進む。
(ステップS114)加算部114は、動き探索部105から入力された予測画像ブロックに含まれる各画素の信号値と、逆DCT部113から入力された復号残差信号ブロックに含まれる各画素の信号値を加算して参照画像ブロックを生成する。その後、ステップS115に進む。
(ステップS115)加算部114は、生成した参照画像ブロックを参照画像メモリ104に記憶する。その後、ステップS116に進む。
(ステップS116)動きベクトルメモリ106は、動き探索部105から入力された動きベクトルを、フレーム及びブロック毎に記憶する。その後、ステップS117に進む。
(ステップS117)減算部108は、動き探索部105から入力された動きベクトルから予測ベクトル生成部107から入力された予測ベクトルを減算して差分ベクトルを算出する。減算部108は、算出した差分ベクトルを情報源符号化部115に出力する。その後、ステップS118に進む。
(ステップS118)情報源符号化部115は、動き探索部105からスキップト・マクロブロックモードであることを示す符号化モード信号を入力されたか否か判断する。情報源符号化部115は、スキップト・マクロブロックモードであることを示す符号化モード信号を入力されたと判断したとき(ステップS118 Y)、ステップS120に進む。情報源符号化部115は、スキップト・マクロブロックモードであることを示す符号化モード信号を入力されなかったと判断したとき(ステップS118 N)、ステップS119に進む。
(ステップS119)情報源符号化部115は、量子化部111から入力された量子化DCT係数と減算部108から入力された差分ベクトルを符号化し、符号化ストリームを生成する。その後、ステップS121に進む。
(ステップS120)情報源符号化部115は、動き探索部105から入力された符号化モード信号を符号化し、符号化ストリームを生成する。その後、ステップS121に進む。
(ステップS121)情報源符号化部115は、生成した符号化ストリームを画像符号化装置1の外部へ出力する。その後、ステップS122に進む。
(ステップS122)画像符号化装置1は、符号化対象ブロックをラスタースキャンの順序で順次に変更し、ステップS104に戻る。但し、画像符号化装置1は、入力されたテクスチャ画像のフレームに符号化に係る処理がまだ行われていないブロックがないと判断した場合には、そのフレームに対する処理を終了する。
次に、本実施形態に係る予測ベクトル生成部107における予測ベクトル生成処理について説明する。この処理は、上述のステップS106に相当する処理である。
図6は、本実施形態に係る予測ベクトル生成部107における予測ベクトル生成処理を示すフローチャートである。
(ステップS201)動きベクトル予測部1071(図3)は、動きベクトルメモリ106から符号化対象ブロックの動きベクトルと、符号化対象ブロックと隣接するブロックであって既に符号化に係る処理が行われたブロックの動きベクトルを読み出す。動きベクトル予測部1071は、読み出した隣接ブロックのベクトルから水平成分の中央値及び垂直成分の中央値を抽出する。動きベクトル予測部1071は、抽出した水平成分の中央値及び垂直成分の中央値を用いて初期予測ベクトルを生成し、生成した初期予測ベクトルをブロックマッチング部1072に出力する。その後、ステップS202に進む。
(ステップS202)ブロックマッチング部1072は、デプスマップメモリ103から対象デプスブロックを読み出し、動きベクトル予測部1071から初期予測ベクトルを入力される。ブロックマッチング部1072は、符号化対象ブロックの座標と入力された初期予測ベクトルに基づき参照デプスブロックを読み出す座標の初期値を定める。ブロックマッチング部1072は、定めた初期値から予め定めた範囲内の座標を、参照デプスブロックを読み出す座標として、ステップS203-S204の処理を繰り返す。その後、ステップS203に進む。
(ステップS203)ブロックマッチング部1072は、デプスマップメモリ103から参照デプスブロックを読み出し、読み出した参照デプスブロックと対象デプスブロックとの指標値を算出する。その後、ステップS204に進む。
(ステップS204)ブロックマッチング部1072は、参照デプスブロックを読み出す座標を水平方向又は垂直方向に1画素ずつ変更する。但し、ブロックマッチング部1072は、予め定めた範囲内の全ての座標について、ステップS203の処理を行った場合、ステップS205に進む。
(ステップS205)ブロックマッチング部1072は、対象デプスブロックの指標値が最も小さい参照デプスブロックを定め、定めた参照デプスブロックの座標と対象デプスブロックの座標に基づき予測ベクトルを算出する。ブロックマッチング部1072は、算出した予測ベクトルを動き探索部105及び減算部109へ出力し、処理を終了する。
 但し、後述する予測ベクトル生成部406は、ステップS205において算出した予測ベクトルを加算部404に出力する。
 上述のように、予測ベクトル生成部107及び予測ベクトル生成部406は、ブロックマッチングする際に初期予測ベクトルが示す座標を、参照デプスブロックを読み出す座標の初期値とする。この初期値に基づき読み出した参照デプスブロックは、対象デプスブロックと参照デプスブロックと類似する。そのため、例えば、撮影装置の位置や光軸方向が変化する等の原因で、フレーム全体の画像が著しく移動する場合でも、処理の繰り返し回数を低減又は増加を抑制し、処理効率が向上する。
 次に、本実施形態に係る画像復号装置4の構成及び処理について説明する。
 図7は、本実施形態に係る画像復号装置4の構成を示す概略図である。
 画像復号装置4は、情報源復号部401、デプスマップ復号部402、デプスマップメモリ403、加算部404、動きベクトルメモリ405、予測ベクトル生成部406、逆量子化部407、逆DCT部408、加算部409、参照画像メモリ410、動き補償部411及び画像出力部412を含んで構成される。
 情報源復号部401は、画像復号装置4の外部から入力されたブロック毎の符号化ストリームを復号し、量子化DCT係数と差分ベクトルを生成、又はスキップト・マクロブロックモードであることを示す符号化モード信号を生成する。情報源復号部401が行う復号方法は、情報源符号化部115が行った符号化方法とは逆の処理である。即ち、情報源符号化部115が可変長符号化を行った場合は、情報源復号部401は可変長復号を行う。
 情報源復号部401は、生成した差分ベクトルを加算部404に出力する。情報源復号部401は、量子化DCT係数を生成した場合、生成した量子化DCT係数を逆量子化部407に出力する。
情報源復号部401は、スキップト・マクロブロックモードであることを示す符号化モード信号を生成した場合、値がゼロであることを示す量子化DCT係数を逆量子化部407に出力する。情報源復号部401は、値がゼロであることを示す差分ベクトルを加算部404に出力する。
この場合、後述する残差信号もゼロとなり、画像復号装置4は残差信号を用いずに復号画像を生成する。従って、この場合には、逆DCT部408が各画素の信号値がゼロとなる残差信号を生成し、生成した残差信号を加算部409に出力してもよい。
 デプスマップ復号部402は、画像復号装置4の外部からデプスマップ符号をブロック毎に入力され、公知の画像復号方法、例えばITU-T H.264規格書に記載された復号方法を用いて復号する。デプスマップ復号部402は、復号して生成したデプスブロックをデプスマップメモリ403に記憶し、画像復号装置4の外部に出力する。
デプスマップメモリ403は、デプスマップ復号部402から入力されたデプスブロックを、対応するフレームにおける復号対象ブロックの位置に配置してデプスマップとして記憶する。
 加算部404は、情報源復号部401から入力された差分ベクトルと予測ベクトル生成部406から入力された予測ベクトルを加算して動きベクトルを生成する。加算部404は、生成した動きベクトルを動きベクトルメモリ405に記憶し、動き補償部411に出力する。
動きベクトルメモリ405は、加算部404から入力された動きベクトルを、フレーム及びブロック毎に記憶する。
予測ベクトル生成部406は、復号対象ブロックに隣接し、復号に係る処理を行ったブロックの動きベクトルを読み出す。予測ベクトル生成部406は、読み出した動きベクトルと、デプスマップメモリ403から読み出した対象デプスブロックと参照デプスブロックに基づいて予測ベクトルを算出する。予測ベクトル生成部406が予測ベクトルを算出するための構成及び処理は予測ベクトル生成部107と同様である(図3、図6参照)。
予測ベクトル生成部406は、算出した予測ベクトルを加算部404に出力する。
逆量子化部407は、情報源復号部401から入力された量子化DCT係数に逆量子化を行い、逆量子化DCT係数を生成する。逆量子化部407は、生成した逆量子化DCT係数を逆DCT部408に出力する。
 逆DCT部408は、逆量子化部407から入力された逆量子化DCT係数に対して2次元逆DCTを行い、空間領域信号として復号残差信号ブロックを生成する。逆DCT部408は、復号残差信号ブロックを加算部409に出力する。
 加算部409は、動き補償部411から入力された予測画像ブロックに含まれる各画素の信号値と、逆DCT部408から入力された復号残差信号ブロックに含まれる各画素の信号値を加算して参照画像ブロックを生成する。加算部409は、生成した参照画像ブロックを参照画像メモリ410に記憶し、画像出力部412に出力する。
参照画像メモリ410は、加算部409から入力された参照画像ブロックを、対応するフレームにおける復号対象ブロックの位置に配置して参照画像として記憶する。参照画像メモリ410は、現在から予め設定されたフレーム数(例えば5フレーム)過去のフレームの参照画像を記憶し、それ以前の過去のフレームの参照画像を削除する。
動き補償部411は、参照画像メモリ410から参照画像を構成する参照画像ブロックを読み出す。動き補償部411が参照画像ブロックを読み出す座標は、復号対象ブロックの座標に加算部404から入力された動きベクトルを加算することによって補償した座標である。動き補償部411は、読み出した参照画像ブロックを予測画像ブロックとして加算部409に出力する。
画像出力部412は、加算部409から入力された参照画像ブロックを、対応するフレームにおける復号対象ブロックの位置に配置して参照画像をフレーム毎に生成する。画像出力部412は、生成した参照画像を復号テクスチャ画像としてフレーム毎に画像復号装置4の外部に出力する。
次に本実施形態に係る画像復号装置4が行う画像復号処理について説明する。
図8は、本実施形態に係る画像復号装置4が行う画像復号処理を示すフローチャートである。
(ステップS301)画像復号装置4は、ステップS302-S314の処理をブロック毎に行う。
(ステップS302)情報源復号部401は、画像復号装置4の外部からブロック毎の符号化ストリームを入力される。その後、ステップS303に進む。
(ステップS303)情報源復号部401は、入力された符号化ストリームを復号し、量子化DCT係数と差分ベクトルを生成、又はスキップト・マクロブロックモードであることを示す符号化モード信号を生成する。情報源復号部401は、生成した差分ベクトルを加算部404に出力する。その後、ステップS304に進む。
(ステップS304)情報源復号部401は、生成した信号にスキップト・マクロブロックモードであることを示す符号化モード信号の有無を判断する。情報源復号部401は、生成した信号にスキップト・マクロブロックモードであることを示す符号化モード信号があると判断した場合(ステップS304 Y)、ステップS305に進む。情報源復号部401は、生成した信号にスキップト・マクロブロックモードであることを示す符号化モード信号がないと判断した場合(ステップS304 N)、ステップS306に進む。
(ステップS305)情報源復号部401は、値がゼロであることを示す量子化DCT係数を逆量子化部407に出力する。情報源復号部401は、値がゼロであることを示す差分ベクトルを加算部404に出力する。その後、ステップS306に進む。
(ステップS306)逆量子化部407は、情報源復号部401から入力された量子化DCT係数に逆量子化を行い、逆量子化DCT係数を生成する。逆量子化部407は、生成した逆量子化DCT係数を逆DCT部408に出力する。その後、ステップS307に進む。
(ステップS307)逆DCT部408は、逆量子化部407から入力された逆量子化DCT係数に対して2次元逆DCTを行い、復号残差信号ブロックを生成する。逆DCT部408は、復号残差信号ブロックを加算部409に出力する。その後、ステップS308に進む。
(ステップS308)デプスマップ復号部402は、画像復号装置4の外部から入力されたデプスマップ符号を復号し、デプスブロックを生成する。デプスマップ復号部402は、生成したデプスブロックをデプスマップメモリ403に記憶する。その後、ステップS309に進む。
(ステップS309)予測ベクトル生成部406は、復号対象ブロックに隣接し、復号に係る処理を行ったブロックの動きベクトルを読み出す。予測ベクトル生成部406は、読み出した動きベクトルと、デプスマップメモリ403から読み出した対象デプスブロックと参照デプスブロックに基づいて予測ベクトルを算出する。ここで、予測ベクトル生成部406は、図6に示す予測ベクトル生成処理を行う。予測ベクトル生成部406は、算出した予測ベクトルを加算部404に出力する。その後、ステップS310に進む。
(ステップS310)加算部404は、情報源復号部401から入力された差分ベクトルと予測ベクトル生成部406から入力された予測ベクトルを加算して動きベクトルを生成する。加算部404は、生成した動きベクトルを動きベクトルメモリ405に記憶し、動き補償部411に出力する。その後、ステップS311に進む。
(ステップS311)動き補償部411は、加算部404から入力された動きベクトルに基づいて参照画像ブロックを読み出す座標を定め、参照画像メモリ410に記憶された参照画像の定めた座標から参照画像ブロックを読み出す。動き補償部411は、読み出した参照画像ブロックを予測画像ブロックとして加算部409に出力する。その後、ステップS312に進む。
(ステップS312)加算部409は、動き補償部411から入力された予測画像ブロックに含まれる各画素の信号値と、逆DCT部408から入力された復号残差信号ブロックに含まれる各画素の信号値を加算して参照画像ブロックを生成する。その後、ステップS313に進む。
(ステップS313)加算部409は、生成した参照画像ブロックを参照画像メモリ410に記憶し、画像出力部412に出力する。その後、ステップS314に進む。
(ステップS314)画像復号装置4は、復号対象ブロックをラスタースキャンの順序で変更し、ステップS302に戻る。但し、画像復号装置4は、入力された符号化ストリームのフレームにおいて復号が行われていないブロックがないと判断した場合には、そのフレームに対する処理を終了する。
 このように、本実施形態によれば、画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を符号化する際、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックに基づいて、予測ベクトルを生成する。
 また、本実施形態によれば、画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を復号する際、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックに基づいて、予測ベクトルを生成する。
 これにより、本実施形態では、符号化対象ブロックの動きベクトルを、対応するフレームのデプスマップに基づいて補正して予測ベクトルを生成する。そのため、生成した予測ベクトルは符号化対象ブロックの動きベクトルに近似する。そのため、符号化対象ブロックの動きベクトルと隣接するブロックの動きベクトルとの類似性が低い場合であっても、本実施形態は予測ベクトルの予測誤差を低減でき、符号化効率を向上させることができる。
(第2の実施形態)
 以下、図面を参照しながら本発明の第2の実施形態について説明する。
 図9は、本実施形態に係る画像符号化装置5の構成を示す概略図である。
 画像符号化装置5は、テクスチャ画像入力部101、デプスマップ符号化部102、デプスマップメモリ103、参照画像メモリ104、動き探索部105、動きベクトルメモリ106、予測ベクトル生成部507、減算部108、減算部109、DCT部110、量子化部111、逆量子化部112、逆DCT部113、加算部114及び情報源符号化部115を含んで構成される。画像符号化装置5は、図2に示す画像符号化装置2の予測ベクトル生成部107に代えて予測ベクトル生成部507を備える点が異なる。その他の構成は同じである。
 予測ベクトル生成部507は、予測ベクトル生成部107と同様に、動きベクトルメモリ106から動きベクトルを読み出し、デプスマップメモリ103から対象デプスマップ及び参照デプスマップを読み出す。また、予測ベクトル生成部507は、読み出した動きベクトル、対象デプスマップ及び参照デプスマップに基づき予測ベクトルを生成し、生成した予測ベクトルを減算部108に出力する。
 次に、本実施形態に係る予測ベクトル生成部507の構成及び処理について説明する。
 図10は、本実施形態に係る予測ベクトル生成部507の構成を示す概略図である。
 予測ベクトル生成部507は、動きベクトル予測部5071、ブロックマッチング部5072、エッジ画像生成部5073及び予測ベクトル判別部5074を含んで構成される。
 動きベクトル予測部5071は、動きベクトルメモリ106から符号化対象ブロックの動きベクトルと、符号化対象ブロックと隣接するブロックであって既に符号化に係る処理が行われたブロック、例えば符号化対象ブロックの左隣、上隣及び右上隣のブロック、の動きベクトルを読み出す。但し、符号化対象ブロックがフレームの右端のブロックである場合には、右上隣のブロックが存在しないため、動きベクトル予測部5071は、左上隣のブロックの動きベクトルを読み出してもよい。
動きベクトル予測部5071は、読み出した隣接ブロック(左隣、上隣、及び右上隣もしくは左上隣のブロック)のベクトルから、水平成分の中央値及び垂直成分の中央値を抽出する。動きベクトル予測部5071は、抽出した水平成分の中央値及び垂直成分の中央値を用いて初期予測ベクトルを生成し、生成した初期予測ベクトルをブロックマッチング部5072及び予測ベクトル判別部5074に出力する。
ブロックマッチング部5072は、デプスマップメモリ103から対象デプスブロックと参照デプスブロックを読み出し、動きベクトル予測部5071から初期予測ベクトルを入力される。ブロックマッチング部5072は、対象デプスブロックと参照デプスブロックとの間でブロックマッチングを行い、対象デプスブロックに最も類似する(指標値が最も小さい)参照デプスブロックを定める。ブロックマッチングにおいて、ブロックマッチング部5072は、対象デプスブロックの座標から入力された初期予測ベクトルに基づいて算出した座標を初期値として、参照デプスブロックを読み出す領域を定める。参照デプスブロックは、その初期値から予め定めた範囲内において参照デプスブロックを読み出す領域の座標を水平方向又は垂直方向に対して1画素ずつ変化させる。
ブロックマッチング部5072は、参照デプスブロックの座標と対象デプスブロックの座標に基づき候補ベクトルを算出する。指標値が等しい参照デプスブロックが複数存在する場合には、ブロックマッチング部5072は、初期予測ベクトルが示す座標から空間的に最も近い参照デプスブロックとその候補ベクトルを定める。ブロックマッチング部5072は、その他の参照デプスブロックと対応する候補ベクトルを棄却する。
 ブロックマッチング部5072は、定めた候補ベクトルを予測ベクトル判別部5074へ出力する。ブロックマッチング部5072は、定めた参照デプスブロックをエッジ画像生成部5073へ出力する。
 エッジ画像生成部5073は、デプスマップメモリ103から読み出した対象デプスブロックにエッジ検出処理を行い、エッジが検出された領域(画素)を示すエッジ画像ブロックを生成する。エッジ画像生成部5073は、生成したエッジ画像ブロックを予測ベクトル判別部5074に出力する。
 エッジとは、信号値の空間的な変化が著しい領域である。エッジ画像ブロックは、エッジが検出されたか否かを示す信号値、例えば深度値の空間的変化が予め設定された閾値よりも大きいか否かを示す信号値を画素毎に含む。
 エッジ画像生成部5073は、エッジ画像ブロックを生成するために、例えば、式(1)に示す3行3列のSobelフィルタを用いる。即ち、Sobelフィルタは、水平方向に隣接する画素間の信号値の勾配と垂直方向に隣接する画素間の信号値の勾配を与えるフィルタである。
Figure JPOXMLDOC01-appb-M000001
ここで、エッジ画像生成部5073は、対象デプスブロックに含まれる画素ごとに、その画素(中心画素)を中心に含む水平方向3画素×垂直方向3画素のサブブロックにSobelフィルタを乗じて、画素毎の信号値の勾配を算出する。但し、中心画素が対象デプスブロックの最上行、最下行、最左列又は最右列にある場合には、各々サブブロックの最上行、最下行、最左列又は最右列の信号値を、中心値の信号値と等しい値とする。
 エッジ画像生成部5073は、算出した画素毎の勾配の絶対値が予め設定された閾値よりも大きい画素について、エッジであることを示す信号値(例えば1)を定める。エッジ画像生成部5073は、算出した画素毎の勾配の絶対値が予め設定された閾値と等しい又はその閾値よりも小さい画素について、エッジでないことを示す信号値(例えば0)を定める。
 エッジ画像生成部5073は、画素毎のエッジであるか否かを示す信号値をエッジ画像ブロックとして予測ベクトル判別部5074に出力する。
 予測ベクトル判別部5074は、動きベクトル予測部5071から初期予測ベクトルを入力され、ブロックマッチング部5072から候補ベクトルを入力され、エッジ画像生成部1273からエッジ画像ブロックを入力される。
 予測ベクトル判別部5074は、入力されたエッジ画像ブロックに基づき対象デプスブロックにエッジ成分が検出されたか否かを判断する。予測ベクトル判別部5074は、例えば、入力されたエッジ画像ブロックにエッジであることを示す信号値が存在する場合、エッジ成分が検出されたと判断する。この場合、予測ベクトル判別部5074は、候補ベクトルを予測ベクトルとして動き探索部105及び減算部108に出力する。予測ベクトル判別部5074は、例えば、入力されたエッジ画像ブロックにエッジでないことを示す信号値が存在しない場合をもってエッジ成分が検出されないと判断する。この場合、予測ベクトル判別部5074は、初期予測ベクトルを予測ベクトルとして動き探索部105及び減算部108に出力する。
次に、本実施形態に係る予測ベクトル生成部507及び後述する予測ベクトル生成部606における予測ベクトル生成処理について説明する。この処理は、予測ベクトル生成部507がステップS106に代えて行う処理であり、予測ベクトル生成部606がステップS309に代えて行う処理である。
図11は、本実施形態に係る予測ベクトル生成部507及び606における予測ベクトル生成処理を示すフローチャートである。
(ステップS401)動きベクトル予測部5071は、動きベクトルメモリ106から符号化対象ブロックの動きベクトルと、符号化対象ブロックと隣接するブロックであって既に符号化に係る処理が行われたブロックの動きベクトルを読み出す。動きベクトル予測部5071は、読み出した隣接ブロックのベクトルから水平成分の中央値及び垂直成分の中央値を抽出する。動きベクトル予測部5071は、抽出した水平成分の中央値及び垂直成分の中央値を用いて初期予測ベクトルを生成し、生成した初期予測ベクトルをブロックマッチング部5072及び予測ベクトル判別部5074に出力する。その後、ステップS402に進む。
(ステップS402)ブロックマッチング部5072は、デプスマップメモリ103から対象デプスブロックを読み出し、動きベクトル予測部5071から初期予測ベクトルを入力される。ブロックマッチング部5072は、符号化対象ブロックの座標と入力された初期予測ベクトルに基づき参照デプスブロックを読み出す座標の初期値を定める。ブロックマッチング部5072は、ステップS403-S404の処理を繰り返す。ここで、参照デプスブロックを読み出す座標は、定めた初期値から予め定めた範囲内の座標である。その後、ステップS403に進む。
(ステップS403)ブロックマッチング部5072は、デプスマップメモリ103から参照デプスブロックを読み出し、読み出した参照デプスブロックと対象デプスブロックとの指標値を算出する。その後、ステップS404に進む。
(ステップS404)ブロックマッチング部5072は、参照デプスブロックを読み出す座標を水平方向又は垂直方向に1画素ずつ変更する。但し、ブロックマッチング部5072は、予め定めた範囲内の全ての座標について、ステップS403の処理を行った場合、ステップS405に進む。
(ステップS405)ブロックマッチング部5072は、対象デプスブロックの指標値が最も小さい参照デプスブロックを定め、定めた参照デプスブロックの座標と対象デプスブロックの座標に基づき候補ベクトルを算出する。ブロックマッチング部5072は、算出した候補ベクトルを予測ベクトル判別部5074に出力する。その後、ステップS406に進む。
(ステップS406)エッジ画像生成部5073は、デプスマップメモリ103から読み出した対象デプスブロックに、例えば式(1)に示すSobelフィルタを用いてエッジ検出処理を行い、エッジ画像ブロックを生成する。エッジ画像生成部5073は、生成したエッジ画像ブロックを予測ベクトル判別部5074に出力する。その後、ステップS407に進む。
(ステップS407)予測ベクトル判別部5074は、動きベクトル予測部5071から初期予測ベクトルを入力され、ブロックマッチング部5072から候補ベクトルを入力され、エッジ画像生成部5073からエッジ画像ブロックを入力される。
予測ベクトル判別部5074は、入力されたエッジ画像ブロックに基づき対象デプスブロックにおいてエッジを検出したか否か判断する。予測ベクトル判別部5074は、エッジを検出した場合(ステップS407 Y)、ステップS408に進む。予測ベクトル判別部5074は、エッジを検出しない場合(ステップS407 N)、ステップS409に進む。
(ステップS408)予測ベクトル判別部5074は、候補ベクトルを予測ベクトルと決定し、決定した予測ベクトルを動き探索部105及び減算部108に出力して処理を終了する。
(ステップS409)予測ベクトル判別部5074は、初期予測ベクトルを予測ベクトルと決定し、決定した予測ベクトルを動き探索部105及び減算部108に出力して処理を終了する。
 次に、本実施形態に係る画像復号装置6の構成及び処理について説明する。
図12は、本実施形態に係る画像復号装置6の構成を示す概略図である。
画像復号装置6は、情報源復号部401、デプスマップ復号部402、デプスマップメモリ403、加算部404、動きベクトルメモリ405、予測ベクトル生成部606、逆量子化部407、逆DCT部408、加算部409、参照画像メモリ410、動き補償部411及び画像出力部412を含んで構成される。
 画像復号装置6は、図7に示す画像復号装置4の予測ベクトル生成部406に代えて予測ベクトル生成部606を備える点が異なる。その他の構成は同じである。
 予測ベクトル生成部606は、予測ベクトル生成部406と同様に、動きベクトルメモリ405から動きベクトルを読み出し、デプスマップメモリ403から対象デプスマップ及び参照デプスマップを読み出す。また、予測ベクトル生成部606は、読み出した動きベクトル、対象デプスマップ及び参照デプスマップに基づき予測ベクトルを生成し、生成した予測ベクトルを加算部404に出力する。
 また、予測ベクトル生成部606は、図10に示す予測ベクトル生成部507と同様な構成を備え、図11に示す予測ベクトル生成処理と同様な処理を行う。
 このように本実施形態では、隣接ブロックの動きベクトルに基づき初期予測ベクトルを算出し、デプスブロックからエッジ成分を検出したか否か判断し、エッジ成分を検出しないと判断した場合、初期予測ベクトルを前記予測ベクトルと定める。これにより本実施形態では、対象デプスブロックにおいてエッジ成分を検出することで、対象テクスチャ画像ブロックにおける信号値の空間的変化から、被写体の距離の変化を伴わない模様部分と被写体距離の変化を伴う被写体の外縁部分を区別することができる。前者の場合には、テクスチャ画像ブロックに基づいて予測ベクトルを定め、後者の場合にはデプスブロックに基づいて予測ベクトルを定めることで、予測ベクトルの推定精度、ひいては符号化効率が向上する。
 符号化対象ブロック又は復号対象ブロックがフレームの上端のブロックである場合や左端のブロックである場合、同一のフレームにおいて符号化済みの隣接ブロックが存在しない。そのような場合には、動きベクトル予測部1071、5071は、初期予測ベクトルを定めることができない。そのため、本実施形態に係る予測ベクトル生成部107、406、507及び予測ベクトル生成部606は、ブロックマッチング部1072、5072が算出した候補ベクトルを予測ベクトルとして出力してもよい。この場合、ブロックマッチング部1072、5072は、予め設定した座標値を初期値として候補ベクトルを算出する。
 符号化対象ブロック又は復号対象ブロックがフレームの右端のブロックである場合には、右上隣のブロックが存在しない。そのため、本実施形態に係る動きベクトル予測部1071、5071は、動きベクトルメモリ106、405から左上隣のブロックの動きベクトルを読み出してもよい。
 上述の説明では、テクスチャ画像ブロック、参照画像ブロック、デプスブロック及び参照デプスブロックに含まれる画素数を水平方向3画素×垂直方向3画素としたが、本実施形態では、それには限られない。本実施形態では、1フレームに水平方向に少なくとも2ブロック以上及び垂直方向に2ブロック以上配置できる画素数であれば、例えば水平方向4画素×垂直方向4画素又は水平方向8画素×垂直方向8画素、等でもよい。
 なお、上述した実施形態における画像符号化装置1、画像復号装置4、画像符号化装置5及び画像復号装置6の一部、例えば、動き探索部105、予測ベクトル生成部107、減算部108、減算部109、DCT部110、量子化部111、逆量子化部112、逆DCT部113、加算部114、情報源符号化部115、情報源復号部401、加算部404、予測ベクトル生成部406、逆量子化部407、逆DCT部408、加算部409、動き補償部411、予測ベクトル生成部507及び予測ベクトル生成部606をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、画像符号化装置1、画像復号装置4、画像符号化装置5又は画像復号装置6に内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
 また、上述した実施形態における画像符号化装置1、画像復号装置4、画像符号化装置5及び画像復号装置6の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現しても良い。画像符号化装置1、画像復号装置4、画像符号化装置5及び画像復号装置6の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
 以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
1…画像符号化装置、
101…テクスチャ画像入力部、
102…デプスマップ符号化部、
103…デプスマップメモリ、
104…参照画像メモリ、
105…動き探索部、
106…動きベクトルメモリ、
107…予測ベクトル生成部、
1071…動きベクトル予測部、
1072…ブロックマッチング部、
108、109…減算部、
110…DCT部、
111…量子化部、
112…逆量子化部、
113…逆DCT部、
114…加算部、
115…情報源符号化部、
21…画像前置処理部、
31、32…撮影装置、
4…画像復号装置、
401…情報源復号部、
402…デプスマップ復号部、
403…デプスマップメモリ、
404…加算部、
405…動きベクトルメモリ、
406…予測ベクトル生成部、
407…逆量子化部、
408…逆DCT部、
409…加算部、
410…参照画像メモリ、
411…動き補償部、
412…画像出力部、
5…画像符号化装置、
507…予測ベクトル生成部、
5071…動きベクトル予測部、
5072…ブロックマッチング部、
5073…エッジ画像生成部、
5074…予測ベクトル判別部、
6…画像復号装置、
606…予測ベクトル生成部

Claims (11)

  1.  画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測する予測ベクトル生成装置が実行する予測ベクトル生成方法であって、
     前記予測ベクトル生成装置が、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックとに基づいて、予測ベクトルを生成する予測ベクトル生成過程を有すること
     を特徴とする予測ベクトル生成方法。
  2.  前記予測ベクトル生成過程は、
     前記隣接ブロックの動きベクトルに基づき初期予測ベクトルを算出する過程と、
     前記初期予測ベクトルと、前記デプスマップのブロックと前記参照デプスマップのブロックとの相関に基づいて前記予測ベクトルを算出する過程を有すること
     を特徴とする請求項1に記載の予測ベクトル生成方法。
  3.  前記予測ベクトル生成過程は、
     前記デプスマップのブロックからエッジ成分を検出したか否か判断し、エッジ成分を検出しないと判断した場合、前記算出した初期予測ベクトルを前記予測ベクトルと定める過程を有すること
     を特徴とする請求項2に記載の予測ベクトル生成方法。
  4.  画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測する予測ベクトル生成装置であって、
     前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックとに基づいて、予測ベクトルを生成する予測ベクトル生成部を備えること
     を特徴とする予測ベクトル生成装置。
  5.  画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測する予測ベクトル生成装置のコンピュータに、
     前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックとに基づいて、予測ベクトルを生成する手順
     を実行させるための予測ベクトル生成プログラム。
  6.  画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を符号化する画像符号化装置が実行する画像符号化方法であって、
     前記画像符号化装置が、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックとに基づいて、予測ベクトルを生成する予測ベクトル生成過程を有すること
     を特徴とする画像符号化方法。
  7.  画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を符号化する画像符号化装置であって、
     前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックとに基づいて、予測ベクトルを生成する予測ベクトル生成部を備えること
     を特徴とする画像符号化装置。
  8.  画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を符号化する画像符号化装置のコンピュータに、
     前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックとに基づいて、予測ベクトルを生成する手順
     を実行させることを特徴とする画像符号化プログラム。
  9.  画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を復号する画像復号装置が実行する画像復号方法であって、
     前記画像復号装置が、前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックとに基づいて、予測ベクトルを生成する予測ベクトル生成過程を有すること
     を特徴とする画像復号方法。
  10.  画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を復号する画像復号装置であって、
     前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックとに基づいて、予測ベクトルを生成する予測ベクトル生成部を備えること
     を特徴とする画像復号装置。
  11.  画素毎の輝度値からなるテクスチャ画像を構成する一部の領域であるブロック毎に、過去のテクスチャ画像からの移動量を示す動きベクトルを予測して前記テクスチャ画像を復号する画像復号装置のコンピュータに、
     前記ブロックのうちの1つのブロックの動きベクトルと、前記1つのブロックに隣接する隣接ブロックの動きベクトルと、画素毎の視点からの距離を示す深度値からなるデプスマップのうち前記1つのブロックに対応する領域であるデプスマップのブロックと、前記1つのブロックに対応し過去に符号化又は復号されたデプスマップである参照デプスマップのうち前記1つのブロックに対応する領域である参照デプスマップのブロックとに基づいて、予測ベクトルを生成する手順
     を実行させることを特徴とする画像復号プログラム。
PCT/JP2011/079631 2011-05-09 2011-12-21 予測ベクトル生成方法、予測ベクトル生成装置、予測ベクトル生成プログラム、画像符号化方法、画像符号化装置、画像符号化プログラム、画像復号方法、画像復号装置、及び画像復号プログラム WO2012153440A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011104511 2011-05-09
JP2011-104511 2011-05-09

Publications (1)

Publication Number Publication Date
WO2012153440A1 true WO2012153440A1 (ja) 2012-11-15

Family

ID=47138934

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/079631 WO2012153440A1 (ja) 2011-05-09 2011-12-21 予測ベクトル生成方法、予測ベクトル生成装置、予測ベクトル生成プログラム、画像符号化方法、画像符号化装置、画像符号化プログラム、画像復号方法、画像復号装置、及び画像復号プログラム

Country Status (1)

Country Link
WO (1) WO2012153440A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014220571A (ja) * 2013-05-01 2014-11-20 日本放送協会 画像処理装置、符号化装置、及び符号化プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009543508A (ja) * 2006-07-12 2009-12-03 エルジー エレクトロニクス インコーポレイティド 信号処理方法及び装置
WO2010064396A1 (ja) * 2008-12-03 2010-06-10 株式会社日立製作所 動画像復号化方法および動画像符号化方法
JP2010534878A (ja) * 2007-07-26 2010-11-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 深さ関連情報伝達のための方法及び装置
JP4938884B2 (ja) * 2010-09-30 2012-05-23 シャープ株式会社 予測ベクトル生成方法、画像符号化方法、画像復号方法、予測ベクトル生成装置、画像符号化装置、画像復号装置、予測ベクトル生成プログラム、画像符号化プログラムおよび画像復号プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009543508A (ja) * 2006-07-12 2009-12-03 エルジー エレクトロニクス インコーポレイティド 信号処理方法及び装置
JP2010534878A (ja) * 2007-07-26 2010-11-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 深さ関連情報伝達のための方法及び装置
WO2010064396A1 (ja) * 2008-12-03 2010-06-10 株式会社日立製作所 動画像復号化方法および動画像符号化方法
JP4938884B2 (ja) * 2010-09-30 2012-05-23 シャープ株式会社 予測ベクトル生成方法、画像符号化方法、画像復号方法、予測ベクトル生成装置、画像符号化装置、画像復号装置、予測ベクトル生成プログラム、画像符号化プログラムおよび画像復号プログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JACEK KONIECZNY ET AL.: "Depth-Based Inter-View Prediction of Motion Vectors for Improved Multiview Video Coding, 3DTV- Conference", THE TRUE VISION-CAPTURE, TRANSMISSION AND DISPLAY OF 3D VIDEO (3DTV- CON), 2010, 7 June 2010 (2010-06-07), pages 1 - 4 *
KIRAN NANJUNDA IYER ET AL.: "Multiview Video Coding Using Depth Based 3D Warping", IEEE INTERNATIONAL CONFERENCE ON MULTIMEDIA AND EXPO (ICME), 2010, 19 July 2010 (2010-07-19), pages 1108 - 1113 *
SHIN'YA SHIMIZU ET AL.: "Efficient Multi-view Video Coding using Multi-view Depth Map", THE JOURNAL OF THE INSTITUTE OF IMAGE INFORMATION AND TELEVISION ENGINEERS, vol. 63, no. 4, April 2009 (2009-04-01), pages 524 - 532 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014220571A (ja) * 2013-05-01 2014-11-20 日本放送協会 画像処理装置、符号化装置、及び符号化プログラム

Similar Documents

Publication Publication Date Title
JP6261660B2 (ja) 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
JP6072678B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
RU2696237C2 (ru) Способ декодирования видеосигнала
TWI665908B (zh) 畫像解碼裝置、畫像解碼方法、畫像編碼裝置、畫像編碼方法、電腦可讀取記錄媒體
JP6807987B2 (ja) 画像符号化装置、動画像復号装置、動画像符号化データ及び記録媒体
CN116668684A (zh) 视频解码方法、视频编码方法及比特流的传输方法
TW201340724A (zh) 視訊寫碼中之像差向量預測
WO2014163200A1 (ja) カラー画像符号化装置、カラー画像復号装置、カラー画像符号化方法及びカラー画像復号方法
KR101552664B1 (ko) 화상 부호화 방법 및 장치, 화상 복호 방법 및 장치, 및 그 프로그램
JP2009049519A (ja) 動画像符号化装置の予測動きベクトル生成装置
WO2012153440A1 (ja) 予測ベクトル生成方法、予測ベクトル生成装置、予測ベクトル生成プログラム、画像符号化方法、画像符号化装置、画像符号化プログラム、画像復号方法、画像復号装置、及び画像復号プログラム
WO2012153771A1 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
US20220078437A1 (en) Encoding apparatus and program
WO2013035452A1 (ja) 画像符号化方法、画像復号方法、並びにそれらの装置及びプログラム
JP2013098713A (ja) 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
JP2013098715A (ja) 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
WO2013077305A1 (ja) 画像復号装置、画像復号方法、画像符号化装置
JP2013153336A (ja) 画像符号化方法、画像復号方法、画像符号化装置、画像符号化プログラム、画像復号装置および画像復号プログラム
WO2012121369A1 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11865337

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP