# Patent

## Title
Image processing device and image processing method

## Abstract

The present technique relates to an image processing device and an image processing method for realizing high-precision image generation of predetermined viewpoints by using depth images on the receiving end when the depth images with reduced resolutions are transmitted. A parallax image resolution increasing unit increases the resolution of each of the parallax images of auxiliary images having half the resolution of a compatible image. A parallax image warping unit generates parallax images of virtual viewpoints by performing a warping operation on the parallax images of the auxiliary images with the increased resolutions based on the positions of the virtual viewpoints. A smoothing unit corrects the parallax values of the occlusion regions in the parallax images of the virtual viewpoints. The present technique can be applied to decoding devices that decode glasses-free 3D images, for example.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
The present application is a continuation application of U.S. patent application Ser. No. 13/982,815, filed Jul. 31, 2013, which is a National Stage of PCT/JP2012/053676, filed Feb. 16, 2012, and claims the benefit of priority from prior Japanese Patent Application JP 2011-033848, filed Feb. 18, 2011, the entire content of which is hereby incorporated by reference.


TECHNICAL FIELD
The present technique relates to image processing devices and image processing methods, and more particularly, to an image processing device and an image processing method for realizing high-precision image generation of predetermined viewpoints by using depth images on the receiving end when the depth images with reduced resolutions are transmitted.
BACKGROUND ART
As a popular technique for viewing 3D images, there is currently a technique by which a viewer views images of two viewpoints that are alternately displayed. In viewing the images of two viewpoints, the viewer wears glasses that open the shutter for the left eye when one of the images of two viewpoints is displayed, and open the shutter for the right eye when the other one of the images is displayed (hereinafter referred to as the glasses-involving technique).
However, with such a glasses-involving technique, a viewer needs to purchase glasses as well as a 3D image display device, and this reduces the viewer's purchasing interest. Also, the need to wear glasses at the time of viewing is troublesome for a viewer. Therefore, there is an increasing demand for a viewing technique by which a viewer can view 3D images without glasses (hereinafter referred to as a glasses-free technique).
By the glasses-free technique, images of three or more viewpoints are displayed in such a manner that the viewable angle varies at the respective viewpoints, and the viewer can view a 3D image without glasses by seeing each image of any two viewpoints with the right and left eyes.
A decoding device that provides glasses-free viewing generates and displays images of three or more viewpoints from images of two viewpoints, for example (three or more viewpoints will be hereinafter referred to as “multi-view”). Specifically, an encoding device determines parallax (depth) values of images of two viewpoints, and transmits parallax images (depth images) representing the parallax values in the form of luminance values or the like to a decoding device. The decoding device generates multi-view parallax images by performing a warping operation on the received parallax images of the images of the two viewpoints. Using the multi-view parallax images, the decoding device generates multi-view images by performing a warping operation on the images of the two viewpoints, and combines the multi-view images for display.
It should be noted that a warping operation is an operation to change the parallax value (or pixel value) of each pixel in a parallax image (or image) of a predetermined viewpoint to the parallax value (or pixel value) of the pixel corresponding to the pixel in a parallax image (or an image) of a virtual viewpoint.
Examples of conventional image encoding techniques include AVC (Advanced Video Coding) and MVC (Multiview Video Coding). Further, there is a suggested technique for encoding multi-view images (see Patent Document 1, for example).
CITATION LIST
Patent Document
Patent Document 1: Japanese Patent Application Laid-Open No. 2008-182669
SUMMARY OF THE INVENTION
Problems to be Solved by the Invention
In a case where an encoding device compatible with a decoding device that provides glasses-free viewing reduces the data amount of parallax images by reducing the resolutions of the parallax images, the decoding device needs to increase the resolutions of the received parallax images, to generate the parallax images having the resolution not yet reduced.
However, it is difficult to increase the resolutions of parallax images having resolutions once reduced, and generate the parallax images having the resolutions not yet reduced. Particularly, in a boundary position where parallax values greatly vary, there are large differences between the parallax values prior to a resolution reduction and the parallax values after the resolution reduction. As a result, accurate warping operations are not performed on parallax images in the decoding device, and an image of a predetermined viewpoint might not be properly generated by using the parallax images subjected to the warping operations.
The present technique has been made in view of those circumstances, and aims to realize high-precision image generation of predetermined viewpoints by using parallax images on the receiving end when the parallax images having their resolutions reduced are transmitted.
Solutions to Problems
An image processing device of one aspect of the present technique is an image processing device that includes: a receiving unit that receives a depth image having its resolution reduced; a resolution increasing unit that increases the resolution of the depth image received by the receiving unit; a depth image warping unit that generates a depth image of a virtual viewpoint by performing a warping operation on the depth image having its resolution increased by the resolution increasing unit based on the position of the virtual viewpoint; and a correcting unit that corrects the pixel value of an occlusion region in the depth image of the virtual viewpoint generated by the depth image warping unit, the occlusion region existing in a viewpoint image of the virtual viewpoint but not existing in a viewpoint image corresponding to the depth image used in generating the depth image of the virtual viewpoint.
An image processing method of the one aspect of the present technique is compatible with the image processing device of the one aspect of the present technique.
In the one aspect of the present technique, a depth image having its resolution reduced is received, the resolution of the received depth image is increased, and a warping operation is performed on the depth image having the increased resolution based on the position of a virtual viewpoint. In this manner, a depth image of the virtual viewpoint is generated. The pixel value of an occlusion region in the depth image of the virtual viewpoint is then corrected, the occlusion region existing in a viewpoint image of the virtual viewpoint but not existing in a viewpoint image corresponding to the depth image used in generating the depth image of the virtual viewpoint.
The image processing device of the one aspect of the present technique can be realized by causing a computer to execute a program.
Also, to realize the image processing device of the one aspect of the present technique, the program to be executed by a computer may be transmitted and provided via a transmission medium, or the program recorded on a recording medium may be provided.
Effects of the Invention
According to one aspect of the present technique, images of predetermined viewpoints can be generated with high precision by using transmitted depth images having their resolutions reduced.



BRIEF DESCRIPTION OF DRAWINGS
FIG. 1 is a block diagram showing an example structure of a first embodiment of an encoding device.
FIG. 2 is a flowchart for explaining an encoding operation by the encoding device shown in FIG. 1.
FIG. 3 is another flowchart for explaining the encoding operation by the encoding device shown in FIG. 1.
FIG. 4 is a block diagram showing an example structure of a first embodiment of a decoding device to which the present technique is applied.
FIG. 5 is a block diagram showing a specific example structure of the 3D image generating unit shown in FIG. 4.
FIG. 6 is a diagram for explaining generation of an image of a virtual viewpoint.
FIG. 7 is a diagram for explaining a parallax image warping operation.
FIG. 8 is a diagram showing a parallax image having its resolution not yet reduced, and the result of a warping operation performed on the parallax image.
FIG. 9 is a diagram showing a parallax image having its resolution reduced, a parallax image having its resolution increased, and the result of a warping operation performed on the parallax image.
FIG. 10 is a diagram for explaining a smoothing operation.
FIG. 11 is a flowchart for explaining a decoding operation by the decoding device shown in FIG. 4.
FIG. 12 is a flowchart for explaining in detail the multi-view image generating operation shown in FIG. 11.
FIG. 13 is a block diagram showing an example structure of a second embodiment of an encoding device.
FIG. 14 is a diagram showing an example of boundary information.
FIG. 15 is a flowchart for explaining an encoding operation by the encoding device shown in FIG. 13.
FIG. 16 is another flowchart for explaining the encoding operation by the encoding device shown in FIG. 13.
FIG. 17 is a flowchart for explaining the boundary information generating operation shown in FIG. 16.
FIG. 18 is a block diagram showing an example structure of a second embodiment of a decoding device to which the present technique is applied.
FIG. 19 is a block diagram showing a specific example structure of the 3D image generating unit shown in FIG. 18.
FIG. 20 is a diagram for explaining a smoothing operation based on boundary information.
FIG. 21 is a flowchart for explaining a decoding operation by the decoding device shown in FIG. 18.
FIG. 22 is a flowchart for explaining the multi-view image generating operation shown in FIG. 21.
FIG. 23 is a diagram for explaining parallax and depth.
FIG. 24 is a diagram showing an example structure of an embodiment of a computer.
FIG. 25 is a diagram schematically showing the structure of a television apparatus to which the present technique is applied.
FIG. 26 is a diagram schematically showing the structure of a portable telephone device to which the present technique is applied.
FIG. 27 is a diagram schematically showing the structure of a recording/reproducing device to which the present technique is applied.
FIG. 28 is a diagram schematically showing the structure of an imaging device to which the present technique is applied.



MODES FOR CARRYING OUT THE INVENTION
Description of Depth Images (Parallax Images) in this Specification
FIG. 23 is a diagram for explaining parallax and depth.
As shown in FIG. 23, when a color image of an object M is captured by a camera c1 located in a position C1 and a camera c2 located in a position C2, the object M has depth Z, which is the distance from the camera c1 (the camera c2) in the depth direction, and is defined by the following equation (a).

Z=(L/d)×f  (a)

Here, L represents the horizontal distance between the position C1 and the position C2 (hereinafter referred to as the inter-camera distance). Meanwhile, d represents the value obtained by subtracting the horizontal distance u2 between the position of the object M in the image captured by the camera c2 and the center of the captured image, from the horizontal distance u1 between the position of the object M in the image captured by the camera c1 and the center of the captured image. That is, d represents the parallax. Further, f represents the focal length of the camera c1, and, in the equation (a), the focal lengths of the camera c1 and the camera c2 are the same.
As shown in the equation (a), the parallax d and the depth Z can be uniquely converted. Therefore, in this specification, the image representing the parallax d and the image representing the depth Z of the color image of two viewpoints captured by the camera c1 and the camera c2 are collectively referred to as depth images (parallax images).
A depth image (a parallax image) is an image representing the parallax d or the depth Z, and a pixel value in a depth image (a parallax image) is not the parallax d or the depth Z but may be a value obtained by normalizing the parallax d, a value obtained by normalizing the reciprocal 1/Z of the depth Z, or the like.
A value obtained by normalizing the parallax d with 8 bits (0 through 255) can be calculated according to the equation (b) shown below. Here, the number of normalization bits of the parallax d is not limited to 8, and may be some other number, such as 10 or 12.




  
    
      
        [
        
          Mathematical
          ⁢
          
            
          
          ⁢
          Formula
          ⁢
          
            
          
          ⁢
          3
        
        ]
      
    
    
      
        
      
    
  
  
    
      
        I
        =
        
          
            255
            ×
            
              (
              
                d
                -
                
                  D
                  min
                
              
              )
            
          
          
            
              D
              max
            
            -
            
              D
              min
            
          
        
      
    
    
      
        (
        b
        )
      
    
  




In the equation (b), Dmax represents the maximum value of the parallax d, and Dmin represents the minimum value of the parallax d. The maximum value Dmax and the minimum value Dmin may be set for each one screen, or may be set once every few screens.
A value y obtained by normalizing the reciprocal 1/Z of the depth Z with 8 bits (0 through 255) can be determined according to the equation (c) shown below. Here, the number of normalization bits of the reciprocal 1/Z of the depth Z is not limited to 8, and may be some other number, such as 10 or 12.




  
    
      
        [
        
          Mathematical
          ⁢
          
            
          
          ⁢
          Formula
          ⁢
          
            
          
          ⁢
          4
        
        ]
      
    
    
      
        
      
    
  
  
    
      
        y
        =
        
          255
          ×
          
            
              
                1
                z
              
              -
              
                1
                
                  z
                  far
                
              
            
            
              
                1
                
                  z
                  near
                
              
              -
              
                1
                
                  z
                  far
                
              
            
          
        
      
    
    
      
        (
        c
        )
      
    
  




