A picture decoding method for decoding a current block in a current picture in a temporal direct mode using a motion vector of an already decoded picture, the already decoded picture being a frame picture when the current picture is a frame picture and being located closely in display order to the current picture and the already decoded picture being a field picture when the current picture is a field picture and being located closely in display order to the current picture, said picture decoding method comprising:
- judging when a temporal direct mode is specified or a spatial direct mode is specified;
- judging when the current picture is a field picture and coded on a field unit basis or the current picture is a frame picture and coded on a frame unit basis;
- and
- in the case that a temporal direct mode is specified and the current picture is a frame picture and coded on a frame unit basis, the following steps are performed:
- generating two motion vectors of the current block by scaling a reference motion vector of a co-located block included in the already decoded frame picture based on display order information of the current frame picture, the already decoded frame picture and a reference frame picture that is referred to by the co-located block;
- and
- performing motion compensation of the current block using the two motion vectors generated in said generating, and
- in the case that a temporal direct mode is specified and the current picture is a field picture and coded on a field unit basis, the following steps are performed:
- obtaining a reference motion vector of a co-located block included in the already decoded field picture, the co-located block being co-located with the current block included in the current field picture;
- judging that scaling of the reference motion vector of the co-located block cannot be performed when (i) display order information of the already decoded field picture that includes the co-located block and (ii) display order information of a reference field picture that is referred to by the co-located block in a decoding process of the co-located block, are identical, and judging that the scaling of the reference motion vector of the co-located block can be performed when (i) the display order information of the decoded field picture that includes the co-located block and (ii) the display order information of the reference field picture that is referred to by the co-located block, are not identical;
- generating two motion vectors of the current block through the scaling when said judging judges that the scaling can be performed because (i) the display order information of the decoded field picture that includes the co-located block and (ii) the display order information of the reference field picture that is referred to by the co-located block, are not identical, and generating the two motion vectors of the current block by setting one of the two motion vectors to be a zero value and another of the two motion vectors to be a predetermined value without the scaling when said judging judges that the scaling cannot be performed because (i) display order information of the decoded field picture that includes the co-located block and (ii) display order information of a reference field picture that is referred to by the co-located block in a decoding process of the co-located block, are identical;
- and
- performing motion compensation of the current block using the two motion vectors generated in said generating.