# Patent

## Title
Apparatus for determining motion vectors and a reference picture index for a current block in a picture to be decoded

## Abstract

In one embodiment, the apparatus includes a decoder. The decoder is configured to obtain first and second motion vectors of a block other than the current block. The other block neighbors the current block at one of a left, top and top right position. The decoder is configured to determine first and second motion vectors of the current block using the first and second motion vectors of the other block such that the first motion vector of the current block has a same direction as the first motion vector of the other block and the second motion vector of the current block has a same direction as the second motion vector of the other block.

## Background
PRIORITY INFORMATION
This application is a continuation application of and claims priority under 35 U.S.C.§120/121 to U.S. application Ser. No. 11/907,465 filed Oct. 12, 2007, which is a divisional of U.S. application Ser. No. 10/337,808 filed Jan. 6, 2003, which claims priority under 35 U.S.C.§119 to Korean Patent Application Nos. 2002-42204 and 2002-44162 which were filed on Jul. 18, 2002 and Jul. 26, 2002, respectively; in the Korean Intellectual Property Office, the contents of each of which are hereby incorporated herein by reference in their entirety and for all purposes.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a moving picture coding system, and more particularly to a prediction motion vector calculation method by defining a motion vector to be used in a median operation when a neighboring block around a block to be coded has a plurality of motion vectors, so as to obtain a prediction motion vector (PMV) of the block to be coded; using motion vector information of neighboring blocks, and improve a coding efficiency.
2. Description of the Related Art
Generally, in order to reduce the amount of bits to be used for the transfer of motion information, an encoder, instead of sending a motion vector MV directly to a decoder, selects a median value of motion vectors of three neighboring blocks through a median operation, determines the selected median value as a prediction motion vector PMV, obtains a difference MVD between the MV and the PMV (i.e., MVD=MV−PMV), and sends the obtained difference MVD to the decoder.
Then, the decoder obtains the motion vector MV by obtaining the prediction motion vector PMV in the same manner as the encoder and adding the sent MVD to the obtained PMV. In FIG. 1, a block E is a block to be coded (or decoded), and blocks A, B and C are neighboring blocks of the block E. Defining motion vectors of the neighboring blocks A, B and C, respectively, as MVA, MVB and MVC, a prediction motion vector PMV of the block E can be obtained through a median operation as follows:

PMV=median{MVA,MVB,MVC}