In the equation (c), Zfar represents the maximum value of the depth Z, and Znear represents the minimum value of the depth Z. The maximum value Zfar and the minimum value Znear may be set for each one screen, or may be set once every few screens.
As described above, in this specification, an image having a pixel value l obtained by normalizing the parallax d, and an image having a pixel value y obtained by normalizing the reciprocal 1/Z of the depth Z are collectively referred to as depth images (parallax images), as the parallax d and the depth Z can be uniquely converted. The color format of the depth images (parallax images) is YUV420 or YUV400 format, but may be some other color format.
When attention is focused on the value l or the value y as information, instead of a pixel value in a depth image (a parallax image), the value l or the value y is set as depth information (parallax information). Further, a map formed by mapping the value l or the value y is set as a depth map (a parallax map).
First Embodiment
Example Structure of a First Embodiment of an Encoding Device
FIG. 1 is a block diagram showing an example structure of a first embodiment of an encoding device equivalent to an image processing device to which the present technique is applied.
The encoding device 50 shown in FIG. 1 includes imaging units 51A through 51C, an image converting unit 52, a parallax image generating unit 53, an image information generating unit 54, a compatibility information generating unit 55, an imaging information generating unit 56, a parallax image multiplexing information generating unit 57, an encoder 58, and a multiplexing unit 59.
The encoding device 50 reduces the resolutions of parallax images, and encodes and transmits the parallax images.
Specifically, in the encoding device 50, the imaging unit 51A captures a HD (High Definition) image of a predetermined viewpoint as a viewpoint image A1, and supplies the viewpoint image A1 to the image converting unit 52, the parallax image generating unit 53, and the imaging information generating unit 56. In a position at a distance Δd1AB from the imaging unit 51A in a horizontal direction, the imaging unit 51B captures an HD image, as a viewpoint image B1, of a different viewpoint from that of the viewpoint image A1, and supplies the viewpoint image B1 to the image converting unit 52, the parallax image generating unit 53, and the imaging information generating unit 56. In a position at a distance Δd1AC from the imaging unit 51A in the opposite horizontal direction from the imaging unit 51A, the imaging unit 51C captures an HD image, as a viewpoint image C1, of a different viewpoint from those of the viewpoint image A1 and the viewpoint image B1, and supplies the viewpoint image C1 to the image converting unit 52, the parallax image generating unit 53, and the imaging information generating unit 56.
The viewpoints corresponding to the viewpoint image B1 and the viewpoint image C1 are the outer viewpoints among the viewpoints of the image that can be perceived as a 3D image. Accordingly, using the viewpoint images A1 through C1, the decoding device compatible with the encoding device 50 can generate multi-view images by interpolating an image of a viewpoint that is located further inside compared with the viewpoints of the viewpoint image B1 and the viewpoint image C1. As a result, multi-view images can be generated with higher precision than in a case where an image of an outer viewpoint is interpolated with the use of images of inner viewpoints. The distance Δd1AB and the distance Δd1AC may be constant, or may vary with time.
The image converting unit 52 determines the viewpoint image A1 to be a compatible image, as the viewpoint image A1 is supplied from the innermost imaging unit 51A of the imaging units 51A through 51C in the horizontal direction. Of multi-view images, the compatible image is an image that is encoded by a conventional encoding technique so as to ensure compatibility with conventional encoding devices. The image converting unit 52 supplies information designating the viewpoint image A1 as the compatible image to the compatibility information generating unit 55, and supplies the viewpoint image A1 as the compatible image directly to the encoder 58.
The image converting unit 52 also determines the viewpoint image B1 and the viewpoint image C1, which are the viewpoint images other than the viewpoint image A1, to be auxiliary images. The auxiliary images are images for generating, by using the compatible image, an image of a larger number of viewpoints than the compatible image. According to a predetermined multiplexing technique, the image converting unit 52 reduces the resolutions of the viewpoint image B1 and the viewpoint image C1, which are the auxiliary images, and thus multiplexes those viewpoint images. Specifically, where the multiplexing technique is the Side By Side technique, for example, the image converting unit 52 halves the resolutions of the viewpoint image B1 and the viewpoint image C1. The image converting unit 52 then multiplexes the viewpoint image B1 having its resolution halved (hereinafter referred to as the 1⁄2 resolution viewpoint image B1) and the viewpoint image C1 having its resolution halved (hereinafter referred to the 1⁄2 resolution viewpoint image C1), so that the 1⁄2 resolution viewpoint image B1 turns into the image in the left half of the screen and the 1⁄2 resolution viewpoint image C1 turns into the image in the right half of the screen. The image converting unit 52 supplies the multiplexed image obtained as a result of the multiplexing to the encoder 58, and supplies information indicating the multiplexing technique used for multiplexing the auxiliary images to the image information generating unit 54.
Using the viewpoint images A1 through C1 supplied from the imaging units 51A through 51C, the parallax image generating unit 53 detects the parallax values of the respective pixels of the viewpoint images A1 through C1. The parallax image generating unit 53 generates a parallax image A1′ indicating the parallax value of each pixel of the viewpoint image A1 as the compatible image, and supplies the parallax image A1′ to the encoder 58.
By a predetermined multiplexing technique, the parallax image generating unit 53 also reduces the resolutions of the parallax image B1′ and the parallax image C1′, and multiplexes the parallax images. The resultant multiplexed image is then supplied to the encoder 58. The parallax image generating unit 53 supplies information indicating the multiplexing technique used for multiplexing the parallax images of the auxiliary images to the parallax image multiplexing information generating unit 57.
Based on the information supplied from the image converting unit 52, the image information generating unit 54 generates information indicating the multiplexing technique for the auxiliary images and the like as image information about the compatible image and the auxiliary images, and supplies the image information to the encoder 58.
Based on the information supplied from the image converting unit 52, the compatibility information generating unit 55 generates information designating the compatible image and a compatible mode as compatibility information about compatibility, and supplies the compatibility information to the encoder 58.
It should be noted that the compatible mode is the mode indicating the encoding method for the compatible image. For example, the compatible mode may be a mono mode indicating an encoding method for encoding a compatible image of a single viewpoint by the AVC technique, a frame packing mode indicating an encoding method for multiplexing compatible images of two viewpoints and encoding the multiplexed image by the AVC technique, a stereo mode indicating an encoding method for encoding compatible images of two viewpoints by the MVC technique, or the like.
Using the viewpoint images A1 through C1 supplied from the imaging units 51A through 51C, the imaging information generating unit 56 detects the distance between the viewpoints of two viewpoint images among the viewpoint images A1 through C1 (hereinafter referred to as the inter-viewpoint distance). Specifically, the imaging information generating unit 56 detects inter-viewpoint distances that are the distance Δd1AB between the imaging unit 51A and the imaging unit 51B in the horizontal direction, and the distance Δd1AC between the imaging unit 51A and the imaging unit 51C in the horizontal direction.
The imaging information generating unit 56 obtains, from the imaging units 51A through 51C, internal parameters of the imaging units 51A through 51C and a rotation matrix for warping operations. The internal parameters include focal length, the position of the principal point (the optical center of the lens) that is the center of the image, and distortion coefficient in the radial direction. The imaging information generating unit 56 generates imaging information that is the information about the inter-viewpoint distances, the internal parameters, and the rotation matrix for warping operations, and supplies the imaging information to the encoder 58.
Based on the information supplied from the parallax image generating unit 53, the parallax image multiplexing information generating unit 57 generates parallax image multiplexing information that is the information about the multiplexing of parallax images such as the information indicating the multiplexing technique for the parallax images of the auxiliary images, and supplies the parallax image multiplexing information to the encoder 58.
The encoder 58 is formed with a compatible encoder 61 and an auxiliary encoder 62. The compatible encoder 61 encodes the multiplexed image of the compatible image supplied from the image converting unit 52 by the conventional AVC technique, and adds various kinds of information to the encoded image. The resultant encoded stream is supplied as a compatible stream to the multiplexing unit 59.
By a predetermined technique, the auxiliary encoder 62 encodes the multiplexed image of the auxiliary images from the image converting unit 52, and the parallax image A1′ of the compatible image and the multiplexed image of the parallax images of the auxiliary images from the parallax image generating unit 53. The encoding technique used by the auxiliary encoder 62 may be the AVC technique, the MVC technique, the MPEG2 (Moving Picture Experts Group phase 2) technique, or the like.
The auxiliary encoder 62 adds the image information from the image information generating unit 54, the compatibility information from the compatibility information generating unit 55, the imaging information from the imaging information generating unit 56, the parallax image multiplexing information from the parallax image multiplexing information generating unit 57, and the like, to the encoded images obtained as a result of the encoding. An encoded stream is thus generated. The auxiliary encoder 62 supplies the encoded stream as an auxiliary stream to the multiplexing unit 59.
The multiplexing unit 59 generates TSs (Transport Streams) from the compatible stream supplied from the compatible encoder 61 and the auxiliary stream supplied from the auxiliary encoder 62, and multiplexes the TSs. The multiplexing unit 59 transmits the multiplexed stream obtained as a result of the multiplexing.
[Description of an Operation of the Encoding Device]
FIGS. 2 and 3 are flowcharts for explaining an encoding operation by the encoding device 50 shown in FIG. 1. This encoding operation is started when the viewpoint images A1 through C1 are output from the imaging units 51A through 51C, for example.
In step S10 of FIG. 2, the imaging information generating unit 56 obtains, from the imaging units 51A through 51C, the internal parameters of the imaging units 51A through 51C and the rotation matrix for warping operations.
In step S11, using the viewpoint images A1 through C1 supplied from the imaging units 51A through 51C, the imaging information generating unit 56 detects the inter-viewpoint distance between each two viewpoint images among the viewpoint images A1 through C1.
In step S12, the imaging information generating unit 56 generates the imaging information that is the information about the inter-viewpoint distances, the internal parameters, and the rotation matrix for warping operations, and supplies the imaging information to the encoder 58.
In step S13, the image converting unit 52 determines the viewpoint image A1 to be the compatible image, the viewpoint image A1 being supplied from the innermost imaging unit 51A of the imaging units 51A through 51C in the horizontal direction, and determines the multiplexing technique for the auxiliary images. The image converting unit 52 supplies the information designating the viewpoint image A1 as the compatible image to the compatibility information generating unit 55, and supplies the multiplexing technique for the auxiliary images to the image information generating unit 54.
In step S14, based on the information supplied from the image converting unit 52, the compatibility information generating unit 55 generates the compatibility information that is the information designating the viewpoint image A1 as the compatible image and a compatible mode such as the mono mode, and supplies the compatibility information to the encoder 58.
In step S15, based on the information supplied from the image converting unit 52, the image information generating unit 54 generates the information indicating the multiplexing technique for the auxiliary images and the like as the image information, and supplies the image information to the encoder 58.
In step S16, the image converting unit 52 determines the auxiliary images to be the viewpoint image B1 and the viewpoint image C1, which are the viewpoint images other than the viewpoint image A1. Based on the auxiliary image multiplexing technique determined in step S13, the resolutions of the auxiliary images are then reduced, and the auxiliary images are multiplexed. The multiplexed image of the auxiliary images is thus formed.
In step S17, the image converting unit 52 inputs the viewpoint image A1 as the compatible image and the multiplexed image of the auxiliary images to the encoder 58.
In step S18 of FIG. 3, using the viewpoint images A1 through C1 supplied from the imaging units 51A through 51C, the parallax image generating unit 53 detects the parallax values of the respective pixels of the viewpoint images A1 through C1, and generates the parallax images A1′ through C1′.
In step S19, the parallax image generating unit 53 determines the multiplexing technique for the parallax images of the auxiliary images, and supplies the information indicating the multiplexing technique to the parallax image multiplexing information generating unit 57.
In step S20, based on the information supplied from the parallax image generating unit 53, the parallax image multiplexing information generating unit 57 generates parallax image multiplexing information, such as the information indicating the multiplexing technique for the parallax images of the auxiliary images, and inputs the parallax image multiplexing information to the encoder 58.
In step S21, based on the multiplexing technique for the parallax images of the auxiliary images determined in step S21, the parallax image generating unit 53 reduces the resolutions of the parallax image B1′ and the parallax image C1′ of the auxiliary images, and multiplexes the parallax images, to obtain the multiplexed image of the parallax images of the auxiliary images.
In step S22, the parallax image generating unit 53 inputs the parallax image A1′ of the compatible image and the multiplexed image of the parallax images of the auxiliary images to the encoder 58.
In step S23, the compatible encoder 61 of the encoder 58 encodes the viewpoint image A1 as the compatible image supplied from the image converting unit 52 by the conventional AVC technique, and supplies the resultant encoded stream as a compatible stream to the multiplexing unit 59.
In step S24, the auxiliary encoder 62 encodes, by a predetermined technique, the multiplexed image of the auxiliary images from the image converting unit 52, and the parallax image A1′ of the compatible image and the multiplexed image of the parallax images of the auxiliary images from the parallax image generating unit 53.
In step S25, the auxiliary encoder 62 adds the image information from the image information generating unit 54, the compatibility information from the compatibility information generating unit 55, the imaging information from the imaging information generating unit 56, the parallax image multiplexing information from the parallax image multiplexing information generating unit 57, and the like, to the encoded images obtained as a result of the encoding performed in step S24. An encoded stream is thus generated. The auxiliary encoder 62 supplies the encoded stream as an auxiliary stream to the multiplexing unit 59.
In step S26, the multiplexing unit 59 generates TSs (Transport Streams) from the compatible stream supplied from the compatible encoder 61 and the auxiliary stream supplied from the auxiliary encoder 62, and multiplexes the TSs for transmission. The operation then comes to an end.
As described above, the encoding device 50 reduces the resolutions of the auxiliary images and the parallax images of the auxiliary images. Accordingly, the amount of information to be encoded can be made smaller, and the processing costs for the encoding operation and the decoding operation can be made lower than in a case where encoding is performed without a resolution reduction. As a result, decoding operations by the decoding device can be prevented from greatly affecting the image quality of multi-view images.
The encoding device 50 also determines a compatible image to be a single-view image among multi-view images, and performs encoding by a conventional encoding technique. Accordingly, compatibility with conventional encoding devices that encode 2D images can be ensured.
Further, the encoding device 50 generates parallax images, and transmits an encoded stream containing the parallax images. Accordingly, the decoding device compatible with the encoding device 50 does not need to generate parallax images for generating multi-view images, and the processing load on the decoding device can be reduced. As a result, the costs of the decoding device can be lowered. Also, parallax detecting operations by the decoding device can be prevented from greatly affecting the image quality of multi-view images.
[Example Structure of the Decoding Device]
FIG. 4 is a diagram showing an example structure of the decoding device that decodes the multiplexed stream transmitted from the encoding device 50 shown in FIG. 1, the decoding device being an image processing device to which the present technique is applied.
The decoding device 120 shown in FIG. 4 includes a separating unit 121, a decoder 122, an image information acquiring unit 123, an imaging information acquiring unit 124, a parallax image multiplexing information acquiring unit 125, a compatibility information acquiring unit 126, and an image generating unit 127. The decoding device 120 decodes the multiplexed stream transmitted from the encoding device 50, generates multi-view images by performing parallax image warping operations, and causes a display device (not shown) to display the generated images.
Specifically, the separating unit 121 of the decoding device 120 functions as a receiving unit, receiving the multiplexed stream transmitted from the encoding device 50, and separating the TSs from one another. The separating unit 121 extracts the compatible stream and the auxiliary stream from the separated TSs, and supplies the extracted streams to the decoder 122.
The decoder 122 is formed with a compatible decoder 131 and an auxiliary decoder 132. Based on compatibility information that is supplied from the auxiliary decoder 132, the compatible decoder 131 of the decoder 122 identifies the compatible stream of the compatible and auxiliary streams supplied from the separating unit 121. Based on the compatibility information, the compatible decoder 131 decodes the encoded compatible image contained in the compatible stream by a technique compatible with the AVC technique. The compatible decoder 131 supplies the viewpoint image A1 obtained as a result of the decoding to the image generating unit 127.
The auxiliary decoder 132 supplies the compatibility information contained in the auxiliary stream supplied from the separating unit 121, to the compatible decoder 131. Based on the compatibility information, the auxiliary decoder 132 identifies the auxiliary stream of the compatible and auxiliary streams supplied from the separating unit 121. The auxiliary decoder 132 functions as a decoding unit, and decodes, by a technique compatible with the auxiliary encoder 62 shown in FIG. 1, the multiplexed image of the auxiliary images, the parallax image of the compatible image, and the multiplexed image of the parallax images of the auxiliary images, which have been encoded and are contained in the auxiliary stream supplied from the separating unit 121.
The auxiliary decoder 132 supplies the multiplexed image of the auxiliary images, the parallax image of the compatible image, and the multiplexed image of the parallax images of the auxiliary images, which are obtained as a result of the decoding, to the image generating unit 127. Also, the auxiliary decoder 132 supplies the image information contained in the auxiliary stream to the image information acquiring unit 123, and supplies the imaging information to the imaging information acquiring unit 124. Further, the auxiliary decoder 132 supplies the parallax image multiplexing information contained in the auxiliary stream to the parallax image multiplexing information acquiring unit 125, and supplies the compatibility information to the compatibility information acquiring unit 126.
The image information acquiring unit 123 acquires the image information supplied from the auxiliary decoder 132, and supplies the image information to the image generating unit 127. The imaging information acquiring unit 124 acquires the imaging information supplied from the auxiliary decoder 132, and supplies the imaging information to the image generating unit 127.
The parallax image multiplexing information acquiring unit 125 acquires the parallax image multiplexing information supplied from the auxiliary decoder 132, and supplies the parallax image multiplexing information to the image generating unit 127. The compatibility information acquiring unit 126 acquires the compatibility information supplied from the auxiliary decoder 132, and supplies the compatibility information to the image generating unit 127.
The image generating unit 127 is formed with a 2D image generating unit 141 and a 3D image generating unit 142. In accordance with a 2D image display instruction from a viewer, the 2D image generating unit 141 of the image generating unit 127 outputs the viewpoint image A1, which is the compatible image supplied from the compatible decoder 131, and causes the display device (not shown) to display the image. This enables the viewer to view a 2D image.
Meanwhile, using the viewpoint image A1, the multiplexed image of the auxiliary images, the parallax image A1′ of the compatible image, and the multiplexed image of the parallax images of the auxiliary images, which are supplied from the decoder 122, the 3D image generating unit 142 generates images that are of three or more viewpoints compatible with the display device (not shown) and have the same resolution as the compatible image based on the image information, the imaging information, the parallax image multiplexing information, the compatibility information, and the like. The 3D image generating unit 142 then converts the resolution of the generated multi-view images to the resolution calculated by dividing the resolution of the compatible image and the auxiliary images by the number of viewpoints, and combines the generated images. The resultant image is displayed on the display device (not shown).
At this point, the combined multi-view image is displayed, with viewable angle varying at the respective viewpoints. The viewer can view a 3D image without wearing glasses by seeing the images of any two viewpoints with the right and left eyes.
[Specific Example Structure of the 3D Image Generating Unit]
FIG. 5 is a block diagram showing a specific example structure of the 3D image generating unit 142 shown in FIG. 4.
As shown in FIG. 5, the 3D image generating unit 142 includes a virtual viewpoint position determining unit 160, a parallax image separating unit 161, a parallax image resolution increasing unit 162, a parallax image warping unit 163, a parallax image warping unit 164, a smoothing unit 165, a smoothing unit 166, a viewpoint image warping unit 167, a viewpoint image warping unit 168, a viewpoint image separating unit 169, a viewpoint image resolution increasing unit 170, a multi-view image generating unit 171, and a multi-view image combining unit 172.
Based on the inter-viewpoint distances contained in the imaging information supplied from the imaging information acquiring unit 124 and the number of viewpoints compatible with the display device (not shown), the virtual viewpoint position determining unit 160 of the 3D image generating unit 142 determines the positions of virtual viewpoints to be the positions of the viewpoints of the multi-view images being generated. Based on the positions of the respective virtual viewpoints, the virtual viewpoint position determining unit 160 generates parallax image identifying information for each of the parallax image warping unit 163 and the parallax image warping unit 164. The parallax image identifying information is to be used in generating images of the virtual viewpoints, and is for identifying parallax images of viewpoints located on the outer side of the virtual viewpoints. For each of the virtual viewpoints, the parallax image identifying information to be supplied to the parallax image warping unit 163 differs from the parallax image identifying information to be supplied to the parallax image warping unit 164.
The virtual viewpoint position determining unit 160 also supplies the positions of the respective virtual viewpoints and the corresponding parallax image identifying information to the parallax image warping unit 163 and the parallax image warping unit 164.
Based on the compatibility information supplied from the compatibility information acquiring unit 126, the parallax image separating unit 161 supplies the parallax image A1′ of the compatible image supplied from the decoder 122, directly to the parallax image resolution increasing unit 162. Based on the parallax image multiplexing information supplied from the parallax image multiplexing information acquiring unit 125, the parallax image separating unit 161 also divides the multiplexed image of the parallax images of the auxiliary images supplied from the decoder 122. The parallax image separating unit 161 then supplies the parallax images of the viewpoint image B1 and the viewpoint image C1 that are obtained as a result and have half the resolution of the compatible image, to the parallax image resolution increasing unit 162.
The parallax image resolution increasing unit 162 functions as a resolution increasing unit, and increases the resolutions of the respective parallax images of the viewpoint image B1 and the viewpoint image C1, which are supplied from the parallax image separating unit 161 and have half the resolution of the compatible image. As a result, the parallax image resolution increasing unit 162 obtains the parallax images of the viewpoint image B1 and the viewpoint image C1 with the same resolution as that of the compatible image. The parallax image resolution increasing unit 162 then supplies the obtained parallax images of the viewpoint image B1 and the viewpoint image C1, and the parallax image A1′ supplied from the parallax image separating unit 161, to the parallax image warping unit 163 and the parallax image warping unit 164.
The parallax image warping unit 163 functions as a parallax image warping unit. Specifically, based on the parallax image identifying information supplied from the virtual viewpoint position determining unit 160, the parallax image warping unit 163 selects, for each virtual viewpoint, one image from the parallax images of the viewpoint image B1 and the viewpoint image C1 and the parallax image A1′, which are supplied from the parallax image resolution increasing unit 162. Based on the imaging information from the imaging information acquiring unit 124 and the positions of the virtual viewpoints from the virtual viewpoint position determining unit 160, the parallax image warping unit 163 performs a warping operation on the selected parallax image for each virtual viewpoint. The parallax image warping unit 163 supplies the parallax image of each virtual viewpoint generated through the warping operation to the smoothing unit 165.
The parallax image warping unit 164 functions as a parallax image warping unit, performing the same operations as those of the parallax image warping unit 163, and supplying the resultant parallax images of the respective virtual viewpoints to the smoothing unit 166.
The smoothing unit 165 functions as a correcting unit, and performs a smoothing operation to remove the parallax values other than 0 from occlusion regions (described later) in the parallax images of the respective virtual viewpoints supplied from the parallax image warping unit 163. Specifically, the smoothing unit 165 detects the parallax values other than 0 in the occlusion regions from the parallax images of the respective virtual viewpoints, and corrects the parallax values to 0. The smoothing unit 165 supplies the parallax images of the respective virtual viewpoints subjected to the smoothing operation, to the viewpoint image warping unit 167.
An occlusion region is a region that is formed due to a difference between a virtual viewpoint and the viewpoint of an actually formed viewpoint image. Such an occlusion region exists in an image of a virtual viewpoint, but does not exist in the viewpoint image corresponding to the parallax image used in generating the parallax image of the virtual viewpoint. Of the parallax images subjected to a warping operation, the parallax values of the pixels that do not correspond to the pixels of the parallax image not yet subjected to the warping operation are set to 0. Therefore, the parallax values of the occlusion regions are 0, and the occlusion regions are represented by black circles.
Like the smoothing unit 165, the smoothing unit 166 functions as a correcting unit, and performs a smoothing operation on the parallax images of the respective virtual viewpoints supplied from the parallax image warping unit 164. The smoothing unit 166 then supplies the parallax images of the respective virtual viewpoints subjected to the smoothing operation, to the viewpoint image warping unit 168.
The viewpoint image warping unit 167 functions as a viewpoint image warping unit. Specifically, based on the parallax image of each virtual viewpoint supplied from the smoothing unit 165, the viewpoint image warping unit 167 performs, for each virtual viewpoint, a warping operation on the viewpoint image supplied from the viewpoint image resolution increasing unit 170, the viewpoint image corresponding to the parallax image. The viewpoint image warping unit 167 supplies the image of each virtual viewpoint that is obtained as a result of the warping operation and includes an occlusion region, to the multi-view image generating unit 171.
The viewpoint image warping unit 168 functions as a viewpoint image warping unit, and performs the same operations as those of the viewpoint image warping unit 167 based on the parallax images of the respective virtual viewpoints supplied from the smoothing unit 166.
Based on the compatibility information supplied from the compatibility information acquiring unit 126, the viewpoint image separating unit 169 supplies the viewpoint image A1 as the compatible image supplied from the decoder 122, directly to the viewpoint image resolution increasing unit 170. Based on the image information supplied from the image information acquiring unit 123, the viewpoint image separating unit 169 divides the multiplexed image of the auxiliary images supplied from the decoder 122. The viewpoint image separating unit 169 supplies the resultant viewpoint image B1 and the viewpoint image C1 each having a resolution that is half the resolution of the compatible image, to the viewpoint image resolution increasing unit 170.
The viewpoint image resolution increasing unit 170 increases the resolutions by performing an interpolating operation on each of the viewpoint image B1 and the viewpoint image C1 having the resolution that is half the resolution of the compatible image supplied from the viewpoint image separating unit 169. By doing so, the viewpoint image resolution increasing unit 170 obtains the viewpoint image B1 and the viewpoint image C1 having the same resolution as the compatible image. The viewpoint image resolution increasing unit 170 then supplies the parallax images of the obtained viewpoint image B1 and viewpoint image C1, and the viewpoint image A1 supplied from the viewpoint image separating unit 169, to the viewpoint image warping unit 167 and the viewpoint image warping unit 168.
The multi-view image generating unit 171 functions as an interpolating unit, and, for each virtual viewpoint, interpolates the occlusion region of the virtual viewpoint image supplied from one of the viewpoint image warping units 167 and 168 with the virtual viewpoint image supplied from the other one of the viewpoint image warping units 167 and 168. The multi-view image generating unit 171 supplies the respective resultant virtual viewpoint images as multi-view images to the multi-view image combining unit 172.
The multi-view image combining unit 172 converts the resolution of the multi-view images supplied from the multi-view image generating unit 171 into the resolution calculated by dividing the resolution of the compatible image and the auxiliary images by the number of the virtual viewpoints, and combines the resultant multi-view images to be displayed on the display device (not shown).
[Description of Generation of Virtual Viewpoint Images]
FIG. 6 is a diagram for explaining generation of an image of a virtual viewpoint by the 3D image generating unit 142 shown in FIG. 5.
As shown in FIG. 6, the parallax image warping unit 163 and the parallax image warping unit 164 selects different parallax images from each other based on the parallax image identifying information. In the example shown in FIG. 6, the parallax image warping unit 163 selects a parallax image that is formed with a circular region that is located in a left-side portion of the screen and has a predetermined parallax value other than 0, and a region that is other than the circular region and has a parallax value of 0 (hereinafter referred to as the parallax image #1). Meanwhile, the parallax image warping unit 164 selects a parallax image that is formed with a circular region that is located in a right-side portion of the screen and has a predetermined parallax value other than 0, and a region that is other than the circular region and has a parallax value of 0 (hereinafter referred to as the parallax image #2).
Based on the position of a virtual viewpoint and the imaging information, each of the parallax image warping units 163 and 164 performs a warping operation on the selected parallax image, to generate a parallax image of the virtual viewpoint. The smoothing unit 165 and the smoothing unit 166 each perform a smoothing operation on the generated parallax image of the virtual viewpoint.
As a result, the parallax image #1 of the virtual viewpoint becomes a parallax image in which the circular region has moved rightward, for example, and all the parallax values in the occlusion region that is formed on the left side of the circular region and is shown as a black region in the drawing are 0, as shown in FIG. 6. Meanwhile, the parallax image #2 of the virtual viewpoint becomes a parallax image in which the circular region has moved leftward, for example, and all the parallax values in the occlusion region that is formed on the right side of the circular region and is shown as a black region in the drawing are 0. It should be noted that the position of the circular region in the virtual viewpoint parallax image #1 coincides with the position of the circular region in the virtual viewpoint parallax image #2.
Based on the virtual viewpoint parallax image #1, the viewpoint image warping unit 167 performs a warping operation on the viewpoint image #1 corresponding to the parallax image #1. In the example shown in FIG. 6, the circular region having the predetermined parallax value other than 0 in the viewpoint image #1 is a region in a different color from the other region having the parallax value of 0. Therefore, in the post-warping viewpoint image #1, the circular region in a different color from the surrounding region has moved rightward from the position of the circular region in the pre-warping viewpoint image #1, and an occlusion region exists on the left side of the circular region.
Meanwhile, based on the virtual viewpoint parallax image #2, the viewpoint image warping unit 168 performs a warping operation on the viewpoint image #2 corresponding to the parallax image #2. In the example shown in FIG. 6, the circular region having the predetermined parallax value other than 0 in the viewpoint image #2 is a region in a different color from the other region having the parallax value of 0. Therefore, in the post-warping viewpoint image #2, the circular region in a different color from the surrounding region has moved leftward from the position of the circular region in the pre-warping viewpoint image #2, and an occlusion region exists on the right side of the circular region.
The multi-view image generating unit 171 interpolates the occlusion region of one of the post-warping viewpoint images #1 and #2 with the other one of the viewpoint images. Specifically, since the parallax image identifying information is the information for identifying the viewpoint images of viewpoints on the outer side of the virtual viewpoint, the image of the occlusion region existing in one of the post-warping viewpoint images #1 and #2 exists in the other one of the viewpoint images. Therefore, the multi-view image generating unit 171 interpolates the image of the occlusion region existing in one of the post-warping viewpoint images #1 and #2 with the image of the occlusion region existing in the other one of the viewpoint images. As a result, a virtual viewpoint image in which any occlusion region does not exist is generated, as shown in FIG. 6.
[Description of a Parallax Image Warping Operation]
FIG. 7 is a diagram for explaining a parallax image warping operation.
In a parallax image warping operation, the position m (x, y, z) of each pixel in a parallax image of a viewpoint in a selected position t (tx, ty, tz) is first associated with a position m′ (x′, y′, z′) in a parallax image of a virtual viewpoint in a position t′ (t′x, t′y, t′z) via a three-dimensional space, as shown in FIG. 7.
Specifically, according to the equations (1) shown below, the position M (X, Y, Z) in the three-dimensional space corresponding to the position m (x, y, z) of a pixel of a parallax value Z in the parallax image of the viewpoint in the position t (tx, ty, tz) is determined, and the position m′ (x′, y′, z′) corresponding to the position M (X, Y, Z) in the parallax image of the virtual viewpoint in the position t′ (t′x, t′y, t′z) is determined.

(X,Y,Z)T=RA−1(x,y,1)TZ+(tx,ty,tz)Ts(x′,y′,1)T=A′R′−1[(X,Y,Z)T−(t′x,t′y,t′z)T]  (1)

In the equations (1), R represents the rotation matrix for warping operations of the imaging units 51A through 51C that capture parallax images, and is expressed by the following equation (2):




  
    
      
        [
        
          Mathematical
          ⁢
          
            
          
          ⁢
          Formula
          ⁢
          
            
          
          ⁢
          1
        
        ]
      
    
    
      
        
      
    
  
  
    
      
        R
        =
        
          [
          
            
              
                
                  r_
                  ⁢
                  11
                
              
              
                
                  r_
                  ⁢
                  12
                
              
              
                
                  r_
                  ⁢
                  13
                
              
            
            
              
                
                  r_
                  ⁢
                  21
                
              
              
                
                  r_
                  ⁢
                  22
                
              
              
                
                  r_
                  ⁢
                  23
                
              
            
            
              
                
                  r_
                  ⁢
                  31
                
              
              
                
                  r_
                  ⁢
                  32
                
              
              
                
                  r_
                  ⁢
                  33
                
              
            
          
          ]
        
      
    
    
      
        (
        2
        )
      
    
  




In the equation (2), r_11 through r_13, r_21 through r_23, and r_31 through r_33 are predetermined values.
In the equations (1), A represents a matrix containing the internal parameters of the imaging units 51A through 51C that capture parallax images, and is expressed by the following equation (3):




  
    
      
        
          
        
        ⁢
        
          [
          
            Mathematical
            ⁢
            
              
            
            ⁢
            Formula
            ⁢
            
              
            
            ⁢
            2
          
          ]
        
      
    
    
      
        
      
    
  
  
    
      
        A
        =
        
          [
          
            
              
                
                  focal_length
                  ⁢
                  _x
                
              
              
                radical_distortion
              
              
                
                  principal_point
                  ⁢
                  _x
                
              
            
            
              
                0.0
              
              
                
                  focal_length
                  ⁢
                  _y
                
              
              
                
                  principal_point
                  ⁢
                  _y
                
              
            
            
              
                0.0
              
              
                0.0
              
              
                1.0
              
            
          
          ]
        
      
    
    
      
        (
        3
        )
      
    
  




In the equation (3), “focal_length_x” and “focal_length_y” represent the x-direction focal length and the y-direction focal length included in the internal parameters, respectively. “principal_point_x” and “principal_point_y” represent the x-direction position and the y-direction position of the principal point included in the internal parameters, respectively. “radial_distortion” represents the radial distortion coefficient included in the internal parameters.
Further, in the equations (1), R′ is expressed in the same manner as R, and represents the rotation matrix for warping operations of a virtual imaging unit that captures virtual viewpoint parallax images. A′ is expressed in the same manner as A, and represents a matrix containing the internal parameters of a virtual imaging unit that captures virtual viewpoint parallax images. Also, in the equations (1), s represents scaling factor.
After association is conducted in the above described manner, the pixels corresponding to the respective pixels in the selected parallax image are determined in the virtual viewpoint parallax image based on the position m′ (x′, y′, z′) corresponding to the position m (x, y, z) of each pixel. In a case where two or more pixels are associated with a predetermined pixel in a virtual viewpoint parallax image, the pixel with the largest parallax value among the two or more pixels, or the pixel corresponding to the object on the front side, is set as the pixel corresponding to the predetermined pixel in the virtual viewpoint parallax image. The parallax value of each pixel in the selected parallax image is set as the parallax value of the pixel corresponding to the pixel in the virtual viewpoint parallax image, and, as a result, the virtual viewpoint parallax image is generated.
FIG. 8 is a diagram showing a parallax image that has its resolution not yet reduced by the parallax image generating unit 53 of the encoding device 50, and the result of the warping operation performed on the parallax image. In FIG. 8, the small circles represent pixels, and the patterns in the circles represent parallax values. The same applies to FIGS. 9 and 10, which will be described later.
In the example shown in FIG. 8, the parallax image having its resolution not yet reduced is a parallax image in which the circular region located at the center of the screen has a predetermined parallax value greatly different from 0, and the parallax value of the region other than the circular region is 0, as shown in A of FIG. 8. In this case, when a warping operation is performed on the parallax image having its resolution not yet reduced, the circular region moves leftward by the distance equivalent to 10 pixels, for example, in the virtual viewpoint parallax image obtained as a result of the warping operation, as shown in B of FIG. 8.
FIG. 9 is a diagram showing a parallax image having its resolution reduced by the parallax image generating unit 53 of the encoding device 50, a parallax image having its resolution increased by the parallax image resolution increasing unit 162, and the result of a warping operation performed on the parallax image having its resolution increased.
In a case where the parallax image generating unit 53 performs a resolution reduction by setting the average parallax value between two pixels adjacent to each other in the horizontal direction in the parallax image of A of FIG. 8 having its resolution not yet reduced as the parallax value of the pixels corresponding to the two pixels in the parallax image having its resolution lowered, the parallax image having its resolution reduced is as shown in A of FIG. 9.
In FIG. 9, the parallax values of the pixels represented by the circles marked with vertical lines is the average value between the parallax values of the pixels represented by the circles marked with grid-like patterns and the parallax values of the pixels represented by the circles in gray. For ease of explanation, in A of FIG. 9, the pixels having their resolutions not yet reduced are represented by circles, and the pixels to be removed by the resolution reduction are represented by the circles that are not shaded.
When the parallax image of A of FIG. 9 having its resolution reduced is supplied, the parallax image resolution increasing unit 162 increases the resolution by conducting a linear interpolation on the parallax values of the respective pixels in the parallax image having its resolution increased, for example, by using the parallax value of two pixels adjacent to each other in the horizontal direction in the parallax image of A of FIG. 9 having its resolution reduced, the two pixels corresponding to those pixels. As a result, the parallax image of B of FIG. 9 having its resolution increased is generated. In FIG. 9, the parallax values of the pixels represented by the circles marked with horizontal lines are values within the range of the parallax values of the pixels represented by the circles marked with grid-like patterns and the parallax values of the pixels represented by the circles marked with vertical lines.
When a warping operation is performed on the parallax image with an increased resolution shown in B of FIG. 9, the occlusion region marked with the diagonal lines in C of FIG. 9 is associated with a parallax value other than 0, for example, in the virtual viewpoint parallax image obtained as a result of the warping operation. Specifically, the pixels represented by the circles marked with horizontal lines need to move leftward by the distance equivalent to 10 pixels as shown in B of FIG. 8, but actually move leftward by the distance equivalent only to 5 pixels as shown in C of FIG. 9, for example. That is, an accurate warping operation is not performed. As a result, there exists a pixel value in the occlusion region that is not supposed to be associated with a pixel value in the image of the virtual viewpoint, and the pixel value is not interpolated with another image of the virtual viewpoint at the time of the interpolation performed by the multi-view image generating unit 171. As a result, the image of the virtual viewpoint is broken.
In view of this, the smoothing unit 165 and the smoothing unit 166 of the 3D image generating unit 142 perform smoothing operations, to correct the parallax values other than 0 in the occlusion region to 0.
[Description of the Smoothing Operations]
FIG. 10 is a diagram for explaining a smoothing operation by the smoothing unit 165 (166) shown in FIG. 5.
As shown in the left-side portion of FIG. 10, when the parallax image warping unit 163 (164) shown in FIG. 5 generates the parallax image of the virtual viewpoint shown in C of FIG. 9, the smoothing unit 165 (166) detects the pixels having parallax values other than 0 in the occlusion region of the parallax image. As shown in the right-side portion of FIG. 10, the smoothing unit 165 (166) then corrects the parallax pixels of the pixels having the parallax values other than 0 in the occlusion region to 0.
In this manner, the smoothing unit 165 (166) detects the pixels corresponding to the parallax values other than 0 in the occlusion region, and corrects the parallax values of the pixels to 0. Accordingly, a pixel value can be prevented from wrongly appearing in the occlusion region of the virtual viewpoint image. As a result, the image of the virtual viewpoint can be prevented from being broken.
[Description of an Operation of the Decoding Device]
FIG. 11 is a flowchart for explaining a decoding operation by the decoding device 120 shown in FIG. 4. This decoding operation is started when the multiplexed stream transmitted from the encoding device 50 shown in FIG. 1 is input to the decoding device 120, for example.
In step S61 of FIG. 11, the separating unit 121 of the decoding device 120 receives the multiplexed stream transmitted from the encoding device 50, and separates the TSs from one another. The separating unit 121 extracts the compatible stream and the auxiliary stream from the separated TSs, and supplies the extracted streams to the decoder 122. The auxiliary decoder 132 of the decoder 122 supplies the compatibility information contained in the auxiliary stream supplied from the separating unit 121, to the compatible decoder 131.
In step S62, based on compatibility information that is supplied from the auxiliary decoder 132, the compatible decoder 131 identifies the compatible stream of the compatible and auxiliary streams supplied from the separating unit 121.
In step S63, based on the compatibility information, the compatible decoder 131 decodes the compatible image contained in the compatible stream by a technique compatible with the AVC technique, and supplies the resultant viewpoint image A1 to the image generating unit 127.
In step S64, the image generating unit 127 determines whether a 2D image display instruction has been issued from a viewer. If it is determined in step S64 that a 2D image display instruction has not been issued from a viewer, or if a glasses-free 3D image display instruction has been issued from a viewer, the auxiliary decoder 132 identifies the auxiliary stream of the compatible and auxiliary streams supplied from the separating unit 121 based on the compatibility information.
In step S65, the auxiliary decoder 132 decodes, by a technique compatible with the auxiliary encoder 62 shown in FIG. 1, the multiplexed image of the auxiliary images, the parallax image A1′ of the compatible image, and the multiplexed image of the parallax images of the auxiliary images, which have been encoded and are contained in the auxiliary stream. The auxiliary decoder 132 supplies the multiplexed image of the auxiliary images, the parallax image A1′ of the compatible image, and the multiplexed image of the parallax images of the auxiliary images, which are obtained as a result of the decoding, to the image generating unit 127. Also, the auxiliary decoder 132 supplies the image information contained in the auxiliary stream to the image information acquiring unit 123, and supplies the imaging information to the imaging information acquiring unit 124. Further, the auxiliary decoder 132 supplies the parallax image multiplexing information contained in the auxiliary stream to the parallax image multiplexing information acquiring unit 125, and supplies the compatibility information to the compatibility information acquiring unit 126.
In step S66, the image information acquiring unit 123 acquires the image information supplied from the auxiliary decoder 132, and inputs the image information to the image generating unit 127. In step S67, the imaging information acquiring unit 124 acquires the imaging information supplied from the auxiliary decoder 132, and inputs the imaging information to the image generating unit 127.
In step S68, the parallax image multiplexing information acquiring unit 125 acquires the parallax image multiplexing information supplied from the auxiliary decoder 132, and inputs the parallax image multiplexing information to the image generating unit 127. In step S69, the compatibility information acquiring unit 126 acquires the compatibility information supplied from the auxiliary decoder 132, and inputs the compatibility information to the image generating unit 127.
In step S70, the 3D image generating unit 142 of the image generating unit 127 performs a multi-view image generating operation to generate a combined image of multi-view images. This multi-view image generating operation will be described later in detail, with reference to FIG. 12.
In step S71, the image generating unit 127 outputs the combined image of multi-view images generated through the procedure of step S70 to the display device (not shown), and causes the display device to display the combined image so that the viewable angle varies at the respective viewpoints. The operation then comes to an end.
If it is determined in step S64 that a 2D image display instruction has been issued from a viewer, on the other hand, the 2D image generating unit 141 of the image generating unit 127, in step S72, outputs the viewpoint image A1 as the compatible image supplied from the compatible decoder 131 to the display device (not shown), and causes the display device to display the viewpoint image A1. The operation then comes to an end.
FIG. 12 is a flowchart for explaining in detail the multi-view image generating operation of step S70 shown in FIG. 11.
In step S90 of FIG. 12, based on the inter-viewpoint distances contained in the imaging information supplied from the imaging information acquiring unit 124 and the number of viewpoints compatible with the display device (not shown), the virtual viewpoint position determining unit 160 (FIG. 5) of the 3D image generating unit 142 determines the positions of respective virtual viewpoints. Based on the positions of the respective virtual viewpoints, the virtual viewpoint position determining unit 160 generates parallax image identifying information for each of the parallax image warping unit 163 and the parallax image warping unit 164. The virtual viewpoint position determining unit 160 also supplies the positions of the respective virtual viewpoints and the corresponding parallax image identifying information to the parallax image warping unit 163 and the parallax image warping unit 164.
In step S91, the parallax image separating unit 161 acquires the parallax image A1′ of the compatible image and the multiplexed image of the parallax images of the auxiliary images supplied from the auxiliary decoder 132.
In step S92, based on the parallax image multiplexing information supplied from the parallax image multiplexing information acquiring unit 125, the parallax image separating unit 161 divides the multiplexed image of the parallax images of the auxiliary images. The parallax image separating unit 161 then supplies the resultant parallax images of the viewpoint image B and the viewpoint image C that are the auxiliary images and have a resolution that is half the resolution of the compatible image, to the parallax image resolution increasing unit 162. Based on the compatibility information supplied from the compatibility information acquiring unit 126, the parallax image separating unit 161 supplies the parallax image A1′ directly to the parallax image resolution increasing unit 162.
In step S93, the parallax image resolution increasing unit 162 increases the resolutions of the parallax images of the viewpoint image B and the viewpoint image C that are the auxiliary images and have the resolution that is half the resolution of the compatible image supplied from the parallax image separating unit 161. As a result, the parallax image resolution increasing unit 162 obtains the parallax images of the viewpoint image B1 and the viewpoint image C1 with the same resolution as that of the compatible image. The parallax image resolution increasing unit 162 then supplies the obtained parallax images of the viewpoint image B1 and the viewpoint image C1, and the parallax image A1′ supplied from the parallax image separating unit 161, to the parallax image warping unit 163 and the parallax image warping unit 164.
In step S94, based on the parallax image identifying information supplied from the virtual viewpoint position determining unit 160, the parallax image warping unit 163 selects, for each virtual viewpoint, one image from the parallax images of the viewpoint image B1 and the viewpoint image C1 and the parallax image A1′, which are supplied from the parallax image resolution increasing unit 162. The parallax image warping unit 164 performs the same operations as those of the parallax image warping unit 163.
In steps S95 through S96 the parallax image warping units 163 and 164 each perform a warping operation on the selected parallax image.
Specifically, in step S95 for each virtual viewpoint, the parallax image warping unit 163 (164) first determines the pixel corresponding to each pixel in the virtual viewpoint parallax image based on the position of the virtual viewpoint, the imaging information, and the selected parallax image, according to the above described equations (1).
In step S96, based on the pixel determined in step S97, the parallax image warping unit 163 (164) generates a virtual viewpoint parallax image from the selected parallax image, for each virtual viewpoint. Specifically, for each virtual viewpoint, the parallax image warping unit 163 (164) sets the parallax value of each pixel in the selected parallax image as the parallax value of the pixel determined in step S95 in the virtual viewpoint parallax image. The parallax image warping unit 163 (164) then supplies each resultant virtual viewpoint parallax image to the smoothing unit 165 (166).
After the procedure of step S96, the smoothing units 165 and 166, in steps S97 and S98, perform smoothing operations on the respective virtual viewpoint parallax images generated in step S96.
Specifically, in step S97, the smoothing unit 165 (166) detects pixels that have peripheral pixels having a parallax value of 0 among the pixels corresponding to the parallax values other than 0 in the parallax image of each virtual viewpoint, the detected pixels being the pixels corresponding to the parallax values other than 0 in the occlusion region.
In step S98, the smoothing unit 165 (166) corrects the parallax values of the pixels detected in step S97 from the parallax image of each virtual viewpoint, to 0, and then supplies the corrected parallax image of each virtual viewpoint to the viewpoint image warping unit 167 (168).
In step S99, based on the image information supplied from the image information acquiring unit 123, the viewpoint image separating unit 169 divides the multiplexed image of the auxiliary images supplied from the auxiliary decoder 132. The viewpoint image separating unit 169 then supplies the resultant viewpoint images B1 and C1 having a resolution that is half the resolution of the compatible image, to the parallax image resolution increasing unit 162. Based on the compatibility information supplied from the compatibility information acquiring unit 126, the viewpoint image separating unit 169 supplies the viewpoint image A1 as the compatible image supplied from the compatible decoder 131, directly to the viewpoint image resolution increasing unit 170.
In step S100, the viewpoint image resolution increasing unit 170 increases the resolutions of the viewpoint image B1 and the viewpoint image C1 that are the auxiliary images and have the resolution that is half the resolution of the compatible image supplied from the viewpoint image separating unit 169. By doing so, the viewpoint image resolution increasing unit 170 obtains the viewpoint image B1 and the viewpoint image C1 having the same resolution as the compatible image. The viewpoint image resolution increasing unit 170 then supplies the obtained viewpoint image B1 and viewpoint image C1, and the viewpoint image A1 supplied from the viewpoint image separating unit 169, to the viewpoint image warping unit 167 and the viewpoint image warping unit 168.
In step S101, based on the parallax image of each virtual viewpoint supplied from the smoothing unit 165, the viewpoint image warping unit 167 performs, for each virtual viewpoint, a warping operation on the viewpoint image supplied from the viewpoint image resolution increasing unit 170, the viewpoint image corresponding to the parallax image. As a result, an image of each virtual viewpoint including an occlusion region is generated. The viewpoint image warping unit 167 supplies the image of each virtual viewpoint including an occlusion region to the multi-view image generating unit 171. Based on the parallax images of the respective virtual viewpoints supplied from the parallax image warping unit 164, the viewpoint image warping unit 168 performs the same operations as those of the viewpoint image warping unit 167.
In step S102, the multi-view image generating unit 171 interpolates, for each virtual viewpoint, the occlusion region of the virtual viewpoint image supplied from one of the viewpoint image warping units 167 and 168 with the virtual viewpoint image supplied from the other one of the viewpoint image warping units 167 and 168. The multi-view image generating unit 171 supplies the respective resultant virtual viewpoint images as multi-view images to the multi-view image combining unit 172.
In step S103, the multi-view image combining unit 172 converts the resolution of the multi-view images supplied from the multi-view image generating unit 171 into the resolution calculated by dividing the resolution of the compatible image and the auxiliary images by the number of the virtual viewpoints, and combines the resultant multi-view images, to generate a combined image of the multi-view images. The operation returns to step S70 of FIG. 11, and then moves on to step S71.
As described above, the decoding device 120 performs smoothing operations on the parallax images of virtual viewpoints obtained as a result of warping operations. Accordingly, a pixel value can be prevented from existing in the occlusion regions of images of the virtual viewpoints. As a result, the image of the occlusion region of one of the two images of each virtual viewpoint can be interpolated with the image of the other one, and high-precision images of the virtual viewpoints with no broken portions can be generated.
Second Embodiment
Example Structure of a Second Embodiment of an Encoding Device
FIG. 13 is a block diagram showing an example structure of a second embodiment of an encoding device equivalent to an image processing device to which the present technique is applied.
In the structure illustrated in FIG. 13, the same components as those in FIG. 1 are denoted by the same reference numerals as those in FIG. 1. The explanations that have already been made will not be repeated.
The structure of the encoding device 200 shown in FIG. 13 differs from the structure shown in FIG. 1, mainly in that a boundary information generating unit 201 is newly provided, and the encoder 58 is replaced with an encoder 202.
The encoding device 200 adds boundary information (is_depth_edge) to an encoded parallax image having its resolution reduced, and then transmits the parallax image. The boundary information indicates whether the pixel is adjacent to a boundary position where the parallax values in the parallax image greatly vary.
Specifically, the boundary information generating unit 201 of the encoding device 200 detects respective boundary positions from a parallax image B1′ and a parallax image C1′ generated by a parallax image generating unit 53. Based on the detected boundary positions, the boundary information generating unit 201 generates boundary information on a pixel basis or macroblock basis, and supplies the boundary information to the encoder 202. It should be noted that a “macroblock” is a unit for encoding.
The encoder 202 is formed with a compatible encoder 61 and an auxiliary encoder 211.
Like the auxiliary encoder 62 shown in FIG. 1, the auxiliary encoder 211 of the encoder 202 encodes, by a predetermined technique, a multiplexed image of auxiliary images from an image converting unit 52, and a parallax image A1′ of a compatible image and a multiplexed image of parallax images of the auxiliary images from the parallax image generating unit 53.
The auxiliary encoder 211 also adds image information from an image information generating unit 54, compatibility information from a compatibility information generating unit 55, imaging information from an imaging information generating unit 56, parallax image multiplexing information from a parallax image multiplexing information generating unit 57, the boundary information from the boundary information generating unit 201, and the like, to the encoded images obtained as a result of the encoding. An encoded stream is thus generated. The auxiliary encoder 211 supplies the encoded stream as an auxiliary stream to the multiplexing unit 59.
[Example of the Boundary Information]
FIG. 14 is a diagram showing an example of the boundary information.
In FIG. 14, the small circles represent pixels, and the patterns in the circles represent parallax values.
In the parallax image in the example shown in FIG. 14, the parallax value in the circular region located at the center of the screen greatly differs from the parallax value in the region other than the circular region, as shown in the left-side portion of FIG. 14. Accordingly, there is a boundary position on the boundary between the circular region existing at the center of the screen and the region other than the circular region.
In a case where the boundary information is generated on a pixel basis, the boundary information about two pixels adjacent to the boundary position is 1, which indicates that the target pixel is adjacent to the boundary position, for example, as shown in the upper right portion of FIG. 14. The boundary information about the pixels other than the two adjacent ones is 0, which indicates that the pixel is not adjacent to the boundary position.
In a case where the boundary information is generated on a macroblock basis, the boundary information about a macroblock (MB) containing two pixels adjacent to the boundary position is 1, which indicates that the target pixel is adjacent to the boundary position, for example, as shown in the lower right portion of FIG. 14. The boundary information about the macroblocks other than the above described macroblock is 0, which indicates that the target pixel is not adjacent to the boundary position.
[Description of an Operation of the Encoding Device]
FIGS. 15 and 16 are flowchart for explaining an encoding operation by the encoding device 200 shown in FIG. 13. This encoding operation is started when the viewpoint images A1 through C1 are output from the imaging units 51A through 51C, for example.
The procedures of step S120 of FIG. 15 through step S128 of FIG. 16 are the same as the procedures of step S10 of FIG. 2 through step S18 of FIG. 3, and therefore, explanation of them is not repeated herein.
In step S129 of FIG. 16, the boundary information generating unit 201 performs a boundary information generating operation to generate the boundary information about the parallax image B1′ and the parallax image C1′ supplied from the parallax image generating unit 53. This boundary information generating operation will be described later in detail, with reference to FIG. 17.
In step S130, the boundary information generating unit 201 inputs the boundary information generated in step S129, to the encoder 58.
The procedures of steps S131 through S136 are the same as the procedures of steps S19 through S24 of FIG. 3, and therefore, explanation of them is not repeated herein.
In step S137, the auxiliary encoder 211 adds the image information from the image information generating unit 54, the compatibility information from the compatibility information generating unit 55, the imaging information from the imaging information generating unit 56, the parallax image multiplexing information from the parallax image multiplexing information generating unit 57, the boundary information from the boundary information generating unit 201, and the like, to the encoded images obtained as a result of the encoding performed in step S136. An encoded stream is thus generated. The auxiliary encoder 211 supplies the encoded stream as an auxiliary stream to the multiplexing unit 59.
In step S138, the multiplexing unit 59 generates TSs from the compatible stream supplied from the compatible encoder 61 and the auxiliary stream supplied from the auxiliary encoder 211, and multiplexes the TSs for transmission. The operation then comes to an end.
FIG. 17 is a flowchart for explaining the boundary information generating operation of step S129 shown in FIG. 16. Referring to FIG. 17, a boundary information generating operation to be performed to generate the boundary information on a pixel basis is described. Also, the boundary information generating operation shown in FIG. 17 is performed for each parallax image.
In step S141 of FIG. 17, the boundary information generating unit 201 acquires a parallax image supplied from the parallax image generating unit 53.
In step S142, the boundary information generating unit 201 determines the parallax value difference between pixels that are adjacent to each other and have not been subjected to the procedure of step S142, among the pixels adjacent to each other in the horizontal direction in the parallax image.
In step S143, the boundary information generating unit 201 determines whether the parallax value difference determined in step S142 is larger than a predetermined threshold value.
If the parallax value difference is determined to be larger than the predetermined threshold value in step S143, the boundary information generating unit 201, in step S144, detects the boundary position that is the position between the two adjacent pixels to be subjected to the procedure of step S142, and sets the boundary information about the two pixels to 1.
If the parallax value difference is determined not to be larger than the predetermined threshold value in step S143, on the other hand, the boundary information generating unit 201, in step S145, sets the boundary information that is not 1 in the boundary information about the two adjacent pixels to be subjected to the procedure of step S142, to 0.
After the procedure of step S144 or step S145, the boundary information generating unit 201, in step S146, determines whether the parallax value difference between each two pixels adjacent to each other in the horizontal direction in the parallax image has been determined.
If it is determined in step S146 that the parallax value difference between each two pixels adjacent to each other in the horizontal direction in the parallax image has not been determined, the operation returns to step S142, and the procedures of steps S142 through S146 are repeated until the parallax value difference between each two pixels adjacent to each other in the horizontal direction in the parallax image is determined.
If it is determined in step S146 that the parallax value difference between each two pixels adjacent to each other in the horizontal direction in the parallax image has been determined, the operation returns to step S129 of FIG. 16, and then moves on to step S130.
In a case where the boundary information is generated on a macroblock basis, the boundary information generating unit 201 carries out the procedures of steps S142 through S146 on a macroblock basis in the boundary information generating operation shown in FIG. 17.
Specifically, the boundary information generating unit 201, in step S142, determines the parallax value difference between pixels adjacent to each other in the horizontal direction in a predetermined macroblock in the parallax image, and, in step S143, determines whether at least one of the parallax value differences is larger than a predetermined threshold value. If at least one parallax value difference is determined to be larger than the predetermined threshold value, the boundary information generating unit 201, in step S144, sets the boundary information about the macroblock corresponding to the difference, to 1. If all the parallax value differences are determined to be equal to or smaller than the predetermined threshold value, on the other hand, the boundary information generating unit 201, in step S145, sets the boundary information that is not set to 1 in the boundary information about the macroblocks corresponding to the differences, to 0.
As described above, the encoding device 200 reduces the resolutions of parallax images, and transmits the parallax images with the reduced resolutions and the boundary information. Accordingly, the later described decoding device can perform smoothing operations on virtual viewpoint parallax images based on the boundary information. As a result, the decoding device can generate viewpoint images of virtual viewpoints with high precision, as described later.
[Example Structure of the Decoding Device]
FIG. 18 is a diagram showing an example structure of the decoding device that decodes the multiplexed stream transmitted from the encoding device 200 shown in FIG. 13, the decoding device being an image processing device to which the present technique is applied.
In the structure illustrated in FIG. 18, the same components as those in FIG. 4 are denoted by the same reference numerals as those in FIG. 4. The explanations that have already been made will not be repeated.
The structure of the decoding device 220 shown in FIG. 18 differs from the structure shown in FIG. 4, mainly in that a boundary information acquiring unit 222 is newly provided, and the decoder 122 and the image generating unit 127 are replaced with a decoder 221 and an image generating unit 223. The decoding device 220 decodes the multiplexed stream transmitted from the encoding device 200, generates multi-view images by performing post-warping parallax image smoothing operations based on boundary information, and causes a display device (not shown) to display the generated images.
Specifically, the decoder 221 of the decoding device 220 is formed with a compatible decoder 131 and an auxiliary decoder 231. Like the auxiliary decoder 132 shown in FIG. 4, the auxiliary decoder 231 of the decoder 221 supplies the compatibility information contained in the auxiliary stream supplied from a separating unit 121, to the compatible decoder 131. Like the auxiliary decoder 132, the auxiliary decoder 231 identifies the auxiliary stream of the compatible and auxiliary streams supplied from the separating unit 121 based on the compatibility information. The auxiliary decoder 231 functions as a decoding unit, and decodes, by a technique compatible with the auxiliary encoder 211 shown in FIG. 13, the multiplexed image of the auxiliary images, the parallax image of the compatible image, and the multiplexed image of the parallax images of the auxiliary images, which have been encoded and are contained in the auxiliary stream supplied from the separating unit 121.
The auxiliary decoder 231 supplies the multiplexed image of the auxiliary images, the parallax image of the compatible image, and the multiplexed image of the parallax images of the auxiliary images, which are obtained as a result of the decoding, to the image generating unit 223. Also, like the auxiliary decoder 132, the auxiliary decoder 231 supplies the image information contained in the auxiliary stream to an image information acquiring unit 123, and supplies the imaging information to an imaging information acquiring unit 124. Further, like the auxiliary decoder 132, the auxiliary decoder 231 supplies the parallax image multiplexing information contained in the auxiliary stream to a parallax image multiplexing information acquiring unit 125, and supplies the compatibility information to a compatibility information acquiring unit 126. The auxiliary decoder 231 also supplies the boundary information contained in the auxiliary stream to the boundary information acquiring unit 222.
The boundary information acquiring unit 222 acquires the boundary information supplied from the auxiliary decoder 231, and supplies the boundary information to the image generating unit 223.
The image generating unit 223 is formed with a 2D image generating unit 141 and a 3D image generating unit 241. Using the viewpoint image A1, the multiplexed image of the auxiliary images, the parallax image A1′ of the compatible image, and the multiplexed image of the parallax images of the auxiliary images, which are supplied from the decoder 221, the 3D image generating unit 241 of the image generating unit 223 generates images that are of three or more viewpoints compatible with the display device (not shown) and have the same resolution as the compatible image based on the image information, the imaging information, the parallax image multiplexing information, the compatibility information, the boundary information, and the like. Like the 3D image generating unit 142 shown in FIG. 4, the 3D image generating unit 241 then converts the resolution of the generated multi-value images to the resolution calculated by dividing the resolution of the compatible image and the auxiliary images by the number of viewpoints, and combines the multi-view images. The resultant image is displayed on the display device (not shown).
At this point, the combined multi-view image is displayed, with viewable angle varying at the respective viewpoints. The viewer can view a 3D image without wearing glasses by seeing the images of any two viewpoints with the right and left eyes.
[Specific Example Structure of the 3D Image Generating Unit]
FIG. 19 is a block diagram showing a specific example structure of the 3D image generating unit 241 shown in FIG. 18.
In the structure illustrated in FIG. 19, the same components as those in FIG. 5 are denoted by the same reference numerals as those in FIG. 5. The explanations that have already been made will not be repeated.
The structure of the 3D image generating unit 241 shown in FIG. 19 differs from the structure shown in FIG. 5, in that the smoothing units 165 and 166 are replaced with smoothing units 251 and 252.
The smoothing unit 251 of the 3D image generating unit 241 functions as a correcting unit, and, based on the boundary information supplied from the boundary information acquiring unit 222, performs a smoothing operation on each virtual viewpoint parallax image supplied from the parallax image warping unit 163. Specifically, the smoothing unit 251 detects the parallax values other than 0 in the occlusion regions from the parallax images of the respective virtual viewpoints. The smoothing unit 251 corrects the parallax values of the pixels corresponding to the boundary information indicating the boundary position among the detected parallax values, to 0. The smoothing unit 251 supplies the parallax images of the respective virtual viewpoints subjected to the smoothing operation, to the viewpoint image warping unit 167.
Like the smoothing unit 251, the smoothing unit 252 functions as a correcting unit, and performs a smoothing operation on the parallax images of the respective virtual viewpoints supplied from the parallax image warping unit 164. The smoothing unit 252 then supplies the parallax images of the respective virtual viewpoints subjected to the smoothing operation, to the viewpoint image warping unit 168.
[Description of the Smoothing Operations Based on the Boundary Information]
FIG. 20 is a diagram for explaining the smoothing operation to be performed based on the boundary information by the smoothing unit 251 (252) shown in FIG. 19. In FIG. 20, the small circles represent pixels, and the patterns in the circles represent parallax values.
As shown in the left-side portion of FIG. 20, when the parallax image warping unit 163 (164) shown in FIG. 19 generates the parallax image of the virtual viewpoint shown in C of FIG. 9, the smoothing unit 251 (252) detects the pixels having parallax values other than 0 in the occlusion region of the parallax image. When the boundary information corresponding to the detected pixels is 1, the smoothing unit 251 (252) corrects the parallax values of the pixels to 0, as shown in the right-side portion of FIG. 20.
As described above, the smoothing unit 251 (252) corrects only the parallax values of the pixels that have a possibility to be wrongly located in the occlusion region due to a resolution increase and are adjacent to the boundary position, to 0, among the parallax values of the pixels detected as the pixels having parallax values other than 0 in the occlusion region. Accordingly, the pixels outside the occlusion region can be prevented from being detected as the pixels corresponding to the parallax values other than 0 in the occlusion region, and the parallax values of the pixels can be prevented from being corrected to 0. As a result, images of the virtual viewpoints can be generated with higher precision.
[Description of an Operation of the Decoding Device]
FIG. 21 is a flowchart for explaining a decoding operation by the decoding device 220 shown in FIG. 18. This decoding operation is started when the multiplexed stream transmitted from the encoding device 200 shown in FIG. 13 is input to the decoding device 220, for example.
The procedures of steps S201 through S209 of FIG. 21 are the same as the procedures of steps S61 through S69 of FIG. 11, and therefore, explanation of them is not repeated herein.
In step S210, the boundary information acquiring unit 222 acquires the boundary information supplied from the auxiliary decoder 231, and inputs the boundary information to the image generating unit 223.
In step S211, the 3D image generating unit 241 of the image generating unit 223 performs a multi-view image generating operation. This multi-view image generating operation will be described later in detail, with reference to FIG. 22.
The procedures of steps S212 and S213 are the same as the procedures of steps S71 and S72 of FIG. 11, and therefore, explanation of them is not repeated herein.
FIG. 22 is a flowchart for explaining in detail the multi-view image generating operation of step S211 shown in FIG. 21.
The procedures of steps S230 through S236 of FIG. 22 are the same as the procedures of steps S90 through S96 of FIG. 14, and therefore, explanation of them is not repeated herein.
In steps S237 and S238, the smoothing units 251 and 252 perform smoothing operations on the respective virtual viewpoint parallax images generated in step S236.
Specifically, in step S237, the smoothing unit 251 (252) detects pixels that have the boundary information of 1 and have peripheral pixels having a parallax value of 0 among the pixels corresponding to the parallax values other than 0 in the parallax image of each virtual viewpoint, the detected pixels being the pixels corresponding to the parallax values other than 0 in the occlusion region.
In step S238, the smoothing unit 251 (252) corrects the parallax values of the pixels detected in step S237 from the parallax image of each virtual viewpoint, to 0, and then supplies the corrected parallax image of each virtual viewpoint to the viewpoint image warping unit 167 (168).
The procedures of steps S239 through S243 are the same as the procedures of steps S99 through S103 of FIG. 12, and therefore, explanation of them is not repeated herein.
As described above, based on the boundary information transmitted from the encoding device 200, the decoding device 220 performs more accurate smoothing operations on the virtual viewpoint parallax images obtained as a result of warping operations. Accordingly, the pixels outside the occlusion region can be prevented from being detected as the pixels corresponding to the parallax values other than 0 in the occlusion region, and the parallax values of those pixels can be prevented from being corrected to 0. As a result, images of the virtual viewpoints can be generated with higher precision.
An image processing device of the present technique can also be applied to a display device or a reproducing device such as a television receiver. In the present technique, the number of pixels adjacent to the boundary position is not limited to two, and the pixels adjacent to the boundary position may include pixels that are adjacent to and are located on the left side of the boundary position, and pixels that are adjacent to and are located on the right side of the boundary position.
The image information, the imaging information, the parallax image multiplexing information, the compatibility information, and the boundary information may not be encoded, and may be transmitted through a different route from encoded streams. Alternatively, the image information, the imaging information, the parallax image multiplexing information, the compatibility information, and the boundary information may be encoded, and then be transmitted through a different route from encoded streams.
Further, the image information, the imaging information, the parallax image multiplexing information, the compatibility information, and the boundary information may not be encoded and may be written in a predetermined area in an encoded stream, or may be encoded and be written in a predetermined area in an encoded stream.
Third Embodiment
Description of a Computer to which the Present Technique is Applied
The above described series of operations can be performed with hardware, and can also be performed with software. Where the series of operations are performed with software, the program that forms the software is installed into a general-purpose computer or the like.
In view of this, FIG. 24 shows an example structure of an embodiment of a computer into which the program for performing the above described series of operations is installed.
The program can be recorded beforehand in a storage unit 808 or a ROM (Read Only Memory) 802 provided as a recording medium in the computer.
Alternatively, the program can be stored (recorded) in a removable medium 811. Such a removable medium 811 can be provided as so-called packaged software. Here, the removable medium 811 may be a flexible disk, a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto Optical) disk, a DVD (Digital Versatile Disc), a magnetic disk, or a semiconductor memory, for example.
The program can be installed into the computer from the above described removable medium 811 via a drive 810, but can also be downloaded into the computer via a communication network or a broadcasting network and be installed into the internal storage unit 808. That is, the program can be wirelessly transferred from a download site, for example, to the computer via an artificial satellite for digital satellite broadcasting, or can be transferred by cable to the computer via a network such as a LAN (Local Area Network) or the Internet.
The computer includes a CPU (Central Processing Unit) 801, and an input/output interface 805 is connected to the CPU 801 via a bus 804.
When an instruction is input by a user operating an input unit 806 or the like via the input/output interface 805, the CPU 801 executes the program stored in the ROM 802 accordingly. Alternatively, the CPU 801 loads the program stored in the storage unit 808 into a RAM (Random Access Memory) 803, and executes the program.
By doing so, the CPU 801 performs the operations according to the above described flowcharts, or performs the operations with the structures illustrated in the above described block diagrams. Where necessary, the CPU 801 outputs the operation results from an output unit 807 or transmit the operation results from a communication unit 809, via the input/output interface 805, for example, and further stores the operation results into the storage unit 808.
The input unit 806 is formed with a keyboard, a mouse, a microphone, and the like. The output unit 807 is formed with a LCD (Liquid Crystal Display), a speaker, and the like.
In this specification, the operations performed by the computer in accordance with the program are not necessarily performed in chronological order compliant with the sequences shown in the flowcharts. That is, the operations to be performed by the computer in accordance with the program include operations to be performed in parallel or independently of one another (such as parallel operations or object-based operations).
The program may be executed by one computer (processor), or may be executed in a distributive manner by more than one computer. Further, the program may be transferred to a remote computer, and be executed therein.
The present technique can be applied to an encoding device and a decoding device that are used for reception via a network medium such as satellite broadcasting, cable TV (television), the Internet, or a portable telephone device, or for processing in a storage medium such as an optical or magnetic disk or a flash memory.
The above described encoding device and decoding device can also be applied to any electronic apparatuses. The following is a description of such examples.
Fourth Embodiment
Example Structure of a Television Apparatus
FIG. 25 schematically shows an example structure of a television apparatus to which the present technique is applied. The television apparatus 900 includes an antenna 901, a tuner 902, a demultiplexer 903, a decoder 904, a video signal processing unit 905, a display unit 906, an audio signal processing unit 907, a speaker 908, and an external interface unit 909. The television apparatus 900 further includes a control unit 910, a user interface unit 911, and the like.
The tuner 902 selects a desired channel from broadcast wave signals received at the antenna 901, and performs demodulation. The resultant encoded bit stream is output to the demultiplexer 903.
The demultiplexer 903 extracts the video and audio packets of the show to be viewed from the encoded bit stream, and outputs the data of the extracted packets to the decoder 904. The demultiplexer 903 also supplies a packet of data such as EPG (Electronic Program Guide) to the control unit 910. Where scrambling is performed, the demultiplexer or the like cancels the scrambling.
The decoder 904 performs a packet decoding operation, and outputs the video data generated through the decoding operation to the video signal processing unit 905, and the audio data to the audio signal processing unit 907.
The video signal processing unit 905 subjects the video data to a noise removal and video processing or the like in accordance with user settings. The video signal processing unit 905 generates video data of the show to be displayed on the display unit 906, or generates image data or the like through an operation based on an application supplied via a network. The video signal processing unit 905 also generates video data for displaying a menu screen or the like for item selection, and superimposes the video data on the video data of the show. Based on the video data generated in this manner, the video signal processing unit 905 generates a drive signal to drive the display unit 906.
Based on the drive signal from the video signal processing unit 905, the display unit 906 drives a display device (a liquid crystal display element, for example) to display the video of the show.
The audio signal processing unit 907 subjects the audio data to predetermined processing such as a noise removal, and performs a D/A conversion operation and an amplification operation on the processed audio data. The resultant audio data is supplied as an audio output to the speaker 908.
The external interface unit 909 is an interface for a connection with an external device or a network, and transmits and receives data such as video data and audio data.
The user interface unit 911 is connected to the control unit 910. The user interface unit 911 is formed with operation switches, a remote control signal reception unit, and the like, and supplies an operating signal according to a user operation to the control unit 910.
The control unit 910 is formed with a CPU (Central Processing Unit), a memory, and the like. The memory stores the program to be executed by the CPU, various kinds of data necessary for the CPU to perform operations, the EPG data, data obtained via a network, and the like. The program stored in the memory is read and executed by the CPU at a predetermined time such as the time of activation of the television apparatus 900. The CPU executes the program to control the respective components so that the television apparatus 900 operates in accordance with a user operation.
In the television apparatus 900, a bus 912 is provided for connecting the tuner 902, the demultiplexer 903, the video signal processing unit 905, the audio signal processing unit 907, the external interface unit 909, and the like, to the control unit 910.
In the television apparatus having such a structure, the function of an image processing device (an image processing method) of the present invention is provided in the decoder 904. Accordingly, an encoded bit stream containing parallax images having their resolutions reduced is decoded, and images of predetermined viewpoints can be generated with high precision by using the parallax images.
Fifth Embodiment
Example Structure of a Portable Telephone Device
FIG. 26 schematically shows an example structure of a portable telephone device to which the present technique is applied. The portable telephone device 920 includes a communication unit 922, an audio codec 923, a camera unit 926, an image processing unit 927, a multiplexing/separating unit 928, a recording/reproducing unit 929, a display unit 930, and a control unit 931. Those components are connected to one another via a bus 933.
Also, an antenna 921 is connected to the communication unit 922, and a speaker 924 and a microphone 925 are connected to the audio codec 923. Further, an operation unit 932 is connected to the control unit 931.
The portable telephone device 920 performs various kinds of operations such as transmission and reception of audio signals, transmission and reception of electronic mail and image data, image capturing, and data recording, in various kinds of modes such as an audio communication mode and a data communication mode.
In the audio communication mode, an audio signal generated at the microphone 925 is converted into audio data, and the data is compressed at the audio codec 923. The compressed data is supplied to the communication unit 922. The communication unit 922 performs a modulation operation, a frequency conversion operation, and the like on the audio data, to generate a transmission signal. The communication unit 922 also supplies the transmission signal to the antenna 921, and the transmission signal is transmitted to a base station (not shown). The communication unit 922 also amplifies a signal received at the antenna 921, and performs a frequency conversion operation, a demodulation operation, and the like. The resultant audio data is supplied to the audio codec 923. The audio codec 923 decompresses audio data, and converts the audio data into an analog audio signal to be output to the speaker 924.
When mail transmission is performed in the data communication mode, the control unit 931 receives text data that is input by operating the operation unit 932, and the input text is displayed on the display unit 930. In accordance with a user instruction or the like through the operation unit 932, the control unit 931 generates and supplies mail data to the communication unit 922. The communication unit 922 performs a modulation operation, a frequency conversion operation, and the like on the mail data, and transmits the resultant transmission signal from the antenna 921. The communication unit 922 also amplifies a signal received at the antenna 921, and performs a frequency conversion operation, a demodulation operation, and the like, to restore the mail data. This mail data is supplied to the display unit 930, and the content of the mail is displayed.
The portable telephone device 920 can cause the recording/reproducing unit 929 to store received mail data into a storage medium. The storage medium is a rewritable storage medium. For example, the storage medium may be a semiconductor memory such as a RAM or an internal flash memory, a hard disk, or a removable medium such as a magnetic disk, a magnetooptical disk, an optical disk, a USB memory, or a memory card.
When image data is transmitted in the data communication mode, image data generated at the camera unit 926 is supplied to the image processing unit 927. The image processing unit 927 performs an encoding operation on the image data, to generate encoded data.
The multiplexing/separating unit 928 multiplexes the encoded data generated at the image processing unit 927 and the audio data supplied from the audio codec 923 by a predetermined technique, and supplies the multiplexed data to the communication unit 922. The communication unit 922 performs a modulation operation, a frequency conversion operation, and the like on the multiplexed data, and transmits the resultant transmission signal from the antenna 921. The communication unit 922 also amplifies a signal received at the antenna 921, and performs a frequency conversion operation, a demodulation operation, and the like, to restore the multiplexed data. This multiplexed data is supplied to the multiplexing/separating unit 928. The multiplexing/separating unit 928 divides the multiplexed data, and supplies the encoded data to the image processing unit 927, and the audio data to the audio codec 923. The image processing unit 927 performs a decoding operation on the encoded data, to generate image data. This image data is supplied to the display unit 930, to display the received images. The audio codec 923 converts the audio data into an analog audio signal, and supplies the analog audio signal to the speaker 924, so that the received sound is output.
In the portable telephone device having such a structure, the function of an image processing device (an image processing method) of the present invention is provided in the image processing unit 927. Accordingly, in image data communication, an encoded bit stream containing parallax images having their resolutions reduced is decoded, and images of predetermined viewpoints can be generated with high precision by using the parallax images.
Sixth Embodiment
Example Structure of a Recording/Reproducing Device
FIG. 27 schematically shows an example structure of a recording/reproducing device to which the present technique is applied. The recording/reproducing device 940 records the audio data and video data of a received broadcast show on a recording medium, for example, and provides the recorded data to a user at the time according to an instruction from the user. The recording/reproducing device 940 can also obtain audio data and video data from another device, for example, and record the data on a recording medium. Further, the recording/reproducing device 940 decodes and outputs audio data and video data recorded on a recording medium, so that a monitor device or the like can display images and outputs sound.
The recording/reproducing device 940 includes a tuner 941, an external interface unit 942, an encoder 943, a HDD (Hard Disk Drive) unit 944, a disk drive 945, a selector 946, a decoder 947, an OSD (On-Screen Display) unit 948, a control unit 949, and a user interface unit 950.
The tuner 941 selects a desired channel from broadcast signals received at an antenna (not shown). The tuner 941 demodulates the received signal of the desired channel, and outputs the resultant encoded bit stream to the selector 946.
The external interface unit 942 is formed with at least one of an IEEE1394 interface, a network interface unit, a USB interface, a flash memory interface, and the like. The external interface unit 942 is an interface for a connection with an external device, a network, a memory card, or the like, and receives data such as video data and audio data to be recorded and the like.
The encoder 943 performs predetermined encoding on video data and audio data that are supplied from the external interface unit 942 and are not encoded, and outputs an encoded bit stream to the selector 946.
The HDD unit 944 records content data such as videos and sound, various kinds of programs, other data, and the like on an internal hard disk, and reads the data from the hard disk at the time of reproduction or the like.
The disk drive 945 performs signal recording and reproduction on a mounted optical disk. The optical disk may be a DVD disk (such as a DVD-Video, a DVD-RAM, a DVD-R, a DVD-RW, a DVD+R, or a DVD+RW) or a Blu-ray disc, for example.
The selector 946 selects an encoded bit stream from the tuner 941 or the encoder 943 at the time of video and audio recording, and supplies the encoded bit stream to either the HDD unit 944 or the disk drive 945. The selector 946 also supplies an encoded bit stream output from the HDD unit 944 or the disk drive 945 to the decoder 947 at the time of video and audio reproduction.
The decoder 947 performs a decoding operation on an encoded bit stream. The decoder 947 supplies the video data generated by performing the decoding to the OSD unit 948. The decoder 947 also outputs the audio data generated by performing the decoding.
The OSD unit 948 generates video data for displaying a menu screen or the like for item selection, and superimposes the video data on video data output from the decoder 947.
The user interface unit 950 is connected to the control unit 949. The user interface unit 950 is formed with operation switches, a remote control signal reception unit, and the like, and supplies an operating signal according to a user operation to the control unit 949.
The control unit 949 is formed with a CPU, a memory, and the like. The memory stores the program to be executed by the CPU, and various kinds of data necessary for the CPU to perform operations. The program stored in the memory is read and executed by the CPU at a predetermined time such as the time of activation of the recording/reproducing device 940. The CPU executes the program to control the respective components so that the recording/reproducing device 940 operates in accordance with a user operation.
Seventh Embodiment
Example Structure of an Imaging Device
FIG. 28 schematically shows an example structure of an imaging device to which the present technique is applied. An imaging device 960 captures an image of an object, and causes a display unit to display the image of the object or records the image as image data on a recording medium.
The imaging device 960 includes an optical block 961, an imaging unit 962, a camera signal processing unit 963, an image data processing unit 964, a display unit 965, an external interface unit 966, a memory unit 967, a media drive 968, an OSD unit 969, and a control unit 970. A user interface unit 971 is connected to the control unit 970. Further, the image data processing unit 964, the external interface unit 966, the memory unit 967, the media drive 968, the OSD unit 969, the control unit 970, and the like are connected via a bus 972.
The optical block 961 is formed with a focus lens, a diaphragm, and the like. The optical block 961 forms an optical image of an object on the imaging surface of the imaging unit 962. Formed with a CCD or a CMOS image sensor, the imaging unit 962 generates an electrical signal in accordance with the optical image through a photoelectric conversion, and supplies the electrical signal to the camera signal processing unit 963.
The camera signal processing unit 963 performs various kinds of camera signal processing such as a knee correction, a gamma correction, and a color correction on the electrical signal supplied from the imaging unit 962. The camera signal processing unit 963 supplies the image data subjected to the camera signal processing to the image data processing unit 964.
The image data processing unit 964 performs an encoding operation on the image data supplied from the camera signal processing unit 963. The image data processing unit 964 supplies the encoded data generated by performing the encoding operation, to the external interface unit 966 and the media drive 968. The image data processing unit 964 also performs a decoding operation on the encoded data supplied from the external interface unit 966 and the media drive 968. The image data processing unit 964 supplies the image data generated by performing the decoding operation to the display unit 965. The image data processing unit 964 also performs an operation to supply the image data supplied from the camera signal processing unit 963 to the display unit 965, or superimposes display data obtained from the OSD unit 969 on the image data and supplies the image data to the display unit 965.
The OSD unit 969 generates display data of a menu screen and icons formed with symbols, characters, or figures, and outputs the data to the image data processing unit 964.
The external interface unit 966 is formed with a USB input/output terminal and the like, for example, and is connected to a printer when image printing is performed. A drive is also connected to the external interface unit 966 where necessary, and a removable medium such as a magnetic disk or an optical disk is mounted on the drive as appropriate. A computer program read from such a removable disk is installed where necessary. Further, the external interface unit 966 includes a network interface connected to a predetermined network such as a LAN or the Internet. The control unit 970 reads encoded data from the memory unit 967 in accordance with an instruction from the user interface unit 971, for example, and can supply the encoded data from the external interface unit 966 to another device connected thereto via a network. The control unit 970 can also obtain, via the external interface unit 966, encoded data or image data supplied from another device via a network, and supply the encoded data or image data to the image data processing unit 964.
A recording medium to be driven by the media drive 968 may be a readable/rewritable removable medium such as a magnetic disk, a magnetooptical disk, an optical disk, or a semiconductor memory. The recording medium may be any type of removable medium, and may be a tape device, a disk, or a memory card. The recording medium may of course be a non-contact IC card or the like.
Alternatively, the media drive 968 and a recording medium may be integrated, and may be formed with an immobile storage medium such as an internal hard disk drive or a SSD (Solid State Drive).
The control unit 970 is formed with a CPU, a memory, and the like. The memory stores the program to be executed by the CPU, various kinds of data necessary for the CPU to perform operations, and the like. The program stored in the memory is read and executed by the CPU at a predetermined time such as the time of activation of the imaging device 960. The CPU executes the program to control the respective components so that the imaging device 960 operates in accordance with a user operation.
In the imaging apparatus having the above structure, the image data processing unit 964 has the functions of an image processing device (an image processing method) of the present invention. Accordingly, encoded data that is recorded in the memory unit 967 or a recording medium and contains parallax images having their resolutions reduced is decoded, and images of predetermined viewpoints can be generated with high precision by using the parallax images.
It should be noted that embodiments of the present technique are not limited to the above described embodiments, and various modifications may be made to them without departing from the scope of the present technique.
REFERENCE SIGNS LIST


    
    
        120 Decoding device, 121 Separating unit, 132 Auxiliary decoder, 162 Parallax image resolution increasing unit, 163, 164 Parallax image warping unit, 165, 166 Smoothing unit, 167, 168 Viewpoint image warping unit, 171 Multi-view image generating unit, 220 Decoding device, 231 Auxiliary decoder, 251, 252 Smoothing unit

