Source: http://www.patentsencyclopedia.com/app/20100220784
Timestamp: 2018-02-21 21:49:42
Document Index: 390503924

Matched Legal Cases: ['Application No. 2006', 'art 101', 'art 102', 'art 104', 'art 105', 'art 106', 'art 107', 'art 108', 'art 109', 'art 101', 'art 102', 'art 104', 'art 105', 'art 106', 'art 107', 'art 108', 'art 109', 'art 201', 'art 202', 'art 203', 'art 204', 'art 204', 'art 201', 'art 202', 'art 203', 'art 204']

Video Encoding Method and Decoding Method, Apparatuses Therefor, Programs Therefor, and Storage Media for Storing the Programs - Patent application
Patent application title: Video Encoding Method and Decoding Method, Apparatuses Therefor, Programs Therefor, and Storage Media for Storing the Programs
Inventors: Masayuki Tanimoto (Nagoya-Shi, JP) Toshiaki Fujii (Tokyo, JP) Kenji Yamamoto (Kadaira-Shi, JP) Masaki Kitahara (Yokosuka-Shi, JP) Masaki Kitahara (Yokosuka-Shi, JP) Hideaki Kimata (Tokyo, JP) Shinya Shimizu (Yokosuka-Shi, JP) Kazuto Kamikura (Yokosuka-Shi, JP) Yoshiyuki Yashima (Yokosuka-Shi, JP)
Assignees: IPPON TELEGRAPH AND TELEPHONE CORPORATION NATIONAL UNIVERSITY CORPORATION NAGOYA UNIVERSITY
Patent application number: 20100220784
Video Encoding Method and Decoding Method, Apparatuses Therefor, Programs Therefor, and Storage Media for Storing the Programs - Patent application <?php require_once('/home/patents/php/mtc.config.php'); require_once('/home/patents/php/mtc.class.php'); $MTC = new MTC(); $MTC->init(); ?>
Inventors: Masaki Kitahara Hideaki Kimata Shinya Shimizu Kazuto Kamikura Yoshiyuki Yashima Masayuki Tanimoto Toshiaki Fujii Kenji Yamamoto
By using parallax compensation which performs prediction by using parallax between video images, the video images are encoded as a single video image. Reference parallax for a target image to be encoded is set, wherein the reference parallax is estimated using a reference image; area division in an image frame is set; parallax displacement for each divided area is set, wherein the parallax displacement is the difference between the reference parallax and parallax for the parallax compensation; data of the area division is encoded; and data for indicating the parallax displacement is encoded. During decoding, reference parallax for a target image to be decoded is set, wherein it is estimated using a reference image; data for indicating area division, which is included in encoded data, is decoded; and data of parallax displacement, which is included in the encoded data, is decoded for each area indicated by the area division data.
1. A video encoding method for encoding video images as a single video image by using parallax compensation which performs prediction by using parallax between the video images, the method comprising:a reference parallax setting step of setting reference parallax for a target image to be encoded, wherein the reference parallax is estimated using a reference image;an area division setting step of setting area division in an image frame;a parallax displacement setting step of setting parallax displacement for each divided area set in the area division setting step, wherein the parallax displacement is the difference between the reference parallax and parallax used for the parallax compensation;an area division data encoding step of encoding area division data for indicating the area division which is set in the area division setting step; anda parallax displacement data encoding step of encoding parallax displacement data for indicating the parallax displacement which is set in the parallax displacement setting step.
2. The video encoding method in accordance with claim 1, wherein:the area division set in the area division setting step is performed by a method selected from among a plurality of area division methods for performing area division into rectangular blocks.
3. The video encoding method in accordance with claim 1, wherein:the reference parallax set in the reference parallax setting step is estimated using a plurality of reference images without using the target image to be encoded.
4. The video encoding method in accordance with claim 3, wherein:the reference parallax is estimated for each pixel as a unit, by using the reference images.
5. A video decoding method for decoding video images as a single video image by using parallax compensation which performs prediction by using parallax between the video images, the method comprising:a reference parallax setting step of setting reference parallax for a target image to be decoded, wherein the reference parallax is estimated using a reference image;an area division data decoding step of decoding area division data for indicating area division, where the area division data is included in encoded data; anda parallax displacement data decoding step of decoding data of parallax displacement for each area indicated by the area division data which is decoded in the area division data decoding step, wherein the data of parallax displacement is included in the encoded data, and the parallax displacement is the difference between the reference parallax and parallax used for the parallax compensation.
6. The video decoding method in accordance with claim 5, wherein:the area division data decoded in the area division data decoding step indicates a method selected from among a plurality of area division methods for performing area division into rectangular blocks.
7. The video decoding method in accordance with claim 5, wherein:the parallax displacement data decoded in the parallax displacement data decoding step is data of the difference between the reference parallax, which is estimated using a plurality of reference images without using the target image to be decoded, and the parallax used for the parallax compensation.
8. The video decoding method in accordance with claim 7, wherein:the reference parallax is estimated for each pixel as a unit, by using the reference images.
9. A video encoding apparatus for encoding video images as a single video image by using parallax compensation which performs prediction by using parallax between the video images, the apparatus comprising:a reference parallax setting device for setting reference parallax for a target image to be encoded, wherein the reference parallax is estimated using a reference image;an area division setting device for setting area division in an image frame;a parallax displacement setting device for setting parallax displacement for each divided area set by the area division setting device, wherein the parallax displacement is the difference between the reference parallax and parallax used for the parallax compensation;an area division data encoding device for encoding area division data for indicating the area division which is set by the area division setting device; anda parallax displacement data encoding device for encoding parallax displacement data for indicating the parallax displacement which is set by the parallax displacement setting device.
10. A video decoding apparatus for decoding video images as a single video image by using parallax compensation which performs prediction by using parallax between the video images, the apparatus comprising:a reference parallax setting device for setting reference parallax for a target image to be decoded, wherein the reference parallax is estimated using a reference image;an area division data decoding device for decoding area division data for indicating area division, where the area division data is included in encoded data; anda parallax displacement data decoding device for decoding data of parallax displacement for each area indicated by the area division data which is decoded by the area division data decoding device, wherein the data of parallax displacement is included in the encoded data, and the parallax displacement is the difference between the reference parallax and parallax used for the parallax compensation.
11. A video encoding program for making a computer execute the video encoding method in accordance with claim 1.
12. A video decoding program for making a computer execute the video decoding method in accordance with claim 5.
13. A computer-readable storage medium which stores a video encoding program for making a computer execute the video encoding method in accordance with claim 1.
14. A computer-readable storage medium which stores a video decoding program for making a computer execute the video decoding method in accordance with claim 5.
15. The video encoding method in accordance with claim 1, wherein:in the reference parallax setting step, the reference parallax is set for each pixel in the target image to be encoded; andthe method further comprises:a predicted image generating step of generating a predicted image for the parallax compensation, for each pixel of the target image, by using parallax which is obtained for the pixel as a unit by adding the set reference parallax to the parallax displacement which is set for the area to which the pixel belongs.
16. The video encoding method in accordance with claim 15, wherein:the reference parallax for each pixel, which is set in the reference parallax setting step, is estimated using a plurality of reference images without using the target image to be encoded; andin the predicted image generating step, the predicted image is generated based on pixel values of the reference images.
17. The video encoding method in accordance with claim 16, wherein:in the predicted image generating step, the predicted image is generating by computing an average between the pixel values of the reference images.
18. The video decoding method in accordance with claim 5, wherein:in the reference parallax setting step, the reference parallax is set for each pixel in the target image to be decoded; andthe method further comprises:a predicted image generating step of generating a predicted image for the parallax compensation, for each pixel of the target image, by using parallax which is obtained for the pixel as a unit by adding the set reference parallax to the parallax displacement which is set for the area to which the pixel belongs.
19. The video decoding method in accordance with claim 18, wherein:the reference parallax for each pixel, which is set in the reference parallax setting step, is estimated using a plurality of reference images without using the target image to be decoded; andin the predicted image generating step, the predicted image is generated based on pixel values of the reference images.
20. The video decoding method in accordance with claim 19, wherein:in the predicted image generating step, the predicted image is generating by computing an average between the pixel values of the reference images.
21. The video encoding apparatus in accordance with claim 9, wherein:the reference parallax setting device sets the reference parallax for each pixel in the target image to be encoded; andthe apparatus further comprises:a predicted image generating device for generating a predicted image for the parallax compensation, for each pixel of the target image, by using parallax which is obtained for the pixel as a unit by adding the set reference parallax to the parallax displacement which is set for the area to which the pixel belongs.
22. The video encoding apparatus in accordance with claim 21, wherein:the reference parallax setting device estimates the reference parallax for each pixel by using a plurality of reference images without using the target image to be encoded; andthe predicted image generating device generates the predicted image based on pixel values of the reference images.
23. The video encoding apparatus in accordance with claim 22, wherein:the predicted image generating device generates the predicted image by computing an average between the pixel values of the reference images.
24. The video decoding apparatus in accordance with claim 10, wherein:the reference parallax setting device sets the reference parallax for each pixel in the target image to be decoded; andthe apparatus further comprises:a predicted image generating device for generating a predicted image for the parallax compensation, for each pixel of the target image, by using parallax which is obtained for the pixel as a unit by adding the set reference parallax to the parallax displacement which is set for the area to which the pixel belongs.
25. The video decoding apparatus in accordance with claim 24, wherein:the reference parallax setting device estimates the reference parallax for each pixel by using a plurality of reference images without using the target image to be decoded; andthe predicted image generating device generates the predicted image based on pixel values of the reference images.
26. The video decoding apparatus in accordance with claim 25, wherein:the predicted image generating device generates the predicted image by computing an average between the pixel values of the reference images.
[0001]The present invention relates to encoding and decoding techniques of multi-viewpoint video images.
[0002]Priority is claimed on Japanese Patent Application No. 2006-000393, filed Jan. 5, 2006, the contents of which are incorporated herein by reference.
[0003]Multi-viewpoint video images are video images obtained by photographing the same subject and background thereof by using a plurality of cameras at different positions. Below, a video image obtained by a single camera is called a "two-dimensional video image", and a set of two-dimensional video images obtained by photographing the same subject and background thereof is called a "multi-viewpoint video image". There is a strong correlation between two-dimensional video images (of the different cameras) included in the multi-viewpoint video image. If the cameras are synchronized with each other, the frames (of the cameras) corresponding to the same time have captured the subject and background thereof in entirely the same state, so that there is a strong correlation between the cameras.
[0004]First, conventional techniques relating to the encoding of two-dimensional video images will be shown. In many known methods of encoding two-dimensional video images, such as H.264, MPEG-4, MPEG-2 (which are international encoding standards), and the like, highly-efficient encoding is performed by means of motion compensation, orthogonal transformation, quantization, variable-length encoding, or the like.
[0005]For example, in H.264, each I frame can be encoded by means of intraframe correlation; each P frame can be encoded by means of interframe correlation together with a plurality of past frames; and each B frame can be encoded by means of interframe correlation together with a plurality of past or future frames.
[0006]Even though Non-Patent Document 1 discloses the H.264 techniques in detail, the outline thereof will be described below. In each I frame, the frame is divided into blocks (called "macroblocks", the size of each block is 16×16 (pixels)), and intraframe prediction (intra-prediction) is performed in each macroblock. In intra-prediction, each macroblock is further divided into smaller blocks (called "sub-blocks", below), and an individual intra-encoding method can be applied to each sub-block.
[0007]In each P frame, intra-prediction or inter-prediction (interframe prediction) may be performed in each macroblock. The intra-prediction applied to a P frame is similar to that applied to an I frame. In the inter-prediction, motion compensation is performed. Also in the motion compensation, each macroblock is divided into smaller blocks, and each sub-block may have an individual motion vector and an individual reference image.
[0008]Also in each B frame, intra-prediction or inter-prediction can be performed. In the inter-prediction of the B frame, in addition to a past frame, a future frame can be referred to as a reference image in motion compensation. For example, when encoding a frame sequence of "I→B→B→P", the frames can be encoded in the order of "I→P→B→B". Also in each B frame, motion compensation can be performed by referring to an I or P frame. Additionally, similar to the P frame, each sub-block (obtained by dividing a macroblock) can have an individual motion vector.
[0009]When performing intra or inter-prediction, a prediction residual is obtained. In each macroblock, a prediction-residual block is subjected to DCT (discrete cosine transform), so as to perform quantization. The obtained quantized values of DCT coefficients are then subjected to variable-length encoding.
[0010]In a known method for encoding multi-viewpoint video images, the multi-viewpoint video images are highly efficiently encoded by means of "parallax compensation" in which motion compensation is applied to images obtained by different cameras at the same time. Here, "parallax" is the difference between positions, to which the same point on a subject is projected, on an image plane of cameras which are disposed at different positions.
[0011]FIG. 9 is a schematic view showing the concept of parallax generated between such cameras. In the schematic view, an image plane of cameras, whose optical axes are parallel to each other, is looked down vertically. Generally, such points, to which the same point on a subject is projected, on an image plane of different cameras, are called "corresponding points". As parallax can be represented as a positional difference on the relevant image plane, it can be represented as two-dimensional vector data.
[0012]In parallax compensation, the corresponding point on an image of a reference camera, which corresponds to a target pixel in an image of a target camera for the relevant encoding, is estimated using a reference image, and the pixel value of the target pixel is predicted by using a pixel value assigned to the corresponding point. Below, such "estimated parallax" is also called "parallax" for convenience of explanation.
[0013]Non-Patent Document 2 discloses an encoding method using parallax compensation, and in such a method, parallax data and each prediction residual are encoded with respect to the pixels of a target image to be encoded. More specifically, in the relevant method, parallax compensation is performed for each block as a unit, where such parallax for each unit block is represented using a two-dimensional vector. FIG. 10 is a schematic view showing a parallax vector. That is, in this method, parallax data as a two-dimensional vector and the relevant prediction residual are encoded. As this method does not use camera parameters in encoding, it is effective when camera parameters are unknown.
[0014]In addition, when there are a plurality of reference images obtained by different cameras, parallax compensation may be performed using an arbitrary viewpoint image technique. Non-Patent Document 3 discloses parallax compensation using an arbitrary viewpoint image technique. More specifically, each pixel value of an image obtained by a target camera for the relevant encoding is predicted by means of interpolation using the pixel values of corresponding points (belonging to different cameras) which correspond to the relevant pixel. FIG. 11 is a schematic view showing such interpolation. In the interpolation, the value of pixel m in a target image to be encoded is predicted by performing interpolation between pixels m' and m'' of reference images 1 and 2, where the pixels m' and m'' correspond to the pixel m.
[0015]When there are two or more reference images obtained by different cameras (as disclosed in Patent Document 3), parallax from each pixel of a target image (to be encoded) to each reference image can be estimated without using the target image. FIG. 12 is a schematic view for showing the concept of such parallax estimation.
[0016]As shown in FIG. 12, in true parallax, the pixel values of corresponding points between the relevant reference images should be almost identical to each other. Therefore, in many parallax estimation methods, with regard to each of various depths, the pixel values of corresponding points between the reference images are compared with each other, and parallax can be estimated based on the depth which brings the closest pixel values. Such a process can be applied to each pixel of a target image to be encoded.
[0017]As described above, when there are two or more reference images obtained by different cameras, and parallax estimation is possible on the decoding side, then parallax compensation can be performed on the decoding side by using parallax data for each pixel, without providing parallax data, which is explicitly encoded on the encoding side, to the decoding side.
[0018]Non-Patent Document 1: ITU-T Rec.H.264/ISO/IEC 11496-10, "Advanced Video Coding", Final Committee Draft, Document JVT-E022, September 2002.
[0019]Non-Patent Document 2: Hideaki Kimata and Masaki Kitahara, "Preliminary results on multiple view video coding (3DAV)", document M10976 MPEG Redmond Meeting, July, 2004.
[0020]Non-Patent Document 3: Masayuki Tanimoto, Toshiaki Fujii, "Response to Call for Evidence on Multi-View Video Coding", document Mxxxxx MPEG Hong Kong Meeting, January, 2005.
[0021]In conventional techniques, when there are two or more reference images obtained by different cameras, and parallax estimation is possible on the decoding side, then parallax compensation can be performed on the decoding side by using parallax data for each pixel, without providing parallax data, which is explicitly encoded on the encoding side, to the decoding side. Such parallax with regard to a target image to be encoded or decoded, which can be estimated on the encoding or decoding side without using the target image (for the decoding, without decoding the relevant image), is called "reference parallax".
[0022]However, reference parallax, which is estimated on the decoding side, is not an optimum one in consideration of the prediction efficiency, and the amount of code assigned to the relevant prediction residual may be increased. When parallax for maximizing the prediction efficiency is computed on the encoding side, and the difference (called "parallax displacement" below) between the computed parallax and the reference parallax is encoded for each pixel, the prediction efficiency can be improved, thereby improving the encoding efficiency with respect to the prediction residual.
[0023]However, in such a technique which can be easily anticipated, as the parallax displacement is encoded for each pixel, the amount of code of parallax data increases, so that the total encoding efficiency cannot be high.
[0024]In order to solve the above problem, an object of the present invention is to decrease the amount of code of parallax data without making a considerable sacrifice of the accuracy of parallax compensation.
[0025]The most distinctive feature of the present invention in comparison with the conventional techniques is that in order to solve the above-described problems, a process of determining block division and a process of encoding the determined block division data and parallax displacement data for each block are performed, and such data is handled as encoded data.
[0026]In a first mode of the video encoding and decoding methods of the present invention, based on the area division, which is set in accordance with the characteristic of a target image to be encoded, parallax displacement data for each divided area can be encoded.
[0027]Generally, parallax displacement has a spatial correlation in an image frame. Therefore, when appropriate area division is set, and parallax displacement is encoded for each divided area, then the amount of code of parallax data can be reduced without degrading the prediction efficiency of parallax compensation.
[0028]On the video encoding side, in a reference parallax setting step, parallax for a target image to be encoded (i.e., reference parallax) is set using already-encoded data (i.e., reference image), and in an area division setting step, area division in a frame of the target image is set. In a parallax displacement setting step, parallax displacement is set for each divided area set in the area division. Additionally, in an area division data encoding step, area division data for indicating the area division is encoded, and in a parallax displacement data encoding step, parallax displacement data is encoded.
[0029]As the reference parallax set in the reference parallax setting step, (i) parallax estimated using reference images based on the principle as shown in FIG. 12 (refer to a third mode as explained later); (ii) parallax based on a parallax image or a three-dimensional model, which is encoded by another device so as to, for example, generate an arbitrary viewpoint image, and sent to the decoding side; or (iii) parallax provided by another method.
[0030]On the decoding side, in a reference parallax setting step, similar to the encoding side, reference parallax for a target image to be decoded is set using already-decoded data (i.e., reference image). In an area division data decoding step, the area division data is decoded, and in a parallax displacement data decoding step, the parallax displacement data for each area in accordance with the area division data is decoded.
[0031]A second mode of the video encoding and decoding methods of the present invention is basically similar to the above-described first mode. However, in the second mode, area division is performed so as to generate rectangular blocks. More specifically, rectangular block division (refer to FIG. 10 explained later) is defined for each macroblock. Data for such block division can be efficiently encoded by using a known entropy encoding technique (e.g., entropy encoding in H.264).
[0032]A third mode of the video encoding and decoding methods of the present invention is basically similar to the above-described first and second modes. However, in the third mode, reference parallax, which is estimated by a plurality of reference images without using a target image to be encoded (i.e., in accordance with the above-described principle as shown by FIG. 12), is used. When reference parallax is estimated using reference images as explained above, it can be estimated by using only data which has already been sent to the decoding side. Therefore, it is possible not to generate additional data to be encoded, so as to estimate the reference parallax.
[0033]In accordance with the present invention, in video encoding and decoding methods for estimating parallax by using reference images, spatial correlation of parallax displacement data is used, so that the amount of code of parallax displacement data can be reduced without degrading the prediction efficiency in parallax compensation, thereby improving the total encoding efficiency.
[0034]FIG. 1 is a diagram showing a video encoding apparatus as an embodiment of the present invention.
[0035]FIG. 2 is a diagram showing reference relationships between cameras in the embodiment.
[0036]FIG. 3 is a diagram showing the arrangement of cameras in the embodiment.
[0037]FIG. 4 is a flowchart of encoding in the embodiment.
[0038]FIG. 5 is a detailed flowchart of step S106 in FIG. 4.
[0039]FIG. 6 is a diagram showing examples of block division in each macroblock.
[0040]FIG. 7 is a diagram showing a video decoding apparatus in the embodiment.
[0041]FIG. 8 is a flowchart of decoding in the embodiment.
[0042]FIG. 9 is a schematic view showing the concept of parallax generated between cameras.
[0043]FIG. 10 is a schematic view showing a parallax vector.
[0044]FIG. 11 is a schematic view showing pixel-value interpolation.
[0045]FIG. 12 is a schematic view showing the concept of parallax estimation.
[0046]FIG. 1 is a diagram showing the structure of a video encoding apparatus as a embodiment of the present invention.
[0047]The video encoding apparatus 100 includes an image input part 101 into which each original image of camera C (i.e., target image to be encoded) is input; a reference image input part 102 into which decoded images (as reference images) of cameras A and B are input; a reference image memory 103 for storing each reference image; a reference parallax setting part 104 for obtaining reference parallax by using reference images; a parallax displacement setting part 105 for obtaining parallax displacement; a block division setting part 106 for setting a block division state; a block division data encoding part 107 for encoding block division data; a parallax displacement data encoding part 108 for encoding parallax displacement data; and a prediction residual encoding part 109 for encoding the relevant prediction residual.
[0048]FIG. 2 is a diagram showing reference relationships between cameras in the present embodiment. As shown in FIG. 2, in the present embodiment for encoding multi-viewpoint video images obtained by three cameras, video images of camera C are encoded using decoded images of cameras A and B, as reference images.
[0049]The arrows in FIG. 2 represent reference relationships in parallax compensation. In order to encode each image of camera C, decoded images (of cameras A and B) having the same display time are encoded as reference images. In the relevant process, a predicted image is generated by computing an average between pixel values of the corresponding points belonging to the cameras A and B (each corresponding point is a pixel indicated by a vector which is provided by the sum of the relevant parallax displacement vector and reference parallax vector).
[0050]FIG. 3 is a diagram showing the arrangement of cameras in the present embodiment. In the present embodiment, as shown in FIG. 3, the viewpoints of the three cameras align along a straight line at regular intervals, and the optical axes of the cameras are perpendicular to the straight line. That is, the optical axes of the three cameras are parallel to each other.
[0051]In addition, the x-y coordinate system on the relevant image plane can be obtained by parallel translation (no rotation or the like is performed) with respect to the straight line on which the cameras are arranged, and pixels are formed by dividing each of the x and y axes of the image plane at regular intervals for each camera. That is, each camera has the same resolution, and a parallax of P pixels between the cameras C and A corresponds to a parallax of P pixels between the cameras C and B.
[0052]FIG. 4 is a flowchart of encoding in the present embodiment. FIG. 5 is a detailed flowchart of step S106 in FIG. 4.
[0053]In the present embodiment, a macroblock consisting of 16×16 pixels (in the vertical and horizontal directions) is used as a unit, and the block division (state) in each macroblock is designated. Parallax displacement data is obtained for each block defined in the block division (simply called the "block" for convenience), and is encoded.
[0054]Reference parallax is represented using a two-dimensional vector. Therefore, on the decoding side (and the encoding side), a two-dimensional vector (i.e., reference parallax) for each reference image is obtained for each pixel, by using the reference image.
[0055]On the other hand, a single parallax displacement (for camera A) represented by a two-dimensional vector is encoded for each block. Here, similar to the computation of the reference parallax, a physical restriction condition is assumed in which each (parallax) vector (used for parallax compensation), which is provided as the sum of a reference parallax vector and a reference parallax vector for each pixel of each of the reference images, designates the same position on the subject. In this case, if the parallax displacement vector for camera A is known, the parallax displacement vector for another camera is uniquely determined.
[0056]Instead, parallax displacement for each reference image may be independently computed and encoded without assuming such a restriction condition. However, such a method can be easily implemented as a variation of the present embodiment, and specific explanations thereof are omitted.
[0057]There are many possible block division states applicable to each macroblock. FIG. 6 shows examples thereof. As shown in FIG. 6, "blkMode" is an index for indicating the type of block division, and the number of blocks for each "blkMode" is indicated by "maxBlk[blkMode]".
[0058]Under the above conditions, the encoding operation will be explained with reference to the flowchart of FIG. 4.
[0059]First, an image of camera C is input into the image input part 101 (see step S101), where decoded images, which belong to cameras A and B and have the same display time, have been stored into the reference image memory 103 via the reference image input part 102.
[0060]Next, the relevant decoded images of cameras A and B are input from the reference image memory 103 (see step S102), and reference parallax for each pixel of a target image to be encoded is obtained for each input reference image by using the reference images (see step S103). That is, two reference images, which belong to cameras A and B, are input into the reference parallax setting part 104, and reference parallax for each pixel of the target image of camera C is obtained.
[0061]Accordingly, two "two-dimensional vectors" are obtained for each pixel of the target image of camera C. For coordinates (x,y) on the image plane of camera C (x and y are each an integer which indicates a coordinate value of the relevant pixel), reference parallax vectors for cameras A and B are respectively indicated by dA[x,y] and dB[x,y].
[0062]In addition, "MBBlk" is an index for indicating each macroblock, and the number of macroblocks is indicated by "maxMBBlk".
[0063]After the index MBBlk for each macroblock is initialized to zero (see step S104), the following steps (S105 to S111) are repeatedly applied to each macroblock while "1" is added to the index MBBlk (see step S110).
[0064]First, after the block division (index) blkMode is initialized to zero (see step S105), a rate-distortion cost for the relevant macroblock MBBlk and the block division blkMode is computed (see step S106) while "1" is added to the block division blkMode (see step S107), until the block division blkMode reaches the maximum index value "maxBlkMode" (see step S108). That is, in the parallax displacement setting part 105, the rate-distortion cost "MBCost" for each block division blkMode is computed.
[0065]The rate-distortion cost MBCost for any block division blkMode is obtained by computing a rate-distortion cost "blkCost" for each block (the total number of blocks is indicated by "maxBlk[blkMode]"), and computing the total sum of the rate-distortion costs blkCost.
[0066]The rate-distortion cost blkCost for any block can be obtained as the minimum value of the rate-distortion cost "cost" obtained when using a parallax displacement vector. Therefore, for each block, the parallax displacement vector for minimizing "cost" and the "cost" itself should be computed.
[0067]Here, the search for parallax displacement used for encoding is performed in the vicinity of the relevant reference parallax. That is, "e0, e1, . . . , eN-1" are defined as candidates for the parallax displacement vector, and a process of computing the rate-distortion cost for the parallax vector "dA[x,y]+en" is repeated for "n=0, 1, . . . , N-1", so as to encode the optimum parallax vector for the present block.
[0068]In order to compute "cost", first, the total sum "SAD[en]" of the absolute values of prediction residual for the relevant block, which is obtained when using a parallax displacement vector en, is computed. In addition, an estimated amount R[en] of code of the parallax displacement vector, which is obtained when encoding a parallax displacement vector en, is also computed. The "cost" is computed by the following formula:
Cost=SAD[en]+λR[en] (1)
[0069]Next, in the block division setting part 106, block division "bestBlkMode" for minimizing the rate-distortion cost MBCost is computed for each macroblock MBBlk (the corresponding parallax displacement vector has already been obtained).
[0070]FIG. 5 shows the detailed process of step S106.
[0071]First, the rate-distortion cost MBCost of the relevant macroblock and the index value of block "blk" are each initialized to zero (see step S1061), and the parallax displacement vector for minimizing the rate-distortion cost blkCost of the block "blk" is obtained (see step S1062).
[0072]After the obtained rate-distortion cost blkCost of the relevant block is added to the rate-distortion cost MBCost of the macroblock (see step S1063), "1" is added to block "blk", and the steps S1062 to S1064 are repeated until the block "blk" reaches the total number maxBlk[blkMode] of blocks (see step S1065).
[0073]When the block "blk" reaches the total number maxBlk[blkMode] of blocks, it is determined whether or not the presently-computed rate-distortion cost MBCost of the macroblock is smaller than the presently-minimum rate-distortion cost minMBCost of the macroblock (see step S1066). If t is smaller, the rate-distortion cost MBCost is stored as the minimum rate-distortion cost minMBCost, and the corresponding block division blkMode is stored as the optimum block division bestBlkMode (see step S1067).
[0074]In accordance with the above operation, the block division data "bestBlkMode", the parallax displacement data (i.e., parallax displacement vector), and the prediction residual generated by parallax compensation, which are used for parallax compensation of the macroblock MBBlk, are obtained. Next, the block division data "bestBlkMode" is encoded in the block division data encoding part 107, and the parallax displacement data corresponding to bestBlkMode is encoded in the parallax displacement data encoding part 108 (see step S109).
[0075]In addition, the prediction residual corresponding to the parallax displacement data is encoded in the prediction residual encoding part 109.
[0076]FIG. 7 shows a video decoding apparatus used in the present embodiment. The video decoding apparatus 200 includes a block division data decoding part 201; a parallax displacement data decoding part 202; a prediction residual decoding part 203; a parallax compensation part 204; and a reference image memory 205.
[0077]FIG. 8 is a flowchart of the decoding using the video decoding apparatus 200 in the present embodiment. This flowchart shows the operation for decoding one frame of camera C, and will be explained in detail below. Here, the frames of cameras A and B of the same time have been decoded in advance, and the decoded images have been stored in the reference image memory 205.
[0078]First, the relevant decoded images of cameras A and B are input from the reference image memory 205 (see step S201), and reference parallax for each pixel of a target image to be encoded is obtained using each reference image (see step S202). That is, two reference images belonging to cameras A and B are input into the parallax compensation part 204, and parallax compensation for each pixel of the relevant image of camera C is obtained. Accordingly, two "two-dimensional vectors" are obtained for each pixel in the image of camera C.
[0079]Next, after the index MBBlk of macroblock is initialized to zero (see step S203), the following steps (S204 to S212) are repeated for each macroblock of the relevant one frame while "1" is added to MBBlk (see step S211) ("maxMBBlk" indicates the number of macroblocks in one frame). Accordingly, the relevant one frame of camera C is decoded.
[0080]In the decoding of each macroblock, first, the block division data bestBlkMode for the macroblock MBBlk is decoded by the block division data decoding part 201 (see step S204). Next, after the index value of block "blk" is initialized to zero (see step S205), the following steps (S206 to 5209) are repeated for each block "blk" ("maxBlk[blkMode]" indicates the maximum number of block).
[0081]First, in the parallax displacement data decoding part 202, the parallax displacement data for block "blk" is decoded (see step S206), and an predicted image for block "blk" is generated using the parallax displacement data and the reference parallax (i.e., by performing interpolation between the pixel values of cameras A and B) (see step S207).
[0082]In accordance with the above repetition process for block "blk", an predicted image for macroblock MBBlk is generated. Therefore, the prediction residual for the macroblock MBBlk is decoded in the prediction residual decoding part 203, and the parallax compensation part 204 computes the sum of the predicted image and the prediction residual, thereby obtaining a decoded image of macroblock MBBlk (see step S210).
[0083]The above operation is repeated for every macroblock in the relevant one frame (see steps S211 and S212), thereby decoding the one frame of camera C.
[0084]In the present embodiment, an image of camera C is encoded by referring to other cameras (A and B). However, such a case of performing the encoding by referring to other cameras and another case of performing motion compensation by referring to a decoded image of camera C may be adaptively switched in an image frame (i.e., for an image).
[0085]More specifically, switching between parallax compensation and motion compensation may be performed for each divided block shown in FIG. 6. In this case, the video encoding side should encode data for indicating which of parallax compensation and motion compensation has been used, and the video decoding side should decode the data.
[0086]The above-described video encoding and decoding processes can be implemented by using a computer and a software program. Such a program may be provided by storing it into a computer-readable storage medium, or through a network.
[0087]In video encoding and decoding methods for estimating parallax by using reference images, spatial correlation of parallax displacement data is used, so that the amount of code of parallax displacement data can be reduced without degrading the prediction efficiency in parallax compensation, thereby improving the total encoding efficiency.
Patent applications by Hideaki Kimata, Tokyo JP
Patent applications by Masayuki Tanimoto, Nagoya-Shi JP
Patent applications by Toshiaki Fujii, Tokyo JP
2013-11-07 Predictive encoding method, predictive encoding device, and predictive encoding program of motion vector, and, predictive decoding method, predictive decoding device, and predictive decoding program of motion vector
2013-11-07 Video encoding device, video decoding device, video encoding method, video decoding method, and program
2013-11-07 Motion video encoding apparatus, motion video encoding method, and motion video encoding computer program
2015-12-10 Video encoding apparatus and method, video decoding apparatus and method, and programs therefor