1. A bi-directional prediction method for video coding at the coding end, characterized in that it comprises the steps of: 10 ) obtaining a forward candidate motion vector of a current image block from a forward reference image for every image block of a current B-frame by using a forward prediction mode; 20 ) calculating to obtain a backward candidate motion vector by using the forward candidate motion vector of the current image block obtained from step 10 ), therefore obtaining the forward candidate motion vector and the backward candidate motion vector needed for bi-directional prediction; 30 ) obtaining a candidate bi-directional prediction reference block by a bi-directional prediction method using the forward candidate motion vector and the backward candidate motion vector of the current image block obtained from step 20 ); 40 ) setting a new reference block within a given searching scope and/or before a matching value is less than or equal to a pre-given matching threshold, repeating steps 10 )- 30 ) to select an optimal reference block; 50 ) coding a forward motion vector, a backward motion vector and a block residual of the image block determined by the optimal reference block into a code stream.