## Claims

1. An image processing device, comprising:
at least one processor configured to:
receive a first viewpoint image of a first viewpoint, a second viewpoint image of a second viewpoint,
a first depth image of the first viewpoint image, and a second depth image of the second viewpoint image;
generate a first virtual depth image of a virtual viewpoint and a second virtual depth image of the virtual viewpoint, based on the first depth image, the second depth image, and a position of the virtual viewpoint;
generate a first virtual viewpoint image of the virtual viewpoint and a second virtual viewpoint image of the virtual viewpoint, based on the position of the virtual viewpoint, the first virtual depth image and the second virtual depth image; and
interpolate an occlusion region of one of the first virtual viewpoint image or the second virtual viewpoint image, based on other one of the first virtual viewpoint image or the second virtual viewpoint image.

2. The image processing device according to claim 1, wherein the at least one processor is further configured to increase a resolution of the received first depth image and the received second depth image.

3. The image processing device according to claim 2, wherein the at least one processor is further configured to generate the first virtual depth image and the second virtual depth image by a warping operation on the first depth image and the second depth image that have the increased resolution, wherein the warping operation is based on the position of the virtual viewpoint.

4. The image processing device according to claim 1, wherein the at least one processor is further configured to generate the first virtual viewpoint image and the second virtual viewpoint image by a warping operation on the first virtual depth image and the second virtual depth image, respectively.