A block D in FIG. 1 is a block which is used instead of the block C when the block C exists outside of a picture. Provided that only one of the three blocks A, B and C, or A, B and D refers to the same reference picture as that referred to by the block E, a motion vector MV of that block will be used as the prediction motion vector PMV. This motion information sending method is, applied to all pictures irrespective of their types.
On the other hand, a B picture has five types of predictive modes such as forward mode, backward mode, bi-predictive mode, direct mode and intra mode. Generally, a neighboring block in the forward mode has one motion vector MVFW obtained from a forward reference picture with an index ref_idx_fwd, and a neighboring block in the backward mode has one motion vector MVBW obtained from a backward reference picture with an index ref_idx_bwd.
In the bi-predictive mode of the B picture, the prediction is allowed from different directions and the same directions, such as forward/forward, backward/backward, and forward/backward. Each reference picture uses the index ref_idx_fwd or ref_idx_bwd regardless of its direction (forward or backward), and each motion vector is also represented as MVFW or MVBW regardless of its direction (The reason is that the predefined ‘syntaxes’ are used as they are. For expression of the syntaxes, ‘ref_idx—10’ or ‘ref_idx—11’ may be used for each index and ‘mv_list0’ or ‘mv_list1’ may be used for each motion vector.). The direct mode of the B picture is a predictive mode where motion information is not sent to the decoder and motion vectors MVf and MVb and reference pictures are derived from the inside of the decoder. The fact that the derived motion vectors are represented as MVf and MVb irrespective of their directions is the same as that in the bi-predictive mode.
In a conventional method for calculating a prediction motion vector PMV of the B picture, a forward prediction motion vector of the block E is obtained by extracting only forward motion vectors of the neighboring blocks and performing a median operation with respect to the extracted forward motion vectors. If one of the neighboring blocks has no forward motion vector, its motion vector is set to 0 and the median operation is performed under such a condition. This method is similarly applied to a backward prediction motion vector of the block E, so as to use only backward motion vectors of the neighboring blocks. If one of the neighboring blocks is in the intra mode, its motion vector is set to 0, the neighboring block is considered to refer to a reference picture different from that referred to by the block E, and the prediction motion vector PMV is obtained under such a condition.
However, as stated above, in the bi-predictive mode of the B picture, the prediction is allowed from different directions and the same directions, such as forward/forward, backward/backward, and forward/backward, each reference picture uses the index ref_idx_fwd or ref_idx_bwd regardless of its direction (forward or backward), and each motion vector is also represented as MVFW or MVBW regardless of its direction. As a result, there is a need to define a method for calculating a prediction motion vector PMV when a neighboring block having two motion vectors exists.
Provided that a neighboring block is in the bi-predictive mode (or the direct mode), motion vectors MVFW and MVBW (or MVf and MVb) thereof may have the same directions such as forward/forward or backward/backward, or different directions such as forward/backward. This direction information of the motion vectors cannot be determined from only the motion vector syntaxes ‘MVFW’ and ‘MVBW’ or the reference picture indexes ‘ref_idx_fwd’ and ‘ref_idx_bwd’. The conventional method for calculating the PMV of the B picture gives no accurate description of such a problem, resulting in great confusion.
For example, in the case where a neighboring block is in the bi-predictive mode having two motion vectors in the forward/forward directions, the conventional PMV calculation method gives no clearly defined determination as to whether both or any one of the two motion vectors must be used for the calculation of the forward prediction motion vector PMV of the block E.
SUMMARY OF THE INVENTION
The present invention relates to a method for assigning direction information to reference pictures and a method for determining the directions of the reference pictures, wherein unique information enabling the acquisition of direction information of motion vectors is assigned to each reference picture, so that information regarding a direction from each neighboring block to each reference picture can be acquired.
The present invention relates to providing a prediction motion vector calculation method by defining a motion vector to be used in a median operation when a neighboring block of a block to be coded has a plurality of motion vectors, so as to obtain a prediction motion vector (PMV) of the block to be coded, using motion vector information of neighboring blocks, and improve a coding efficiency.
In one embodiment, direction information is assigned to a reference picture as a feature of the reference picture, so as to give the direction information of the reference picture pointed by reference picture index.
The direction information may be indicative of the display order of each reference picture may be represented by a picture order count (POC) value.
In accordance with another aspect of the present invention, there is provided a method for determining directions of reference pictures pointed to, respectively, by reference picture indexes, comprising the step of acquiring display order information of each reference picture, comparing display order information with display order information of a block to be currently coded, and determining a direction (forward or backward) of each reference picture against the block to be currently coded.
The display order information of each reference picture may be acquired from a POC value.
In accordance with yet another aspect of the present invention, there is provided a method for calculating a prediction motion vector (PMV) of a block to be coded, by performing a median operation using motion vectors of neighboring blocks, comprising the steps of a), if the neighboring blocks have the motion vectors, acquiring direction information of reference pictures pointed by the motion vectors of the neighboring blocks; and b) selecting ones of the motion vectors of the neighboring blocks with reference to the acquired direction information and performing the median operation including the selected motion vectors to obtain the prediction motion vector of the block to be coded.
The step a) may include the step of determining the direction information of the motion vectors by comparing display order information of the reference pictures pointed by the motion vectors of the neighboring blocks with display order information of the block to be coded.
The step b) may include the step of, if one of the neighboring blocks has two motion vectors with different directions, selecting one of the two motion vectors having the same direction as that of the prediction motion vector and performing the median operation including the selected motion vector to obtain the prediction motion vector.
Alternatively, the step b) may include the step of, if one of the neighboring blocks has two motion vectors with the same directions, which are different from that of the prediction motion vector, setting the two. motion vectors to 0, considering the neighboring block to refer to a reference picture different from that referred to by the block to be coded, and performing the median operation including the zero motion to obtain the prediction motion vector.
Alternatively, the step b) may include the step of b-1), if one of the neighboring blocks has two motion vectors MV1 and MV2 with the same directions, which are the same as that of the prediction motion vector, and both the two motion vectors MV1 and MV2 refer to the same reference picture, selecting one of the two motion vectors MV1 and MV2 and performing the median operation including the selected motion vector to obtain the prediction motion vector.
The step b-1) may include the step of b-2) selecting one of the two motion vectors MV1 and MV2 to be earlier decoded or having the same mode (MV1 mode or MV2 mode) as that of the prediction motion vector, and performing the median operation including the selected motion vector to obtain the prediction motion vector. Here, the motion vector having the same mode signifies a motion vector having the same transcription as that indicative of the prediction motion vector.
Alternatively, the step b) may include the step of, if one of the neighboring blocks has two motion vectors MV1 and MV2 with the same directions, which are the same as that of the prediction motion vector, and only one of the motion vectors MV1 and MV2 refers to a reference picture referred to by the block to be coded, selecting one of the motion vectors MV1 and MV2 referring to the reference picture referred to by the block to be coded, and performing the median operation including the selected motion vector to obtain the prediction motion vector.
Alternatively, the step b) may include the step of, if one of the neighboring blocks has two motion vectors MV1 and MV2 with the same directions, which are the same as that of the prediction motion vector, neither of the motion vectors MV1 and MV2 refers to a reference picture referred to by the block to be coded and they refer to different reference pictures, selecting one of the motion vectors MV1 and MV2 referring to a reference picture closest to the reference picture referred to by the block to be coded, or a reference picture closest to a picture to be currently coded, and performing the median operation including the selected motion vector to obtain the prediction motion vector.
Alternatively, the step b) may include the step of, if one of the neighboring blocks has one motion vector with a direction different from that of the prediction motion vector, setting the motion vector of the neighboring block to 0, considering the neighboring block to refer to a reference picture different from that referred to by the block to be coded, and performing the median operation including the zero motion of the neighboring block to obtain the prediction motion vector.
Alternatively, the step b) may include the step of, if one of the neighboring blocks has one motion vector with the same direction as that of the prediction motion vector, performing the median operation including the motion vector of the neighboring block to obtain the prediction motion vector.
The present invention still further relates to an apparatus for determining motion vectors of a current block in a picture to be decoded.
In one embodiment, the apparatus includes a decoder. The decoder is configured to obtain first and second motion vectors of a block other than the current block. The other block neighbors the current block at one of a left, top and top right position. The decoder is configured to obtain a direction of the first and second motion vectors of the neighboring block. The direction is obtained based on a comparison of a picture order count value of the picture to be decoded and the picture order count value of a reference picture referred by the neighboring block. The decoder is configured to determine first and second prediction motion vectors of the current block using the first and second motion vectors of the neighboring block such that the first prediction motion vector of the current block has the obtained direction of the first motion vector of the neighboring block and the second prediction motion vector of the current block has the obtained direction of the second motion vector of the neighboring block.



