Method, medium, and apparatus predicting direct mode motion of a multi-angle moving picture

A method, medium, and apparatus predicting direct mode motion of a multi-angle moving picture on a temporal and spatial basis. The method may include locating a block to which a co-located block of a block for which coding is sought makes reference with a motion vector, calculating a forward motion vector and a backward motion vector by making reference to pictures of an adjacent camera that exists in a direction parallel to a direction corresponding to the motion vector when a reference picture is not taken by the same camera as the picture to which the block for which coding is sought belongs, and calculating forward and backward reference blocks of the block for which coding is sought by applying weights to the calculated motion vectors. Therefore, the moving picture can be coded/decoded by locating motion vectors of previous and subsequent pictures without predicting motion, reducing calculation and performance time.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of Korean Patent Application No. 10-2004-0061132, filed on Aug. 3, 2004, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

Embodiments of the present invention relate to moving picture coding and/or decoding, and more particularly, to a method, medium, and apparatus predicting direct mode motion of a multi-angle moving picture on a temporal and spatial basis.

2. Description of the Related Art

MPEG-4 and H.264 moving picture coding has been used to code a moving picture taken by a single camera, with such standards focusing in large part on improvements in coding efficiency. However, in real communications or virtual reality, a single scene may be taken using a plurality of cameras, in order to form a moving picture from a plurality of angles, and thus a method, medium, and apparatus coding and decoding such a moving picture has become necessary.

MPEG (Moving picture Experts Group), which is a group of standards used for moving picture coding and decoding, has attempted to establish a standard for 3-dimensional audio/video coding by conducting a search for a standardization by organizing 3-D AV coding AHG (Ad-hoc Group) relating to 3-dimensional video coding and transmission. Thus, presently, a multi-angle 3-dimensional moving picture coding has not yet been standardized.

SUMMARY OF THE INVENTION

Embodiments of the present invention set forth a method, medium, and apparatus calculating a motion vector and a reference block for each block of a B picture included in a multi-angle moving picture.

To achieve the above and/or other aspects and advantages, embodiments of the present invention may include a method of predicting direct mode motion of a block in a multi-angle moving picture, including locating a block to which a co-located block, of the block for which coding is sought, makes reference with a motion vector, calculating a forward motion vector and/or a backward motion vector for the block for which coding is sought by making reference to a picture of an adjacent camera that exists in a direction parallel to a direction corresponding to the motion vector, when the reference picture is not taken by a same camera as a picture of the block for which coding is sought, and calculating forward and backward reference blocks of the block for which coding is sought by applying weighting to the calculated motion vectors.

The block to which the co-located block makes reference with the motion vector may be temporally previous to the co-located block and the block for which coding is sought. In addition, the co-located block may be temporally subsequent to the block for which coding is sought.

The calculating of the forward motion vector and/or the backward motion vector may be performed, when the reference picture is taken by the same camera as the picture for the block for which coding is sought, by predicting direct mode motion according to:

wherein MVCdenotes the motion vector, TDBdenotes a distance from a B picture, of the block for which coding is sought, to a P picture of the co-located block, and TDDdenotes a distance from a P picture of the block to which the co-located block makes reference with the motion vector to the P picture of the co-located block.

Further, weighting may be based on how far the reference picture is away from the camera that took the picture of the block for which coding is sought.

When a P picture (f(j,t)) taken by a jthcamera at a time t makes reference to a picture (f(j−1,t−3)) taken by a (j−1)thcamera at a time t−3, and a picture to which a B picture taken immediately before the P picture makes forward reference exists between the picture taken by the (j−1)thcamera at the time t−3 and a picture (f(j,t−3)) taken by the jthcamera at the time t−3, the forward motion vector may given by:

where TDBindicates a distance between the B picture and the picture taken by the jthcamera at the time t−3, TDDindicates a distance between the P picture and the picture taken by the jthcamera at the time t−3, MV|f(j−1, t−3)indicates a motion vector calculated by making reference to the picture taken by the j−1thcamera at the time t−3 and C is a weight value, with reference pictures of the forward motion vectors MVF1and MVF2being RF1and RF2, respectively, a forward reference picture is given by RF=(3RF1+RF2+2)/4.

When a P picture (f(j,t)) taken by a jthcamera at a time t makes reference to a picture (f(j−1,t−3)) taken by a (j−1)thcamera at a time t−3, and a picture to which a B picture taken immediately before the P picture makes forward reference exists between the picture taken by the (j−1)thcamera at the time t−3 and a picture (f(j,t−3)) taken by the jthcamera at the time t−3, the backward motion vector is given by:

where TDBindicates a distance between the B picture and the picture taken by the jthcamera at the time t−3, TDDindicates a distance between the P picture and the picture taken by the jthcamera at the time t−3, MV|f(j,t)indicates a motion vector calculated by making reference to the picture taken by the jthcamera at the time t, and C is a weight value, with reference pictures of the backward motion vectors MVB1and MVB2being RB1and RB2, respectively, a backward reference picture is given by RB=(3RB1+RB2+2)/4.

To achieve the above and/or other aspects and advantages, embodiments of the present invention may include an apparatus for predicting direct mode motion of a block a multi-angle moving picture, the apparatus may include a determiner locating a block to which a co-located block, of the block for which coding is sought, makes reference with a motion vector, a motion vector calculator calculating a forward motion vector and/or a backward motion vector for the block for which coding is sought by making reference to a picture of an adjacent camera that exists in a direction parallel to a direction corresponding to the motion vector, when a reference picture is not taken by a same camera as a picture of the block for which coding is sought, and a reference picture calculator calculating forward and backward reference blocks of the block for which coding is sought by applying weighting to the calculated motion vectors.

Here, the apparatus may be a coding and/or decoding apparatus coding and/or decoding the moving picture. In addition, the coding and/or decoding apparatus may correspond to 3-dimensional video coding/decoding.

To achieve the above and/or other aspects and advantages, embodiments of the present invention may include at least one medium including computer readable code/instructions implementing embodiments of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1illustrates how a motion vector of a B picture110may be calculated. As illustrated, when a soccer ball moves from an upper left region to a lower right region of a screen in a soccer game. Each frame may be called a picture. A moving picture can include I pictures, B pictures, and P pictures, in an IBBPBBP configuration or an IBPBPBP configuration. Each of the B pictures can be used to predict motion for coding according to one of 5 modes, including a forward prediction mode, a backward prediction mode, a bidirectional prediction mode, a direct prediction mode, and an intra prediction mode. In the direct prediction mode, motion of a block of the B picture110, for which coding is presently sought, can be predicted based on a motion vector of a co-located block of a P picture120, which is a temporally subsequent picture, being used to obtain a forward motion vector MV0and a backward motion vector MV1.

FIG. 2illustrates a direct prediction mode of the B picture210. In order to calculate the forward motion vector MV0and the backward motion vector MV1of a direct mode block202, for which motion prediction is sought, in the B picture210, the forward motion vector MVcis located as to a reference list0(RL0) picture230, to which a co-located block204makes reference, by a motion vector located in the same location in a reference list1(RL1) picture220, which is a temporally subsequent picture, as the direct mode block202in the B picture210. The forward motion vector MV0and the backward motion vector MV1of the direct mode block202of the B picture210can be represented by Equation 1, as follows.

Here, MVCdenotes a motion vector of the co-located block204of the reference list1(RL1) picture220, TDBdenotes the distance from the B picture210to the reference list0(RL0) picture230, and TDDdenotes the distance from the reference list0(RL0) picture230to the reference list1(RL1) picture220.

FIG. 3Aillustrates locations of cameras that may be used to obtain a multi-angle moving picture. Referring toFIG. 3A, in this embodiment, the plurality of cameras are arranged along a j-axis. Such an arrangement of the cameras can be used to obtain a moving picture when a single scene is taken from several angles.

FIG. 3Billustrates pictures taken by cameras for obtaining a multi-angle moving picture, with respect to time. If a picture taken by a camera at location j and time t is f(j,t), then, for example, f(0,0) can correspond to a picture taken by a camera at a center location at a beginning of a recording. Pictures taken by each of the cameras have been arranged along the time axis, with an angle θ between a line extending from a current frame in a camera to a subsequent frame in an adjacent camera and the j-axis. As illustrated, the units of the j-axis may correspond to a separation between cameras, the time axis may correspond to units of time intervals between subsequent pictures, and the angle θ may be 45°, noting that embodiments of the present invention are not limited thereto.