5. The image processing device according to claim 1, wherein
the at least one processor is further configured to:
detect a pixel, that corresponds to a pixel value other than a value corresponding to the occlusion region, of the one of the first virtual viewpoint image or the second virtual viewpoint image; and correct the pixel value of the detected pixel to the value.

6. The image processing device according to claim 5, wherein
the detected pixel is a peripheral pixel indicated by boundary information.

7. The image processing device according to claim 1, wherein
the at least one processor is further configured to:
receive boundary information that indicates a pixel adjacent to a boundary position where pixel values of the first depth image and the second depth image vary; and
detect a pixel, that corresponds to a pixel value other than a value corresponding to the occlusion region, in the one of the first virtual viewpoint image or the second virtual viewpoint image, wherein the detected pixel indicated by the boundary information.

8. The image processing device according to claim 1, wherein
the at least one processor is further configured to:
receive encoded depth images generated by an encoding operation of the first depth image and the second depth image;
decode the received encoded depth images; and
increase a resolution of the decoded depth images.

9. An image processing method, comprising:
receiving a first viewpoint image of a first viewpoint, a second viewpoint image of a second viewpoint,
a first depth image of the first viewpoint image and a second depth image of the second viewpoint image;
generating a first virtual depth image of a virtual viewpoint and a second virtual depth image of the virtual viewpoint, based on the first depth image, the second depth image, and a position of the virtual viewpoint;
generating a first virtual viewpoint image of the virtual viewpoint and a second virtual viewpoint image of the virtual viewpoint, based on the position of the virtual viewpoint, the first virtual depth image and the second virtual depth image; and
interpolating an occlusion region of one of the first virtual viewpoint image or the second virtual viewpoint image, based on other one of the first virtual viewpoint image or the second virtual viewpoint image.