BRIEF DESCRIPTION OF THE DRAWINGS
The above and other features and advantages of the present invention will become more apparent to those of ordinary skill in the art by describing in detail example embodiments thereof with reference to the attached drawings in which:
FIG. 1 is a view illustrating the calculation of a prediction motion vector of a block E using motion vectors of neighboring blocks A, B and C.
FIG. 2 illustrates a process of determining a direction of a motion vector for a current block in a picture to be decoded according to an example embodiment of the present invention.
FIG. 3 is a flow chart illustrating a motion vector calculation for a case where two motion vectors of a neighboring block have different directions according to an example embodiment of the present invention.
FIG. 4 is a flow chart illustrating a motion vector calculation for a case where two motion vectors of a neighboring block have the same directions, which are the same as that of a prediction motion vector, according to another example embodiment of the present invention.
FIG. 5 is a flow chart illustrating a motion vector calculation for a case where two motion vectors of a neighboring block have the same directions, which are different from that of a prediction motion vector, according to another example embodiment of the present invention.



DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS
If a neighboring block of a block to be coded is in a bi-predictive mode (or a direct mode), motion vectors MVFW and MVBW (or MVf and MVb) thereof may have the same directions such as forward/forward and backward/backward, or different directions such as forward/backward. This direction information of the motion vectors cannot be determined from only motion vector syntaxes ‘MVFW’ and ‘MVBW’ or reference picture indexes ‘ref_idx_fwd’ and ‘ref_idx_bwd’. For this reason, there is a need to acquire the direction information by referring to different unique information held by reference pictures.
This invention proposes a method for acquiring direction information of motion vectors by comparing the display orders of reference pictures, and calculating a prediction motion vector PMV on the basis of the acquired direction information.
Now, example embodiments of the present invention will be described in detail with reference to the annexed drawing.
1. Recognition of Motion Vector Directions Through. Display Order Comparison
Direction information of motion vectors of neighboring blocks must be acquired before calculation of a prediction motion vector PMV of a block to be coded. Then, through the direction information of the motion vectors of the respective neighboring blocks, determinations are made as to whether the motion vectors of the neighboring blocks must be included in the median operation.
In general, if a neighboring block is in a forward mode or backward mode having one motion vector, the direction of that motion vector can be determined from a reference picture index. However, in the case where a neighboring block is in a bi-predictive mode or direct mode having two motion vectors, it is impossible to recognize actual directions of reference pictures pointed to by two reference picture indexes.
The reason is as follows. A decoder of a moving picture coding system which allows multiple reference pictures and a B picture to be used as references cannot estimate direction information only with reference picture indexes because it cannot accurately acquire the number of forward reference pictures and backward reference pictures of the B picture to be currently decoded, even though it can recognize the relation between a default forward/backward indexing order and a relative forward/backward indexing order from re-mapping information sent from an encoder.
In the present invention, it is proposed that a reference picture pointed to by a reference picture index will include unique information indicative of its display order for recognition of its direction. This display order is represented by a picture order count (POC) value. FIG. 2 illustrates a process of determining a direction of a motion vector for a current block in a picture to be decoded according to an example embodiment of the present invention. In the example embodiment of FIG. 2, the direction of each motion vector can be easily recognized (step S125) by comparing, in step S115, a display order of each reference picture pointed to by each reference picture index with a display order picture of the B picture to be currently coded, the display orders of which are obtained in step S100. As is well-known in the art, the comparison may be based on an inequality determination. Accordingly, the motion vector(s) for the current block are predicted based upon the operations described below with respect to scenarios 2.1, 2.2 or 2.3, based upon the determined direction for each motion vector.
2. Median Operation For Calculation Of Prediction Motion Vector PMV When Neighboring Block is in Bi-Predictive Mode or Direct Mode
If a neighboring block of a block to be coded is in the bi-predictive mode or direct mode, it has two motion vectors. Of these motion vectors, one having the same direction as that of a prediction motion vector PMV of the block to be coded will have to be used for the median operation. A detailed description will hereinafter be given of the efficient prediction motion vector PMV calculation method proposed by the present invention. For the convenience of description, assume that a block to be coded is E, neighboring blocks are A, B, C and D, and two motion vectors of each neighboring block are MV1 and MV2, as shown in FIG. 1.
2.1 Case Where Two Motion Vectors of Neighboring Block Have Different Directions
FIG. 3 is a flow chart illustrating a motion vector calculation for a case where two motion vectors of a neighboring block have different directions according to an example embodiment of the present invention.
A motion vector having the same direction as that of a prediction motion vector PMV of a block to be coded is selected and the prediction motion vector PMV is then calculated through the median operation.
In other words, referring to the example embodiment of FIG. 3, a forward motion vector is selected for calculation of the PMV with respect to a forward prediction motion vector of the block E in step S200, and a backward motion vector is selected for calculation of the PMV with respect to a backward prediction motion vector of the block E in step S205. Then, the prediction motion vector PMV of each direction is obtained through the median operation in step S210.
2.2 Case Where Two Motion Vectors of Neighboring Block Have the Same Directions, Which are the Same as That of Prediction Motion Vector PMV
FIG. 4 is a flow chart illustrating a motion vector calculation for a case where two motion vectors of a neighboring block have the same directions, which are the same as that of a prediction motion vector, according to another example embodiment of the present invention.
In the example embodiment of FIG. 4, in step S300, a determination is made as to whether two motion vectors MV1 and MV2 of a neighboring block refer to a reference picture referred to by the block E to be coded.
If both the motion vectors MV1 and MV2 refer to the same reference picture (as determined in step S305), one of them (for example, a motion vector to be earlier decoded, or a motion vector having the same mode (MV1 mode or MV2 mode) as that of a prediction motion vector) is selected in step S315 and included in the median operation for calculation of the prediction motion vector PMV in step S330. Here, the motion vector having the same mode signifies a motion vector having the same transcription as that indicative of the prediction motion vector. Also, the reference picture referred to by the motion vectors MV1 and MV2 may be the same as or different from the reference picture referred to by the block E to be coded.
Alternatively, if only one of the motion vectors MV1 and MV2 refers to the reference picture referred to by the block E (as determined in step S305), it is included in the median operation for calculation of the prediction motion vector PMV in steps S320 and S330.
If neither of the motion vectors MV1 and MV2 refers to the reference picture of the block E and they refer to different reference pictures (as determined in step S305), one thereof referring to a reference picture closest to the reference picture referred to by the block E, or a reference picture closest to a picture to be currently coded is selected in step S325 and included in the median operation for calculation of the prediction motion vector PMV in step S330.
2.3 Case Where Two Motion Vectors of Neighboring Block Have the Same Directions, Which are Different From That of Prediction Motion Vector PMV
FIG. 5 is a flow chart illustrating a motion vector calculation for a case where two motion vectors of a neighboring block have the same directions, which are different from that of a prediction motion vector, according to another example embodiment of the present invention.
Two motion vectors MV1 and MV2 of a neighboring block are set to 0, the neighboring block is considered to refer to a reference picture different from the reference picture referred to by the block E, and the prediction motion vector PMV of the block to be coded is obtained through the median operation including the zero motion.
In this manner, when a neighboring block has two motion vectors (as determined in step S400), the directions of the motion vectors are recognized from display orders of associated reference pictures in step S410 and determinations are made as to whether they are the same as the direction of the prediction motion vector PMV, thereby making it possible to obtain a PMV more approximating an MV in step S430. This results in a reduction in the magnitude of a motion vector difference MVD (=MV−PMV) to be sent to the decoder and, in turn, a reduction in the amount of bits to be sent to the decoder. Accordingly, the entire coding efficiency can be raised.
On the other hand, in the case where a neighboring block has one motion vector (as determined in step S400), direction information of the motion vector is acquired from a display order of an associated reference picture in step S405. If the direction of the motion vector is not the same as that of the prediction motion vector (as determined in step S415), the motion vector is set to 0 in step S420, the neighboring block is considered to refer to a reference picture different from the reference picture referred to by the block to be coded, and the prediction motion vector is obtained through the median operation including zero motion in steps S425 and S430.
Further, in the case where a neighboring block has one motion vector (as determined in step S400), direction information of the motion vector is acquired from a display order of an associated reference picture in step S405. If the direction of the motion vector is the same as that of the prediction motion vector (as determined in step S415), the motion vector is included in the median operation for calculation of the prediction motion vector in steps S425 and S430.
As apparent from the above description, the present invention provides a method for assigning direction information to reference pictures and a method for determining the directions of the reference pictures, wherein display order information enabling the acquisition of direction information of motion vectors is assigned to each reference picture. Therefore, information regarding a direction from a block to be currently coded to each reference picture can be acquired.
Further, the present invention provides a prediction motion vector calculation method by defining a motion vector to be used in a median operation when a neighboring block around a block to be coded has two motion vectors due to a bi-predictive mode or direct mode of a B picture. As a result, a prediction motion vector (PMV) of the block to be coded can be predicted using motion vector information of neighboring blocks, and a coding efficiency can be improved.
Although the example embodiments of the present invention have been disclosed for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.

## Claims

1. A method for a moving picture decoding device to calculate a prediction motion vector of a block to be decoded in a B picture when decoding a moving picture, the method comprising:
obtaining, by the moving picture decoding device, at least one motion vector of a block other than the block to be decoded in the B picture,
wherein the other block refers to at least one reference picture pointed to by a reference picture index for a plurality of reference pictures;
obtaining, by the moving picture decoding device, a first picture order count value of the B picture, wherein the first picture order count value represents a display order of the B picture;
obtaining, by the moving picture decoding device, a second picture order count value of the at least one reference picture, wherein the second picture order count value represents a display order of the at least one reference picture;
comparing, by the moving picture decoding device, the first picture order count value for the B picture with the second picture order count value for the at least one reference picture; and
deriving, by the moving picture decoding device, the prediction motion vector of the block to be decoded in the B picture from the motion vector of the block other than the block to be decoded, based on the comparison step.