FIG. 4is a graph illustrating a direct prediction mode of a multi-angle moving picture, according to an embodiment of the present invention. The aforementioned method of predicting direct mode motion, as described with reference toFIG. 2, may be used only when a reference picture indicated by the motion vector f(5,6), taken subsequently by the same camera that had taken f(5,5), is a picture that exists on the same j axis as the f(5,5) picture when predicting motion of the f(5,5). However, in the case of a multi-angle moving picture, a reference picture indicated by the motion vector of f(5,6), is not necessarily a picture taken by the same camera as f(5,5), and may be f(3,3), for example. In this case, the reference picture of f(5,5) should be predicted toward f(3,3), and toward f(6,6). Likewise, when a reference picture of f(−4,9) taken by a different camera is f(−1,6), the direct prediction mode described with reference toFIG. 2may not be used, and a motion vector calculated by the direct prediction mode should be predicted toward f(−1,6), which is a reference picture indicated by f(−4,9).

According to an embodiment of the present invention, a method of applying a direct mode in a multi-angle moving picture will now be described in greater detail. A change in camera distance to change in time Δj/Δt can be calculated based on the picture to which a co-located block of a subsequent picture of the B picture, for which the motion prediction is sought, makes reference. Calculation of the motion vector will now be described for four cases below according to the calculated Δj/Δt values.

First, in the case where ΔjΔt=0, since f(j,t) would have been taken by the same camera as a reference picture, the forward motion vector MV0and the backward motion vector MV1can be calculated using Equation 1 above.

