Patent Document ID: 8005144
Application ID: 10571659
Patent Status: 1

Claim One:
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; wherein the procedure of said obtaining a forward candidate motion by using a forward prediction mode in step 10) includes: 101) selecting an image block in a forward reference picture with the same postion as the current image block of the B-frame to be a given reference block in the forward reference picture if it is a first time, and proceeding to step 102); or else proceeding to step 102) directly; 102) subtracting the position of the given reference block in the forward reference picture from the position of the current image block of the B-frame to obtain a vector, i.e. the forward candidate motion vector; ending step 10); 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; wherein the procedure of said calculating a backward candidate motion vector in step 20) includes: 110) discriminating a current image mode, and if it is a frame coding mode, proceeding to step 111); if it is a field coding mode, discriminating whether it is an odd field or even field, and if it is the odd field, proceeding to step 112), if it is the even field, proceeding to step 113); 111) calculating to obtain the backward candidate motion vector by the following formula: CMV B = - ( TD D - TD B TD B ) × CMV F TD B representing a distance in a time domain between a current picture and the forward reference picture, TD D representing a distance in a time domain between the forward reference picture and the backward reference picture, CMV F and CMV B respectively representing the forward motion vector candidate and the backward motion vector candidate corresponding to the current block of the B-frame; ending step 20); 112) calculating to obtain the backward candidate motion vector by the following formula: CMV B , i = - ( TD D , i - TD B , i TD B , i ) × CMV F , i TD B representing a distance in a time domain between the current picture and the forward reference picture, TD D representing a distance in a time domain between the forward reference picture and the backward reference picture, CMV F and CMV B respectively representing the deduced forward candidate motion vector and the backward candidate motion vector corresponding to the current block of the B-frame; ending step 20); 113) when a motion vector of a corresponding block of a backward reference field pointing to a field prior to the current field in the time domain, proceeding to step 112); when the motion vector of the corresponding block of the backward reference field pointing to a corresponding odd field belonging to the same frame as the even field, calculating to obtain the backward candidate motion vector by the following formula: CMV B , 1 = ( TD D , 1 + TD B , 1 TD B , 1 ) × CMV F , 1 TD B representing a distance in a time domain between the current picture and the forward reference picture, TD D representing a distance in a time domain between the forward reference picture and the backward reference picture, CMV F and CMV B respectively representing the deduced forward candidate motion vector and the backward candidate motion vector corresponding to the current block of the B-frame; ending step 20); 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 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.