Motion vector calculation method
When a block (MB 22 ) of which motion vector is referred to in the direct mode contains a plurality of motion vectors, 2 motion vectors MV 23 and MV 24 , which are used for inter picture prediction of a current picture (P 23 ) to be coded, are determined by scaling a value obtained from averaging the plurality of motion vectors or selecting one of the plurality of the motion vectors.
1. A picture coding method for coding a current block included in a current picture in direct mode, the picture coding method comprising:
specifying, when a co-located block has two motion vectors, only one motion vector out of the two motion vectors, the co-located block being located in a second picture at the same position that the current block is located in the current picture, the second picture being a B-picture following the current picture in display order;
determining a first motion vector and a second motion vector of the current block, using the specified one motion vector;
generating a first predictive image of the current block using the first motion vector of the current block and a second predictive image of the current block using the second motion vector of the current block;
generating a predictive image of the current block based on the first predictive image and the second predictive image;
generating a difference image between the current block and the predictive image of the current block; and
coding the difference image to obtain a coded difference image of the current block,
wherein, in the case where the co-located block is motion compensated using two motion vectors which refer to a same one reference picture preceding the second picture in display order, one motion vector among the two motion vectors of the co-located block which is output earlier in a bit stream is specified as the only one motion vector of the co-located block in said specifying.
2. A picture coding apparatus that codes a current block included in a current picture, the picture coding apparatus comprising:
a specifying unit configured to specify, when a co-located block has two motion vectors, only one motion vector out of the two motion vectors, the co-located block being located in a second picture at the same position that the current block is located in the current picture, the second picture being a B-picture following the current picture in display order;
a motion vector determining unit configured to determine a first motion vector and a second motion vector of the current block, using the specified one motion vector;
a first and second predictive image generating unit configured to generate a first predictive image of the current block using the first motion vector of the current block and a second predictive image of the current block using the second motion vector of the current block;
a predictive image generating unit configured to generate a predictive image of the current block based on the first predictive image and the second predictive image;
a difference image generating unit configured to generate a difference image between the current block and the predictive image of the current block; and
a difference image coding unit configured to code the difference image to obtain a coded difference image of the current block,
wherein, in the case where the co-located block is motion compensated using two motion vectors which refer to a same one reference picture preceding the second picture in display order, one motion vector among the two motion vectors of the co-located block which is output earlier in a bit stream is specified by said specifying unit, as the only one motion vector of the co-located block.