As only an example,FIG. 5Aillustrates direct prediction when (Δj/Δt is ⅓, according to an embodiment of the present invention. Referring toFIG. 5A, f(j,t)505, which is a P picture, makes reference to f(j−1,t−3)510taken by a (j−1)thcamera. It can be thus seen that a picture to which a B picture515makes forward reference exists between f(j−1,t−3)510and f(j,t−3)520, and is spatially much closer to and more similar to f(j−1,t−3)510. That is, since a picture does not exist between f(j−1,t−3)510and f(j,t−3)520, the respective motion vectors of f(j−1,t−3)510and f(j,t−3)520may be predicted.

Here, forward motion vectors MVF1and MVF2make reference to f(j−1,t−3)510and f(j,t−3)520, respectively, and can be predicted by Equation 2, below.

Here, TDBindicates the distance between the B picture515and f(j,t−3)520, and TDDindicates the distance between the f(j,t)505and f(j,t−3)520. If reference pictures of MVF1and MVF2are considered RF1and RF2, respectively, a forward reference picture RFis given by (3RF1+RF2+2)/4. The weight of 3 may be given to RF1since it is spatially closer to the reference picture of MVF1. Cƒ(j−1,t−3), for example, is a weighting designated for f(j−1,t−3).

Likewise, it can be seen that a picture to which the B picture515makes backward reference exists between f(j,t)505and f(j+1,t)525, and may be spatially much closer to and more similar to f(j,t)505.

Backward motion vectors MVB1and MVB2make reference to f(j,t)505and f(j+1, t)525, respectively, and can be predicted by Equation 3, below.

If reference pictures of MVB1and MVB2are considered RB1and RB2, respectively, a backward reference picture RBmay be given by (3RB1+RB2+2)/4, for example.

According to another embodiment of the present invention,FIG. 5Billustrates direct prediction when Δj/Δt is ⅔. Referring toFIG. 5B, f(j,t)505makes reference to f(j−2,t−3)530, taken by a (j−2)thcamera. It can be thus seen that a picture to which the B picture515makes forward reference exists between f(j−2,t−3)530and f(j−1,t−3)510, and may be spatially much closer to and more similar to f(j−2,t−3)530, for example.

Forward motion vectors MVF1and MVF2make reference to f(j−2,t−3)530and f(j−1,t−3)510, respectively, and can be predicted by Equation 4, for example.

If reference pictures of MVF1and MVF2are considered RF1and RF2, respectively, a forward reference picture RFmay be given by (RF1+3RF2+2)/4. The weight of 3 can be given to RF2since it is spatially closer to the reference picture of MVF2, for example

Likewise, a picture to which the B picture515makes backward reference exists between f(j,t)505and f(j+1,t)525, and may be spatially much closer to and more similar to f(j+1,t)525.

Accordingly, backward motion vectors MVB1and MVB2make reference to f(j,t)505and f(j+1,t)525, respectively, and can be predicted by Equation 5, below.

If reference pictures of MVB1and MVB2are considered RB1and RB2, respectively, a backward reference picture RBmay be given by (RB1+3RB2+2)/4, for example.

According to still another embodiment of the present invention,FIG. 5Cillustrates direct prediction when Δj/Δt is 1. Referring toFIG. 5C, f(j,t)505makes reference to picture f(j−3,t−3)540, taken by a (j−3)thcamera. As illustrated can be thus seen that a picture to which the B picture515makes forward reference is f(j−2,t−3)530.

Here, a forward motion vector MVFmaking reference to f(j−2,t−3)530may be given by Equation 6, below.

Likewise, since the B picture515makes backward reference to f(j+1,t)525, a backward motion vector MVBmaking reference to f(j+1,t)525may be given by Equation 7, below.

In Equations 2 through 7, MV|x, e.g., MV|f(j−1, t−3), references a motion vector that makes reference to f(j−1,t−3), again for example. In the foregoing examples, the weight can be varied case by case. For example, the weighting may be (0,1), (1, 0) instead of (3, 1), (1, 3). For example, the weight can be further defined by Equation 8, below.

Here, Cpcan be the prediction block of a previous reference picture, and Cscan be the prediction block of a subsequent reference picture. In the H.264 standard, each picture can have a plurality of reference frames. When each picture has five reference frames, the reference frames for f(j,t) may be f(j−1,t−3), f(j,t−3), f(j+1,t−3), f(j,t−6), and f(j,t−9), for example. Here, the method of predicting two-dimensional direct mode motion, according to an embodiment of the present invention, may be used only when Δj/Δt is ⅓. When each picture has seven reference frames, the reference frames for f(j,t) may be f(j−2,t−3), f(j−1,t−3), f(j,t−3), f(j+1,t−3), f(j+2,t−3), f(j,t−6), and f(j,t−9), for example. Here, the method of predicting direct mode motion in a multi-angle moving picture, according to an embodiment of the present invention, may be used only when Δj/Δt is ⅓, for example.

FIG. 6is a flowchart illustrating a method of predicting direct mode motion of a multi-angle moving picture, according to an embodiment of the present invention.

A block to which the co-located block of a block, for which coding is sought, makes reference with a motion vector can be located (operation610). Where a reference picture to which the located block belongs is not taken by the same camera at the same location as the picture to which the block for which coding is sought belongs, a forward motion vector and a backward motion vector can be calculated by making reference to pictures of an adjacent camera that exists in the direction parallel to the direction corresponding to the motion vector (operation620). Calculation of the forward motion vector and the backward motion vector varies depending on how far away the camera is from the camera that took the picture to which the block for which coding is sought belongs, which has been described with reference toFIGS. 5A through 5C, for example. When a reference picture is taken by a camera at the same location as the camera that took the picture to which the block for which coding is sought belongs, forward and backward motion vectors can also be calculated according to a conventional method of predicting direct mode motion, as described with reference to Equation 1, for example.

Forward and backward reference blocks of the block for which coding is sought are calculated by applying weights to the calculated motion vectors (operation630).

FIG. 7is a block diagram of an apparatus for predicting a direct mode motion of a multi-angle moving picture, according to an embodiment of the present invention.

Referring toFIG. 7, a determiner710can locate a block to which the co-located block of a block for which coding is sought makes reference with a motion vector. A motion vector calculator720can calculate forward and backward motion vectors. When a reference picture to which the located block belongs is not taken by the same camera as the picture to which the block for which coding is sought belongs, a forward motion vector and a backward motion vector can be calculated by making reference to pictures of an adjacent camera that exists in the direction parallel to the direction corresponding to the motion vector. Calculation of the forward motion vector and the backward motion vector depends on how far away the camera is from the camera that took the picture to which the block for which coding is sought belongs, which has been described with reference toFIGS. 5A through 5C, for example. When a reference picture is taken by a camera at the same location as the camera that took the picture to which the block for which coding is sought belongs, forward and backward motion vectors may be calculated according to a conventional method of predicting direct mode motion, as described with reference to Equation 1, for example.

A reference picture calculator730can calculate forward and backward reference blocks of the block for which coding is sought by applying weighting to the calculated motion vectors.

Embodiments of the present invention may also be embodied as computer readable code/instructions on a medium, e.g., computer readable recording medium. The medium may be any data storage device that can store/transfer data which can be thereafter read by a computer system. Examples of the medium/media can include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, optical data storage devices, and carrier waves, noting these are only examples. The medium can also be distributed network coupled computer systems so that the computer readable code is stored/transferred and executed in a distributed fashion. Also, functional programs, codes and code segments for implementing embodiments of the present invention can be easily construed by programmer skilled in the art to which the present invention pertains.

As described above, embodiments of the present invention can perform coding and decoding by locating motion vectors of previous and subsequent pictures without predicting motion, for example, thereby reducing the amount of calculation and performance time.