Efficient multi-view coding using depth-map estimate for a dependent view
11240478 · 2022-02-01
Assignee
Inventors
Cpc classification
H04N13/161
ELECTRICITY
H04N19/46
ELECTRICITY
International classification
H04N13/161
ELECTRICITY
H04N19/597
ELECTRICITY
H04N19/46
ELECTRICITY
Abstract
The usual coding order according to which the reference view is coded prior to the dependent view, and within each view, a depth map is coded subsequent to the respective picture, may be maintained and does lead to a sacrifice of efficiency in performing inter-view redundancy removal by, for example, predicting motion data of the current picture of the dependent view from motion data of the current picture of the reference view. Rather, a depth map estimate of the current picture of the dependent view is obtained by warping the depth map of the current picture of the reference view into the dependent view, thereby enabling various methods of inter-view redundancy reduction more efficiently by bridging the gap between the views. According to another aspect, the following discovery is exploited: the overhead associated with an enlarged list of motion predictor candidates for a block of a picture of a dependent view is comparatively low compared to a gain in motion vector prediction quality resulting from an adding of a motion vector candidate which is determined from an, in disparity-compensated sense, co-located block of a reference view.
Claims
1. A decoder for decoding a multi-view signal transmitted via a data stream, comprising: a depth estimator configured for obtaining, using a processor, a depth map of a first view; and a dependent view reconstructor configured for: processing, using the processor, a flag that signals whether first motion data associated with the first view is derived using second motion data associated with a second view; responsive to the flag signaling that the first motion data is to be derived using the second motion data associated with the second view: estimating, using the processor and based on the depth map, a disparity with respect to the first view, identifying, using the processor, for a first picture coding block in the first view, a second picture coding block in the second view based on the disparity, obtaining, using the processor, the second motion data associated with the second picture coding block in the second view, predicting, using the processor, the first motion data associated with the first picture coding block in the first view based on the second motion data and the disparity, the predicting including deriving a first reference picture index associated with the first motion data by modifying a second reference picture index associated with the second motion data such that a first picture order count of a first reference picture is equal to a second picture order count of a second reference picture, adding, using the processor, the first motion data as a candidate in a set of motion data candidates for the first picture coding block in the first view, extracting, using the processor and from the data stream, index information specifying a motion data candidate of the set of motion data candidates for the first picture coding block in the first view, and reconstructing, using the processor, the first picture coding block of the first view by prediction based on the motion data candidate specified by the index information.
2. The decoder of claim 1, wherein the dependent view reconstructor is further configured for: extracting motion data residual from the data stream; generating refined motion data for the first picture coding block based on the motion data candidate and the motion data residual; and reconstructing the first picture coding block of the first view by prediction based on the refined motion data.
3. The decoder of claim 1, wherein the depth estimator is configured for obtaining the depth map of the first view by warping another depth map associated with the second view into the depth map of the first view.
4. The decoder of claim 3, wherein the depth estimator is configured for warping by: obtaining a second disparity associated with a second picture of the second view; and applying the second disparity to a reference depth map of the second view to derive the depth map of the first view.
5. The decoder of claim 1, wherein the dependent view reconstructor is further configured for: identifying additional second picture coding blocks in the second view; obtaining additional second motion data associated with the additional second picture coding blocks; and estimating the first motion data for the first picture coding block in the first view based on both the second motion data and the additional second motion data.
6. The decoder of claim 1, wherein the dependent view reconstructor configured for extracting from the data stream, using the processor, a sub-block syntax element representing a sub-block flag that indicates whether the picture coding block in the first view is to be decoded in units of sub-blocks of the picture coding block, wherein the index information specifies the motion data candidate of the set of motion data candidates for a one of the sub-blocks of the picture coding block in the first view, and the one of the sub-blocks of the picture coding block is reconstructed by prediction based on the motion data candidate specified by the index information for the one of the sub-blocks.
7. A method for decoding a multi-view signal transmitted via a data stream, comprising: obtaining a depth map of a first view; processing a flag that signals whether first motion data associated with the first view is derived using second motion data associated with a second view; responsive to the flag signaling that the first motion data is to be derived using the second motion data associated with the second view: estimating, based on the depth map, a disparity with respect to the first view, identifying, for a first picture coding block in the first view, a second picture coding block in the second view based on the disparity, obtaining the second motion data associated with the second picture coding block in the second view, predicting the first motion data associated with the first picture coding block in the first view based on the second motion data and the disparity, the predicting including deriving a first reference picture index associated with the first motion data by modifying a second reference picture index associated with the second motion data such that a first picture order count of a first reference picture is equal to a second picture order count of a second reference picture, adding the first motion data as a candidate in a set of motion data candidates for the first picture coding block in the first view, extracting, from the data stream, index information specifying a motion data candidate of the set of motion data candidates for the first picture coding block in the first view, and reconstructing the first picture coding block of the first view by prediction based on the motion data candidate specified by the index information.
8. The method of claim 7, further comprising: extracting motion data residual from the data stream; generating refined motion data for the first picture coding block based on the motion data candidate and the motion data residual; and reconstructing the first picture coding block of the first view by prediction based on the refined motion data.
9. The method of claim 7, wherein the step of obtaining the depth map of the first view comprises warping another depth map associated with the second view into the depth map of the first view.
10. The method of claim 9, wherein the step of warping comprises: obtaining a second disparity associated with a second picture of the second view; and applying the second disparity to a reference depth map of the second view to derive the depth map of the first view.
11. The method of claim 7, wherein the step of predicting the dependent motion data comprises: identifying additional second picture coding blocks in the second view; obtaining additional second motion data associated with the additional second picture coding blocks; and estimating the first motion data for the first picture coding block in the first view based on both the second motion data and the additional second motion data.
12. The method of claim 7, further comprising extracting from the data stream, using the processor, a sub-block syntax element representing a sub-block flag that indicates whether the picture coding block in the first view is to be decoded in units of sub-blocks of the picture coding block, wherein the index information specifies the motion data candidate of the set of motion data candidates for a one of the sub-blocks of the picture coding block in the first view, and the one of the sub-blocks of the picture coding block is reconstructed by prediction based on the motion data candidate specified by the index information for the one of the sub-blocks.
13. An encoder for encoding a multi-view signal into a data stream, comprising: a depth estimator configured for obtaining, using a processor, a depth map of a first view; and a dependent view encoder configured for responsive to a flag signaling that first motion data is to be derived using second motion data associated with a second view: estimating, using the processor and based on the depth map, a disparity with respect to the first view, identifying, using the processor, for a first picture coding block in the first view, a second picture coding block in the second view based on the disparity, obtaining, using the processor, the second motion data associated with the second picture coding block in the second view, predicting, using the processor, the first motion data associated with the first picture coding block in the first view based on the second motion data and the disparity, the predicting including deriving a first reference picture index associated with the first motion data by modifying a second reference picture index associated with the second motion data such that a first picture order count of a first reference picture is equal to a second picture order count of a second reference picture, adding, using the processor, the first motion data as a candidate in a set of motion data candidates for the first picture coding block in the first view, and inserting, using the processor into the data stream, the flag and index information specifying a motion data candidate of the set of motion data candidates for the first picture coding block in the first view, wherein the first picture coding block of the first view is reconstructed using prediction based on the motion data candidate specified by the index information.
14. The encoder of claim 13, wherein the dependent view encoder is further configured for: determining motion data residual based on a difference between the motion data candidate and the first motion data associated with the picture coding block in the first view; and inserting the motion data residual, without the motion data candidate, into the data stream.
15. The encoder of claim 13, wherein the depth estimator is configured for obtaining the depth map of the first view by warping another depth map associated with the second view into the depth map of the first view.
16. The encoder of claim 15, wherein the depth estimator is configured for warping by: obtaining a second disparity associated with a second picture of the second view; and applying the second disparity to a reference depth map of the second view to derive the depth map of the first view.
17. The encoder of claim 13, wherein the step of predicting the first motion data includes: identifying additional second picture coding blocks in the second view; obtaining additional second motion data associated with the additional second picture coding blocks; and estimating the first motion data for the first picture coding block in the first view based on both the second motion data and the additional second motion data.
18. The encoder of claim 13, wherein the dependent view encoder is configured for inserting into the data stream, using the processor, a sub-block syntax element representing a sub-block flag that indicates whether the picture coding block in the first view is to be coded in units of sub-blocks of the picture coding block, wherein the index information specifies the motion data candidate of the set of motion data candidates for a one of the sub-blocks of the picture coding block in the first view, and the one of the sub-blocks of the picture coding block is reconstructed by prediction based on the motion data candidate specified by the index information for the one of the sub-blocks.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Embodiments of the present invention will be detailed subsequently referring to the appended drawings, in which:
(2)
(3)
(4)
(5)
(6)
DETAILED DESCRIPTION OF THE INVENTION
(7)
(8) Further, apparatus 10 comprises a reference view reconstructor 24 connected between input 16 and output 18a and a dependent view reconstructor 26 connected between input 16 and output 18b. A depth map estimator 28 of apparatus 10 is connected between an output of reference view reconstructor 24 and a reference input of dependent view reconstructor 26.
(9) As will be outlined in more detail below, the apparatus or decoder 10 of
(10) It is noted that
(11) Moreover, decoder 10 is configured to process the multi-view signal 12 sequentially in time. To be more precise, decoder 10 is configured to reconstruct the pictures 32t.sub.1,2 and the respective depth maps 34d.sub.1,2 of a certain time instance, such as T−1, prior to continuing with processing the pictures and depth maps of another time instance T. In this regard, it is noted that the temporal coding order among the time instances of the multi-view signal 12 may be equal to the presentation time order of the pictures and depth maps, respectively, or may differ therefrom.
(12) The reference view reconstructor 24 is configured to reconstruct the reference view 20 from a reference view portion 36 of the multi-view data stream 14, while the dependent view reconstructor 26 is configured to reconstruct the dependent view 22 based on a dependent view portion 38 of the multi-view data stream 14. In fact, reference view reconstructor 24 and dependent view reconstructor 26 may be configured to operate in a similar manner. For example, reference reconstructor 24 and dependent view reconstructor 26 may operate on a block-wise basis. Both may, for example, be configured as a hybrid video decoder, respectively. The reference view reconstructor 24 reconstructs, for example, the picture 34t1 of a current time instant T by assigning a respective one of available coding modes to the blocks 40 into which this picture is subdivided. The subdivision of picture 34t1 into blocks may be predefined by default or may be signaled within the multi-view data stream 14. The subdivision may subdivide picture 34t1 in a regular manner into blocks of the same size or blocks of different size. Even further, a multi-tree subdivisioning may be possible so that the block size of blocks 40 may be locally adapted to the picture content. The coding modes available may comprise one or more intra prediction modes according to which reference view reconstructor 24 fills the respective block 40 by prediction from already reconstructed samples of already reconstructed blocks preceding the current block in a decoding order defined among the blocks of picture 34t1, and/or one or more inter prediction modes according to which reference view reconstructor 24 reconstructs the respective block by motion compensated prediction using motion data such as motion vectors, reference picture indices and the like. For example, for illustration purposes two blocks are exemplarily shown to be reconstructed by inter prediction. The motion data 42 for these inter-predicted blocks may comprise motion vectors used by reference view reconstructor 24 to copy respective portions of a reconstructed version of a reference picture 34t1 indexed by a reference index also comprised by the motion data 42. The motion data 42 is comprised by the reference view portion 36 of multi-view data stream 14.
(13) Reference view reconstructor 24 is, however, also responsible for reconstructing the depth map 34d.sub.1 of the current picture 34t.sub.1 of the current time instance T of the reference view 20 from a reference view depth map portion of portion 36. As illustrated in
(14) Similarly to the coding modes, motion data 46 may be adopted for motion data 42, or at least predicted therefrom. Together, motion data 42 and motion data 46 represent motion data 48 of the current picture or time instant view 20.
(15) The dependent view reconstructor 26 operates quite the same as reference view reconstructor 24 with dependent view reconstructor 26, however, being configured to reconstruct the dependent view 22 from the dependent view portion 38. Accordingly, in reconstructing a current picture 32t.sub.2 of current time instant T, dependent view reconstructor 26 may also use a block-wise processing using a subdivision into blocks 50 which may be fixed or signaled within multi-view data stream 14. Alternatively, depth map based inter-view prediction of the subdivision into blocks 50 as outlined in more detail below may be used by dependent view reconstructor 26 so as to derive the subdivision into blocks 50 for view 22 from the subdivision into blocks 40 and/or blocks 44 of view 20. Dependent view reconstructor 26 may also use such a subdivisioning into blocks 52 for depth map 34d.sub.2 of view 22. As far as the coding modes are concerned, dependent view reconstructor 26 may support coding modes as they have been described with respect to the reference view reconstructor 24. Accordingly, illustratively, two blocks 50 and two blocks 52 are exemplarily shown to be subject to inter prediction using motion data 54 and 56, respectively, so as to be appropriately copied from respective portions of a reconstructed version of previously reconstructed pictures 32t.sub.2 and the respective depth map 34d.sub.2, respectively. Together, this motion data 58 represents the motion data for the current picture or current time instance of view 22. In addition to these coding modes, however, dependent view reconstructor 26 has the ability to support one or more inter-view prediction modes for using disparity-compensated prediction in order to copy respective blocks from portions of view 20 of the same time instance, but spatially displaced, as defined by some disparity data. In
(16) That is, reference view reconstructor 24 and dependent view reconstructor 26 operate in a manner so as to reduce the redundancies between a picture and its depth map, along the time axis 30 and in inter-view direction, between views 20 and 22, as far as possible. This is also true, for example, for the prediction of the side information such as the motion data and disparity data as well as the coding modes and the subdivision information mentioned above. All of this information shows redundancies among each other in time direction, between the views and between a picture and its depth map.
(17) However, the dependent view reconstructor 26 could more efficiently exploit the redundancy between views 20 and 22 if the dependent view reconstructor 26 had access to the depth map 34d.sub.2 prior to decoding picture 32t.sub.2 of the same time instance. Accordingly, the depth estimator 28 is configured to provide a depth map estimate 64 as an estimate for the depth map 34d.sub.2 of the current picture 32t.sub.2 of the current time instant T in the manner described in more detail below, and the dependent view reconstructor 26 is configured to reconstruct the current picture 32t.sub.2 of the current time instant of the dependent view 22 from the dependent view portion 38 of the multi-view data stream 14 using this depth map estimate 64. For example, having the depth map estimate at hand, the dependent view reconstructor 26 is able to predict the motion data 58 of the current picture (including its depth map 34d.sub.2) of the dependent view 22 based on the depth map estimate 64 of the current view 22 and the motion data 48 for the current picture of the reference view 20 and reconstruct the current picture (including its depth map) of the dependent view 22 using motion compensated prediction based on the predicted motion data. For example, the current-view reconstructor 24 may be configured to, in predicting the motion data 58, use the depth data estimate 64 of the dependent view 22 to locate corresponding positions in the current picture of the reference view 20 and use the motion data for the current picture of the reference view 20 at the corresponding positions to predict the motion data 58 of the current picture of the dependent view 22. In the following description, a possible way how the spatial look-up using the depth data estimate 64 is done is described in more detail below. In particular, in the following description, the fact that the motion data 48 forms a good predictor for the motion data 58 is motivated in more detail. Naturally, refinement data in order to signal a prediction residual for the motion data 58 may be comprised by the dependent view portion 38. In particular, as will be set out in more detail below, dependent view reconstructor 26 may be configured to apply disparity vectors derived from the depth data estimate 64 for one or more predetermined sample positions within a current block 50 of picture 32t.sub.2 of the current time instant of dependent view 22 and use these disparity vectors in order to locate corresponding or warped positions in picture 34t.sub.1 of the same time instant of view 20 with using the motion data of the one or more blocks 40 containing the one or more warped positions as a predictor for the motion data of the current block 50. In case of more than one such reference sample position within the current block 50, the mean or median value of the resulting one or more reference motion data of the targeted block or blocks 40 may be used as the predictor. As the picture 32t.sub.2 is coded prior to its depth map 34d.sub.2 of dependent view 22, it is especially worthwhile for dependent reconstructor 26 to perform the just-outlined description for the blocks 50 within the picture 32t.sub.2. For the blocks 52, motion data prediction from the motion data 54 of the corresponding picture 32t.sub.2 is available anyway. In addition, spatial prediction, such as by using the merge concept among blocks 52 or some skip/direct mode, of motion data 54 is feasible.
(18) Further, the dependent view reconstructor 26 could be configured to predict the disparity data 60 for the current picture of the dependent view 22 based on the depth data estimate 64 of the dependent view 22 and reconstruct the current picture of the dependent view 22 using disparity compensated prediction based on the predicted current disparity data. Again, refinement may be signaled within dependent view portion 38 of the multi-view data stream 14 and used by dependent view reconstructor 26 to refine the predicted current disparity data. Further, as outlined above, theoretically the disparity data 60 and 62 of blocks 50 and 52 could be predicted too in the same way. As will be outlined in more detail below, the dependent view reconstructor 26 could be configured to predict the disparity data 60 and 62 based on the depth data estimate 64 of the current view by converting the depth data into disparity vectors and using these disparity vectors as a predictor for the disparity vectors within the disparity data 60 and 62, respectively, directly.
(19) Alternatively, the dependent view reconstructor 26 could be configured to reconstruct the depth map 34d.sub.2 of the current time instant of the dependent view 22 from a dependent view depth map portion of the dependent view portion 38 of the multi-view data stream 14 using the depth map estimate 64 as a prediction reference. For example, the dependent view reconstructor 26 could directly use the co-located portion of the depth map estimate 64 as a prediction of the content of a current block 52 of the depth map 34d.sub.2—i.e. copy the co-located portion—with merely applying a residual signal signaled within the dependent view portion 38 onto this predicted content so as to reconstruct the current portion 52.
(20) Naturally, dependent view reconstructor 26 could support any combination of the just-mentioned possibilities so as to use the depth data estimate so as to reduce the inter-view redundancy between views 20 and 22.
(21) In order to derive the just-mentioned depth data estimate, the depth estimator 28 acts as follows.
(22) In particular, in accordance with the embodiment of
(23) Before describing further details regarding the concepts outlined above, an embodiment for an encoder fitting to the decoder of
(24) Thus, when the reference view encoder 80 encodes a depth map 34d.sub.1 of a current time instant of reference view 20 of the multi-view signal 12, the depth estimator is able to derive a depth map estimate 64 for view 22 therefrom, and the dependent-view encoder may encode the current picture or current time instant of the dependent view 22 using the depth map estimate 64 in the manner outlined above with respect to
(25) In the following, more detailed embodiments are presented, which are especially advantageous when combined with hybrid coding types using block merging, multi-tree block partitioning of regularly arranged tree-root blocks such as in HEVC.
(26) The state-of-the art concepts for employing motion data of a reference view for efficiently coding a further view have all been developed based on the MVC extension of ITU-T Rec. H.264 IISO/IEC 14496-10. The new video coding standardization project of the ITU-T and ISO/IEC JTC 1/WG 11, which is also referred to as HEVC, shows very promising improvements in conventional 2-d video coding technology. The current working draft of HEVC provides substantial coding gains compared to ITU-T Rec. H.264 I ISO/IEC 14496-10. For achieving these gains several concepts have been extended in comparison to ITU-T Rec. H.264 I ISO/IEC 14496-10. The main improvements in the area of motion parameter coding and motion-compensated prediction include the following: While the blocks sizes that are used for motion-compensated prediction in ITU-T Rec. H.264 I ISO/IEC 14496-10 range from 4×4 to 16×16 luma samples, a much larger variety of blocks sizes is supported in HEVC, which ranges from 4×4 to 64×64 luma samples. In addition, the basic coding units are not given by fixed macroblock and sub-macroblocks, but are adaptively chosen. The largest coding unit is typically a block of 64×64 luma samples, but the largest block size can actually be signaled inside the bitstream. The splitting of a block into subblock can establish a subdivision hierarchy of 4 or more levels. Motion vectors are not coded by using a fixed motion vector predictor. Instead there exists a list of motion vector predictor candidates, and one of these predictors is adaptively chosen on a block basis. The chosen predictor is signaled inside the bitstream. ITU-T Rec. H.264 I ISO/IEC 14496-10 provides the SKIP and DIRECT for which the motion parameters (number of hypothesis, reference indices, motion vectors) are completely derived from already coded information, without coding any additional parameters (except residual information). HEVC provides a so-called merge mode. For this mode a list of motion parameter candidates given by the motion parameters of spatially and temporally neighboring blocks is established. The motion parameters (including the number of hypothesis, reference indices, and motion vectors) that are chosen for a block coded in the merge mode are signaled by transmitting an index into the candidate list.
(27) The following description will describe a concept for employing the motion data of already coded views as well as the disparity data for already coded pictures of a current view for coding a current picture of the current view in multiview video coding, with this concept representing a possible implementation of the embodiment described above. Further, the advantages resulting from the above and following embodiments will be explained in more detail. By employing the already coded motion and disparity information for predicting the temporal motion (or the disparity) of the current view, the motion data rate for the current view can be significantly reduced, which results in an overall bit rate saving for the coding of multiview video sequences. The described concept provides the possibility to directly derive all motion data for a block (or a general set of samples), in which case no further motion information are transmitted for a block. And it also provides the possibility to derive a motion vector predictor that is added to a list of candidate motion vector predictors. For the latter possibility, an index into the list of motion vector predictors as well as a motion vector difference are transmitted for a block, which specify the final motion vector used for motion-compensated prediction. In a particular embodiment of the invention, not only the motion parameters for a block, but also the partitioning information for the block (which can split the block into smaller blocks and assign separate motion parameters to each sub-block) can be derived based on the already coded motion and disparity information. The concept is applicable to general block-based hybrid coding approaches without assuming any particular macroblock or sub-macroblock structure. The general block-based motion compensation is not modified, but only the coding of motion parameters, so that the concept can be integrated in general block-based hybrid video coding schemes with a very small complexity increase. It can also be straightforwardly extended to more general concepts, in which not rectangular blocks but other sets of samples are associated for unique motion parameters. The concept is applicable to multiview coding with additional depth maps. The disparity information for calculating the motion parameters can be derived based on coded depth maps.
(28) One advantage of the concept presented now compared to conventional techniques for employing the motion data of already coded views is that the motion/disparity predictors are completely derived based on coded motion and disparity/depth information, without assuming any particular structure of the disparity field. At no point, it is not assumed that the disparity field can be well approximated by constant translational or affine parameters for an image; instead actually coded disparity information are used for accessing the motion of an already coded view. Further, it is not assumed that the disparity of a macroblock is similar to the disparity of neighboring blocks which assumption is unsecure. By using actually coded depth/disparity information, the concept provides suitable disparity estimates for blocks at object boundaries. Further, since no assumption that the motion of the current block is similar to that of neighboring blocks; is made, improved motion parameter predictors at object boundaries are provided. Furthermore, the concept does not require any transmission of disparity corrections, further, the concept does not require modifying the actual motion/disparity compensation process of hybrid video coding designs for being built into same. Only the derivation of motion parameters and/or motion parameter predictors is changed, so that it can be included in conventional video coding designs without any big modification and has a small complexity. In addition it should be noted that the concept is applicable to the coding with and without depth maps. Coded depth maps are used for improving the accuracy of the employed disparity data. The concept described hereinafter can be decomposed into the following steps: Derivation of depth/disparity data for the current picture of the current view. Derivation of candidate motion or disparity data for a current block based on the derived depth/disparity data. Coding of the motion or disparity data for a current block.
(29) In the following, these steps including advantageous embodiments are described in more detail. All steps are described for block-based motion compensation with translational motion vectors. The concept is, however, also applicable to more general schemes in which a generalized set of samples (e.g., a non-rectangular part of a block, or any other shape) is associated with a unique set of motion parameters; and it is also applicable for coding schemes in which the motion compensation is carried out using higher order motion models (e.g., affine motion models, or other N-parameter motion models).
(30) Before describing the details of the concept, we briefly describe the advantage and underlying thoughts also valid for the above, more generic embodiment. The basic relationship between the projection of a real-world object point in different views and at different time instances in illustrated in
(31) Hence, we have the following relationship between the motion and disparity vectors:
MV.sub.c(x.sub.c,t)_+DV.sub.t-1(x.sub.c,t-1)−MVR(x.sub.Rt)−DVt(x.sub.c,t)=0
(32) If three of the motion and disparity vectors are given, the fourth vector can be calculated by a simple addition. In particular, the temporal motion vector for the current view can be derived according to
MV.sub.c(x.sub.c,t)=M¾(¾,t)+DV.sub.t(x.sub.c,t)−DV.sub.t-1(x.sub.c,t-1)
if the motion vector of the same object point in the reference picture as well as the disparity vectors at both time instants are given. In most cases, the motion vector (or motion parameters) for the reference view are given, because this view is already coded using motion-compensated prediction. But the disparities are usually not given, they can only be estimated. However, by using two estimated values the accuracy of the final results may be quite inaccurate and not suitable for deriving sufficiently accurate temporal motion vector predictors. But in general, it is justified to assume that the depth an object point (distance of the real-world object point from the camera) is nearly constant between the time instances corresponding to the current and the reference picture (the object motion from or to the camera between two successive pictures is usually much smaller than the distance of the object to the camera). Then, also the disparities are nearly constant and the relationship between the motion vectors simplifies to
MV.sub.c(x.sub.c,t)≈MVR(x.sub.R,t)=MV.sub.g(x.sub.c,t+DVt(x.sub.c,t))
(33) It should be noted that we still need an estimate for the disparity in the current access unit (current time instant) in order to prediction the motion inside the current view based on the motion inside the reference view. However, the accuracy of the disparity estimate is less critical, since it is only used for accessing motion data in the reference view. The motion compensation operations as well as the coding of motion data is done based on blocks of multiple samples and, furthermore, the motion of neighboring samples or blocks is often very similar. Nonetheless, an accurate estimate of the disparity generally improves the prediction of motion parameters. The estimated disparity vector can also be used as a disparity vector for disparity-compensated prediction (i.e., using the picture of the current access unit in a reference view as reference picture), which can represent a special mode of the motion and disparity-based prediction of motion parameters.
(34) Derivation of Candidate Motion or Disparity Data
(35) In the following, we describe the basic derivation of motion data for a given block of the current picture in a particular view (that is not the backwards compatible base view) such as view 22 in
d=f.sub.dz.sup.(=)
(36) The depth values are given with a particular precision (furthermore, depth values are often estimated, since the actual depths are usually not known). In most cases, depth values are given by integer numbers. Given the depth values and particular camera parameters (such as the focal length, distance between cameras, minimum and maximum depth values, or functions of these parameters), the depth value d can be converted into a disparity vector
v=[v.sub.x,v.sub.y].sup.T:v(x)=f.sub.vd(d(x]x],
where f.sub.vd specifies the function that maps a depth value d at sample location
x=[xv_v].sup.T to a disparity vector. In a particular important setup is the one-dimensional parallel camera configuration, which is characterized by the following properties: all cameras of the camera array are of the same type and have the same focal length the optical axes of all cameras are parallel and lie inside the same plane the scan lines of the image sensors are parallel to the plane that contains the optical axes
(37) In this case, the vertical component of the disparity vector is zero,
(38) v=[p,o].sup.T. Each real-world object point has the same vertical location in all views. Its horizontal location depends on the depth of the object point. The difference between the horizontal locations is given by the disparity
r=f.sub.vd(d).
(39) In an important case, the relationship between the real-world depth z and the depth values d is given in a way that a linear relationship between the disparity v and the depth value d is obtained
V=m.sub.vd*d+n.sub.vd,
where m.sub.vd and n.sub.vd are given by the camera parameters. The depth values & are usually given as integer values. And for internal calculations it is usually also advantageous, if the obtained disparity values are integer values. For example, the disparity v can be expressed in the same units that is used for the motion/disparity vectors in motion/disparity-compensated prediction (e.g., half-, quarter, or eighth-sample accuracy). In this case, the integer values for the disparity can be obtained by the integer equation
v=[(rn].sub.vd*d+n.sub.vd)]>>u.sub.v.sup.d
where “»” specifies a bit shift to the right (in two's complement arithmetic), and m zd and n*v.sup.d are scaled (and rounded) versions of m.sub.vd and n.sub.vd, respectively.
(40) Using the described basic relationships between the given depth values and the actually disparity, we describe advantageous embodiments for using motion information that are derived based on already coded motion information in one or more reference views and the given depth values.
(41) Method 1: Switched Motion/Disparity Vector Prediction
(42) In an advantageous embodiment of the invention, the underlying multiview video coding scheme such as for modules 24, 26, 80 and 82 includes a mode, in which the following parameters are transmitted as part of the bitstream 21: reference picture index specifying a particular (temporal or inter-view) reference picture of a given a list of reference pictures. If the given list of reference pictures consists of a single element, this index is not transmitted but inferred at the decoder side. The reference picture include temporal and/or inter-view reference pictures. a motion/disparity vector predictor index specifying a motion/disparity vector predictor of a given list of motion/disparity vector predictor candidates. If the list of motion/disparity vector predictor candidates consist of a single element, this index is not transmitted but inferred at the decoder side. For at least one block of a picture, the list of motion/disparity vector predictor candidates includes a motion/disparity vector that is derived based on given depth/disparity information and motion information in an already coded view.
(43) In addition, a motion/disparity vector difference specifying the difference between the motion/disparity vector used for motion/disparity-compensated prediction and the chosen predictor (indicated by the transmitted index into the motion/disparity vector predictor candidate list) can be transmitted as part of the bitstream. In one embodiment, this motion/disparity vector difference can be coded independently of the reference index and the chosen predictor. In another embodiment of the invention, the motion/disparity vector difference is coded depending on the transmitted reference index and/or the chosen predictor. For example, a motion/disparity vector difference could only be coded if a particular motion/disparity predictor is chosen. The reference picture list and the motion/disparity vector predictor candidate list are derived in the same way at encoder and decoder side. In specific configurations, one or more parameters are transmitted in the bitstream, for specifying how the reference picture lists and/or motion/disparity vector predictor candidate lists are derived. For the advantageous embodiment of the invention, for at least one of the blocks of a picture in a dependent view such as 22, the list of motion/disparity vector predictor candidates contains a motion or disparity vector predictor candidate that is derived based on the given (estimated) depth values or based on the given (estimated) depth value and the motion parameters of an already coded view. Beside the motion/disparity vector predictor that is derived based on the given depth values and motion parameters of already coded views, the candidate list of motion/disparity vectors predictors may contain spatially predicted motion vectors (for example, the motion/disparity vector of a directly neighboring block (left or above block), a motion/disparity vector that is derived based on the motion/disparity vectors of directly neighboring blocks) and/or temporally predicted motion/disparity vectors (for example, a motion/disparity vector that is derived based on the motion/disparity vector of a co-located block in an already coded picture of the same view). The derivation of the motion/disparity vector candidate that is obtained by using the given depth data 64 and the already coded motion parameters such as 42 of other views such as 20 can be performed as described in the following.
(44) Derivation Based on the Derivation of a Representing Depth for the Current Block
(45) In a first advantageous embodiment of the invention, first a representing depth value d for the given block 50 is obtained based on the given sample-based or block-based depth map. In one advantageous embodiment, a particular sample location x of the given block 50, which may be the top-left sample, the bottom-right sample, a middle sample, or any other particular sample, is considered. The depth value β′=d(x) that is associated with the sample (as given by the given block-wise or sample-wise depth maps 64) is used as representing depth value. In another advantageous embodiment, two or more sample locations x.sub.i of the given block (for example, the corner samples or all samples) are considered and based on the associated depth values d.sub.i=d(x.sub.i), a representing depth values d is calculated as a function of the depth values d.sub.i. The representing depth value can be obtained by any function of the set of depth values d.sub.i. Possible functions are the average of the depth values di; the median of the depth values d.sub.i, the minimum of the depth values d.sub.i, the maximum of the depth values d.sub.i., or any other function. After obtaining the representing depth value d for the given block, the motion/disparity vector prediction proceeds as follows: If the reference index that is coded for the block 50 refers to an inter-view reference picture (i.e., a coded picture at the same time instance as the current picture, but in an already coded view such as 20), the representing depth value is converted to a disparity vector based on given camera or conversion parameters as described above, v=f.sub.vd.sup.(d), and the motion/disparity vector predictor is set equal to this disparity vector v. Otherwise (the reference index refers to a temporal reference picture (i.e., an already coded picture of the same view (such as 22)), the motion vector predictor is derived based on a given reference view or a set of reference views such as 20. The reference view or the set of reference views are either determined by a particular algorithm or a signaled in the bitstream 14. As an example, the reference view can be the previously coded view for the same time instant, or it can be the already coded view (for the same time instant) that has the smallest distance to the current view, or any other of the already coded view determined by a particular algorithm. The set of already coded view can be the set of already coded views for the current time instant or any subset of this set.
If a single reference view is used, the motion vector predictor is derived as follows. Based on the camera parameters for the current view 22 and the reference view 20 or the corresponding conversion parameters, the representing depth d is converted into a disparity vector v=f.sub.vd.sup.(d). Then, given the disparity vector v, a sample location x.sub.r the reference view 20 is determined. Therefore, a particular sample location x.sub.r of the current block 50 is considered, which may be the top-left sample of the block, the bottom-right sample, a middle sample, or any other sample of the block. The reference sample location x.sub.r is obtained by adding the disparity vector to the particular sample location inside the current block. If the disparity vector 47 is given with sub-sample accuracy, it is rounded to sample accuracy before it is added to the sample location. Given the reference sample location {circumflex over ( )}, the block 40 (a block is a set of sample that is associated with unique prediction parameters) in the picture 32t.sub.1 (at the current time instant as the current picture) of the reference view 20 that covers the reference sample location x.sub.r is determined. If this reference block 40 is coded in an inter-coding mode (i.e., a mode that employs motion-compensated prediction, including the SKIP or MERGE mode), the reference picture or reference pictures that are used for predicting this block are investigated. Let τ.sub.C,R be the time instant of the reference picture (in the current view) that is referred to be the reference index that is coded for the current block 50. And let τ.sub.l.sub.
If a set of two or more reference views are used, the motion vector predictor can also be derived based on information in all reference views. In an advantageous embodiment, the reference views are ordered in a particular order. As an example, the reference views can be ordered in the order in which they are coded. Or as another example, the reference views are ordered in the order of increasing distances to the current view. Then, the first reference view of the ordered set is investigates and the corresponding motion vector predictor is derived. If this motion vector predictor is marked as available (i.e., it is not marked as not available), the motion vector predictor is used. Otherwise, if the motion vector predictor is marked as not available, the next reference view in the given ordered set is investigated, etc. In another advantageous embodiment of the invention, all reference views of the given set are investigated and the candidate set of motion vectors consists of all corresponding motion vectors that are associated with a reference picture for which the associated time instant τ.sub.l.sub.
(46) For further illustration, the basic process for deriving a motion vector for the current block 50c given the motion in a reference view 20 and a depth map estimate for the current picture 32t.sub.2(T) (using a particular sample position inside the current block 50c) is depicted in
(47) Derivation Based on Multiple Depth Values for the Given Block
(48) In a second advantageous embodiment of the invention, the current block 50c is not represented by a representing depth, but different depth values for different sample locations inside the block are derived and used for deriving a set of candidate motion vector predictors. Given the current block a set of sample locations are considered. The set of sample locations x.sup.i can include the top-left sample, the top-right sample, the bottom-right sample, the bottom-left sample, or a middle sample of the block. For each of the sample locations x.sup.i, a depth value d.sup.i is assigned by the given depth map. Depending on whether the given reference index refers to an temporal or inter-view reference, the following applies. If the reference index that is coded for the block 50c refers to an inter-view reference picture (i.e., a coded picture at the same time instance as the current picture, but in an already coded view), the depth values d; are converted to a disparity vectors based on given camera or conversion parameters as described above, v_=f.sub.vd(d.sup.i). Then, the motion/disparity vector predictor is derived as a function of these disparity vectors v.sup.i. The motion/disparity vector predictor can be set equal to the disparity vectors v.sup.i, that occurs most often, or it can be set to the median (or component-wise median) of the disparity vectors V, or it can be set to the average of the disparity vectors v.sup.i, or it can be determined by any other function of the disparity vectors v.sup.i. Otherwise (the reference index refers to a temporal reference picture (i.e., an already coded picture of the same view)), the motion vector predictor is derived based on a given reference view or a set of reference views. For each sample location x.sup.i, a depth value d.sup.i is derived and mapped to a disparity vector v.sup.i. Then, for each disparity vector (marked as available), a motion vector m.sup.i is derived by any of the algorithms specified above (for the first advantageous embodiment). Then, the final motion vector predictor is given by a function of the motion vectors m.sup.i. The motion vector predictor can be set equal to the motion vector m.sup.i that occurs most often, or it can be set to the median (or component-wise median) of the motion vectors or it can be set to the average of the motion vectors, or it can be determined by any other function of the motion vectors m.sup.i.
Method 2: Mode for which all Associated Motion Parameters are Derived
(49) In another advantageous embodiment of the invention, the multiview video coding scheme includes a coding mode, in which all motion parameters (including the number of hypotheses, the reference indices, and the motion vectors) are derived based on a given depth map 64 and the motion parameters 42 of an already coded view 20. In a particular embodiment of the invention, this mode can be coded as a candidate of a list of candidate motion parameters (as it is used in the merge syntax in the current HEVC working draft). That means, encoder and decoder derive a list of motion parameter candidates for a block in the same way, where one of the motion parameter candidates are the motion parameters that are derived based on the motion of an already coded view 20. Then, an index is coded that signals to the decoder which of these motion parameter candidates is used. In context of the merge syntax, it can be argued that the current block is merged with a “co-located” (in spirit of representing a similar content) block in a reference view. In another embodiment, a specific syntax element signals the usage of the new coding mode. In a slightly modified version, the number of motion hypotheses that are used for generating the prediction signal can be explicitly signaled inside the bitstream, and only the reference indices and the associated motion vectors are derived. In another modified version, motion vector differences can be additionally transmitted in order to refine the derived motion parameters.
(50) Derivation Based on Multiple Potential Reference Indices
(51) In a first advantageous embodiment of the invention, the derivation of the motion parameters for the current block 50c uses any of the concepts described for method 1 above and considers more than one potential reference index. In the following, we first describe how a reference index for a particular motion hypothesis (and reference list) and the associated motion vector can be derived. As a first step, an ordered set of reference indices for a given reference list is determined. This can be for example just a single reference index (e.g., the first index for the reference list or the first index representing a temporal reference picture), or it can consist of the first two indexes of the reference list, or it can consists of all reference indices of the reference list, or it can consist of the first reference index that represents a temporal reference picture and the first reference index that is not equal to the first reference index that represents a temporal reference picture (i.e., the second temporal reference picture in the list or the first inter-view reference picture). Any other defined set of reference indices is possible. Given the ordered set of reference indices, the first reference index is considered and a motion vector for this reference index is derived by any of the embodiments described for method 1 above. If the derived motion vector is marked as not available, the next reference index is considered and the corresponding motion vector is derived. This process is continued until an available motion vector is returned or all reference indices of the list have been tested. If no available motion vector is found, the final motion parameters are marked as not available. In one configuration, not available motion parameters are not inserted into the candidate list of motion parameters. In a second configuration, not available motion parameters are inserted into the candidate list of motion parameters (for parsing robustness), but an encoder is not allowed to choose not available motionparameters. In a third configuration, a not available motion parameters are replaced by particular motion parameters, which may be, for example, a zero reference index and a zero motion vector or a reference index and motion vector that are derived based on the motion parameters in a spatial neighborhood of the current block. If the new coding mode is signaled by a particular syntax element and the derived motion parameters are not available, the corresponding syntax element is either not transmitted (and the coding mode is not used) or the encoder is not allowed to select the value for the syntax element that specifies the usage of the new coding mode or the not available motion parameters are replaced by a particular motion parameters (see above).
(52) If the number of motion hypotheses or the number of used reference lists is explicitly coded, a set of motion parameters consisting of a reference index and a motion vector is determined for each motion hypothesis or reference list as specified above.
(53) If the number of motion hypotheses or the number of used reference lists is not explicitly coded, the number of motion hypotheses or the employed reference lists are also derived based on the actual coded motion parameter in the reference view(s). Given a maximum number of motion hypotheses or the maximum set of reference lists that can be used, for each of the motion hypothesis (reference lists) a set of motion parameters is derived as described above. Then, the number of motion hypotheses (set of used reference picture lists) is given by the hypotheses (reference lists) for which the derived motion parameters are marked as available. As an example, if we have two potential motion hypotheses and for both motion hypotheses a valid set of motion parameters (reference index and motion vector) is derived, the new coding mode specifies bi-prediction with the derived motion parameters. If, however, only for one of the hypotheses (reference lists) a valid set of motion parameters is derived, the new coding mode specifies uni-directional prediction (one hypothesis) with the set of valid motion parameters. If for none of the motion hypotheses (reference lists) a valid set of motion parameters is derived, the complete set of motion parameters is marked as not available. In this case, the set of motion parameters is either not added to the list of candidate motion parameters, or it is added (for parsing robustness) but not used by an encoder, or it is replaced by a particular defined set of motion parameters (e.g., with one motion hypothesis, a reference index equal to 0 and a motion vector equal to 0). It would also be possible to check another set of reference indices for one or more of the potential motion hypotheses.
(54) Derivation Based on a Single Representing Depth Value
(55) In a second advantageous embodiment of the invention, first a reference block in the reference view is derived and then the motion parameters of this block are used as motion parameter candidates for the current block. Here, the number of motion hypotheses as well as the reference indices and motion vectors are copied from the reference block in the reference view. The basic concept for this embodiment is illustrated in
Combination with Method 1
(56) In an embodiment, the coding mode described by an embodiment for method 1 (coding of reference index, derivation of a motion vector or motion vector predictor) can be supported in addition to a coding mode described by an embodiment of method 2 (derivation of all motion parameters including the number of motion hypotheses, reference indices, and motion vectors or motion vector predictors).
(57) Method 3: Mode for which all Associated Motion Parameters as Well as the Block Partitioning are Derived
(58) In another advantageous embodiment of the invention, the multiview video coding scheme includes a coding mode, in which different motion parameters for subblocks of the given block are derived based on the motion parameters in an already coded reference view such as 20 and an estimated depth map 64. Or in other words, the multiview video coding scheme includes a coding mode for a block, in which the partitioning of the block 50c into smaller subblocks as well as the motion parameters associated with the subblocks are derived based on the motion parameters in an already reference view and an estimated depth map.
(59) For this coding mode, a minimum block size is defined, which may be equal to the minimum block size that is supported for motion/disparity-compensated prediction or may be a multiple of the minimum block size that is supported for motion/disparity-compensated prediction. If the given current block 50c is smaller or equal to the defined minimum block size, the current block 50c is not split into smaller block for the purpose of motion/disparity compensation and the associated motion parameters are derived as described for any of the embodiments for method 2 above. If the given current block is larger than the defined minimum block size, it is split into subblocks that have a size equal to the defined minimum block size. For each of these subblocks, a set of motion parameters is derived using any of the embodiments for method 2 described above.
(60) If the motion parameters for any of the subblocks are marked as not available (for example, because the corresponding reference block 40R is coded in an intra-mode or it only uses inter-view prediction), they can be replaced by motion parameters of any of the neighboring subblocks for which the motion parameters are available. Such an algorithm can operate in a way that neighboring blocks are tested in specific defined order (which may depend on the location of the subblocks to be replaced), and the motion parameters of the subblock to be replaced are set equal to the motion parameters of the first subblock in the specified order that has valid motion parameters.
(61) In a particular embodiment of the invention, the obtained subblocks with a given minimum block size specify the partitioning of the given current blocksSOc. In another embodiment of the invention, the obtained subblocks can be combined based on the associated motion parameters in order to form larger blocks that are used for motion/disparity-compensated prediction. The combination of subblocks can proceed in a hierarchical fashion. Therefore, in the first hierarchy stage, sets of four neighboring blocks can be considered. If the number of motion hypotheses and the associated reference pictures and motion vectors are the same for all four subblocks, the four subblocks are summarized to a larger block (with motion parameters that are identical to the motion parameters of the original subblocks). In the next hierarchy stage, four blocks of the next hierarchy level (consisting of 4 original subblocks) are considered. If all four blocks have been summarized to larger blocks in the previous hierarchy stage and the number of motion hypotheses and the associated reference pictures and motion vectors are the same for all four blocks, these four blocks are again summarized to a larger block (with motion parameters that are identical to the motion parameters of the original subblocks). This algorithm in continued up to the highest possible hierarchy level for the given current block. In the extreme case (if the motion parameters of all subblocks are the same), the entire current block is not split but associated with a unique set of motion parameters. In a slightly modified version, 4 blocks are also summarized to a larger block if the motion vectors are not be exactly the same, but the difference (which may be defined as maximum component difference or the absolute value of the vector difference) between the motion vectors is less or equal to a defined threshold (the number of motion hypotheses and the employed reference pictures is still the same). In this case, the motion vectors that are associated with the larger block are determined as a function of the motion parameters of the 4 subblocks. Possible functions are the average of the motion vectors, the median (or component-wise median) of the motion vectors, the motion vector of any particular subblock, or the motion vector that occurs most often in the four subblocks).
(62) In an embodiment of the invention, the coding mode described by an embodiment for method 1 (coding of reference index, derivation of a motion vector or motion vector predictor) can be supported in addition to a coding mode described by an embodiment of method 3 (derivation of the blocks splitting as well as all motion parameters including the number of motion hypotheses, reference indices, and motion vectors or motion vector predictors). In addition, a coding mode according to any embodiment of method! may be supported.
(63) Coding of Motion and Disparity Data
(64) As already described above, the usage of coding modes representing embodiments of the invention, needs to be signaled to the decoder. This can be realized in different ways. In one version, a particular syntax element (which may be a flag) can be inserted into the syntax, which signals whether a conventionally derived motion vector predictor (or motion vector or motion parameter set) is used or whether a motion vector predictor (or motion vector or motion parameter set) that has been derived using a depth map estimate and motion parameters of an already coded view is used. In another version, the motion vector predictor (or motion vector or motion parameter set) that has been derived using a depth map estimate and motion parameters of an already coded view can be inserted into a candidate list of conventionally derived motion vector predictors (or motion vectors or motion parameter sets) and an index is transmitted which signals which motion vector predictor (or motion vector or motion parameter set) is used. The particular syntax element or the index into a candidate list can be transmitted using fixed-length coding, variable-length coding, arithmetic coding (including context-adaptive binary arithmetic coding), or PIPE coding. If context-adaptive coding is used, the context can be derived based on the parameters (for example, the particular syntax element or the index into a candidate list) of neighboring blocks.
(65) In an advantageous embodiment of the invention, the multiview video coding scheme includes a coding mode for which one or more motion hypotheses are signaled by transmitting a reference picture index, a motion vector predictor index, and a motion vector difference for each motion hypothesis. For this coding mode, a list of candidate motion vector predictors is derived based on the transmitted reference picture index and the transmitted index signals which one of the motion vector candidates is used. By using the embodiment, one of the motion vector candidates (for at least one block) is derived based on a depth map estimate and motion parameters of an already coded view (see method 1 above). In a slightly modified version, a motion vector difference is not transmitted but inferred to be equal to 0 (either for all motion vector candidates or only for the motion vector candidate that has been derived based on a depth map estimate and motion parameters of an already coded view.
(66) In another advantageous embodiment of the invention, the multiview video coding scheme includes a coding mode for which one or more motion hypotheses are signaled by transmitting motion parameter index (or merge index). For this coding mode, a list of candidate sets of motion parameters (including the number of motion hypotheses, the reference indices, and motion vectors) is derived. By using the embodiment, one of the candidate sets of motion parameters (for at least one block) is derived based on a depth map estimate and motion parameters of an already coded view (see methods 2 and 3 above). In a particular version of this embodiment, the candidate set of motion parameters (for at least one block) that is derived based on a depth map estimate and motion parameters of an already coded view includes partitioning information for the current block (see method 3 above). In a slightly modified version of this embodiment, motion vector differences can additionally be transmitted (potentially depending on the selected set of motion parameters).
(67) In another embodiment of the invention, the multiview video coding scheme includes a coding mode corresponding to method 2 or 3 and the syntax includes a flag which specified whether this coding mode is used.
(68) Derivation of Depth Map Estimates for the Current Picture
(69) The derivation of motion parameters for a block of the current picture 50c based on the motion parameters of already coded views such as 20, as described so far, involves that an estimate 64 of the depth map for the current picture is available. As mentioned above, this depth map estimate 64 can specify a sample-wise depth map (a depth value is specified for each sample of the current picture) or a block-wise depth map (a depth value is specified for blocks of samples). The depth map estimate 64 may be derived based on already coded parameters, such as depth maps or disparity vectors and motion parameters. In principle, the depth map estimate may be derived based on actually coded depth maps. This was the case discussed above with respect to
(70) Derivation Based on Coded Depth Maps
(71) If the depth map that is associated with the current picture 32t2(T) would be coded before the current picture, the reconstructed depth map could directly be used as an estimate of the real depth map for the current picture. It is also possible to pre-process the coded depth map (e.g., by applying a filtering it) and use the result of the pre-filtering as the estimate of the depth map that is used for deriving motion parameters.
(72) In most configurations, the depth map 34d.sub.2(T) that is associated with a particular picture is coded after the picture 32t.sub.2(T) (often directly after the associated picture). Such a configuration allows that coding parameters (such as motion parameters) that are transmitted for coding the conventional video pictures can be used for predicting the coding parameters that are used for coding the depth maps, which improves the overall coding efficiency. But in such a configuration, the depth map that is associated with a picture cannot be used as an estimate for the depth map in deriving the motion parameters 54. However, the depth map 34d1(T) for an already coded view (of the same access unit) such as 20 is usually available and can be used for deriving an estimate of the depth map 34d.sub.2(T) of the current picture. At least, the depth map 34d.sub.1(T) of the base view (independent view) 20 is available before coding any dependent view 22. Since the depth map of any view represents the geometry of the projected video scene to some extent (in combination with camera parameters such as focal length and the distance between cameras) it can be mapped to another view. Consequently, if the depth map for the current picture 32t.sub.2(T) is not available, the coded depth map 34d.sub.1(T) for an already coded view of the same access unit 20 is mapped to the current view and the result of this mapping is used as depth map estimate.
(73) In the following we describe a particular algorithm for realizing this mapping 66. As described above, each depth value d corresponds to a displacement vector A between two given views. Given transmitted camera or conversion parameters, a depth value d can be converted to a displacement vector my the mapping v=f.sub.vd.sup.(d). Hence, given a depth value d at a particular sample location x.sub.R in the reference depth map 34d.sub.1(T) (already coded), the sample location X.sub.c of the same depth value in the current depth map 34d.sub.2(T) is obtained by adding the disparity vector to x.sub.R=x.sub.c=x.sub.s+v. Hence, each depth value of the reference depth map can be mapped to a sample location of the current depth map 34d.sub.2(T) in order to obtain a depth map estimate 64 for the current picture 34t.sub.2(T). However, since parts of objects that are visible in one view are not visible in another view, there are sample location in the depth map 34d.sub.2(T) for the current view 22 to which more than one depth values is assigned and there are sample location in the depth map for the current view to which no depth values is assigned. These sampled location may be processed as follows: If more than one depth value is assigned to a particular sample location, it means that a foreground object is displaced in front of a background object. Consequently, the depth value d (of the potential depth values) that represents the smallest distance to the camera is assigned to such a sample location. If more no depth value is assigned to a particular sample location, it means that a foreground object has moved and the previously covered background is visible. The best that can be done for such regions is to assume that the disoccluded background has the same depth than the neighboring background samples. Hence, regions to which no depth value has been assigned are filled with the depth value of the surrounding samples that represents the largest distance to the camera.
(74) This algorithm is specified in more detail in the following. For simplifying the following description, we assumed that larger depth values represent smaller distances to the camera than smaller depth values (but the algorithm can easily be modified for the opposite assumption): 1. All samples of the depth map (estimate) for the current picture are set to an undefined depth value (e.g., −1). 2. For each sample location x.sub.R of the reference depth map, the following applies: a. The depth value d at the sample location x.sub.R is converted to a disparity vector v using the given camera or conversion parameters, the disparity vector v is rounded to sample accuracy (if applicable), and the sample location inside the current picture is derived by x.sub.c=x.sub.r+v=x.sub.r+[round{f−.sup.(d)}. b. If the depth value at sample location in the current picture has an undefined value, the depth value at sample location is set equal to the depth value d. c. Otherwise, if the depth value at sample location *£ in the current picture has a defined value d.sub.x with d.sub.x<d, the depth value at sample location is modified and set equal to the depth value d. 3. The regions in the current depth map that have undefined depth values are filled by a particular hole filling algorithm. For such a hole filling algorithm, the depth value of the background that is uncovered in the current view is derived based on the samples of the surrounding depth values. As an example, the smallest depth map value of the surrounding samples can be assigned. But more sophisticated hole filling algorithms are possible.
(75) The algorithm for mapping a depth map of a given view to a different view is further illustrated in
(76) In a particular embodiment of the invention, the hole filling can realized by a particularly simple algorithm which processes the lines of the converted depth map separately. For each line segment that consists of successive undefined depth values, the two surrounding values are considered, and all depth samples of the line segment are replaced with the smaller of these two depth values (background depth). If the line segment has only one surrounding depth value (because it is located at the image border), the depth samples of the line segment are replaced with this value. If complete lines have undefined values after this process, the same process is applied for the columns of the depth map.
(77) Although the algorithm above has been described for sample-wise depth maps, it can also be applied to block-wise depth maps (resulting in a lower complexity) or the given sample-wise depth map for the reference view can first be converted into a block-wise depth maps (by downsampling) and then the algorithm can be applied for the block-wise depth map.
(78) Regarding the afore-outlined description of methods 1-3, it should be noted that these different alternatives of polishing up the motion or motion/disparity vector/parameter candidate list by adding respective information gained from a block, such as block 40.sub.R in the reference view, would also be advantageous if used with other types of determining the disparity vector used to identify the respective block 40.sub.R of the reference view. In accordance with this embodiment, the depth estimator 28 in the decoder of
(79) In particular, in accordance with the latter aspect, the above description of methods 1-3 also revealed an apparatus for reconstructing a multi-view signal into a multi-view data stream, the apparatus comprising a dependent-view reconstructor 26, which is configured to do the following in order to reconstruct the dependent-view 22. Reference is made to the schematic illustrations of the multi-view signal of
(80) Then, the dependent-view reconstructor 26 determines block 40R within the current picture of the reference view using the determined disparity vector 102, and adds a motion vector to the list of motion vector predictor candidates, which depends on the motion vector associated with the determined block 40R, i.e. motion vector 42.sub.R.
(81) As described above, in deriving the list of motion vector predictor candidates, the dependent-view reconstructor could also be configured to spatially and/or temporally predict one or more further motion vectors from spatially and/or temporally neighboring blocks of the dependent view 22, i.e. blocks spatially and/or temporally neighboring current blocks 50c. The one or more further motion vectors or a version derived therefrom would then be added to the list of motion vector predictor candidates by the dependent-view reconstructor 26.
(82) The dependent-view reconstructor extracts, for block 50c, index information specifying one of the list of motion vector predictor candidates from the multi-view data stream and, in order to be more specific, from the dependent-view portion 22 thereof. As it is assumed that the current block 50c is subject to motion-compensated prediction, i.e. is associated with a temporal prediction mode, the dependent-view reconstructor 26 reconstructs block 50c by performing a motion-compensated prediction of block 50c using a motion vector which is equal to, or at least depends on, the specified motion vector candidate, i.e. the one indexed or specified by the index information. The overhead associated with the enlarged list of motion predictor candidates is comparatively low compared to the gain in motion vector prediction quality resulting from the adding of the motion vector candidate 42R determined from the reference view.
(83) As has also been described above, the motion information extracted by the dependent-view reconstructor 26 for the current block 50c need not be restricted to the index information. Rather, the dependent-view reconstructor 26 could further be configured to extract, for block 50c, a motion vector difference in relation to the specified motion vector candidate and to perform the reconstruction of block 50c such that the used motion vector further depends on a sum of the motion vector difference and the specified motion vector candidate, i.e. the one specified by the index information out of the list of motion vector predictor candidates.
(84) In the above, motion- and disparity-compensated prediction have been strictly distinguished. However, the difference between both may vanish if, for example, the same mode is used to signal both, with the difference between both merely being derivable from an index indexing the picture relative to which the motion/compensated prediction is to be performed. Then, the just-described functionality of the decoder dependent-view reconstructor could be rewritten by replacing “motion” with “motion/disparity” as there would be no difference. Naturally, the measures should be taken so that the vector candidate actually specified refers to the same type of previously coded picture, i.e. temporally preceding or in view direction preceding, or that the even the adding to the list is restricted conditionally performed accordingly.
(85) According to the above-described method 1, the dependent-view reconstructor 26 is configured to extract for block 50c, further a reference picture index specifying a reference picture of a list of reference pictures, comprising the current picture 32t.sub.1(T) of the reference view 20 and the already decoded pictures 32t.sub.2(t<T) of the dependent view 22, and the dependent-view reconstructor 26 may be configured to, with the reference pictures as one of the already decoded pictures of the dependent view 22, perform the motion-compensated prediction using the one already decoded picture of the dependent view as specified by the reference picture index as a reference, and if the reference picture is the current picture 32t.sub.1(T) of the reference view, add the determined disparity vector 102 or a modified disparity vector derived from the determined disparity vector 102 to a list of disparity vector prediction candidates, extract index information specifying one of the list of disparity vector predictor candidates from the multi-view data stream and reconstruct block 50c by performing a disparity-compensated prediction of block 50c using a disparity vector which depends on the specified disparity vector candidate using the current picture 32t.sub.1(T) of the reference view 20 as a reference. Again, the difference between motion-compensated and disparity-compensated prediction could be dissolved. The same prediction mode could be signaled for block 50c. As to whether motion-compensated or disparity-compensated prediction is actually performed by the dependent-view reconstructor 26, would be defined by the reference picture index which indexes into a buffer or list of reference pictures containing both, temporal predecessors, i.e. previously decoded pictures of the dependent view, as well as view predecessors, i.e. previously decoded pictures of other views.
(86) As became clear from method 2, the dependent-view reconstructor 26 could also be configured to perform the derivation of the list of motion vector predictor candidates via a list of motion/disparity vector predictor candidates being a list of motion/disparity parameter candidates each including a number of hypotheses, and, per hypothesis, a motion/disparity motion vector and a reference index specifying a reference picture out of such a common list of reference pictures just-outlined. The dependent-view reconstructor may then be configured to add motion/disparity parameters to the list of motion/disparity parameter candidates which depend on motion/disparity parameters associated with a determined block 40.sub.R, and to reconstruct block 50c by performing motion/disparity-compensated prediction on block 50C using motion/disparity parameters which depend on a motion/disparity parameter candidates specified by the index information. The motion parameters could, as described above, concurrently determine the number of hypotheses, and a reference index, and a motion/disparity vector difference per hypothesis. As has also been described above, the number of hypotheses could be determined beforehand such as by way of the type of the picture.
(87) And as described in method 3, the dependent-view reconstructor may additionally be configured to additionally adopt the partitioning for block 50C from block 50R as far as the motion/disparity prediction is concerned.
(88) The encoder of
(89) Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps may be executed by (or using) a hardware apparatus, like for example, a microprocessor, a programmable computer or an electronic circuit. In some embodiments, some one or more of the most important method steps may be executed by such an apparatus.
(90) Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, for example a floppy disk, a DVD, a Blu-Ray, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. Therefore, the digital storage medium may be computer readable.
(91) Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.
(92) Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer. The program code may for example be stored on a machine readable carrier.
(93) Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
(94) In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
(95) A further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein. The data carrier, the digital storage medium or the recorded medium are typically tangible and/or non-transitionary.
(96) A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may for example be configured to be transferred via a data communication connection, for example via the Internet.
(97) A further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.
(98) A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
(99) A further embodiment according to the invention comprises an apparatus or a system configured to transfer (for example, electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may, for example, be a computer, a mobile device, a memory device or the like. The apparatus or system may, for example, comprise a file server for transferring the computer program to the receiver.
(100) In some embodiments, a programmable logic device (for example a field programmable gate array) may be used to perform some or all of the functionalities of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods are advantageously performed by any hardware apparatus.
(101) While this invention has been described in terms of several embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing the methods and compositions of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations and equivalents as fall within the true spirit and scope of the present invention.
REFERENCES
(102) [1] ITU-T and ISO/IEC JTC 1, “Advanced video coding for generic audiovisual services,” ITU-T Recommendation H.264 and ISO/IEC 14496-10 (MPEG-4 AVC), 2010. [2] A. Vetro, T. Wiegand, G. J. Sullivan, “Overview of the Stereo and Multiview Video Coding Extension of the H.264/MPEG-4 AVC Standard”, Proceedings of IEEE, vol. 99, no. 4, pp. 626-642, April 2011. [3] H. Schwarz, D. Marpe, T. Wiegand, “Overview of the Scalable Video Coding Extension of the H.264/AVC Standard”, IEEE Transactions on Circuits and Systems for Video Technology, vol. 17, no. 9, pp. 1103-1120, September 2007.