Patent Publication Number: US-9838709-B2

Title: Motion vector predictive encoding method, motion vector predictive decoding method, moving picture encoding apparatus, moving picture decoding apparatus, and programs thereof

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a 371 U.S. National Stage of International Application No. PCT/JP2011/052501, filed Feb. 7, 2011. This application claims priority to Japanese Patent Application No. 2010-026129, filed Feb. 9, 2010. The disclosures of the above applications are incorporated herein by reference. 
     TECHNICAL FIELD 
     The present invention relates to moving picture encoding technology for performing predictive encoding of a motion vector. More particularly, the present invention relates to a motion vector predictive encoding method, a motion vector predictive decoding method, a moving picture encoding apparatus, a moving picture decoding apparatus, and programs thereof which improves the efficiency of motion vector prediction and improves the efficiency of moving picture encoding. 
     Priority is claimed on Japanese Patent Application No. 2010-026129, filed Feb. 9, 2010, the contents of which are incorporated herein by reference. 
     BACKGROUND ART 
     In a moving picture encoding scheme using motion compensation as exemplified by H.264, predictive encoding of a motion vector is performed in order to efficiently encode the motion vector. 
       FIG. 10  illustrates an example of a configuration of a motion compensation unit in a conventional moving picture encoding apparatus. A motion compensation unit  100  in the conventional moving picture encoding apparatus is provided with a motion search unit  101 , a motion vector memory  102 , a motion vector prediction unit  103 , and a prediction residual calculation unit  104 . 
     If a video signal of a block to be encoded is input, the motion search unit  101  performs a motion search by collating it with a decoded signal of an encoded reference picture, calculates a motion vector, and stores it in the motion vector memory  102 . The motion vector prediction unit  103  reads motion vectors that have been used in encoding of encoded blocks around the block to be encoded from the motion vector memory  102 , and calculates a predictive motion vector using them as reference motion vectors. The prediction residual calculation unit  104  calculates the residual between the motion vector calculated by the motion search unit  101  and the predictive motion vector calculated by the motion vector prediction unit  103 , and outputs a motion vector prediction residual. This motion vector prediction residual is encoded and output as encoded information of the motion vector. 
       FIG. 11  illustrates an example of a configuration of a motion compensation unit in a conventional moving picture decoding apparatus. A motion compensation unit  200  in the conventional moving picture decoding apparatus is provided with a motion vector calculation unit  201 , a predictive signal creation unit  202 , a motion vector memory  203 , and a motion vector prediction unit  204 . 
     The motion vector calculation unit  201  generates a motion vector by adding a motion vector prediction residual decoded from an encoded stream to a predictive motion vector predicted by the motion vector prediction unit  204 , stores this motion vector in the motion vector memory  203 , and outputs it to the predictive signal creation unit  202 . The predictive signal creation unit  202  reads a decoded signal from a decoded reference picture in accordance with the motion vector, and outputs it as a prediction signal of a block to be decoded. The motion vector prediction unit  204  reads motion vectors that have been used in decoding of decoded blocks around the block to be decoded from the motion vector memory  203 , and calculates the predictive motion vector using them as reference motion vectors. 
     Technology related to the above-mentioned motion vector predictive encoding includes the following conventional technology. 
     (a) Median predictive encoding (H.264 and the like) [hereinafter referred to as conventional technology a] 
     (b) Predictive encoding based on reference motion vector designation [hereinafter referred to as conventional technology b] 
       FIG. 12  is a diagram for explaining an example of a conventional predictive encoding scheme of a motion vector. In the conventional technology a and the conventional technology b, when encoding a motion vector (decoding is the same), prediction is performed using motion vectors of encoded blocks (encoded motion vectors) around a block to be encoded as illustrated in  FIG. 12  as reference motion vectors, and the motion vector is encoded. 
     Specifically, in the conventional technology a, the median of the reference motion vectors is used as a predictive motion vector, and an error (referred to as a motion vector prediction residual) between a motion vector of the block to be encoded and the predictive motion vector is encoded (refer to Non-Patent Document 1). 
     Moreover, in the conventional technology b, an encoding apparatus (an encoder) selects a motion vector to be used in prediction from the reference motion vectors, and encodes an identifier of a reference motion vector to be used in prediction together with a motion vector prediction residual (refer to Non-Patent Document 2). 
     Furthermore, conventionally, as technology for predicting the motion vector itself of the block to be encoded instead of obtaining the motion vector prediction residual and encoding the motion vector, there is technology for predicting a motion vector based on template matching (hereinafter referred to as conventional technology c). This conventional technology c is a motion vector prediction method for performing motion compensation without encoding a motion vector at an encoding side (refer to Non-Patent Document 3). 
       FIG. 13  is a diagram for explaining conventional motion vector prediction based on template matching. In the conventional technology c, and in the case of predicting the motion vector of the block to be encoded, by using a set (this is called a template) of encoded pixels around the block to be encoded as illustrated by a reverse L-shaped area in  FIG. 13 , a motion search is performed in a predetermined search range on a reference picture (this process is called template matching). Specifically, the search is performed for each motion vector in the predetermined search range by calculating the degree of similarity, such as a sum of absolute differences (SAD), between the template and an area (called a matching area) obtained by shifting an area on the reference picture in the same position as the template by the motion vector. Motion compensation is performed using the resultant motion vector. Since it is also possible for a decoding side to perform the same process with a template which is a set of decoded pixels, it is advantageous in that motion compensation is possible without encoding the motion vector. 
     PRIOR ART DOCUMENTS 
     Non-Patent Documents 
     
         
         Non-Patent Document 1: Kadono, Kikuchi, and Suzuki, “3 rd  revised edition. H.264/AVC textbook” published by Impress R&amp;D, 2009, pp. 123-125. 
         Non-Patent Document 2: T. Yamamoto, “A new scheme for motion vector predictor encoding”, ITU-T SG16/Q6, 32 nd  VCEG Meeting, San Jose, April 2007. 
         Non-Patent Document 3: Kobayashi, Suzuki, Boon, and Horikoshi, “Reduction of Predictive Information Amount with Motion Prediction Method Using Template Matching”, The Proceedings of Picture Coding Symposium of Japan, 2005, pp. 17-18. 
       
    
     SUMMARY OF INVENTION 
     Problems to be Solved by the Invention 
     In the above-mentioned conventional arts a and b, when there are no reference motion vectors effective for prediction in adjacent blocks, the efficiency of motion vector prediction is reduced. It is also conceivable that in addition to the vicinity of the block to be encoded, reference motion vectors of a great number of blocks included in a wider range are used in prediction. However, when this is performed using the conventional arts, the prediction efficiency and/or the encoding efficiency may be deteriorated. 
       FIG. 14  is a diagram for explaining the problems of the conventional arts. As illustrated in  FIG. 14 , when adjacent blocks of a block to be encoded are positioned at a boundary with an object Obj, when there is occlusion (when correspondence points of the adjacent blocks in a reference picture are concealed by a certain object), and/or when an object is not a rigid body, reference motion vectors of the adjacent blocks may be unsuitable for motion vector prediction of the block to be encoded, or the reference motion vectors themselves may be nonexistent because intra encoding is performed. In such a case, in both the conventional art a and the conventional art b, the prediction efficiency may be deteriorated. 
     In contrast, as illustrated by blocks indicated by dotted lines in  FIG. 14 , there may be a case in which a motion vector of a block not included in candidates is more effective for prediction. In order to use such a motion vector in prediction, it is possible to easily analogize that instead of employing only the most adjacent block as a candidate, the number of blocks to be employed as candidates is increased. However, in the case of increasing the number of blocks to be employed as candidates, with the conventional art a, an unsuitable reference motion vector may be included in candidates, and there is a risk that the prediction efficiency is deteriorated. Furthermore, with the conventional art b, since a bitrate for an identifier of a reference motion vector to be used in prediction is increased, there is a risk that the encoding efficiency is deteriorated. 
     On the other hand, the conventional art c is a motion vector prediction method for performing motion compensation without encoding a motion vector at an encoding side. Thus, let us consider that this is applied to the above-mentioned problems of the conventional arts. That is, let us consider that a predictive motion vector is created using the template matching of the conventional art c, a motion vector prediction residual is obtained from the predictive motion vector and a motion vector of a block to be encoded obtained through a normal motion search, and encoding is performed. In this case, the following problem may occur. 
     Unlike the conventional art a and the conventional art b, in the motion vector prediction in accordance with the conventional art c, it is possible to perform a search without using encoded motion vectors of adjacent blocks of a block to be encoded. For this reason, even when the encoded motion vectors are not effective for prediction, an effective predictive motion vector may be created. However, since the predictive motion vector is determined only from the template, a motion vector designating an area irrelevant to the block to be encoded may be employed as the predictive motion vector, resulting in the deterioration of the prediction efficiency. 
     The present invention is aimed at solving the above-described problems, and an object thereof is to improve the efficiency of motion vector prediction and improve the efficiency of moving picture encoding. Here, the efficiency of motion vector prediction represents the degree of similarity between a motion vector to be predicted and a predicted motion vector. Specifically, when the length of a difference vector of these two vectors is short, the prediction efficiency is assumed to be high. 
     Means for Solving the Problems 
     The overview of the present invention is as follows. The present invention performs motion vector prediction for respective blocks of an encoding side and a decoding side through the following method: 
     (1) Using a great number of (N) primary candidate reference motion vectors; 
     (2) Using only information already decoded when the decoding side starts decoding the block to be encoded (decoded), an evaluation value (hereinafter referred to as a degree of reliability) indicating the degree to which each primary candidate reference motion vector is suitable for prediction is obtained;
 
(3) The primary candidate reference motion vectors are narrowed down to M (&lt;N) secondary candidate reference motion vectors in accordance to the degrees of the reliability; and
 
(4) A predictive motion vector is created using M secondary candidate reference motion vectors.
 
     In detail, in an embodiment of the present invention, as pre-processes of motion vector prediction encoding (the following process 4), which are the same as in the conventional art, the following processes 1 to 3 are performed: 
     [Process 1] First, as primary candidate reference motion vectors, N (N is an integer equal to or more than 2) motion vectors, including at least one of motion vectors used in encoding already encoded blocks adjacent to a block to be encoded and motion vectors having a predetermined value, are extracted;
 
[Process 2] Next, the degree of reliability of each of the N primary candidate reference motion vectors, which quantitatively represents the effectiveness in predicting the motion vector of the block to be encoded, is calculated using encoded or decoded picture information;
 
[Process 3] Top M (M is an integer equal to or more than 1 and less than N) primary candidate reference motion vectors with higher degrees of the reliability are selected from among the N primary candidate reference motion vectors as secondary candidate reference motion vectors; and
 
[Process 4] A predictive motion vector of the block to be encoded is calculated using the secondary candidate reference motion vectors, and the residual between a motion vector obtained through a motion search of the block to be encoded and the predictive motion vector is encoded as encoded information of the motion vector. As a process of calculating the predictive motion vector of the block to be encoded using the secondary candidate reference motion vectors, for example, it is possible to use a conventional method for selecting the median of the M secondary candidate reference motion vectors or selecting a secondary candidate reference motion vector producing the minimum prediction residual among the M secondary candidate reference motion vectors, and encoding an identifier of the motion vector together with the prediction residual.
 
     As described above, in the present invention, the primary candidate reference motion vectors are determined from among a great number of motion vectors within a predetermined range as well as motion vectors of blocks adjacent to the block to be encoded. Then, the degree of reliability of each of the primary candidate reference motion vectors is calculated using encoded information or decoded information. The primary candidate reference motion vectors are narrowed down in accordance with the degrees of reliability, and a narrowed-down result is used as the secondary candidate reference motion vectors. As the subsequent processes, using the secondary candidate reference motion vectors as inputs, for example, a predictive motion vector is obtained using the same method as in the conventional motion vector prediction encoding, and the prediction residual between the predictive motion vector and the motion vector is encoded. 
     Even in the case of the motion vector prediction decoding in accordance with the present invention, a great number of motion vectors within a range as well as motion vectors of blocks adjacent to a block to be decoded are used as primary candidate reference motion vectors. Then, the degree of reliability of each of the primary candidate reference motion vectors is calculated using decoded information. The primary candidate reference motion vectors are narrowed down in accordance with the degrees of reliability, and a narrowed-down result is used as the secondary candidate reference motion vectors. As the subsequent processes, using the secondary candidate reference motion vectors as inputs, a predictive motion vector is obtained using the same method as in the conventional motion vector prediction decoding, and the predictive motion vector is added to a decoded prediction residual to calculate a motion vector. 
     Advantageous Effects of the Invention 
     In the present invention, the processes 1 to 3 are performed so that the reference motion vectors are narrowed down. This narrowing can also be achieved on a decoding side without additional information from an encoding side, and a motion vector effective for prediction is included in secondary candidate reference motion vectors. Thus, the prediction efficiency is improved as compared with the above-mentioned conventional arts a, b, and c. 
     Furthermore, in general, if the efficiency of motion vector prediction is improved, entropy of a motion vector prediction residual is reduced, so that the bitrate of a motion vector becomes small. Since encoded data of a moving picture includes the bitrate of the motion vector, the encoding efficiency of the moving picture is improved as compared with the scheme using the conventional art a, b, or c. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  is a block diagram showing a moving picture encoding apparatus according to an embodiment of the present invention. 
         FIG. 2  is a block diagram showing a motion compensation unit shown in  FIG. 1 . 
         FIG. 3  is a block diagram showing a moving picture decoding apparatus according to an embodiment of the present invention. 
         FIG. 4  is a block diagram showing a motion compensation unit shown in  FIG. 3 . 
         FIG. 5  is a flowchart showing a motion vector prediction process according to an embodiment of the present invention. 
         FIG. 6A  is a diagram illustrating a first setting example of primary candidate reference motion vectors according to an embodiment of the present invention. 
         FIG. 6B  is a diagram illustrating a second setting example of the primary candidate reference motion vectors according to an embodiment of the present invention. 
         FIG. 7  is a flowchart showing an example of a reliability calculation process according to an embodiment of the present invention. 
         FIG. 8  is a diagram showing a method of calculating a degree of reliability using template matching according to an embodiment of the present invention. 
         FIG. 9A  is a flowchart showing an example of a reference motion vector determination process according to an embodiment of the present invention. 
         FIG. 9B  is a flowchart showing another example of the reference motion vector determination process according to an embodiment of the present invention. 
         FIG. 10  is a block diagram showing a motion compensation unit in a conventional moving picture encoding apparatus. 
         FIG. 11  is a block diagram showing a motion compensation unit in a conventional moving picture decoding apparatus. 
         FIG. 12  is a diagram illustrating an example of a conventional prediction encoding scheme of a motion vector. 
         FIG. 13  is a diagram illustrating motion vector prediction based on conventional template matching. 
         FIG. 14  is a diagram illustrating the problems of a conventional art. 
     
    
    
     EMBODIMENTS FOR CARRYING OUT THE INVENTION 
     Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. 
       FIG. 1  shows an example of a configuration of a moving picture encoding apparatus in accordance with an embodiment of the present invention. In a moving picture encoding apparatus  1  of the present embodiment, particularly, a motion compensation unit  18  is a part that is different from the conventional arts, and other parts are the same as a general moving picture encoding apparatus in the conventional art, which is used as an encoder in H.264 and the like. 
     The moving picture encoding apparatus  1  receives a video signal to be encoded, divides a frame of the received video signal into blocks, encodes each block, and outputs encoded data thereof as a bitstream. 
     For this encoding, a prediction residual signal calculation unit  10  obtains the difference between the received video signal and a predictive signal which is the output of the motion compensation unit  18 , and outputs it as a prediction residual signal. An orthogonal transformation unit  11  performs orthogonal transformation such as discrete cosine transform (DCT) on the prediction residual signal, and outputs a transform coefficient. A quantization unit  12  quantizes the transform coefficient and outputs a quantized transform coefficient. An information source encoding unit  13  entropy-encodes the quantized transform coefficient and outputs an encoded coefficient as the bitstream. 
     On the other hand, the quantized transform coefficient is also input to an inverse quantization unit  14  and is inversely quantized therein. An inverse orthogonal transformation unit  15  performs inverse orthogonal transformation on a transform coefficient which is the output of the inverse quantization unit  14  and outputs a decoded prediction residual signal. A decoded signal calculation unit  16  adds the decoded prediction residual signal to the predictive signal, which is the output of the motion compensation unit  18 , and generates a decoded signal of the encoded block to be encoded. This decoded signal is stored in a frame memory  17  in order to be used as a reference picture of motion compensation in the motion compensation unit  18 . 
     The motion compensation unit  18  performs a motion search for the video signal of the block to be encoded with reference to a reference picture stored in the frame memory  17 , and outputs a predictive signal of the block to be encoded. Furthermore, the motion compensation unit  18  performs motion vector prediction using encoded information in order to perform predictive encoding for a motion vector which is the result of the motion search, calculates the difference between the motion vector which is the result of the motion search and the predictive motion vector, and outputs a result to the information source encoding unit  13  as a motion vector prediction residual. 
     Here, at the time of predicting the motion vector, the motion compensation unit  18  uses not only motion vectors of encoded blocks around the block to be encoded. In addition, the motion compensation unit  18  sets some primary candidate reference motion vectors, and calculates the degrees of reliability of the primary candidate reference motion vectors based on encoded information. Next, the motion compensation unit  18  narrows the primary candidate reference motion vectors down to a small number of secondary candidate reference motion vectors in accordance with the degrees of reliability, and calculates a predictive motion vector using the secondary candidate reference motion vectors. A process of calculating the predictive motion vector using the secondary candidate reference motion vectors may be performed using the same motion vector prediction technique as in the conventional art. 
       FIG. 2  is a diagram showing a detailed configuration example of the motion compensation unit  18  illustrated in  FIG. 1 . As illustrated in  FIG. 2 , the motion compensation unit  18  is provided with a motion search unit  181 , a motion vector memory  182 , a primary candidate reference motion vector-setting unit  183 , a degree of reliability calculation unit  184 , a reference motion vector determination unit  185 , a motion vector prediction unit  186 , and a motion vector prediction residual calculation unit  187 . 
     In the motion compensation in encoding the block to be encoded, first, the motion search unit  181  performs a motion search of collating the block to be encoded of the received video signal with a decoded signal of a reference picture that has already been encoded, generates and outputs a predictive signal, and outputs a motion vector indicating a matching position. This motion vector is stored in the motion vector memory  182  and is output to the motion vector prediction residual calculation unit  187 . 
     The primary candidate reference motion vector-setting unit  183  sets motion vectors stored in the motion vector memory  182  after being encoded in the past or N is an integer equal to or more than 2) motion vectors including motion vectors having a predetermined value as the primary candidate reference motion vectors, and notifies the degree of reliability calculation unit  184  of the primary candidate reference motion vectors. 
     The degree of reliability calculation unit  184  calculates the degree of reliability of each of the N primary candidate reference motion vectors, which quantitatively represents the effectiveness in predicting the motion vector of the block to be encoded, using encoded picture information (a decoded signal). 
     The reference motion vector determination unit  185  selects top M (M is an integer equal to or more than 1 and less than N) primary candidate reference motion vectors having higher degrees of the reliability calculated by the degree of reliability calculation unit  184  as the secondary candidate reference motion vectors. 
     The motion vector prediction unit  186  calculates a predictive motion vector of the block to be encoded using the secondary candidate reference motion vectors selected by the reference motion vector determination unit  185 . A calculation method of the predictive motion vector in the motion vector prediction unit  186  may be the same as in the conventional art, and for example, the median of the secondary candidate reference motion vectors is employed as the predictive motion vector. Furthermore, among the secondary candidate reference motion vectors, a secondary candidate reference motion vector having a value nearest the motion vector obtained by the motion search unit  181  may be employed as the predictive motion vector, an identifier indicating the motion vector may be included in subjects to be encoded, and the subjects to be encoded may be communicated to a decoding side. 
     The motion vector prediction residual calculation unit  187  calculates the residual between the motion vector calculated by the motion search unit  181  and the predictive motion vector calculated by the motion vector prediction unit  186 , and outputs the calculated residual as a motion vector prediction residual. 
       FIG. 3  is a diagram showing an example of a configuration of a moving picture decoding apparatus in accordance with the embodiment of the present invention. In a moving picture decoding apparatus  2  of the present embodiment, particularly, a motion compensation unit  25  is a part that is different from the conventional art, and other parts are the same as a general moving picture decoding apparatus in the conventional art, which is used as a decoder in H.264 and the like. 
     The moving picture decoding apparatus  2  receives and decodes the bitstream encoded by the moving picture encoding apparatus  1  illustrated in  FIG. 1 , and outputs a decoded signal of a decoded picture. 
     For this decoding, based on the received bitstream, an information source-decoding unit  20  entropy-decodes a quantized transform coefficient of a block to be decoded and decodes a motion vector prediction residual. An inverse quantization unit  21  receives and inversely quantizes the quantized transform coefficient, and outputs a decoded transform coefficient. An inverse orthogonal transformation unit  22  performs inverse orthogonal transformation on the decoded transform coefficient and outputs a decoded prediction residual signal. A decoded signal calculation unit  23  adds a predictive signal generated by the motion compensation unit  25  to the decoded prediction residual signal, and generates a decoded signal of a block to be decoded. This decoded signal is output to an external apparatus such as a display apparatus, and is stored in a frame memory  24  in order to be used as a reference picture of motion compensation in the motion compensation unit  25 . 
     The motion compensation unit  25  predicts a motion vector using decoded information stored in the frame memory  24 , and adds the predictive motion vector to the motion vector prediction residual decoded by the information source-decoding unit  20  to calculate a motion vector. Next, the motion compensation unit  25  generates the predictive signal of the block to be decoded based on the motion vector with reference to a reference picture of the frame memory  24 . 
     Here, at the time of predicting the motion vector, the motion compensation unit  25  uses not only motion vectors of decoded blocks around the block to be decoded. In addition, the motion compensation unit  25  sets a predetermined number of primary candidate reference motion vectors, and calculates the degrees of reliability of each of the primary candidate reference motion vectors from decoded information. Then, the motion compensation unit  25  narrows the primary reference motion vectors down to a small number of secondary candidate reference motion vectors in accordance with the degrees of reliability, and calculates a predictive motion vector using the secondary candidate reference motion vectors. A process of calculating the predictive motion vector using the secondary candidate reference motion vectors may be performed using the same motion vector prediction method as in the conventional art. 
       FIG. 4  is a diagram showing a detailed configuration example of the motion compensation unit  25  illustrated in  FIG. 3 . As illustrated in  FIG. 4 , the motion compensation unit  25  is provided with a motion vector calculation unit  251 , a predictive signal creation unit  252 , a motion vector memory  253 , a primary candidate reference motion vector-setting unit  254 , a degree of reliability calculation unit  255 , a reference motion vector determination unit  256 , and a motion vector prediction unit  257 . 
     In motion compensation in decoding the block to be decoded, first, the motion vector calculation unit  251  adds a motion vector prediction residual obtained by decoding an encoded bitstream to a predictive motion vector predicted by the motion vector prediction unit  257  using decoded information, and outputs a motion vector to be used in decoding. This motion vector is stored in the motion vector memory  253  and is output to the predictive signal creation unit  252 . The predictive signal creation unit  252  reads a decoded signal of a reference picture position indicated by the input motion vector, and outputs it as a predictive signal of the block to be decoded. 
     The primary candidate reference motion vector-setting unit  254  sets motion vectors stored in the motion vector memory  253  after being decoded in the past or N (N is an integer equal to or more than 2) motion vectors including motion vectors having a predetermined value as the primary candidate reference motion vectors, and notifies the degree of reliability calculation unit  255  of the primary candidate reference motion vectors. 
     The degree of reliability calculation unit  255  calculates the degree of reliability of each of the N primary candidate reference motion vectors, which quantitatively represents the effectiveness in predicting the motion vector of the block to be decoded, using decoded picture information (a decoded signal). 
     The reference motion vector determination unit  256  selects top M (M is an integer equal to or more than 1 and less than N) primary candidate reference motion vectors having higher degrees of the reliability calculated by the degree of reliability calculation unit  255  as the secondary candidate reference motion vectors. 
     The motion vector prediction unit  257  calculates a predictive motion vector of the block to be decoded using the secondary candidate reference motion vectors selected by the reference motion vector determination unit  256 . A calculation method of the predictive motion vector in the motion vector prediction unit  257  may be the same as in the conventional art, and for example, the median of the secondary candidate reference motion vectors is employed as the predictive motion vector. Alternatively, when an identifier of a motion vector to be used in prediction has been designated by an encoding side, the motion vector indicated by the identifier is employed as the predictive motion vector. 
     Next, among the processes performed by the motion compensation unit  18  in the moving picture encoding apparatus  1  and the motion compensation unit  25  in the moving picture decoding apparatus  2 , the motion vector prediction process associated with the present invention will be described with reference to  FIG. 5  to  FIG. 9B . Hereinafter, the motion vector prediction process of an encoding side will be mainly described; however, the motion vector prediction process of a decoding side is also the same. 
       FIG. 5  is a flowchart of the motion vector prediction process. 
     [Process of Step S 1 ] 
     Initially, the primary candidate reference motion vector-setting unit  183  (or  254 ) sets N primary candidate reference motion vectors. As a method of setting the N primary candidate reference motion vectors, for example, it is possible to use the following method. 
     [First Setting Example of Primary Candidate Reference Motion Vector] 
     As illustrated in  FIG. 6A , the position of a block  31  to be encoded is employed as a reference, and N predetermined motion vectors Vi (i=1, 2, . . . , N) in a predetermined range from the position are used as the primary candidate reference motion vectors. It is possible to arbitrarily determine the values of the motion vectors Vi in advance such that the values are the same in an encoding side and a decoding side. The values of these motion vectors Vi may be stored in a table form in advance. 
     Furthermore, if a condition that it is possible for the encoding side and the decoding side to use a common value without encoding the values of the motion vectors Vi is satisfied, it is possible to use the values as candidates. Thus, for example, it is also possible to sequentially calculate the statistic of motion vectors of a predetermined number of frames already encoded or decoded in the past, and to select N primary candidate reference motion vectors with high appearance probability from the statistic of the motion vectors. 
     [Second Setting Example of Primary Candidate Reference Motion Vector] 
     As illustrated in  FIG. 6B , in a picture  3  to be encoded, motion vectors used in encoding a plurality of (10 in this example) coded blocks B1 to B10 around a block  31  to be encoded are set as the primary candidate reference motion vectors. Even in this case, it is possible for the decoding side to set the same motion vectors as primary candidate reference motion vectors used in the encoding side from decoded motion vectors. 
     [Third Setting Example of Primary Candidate Reference Motion Vector] 
     After N1 primary candidate reference motion vectors are selected in the above-mentioned first setting example and N2 primary candidate reference motion vectors are selected in the second setting example, the total N (=N1+N2) primary candidate reference motion vectors are set. 
     [Fourth Setting Example of Primary Candidate Reference Motion Vector] 
     In the fourth setting example, motion vectors of encoded blocks and motion vectors in a predetermined range with respect to these motion vectors are set as the primary candidate reference motion vectors. For example, when a predetermined range is set as a range of ±1 in the X and Y directions with respect to a motion vector (10, 20) of an encoded block, motion vectors (9, 20), (11, 20), (10, 19), (10, 21), (9, 19), (9, 21), (11, 19), and (11, 21) are employed as candidates, in addition to the motion vector (10, 20). That is, the total 9 primary candidate reference motion vectors are employed as candidates with respect to a motion vector of one encoded block. If the number of motion vectors of an encoded block that are initially employed as candidates is set to K and all motion vectors around the K motion vectors are employed as candidates, (9×K) primary candidate reference motion vectors are used. However, if it is common with a decoding side, all motion vectors around motion vectors of encoded blocks are not employed as candidates, and a part of the motion vectors may be employed as candidates. 
     As the effect of the above setting, motion vectors around motion vectors of coded blocks are also considered, resulting in the improvement of the efficiency of motion vector prediction. 
     [Process of Step S 2 ] 
     The degree of reliability calculation unit  184  (or  255 ) calculates the degree of reliability of each of the N set primary candidate reference motion vectors set by the primary candidate reference motion vector-setting unit  183  using encoded information. Here, the degrees of reliability quantitatively represent the effectiveness of the primary candidate reference motion vectors in motion vector prediction of the block to be encoded (decoded). The degrees of reliability are calculated for the N primary candidate reference motion vectors using only information already decoded when a decoding side starts decoding a block to be encoded. 
       FIG. 7  is a flowchart showing an example of the degree of reliability calculation process, and  FIG. 8  is a diagram for explaining how to obtain the degree of reliability using template matching. 
     As an example of obtaining the degree of reliability, a description will be provided for a method which applies template matching. It is assumed that a predictive motion vector of the block to be encoded  31  is to be obtained in the picture to be encoded  3  in  FIG. 8 . A template  32  is a set of encoded pixels adjacent to the block  31  to be encoded (in this example, a reverse L-shaped area configured by the group of left and upper pixels of the block  31  to be encoded). It is to be noted that the width (thickness) of the reverse L-shaped area corresponds to, for example, about two pixels; however, it may correspond to one pixel or three pixels or more. A reference picture  4  is an encoded or decoded picture. A corresponding position block  41  in the reference picture  4  is in the same position as that of the block to be encoded  31  in the picture to be encoded  3 . 
     In the degree of reliability calculation process of  FIG. 7 , in step S 21 , an area obtained by shifting an area (a reverse L-shaped area adjacent to the corresponding position block  41 ) on the reference picture  4  in spatially the same position as the template  32  by a primary candidate reference motion vector V i , the degree of reliability of which is to be calculated, is obtained, and this is acquired as an area to be matched  42 . 
     Subsequently, in step S 22 , the degree of similarity between the template  32  of the block to be encoded  31  and the area to be matched  42  in the reference picture  4  is calculated, and this is set as the degree of reliability of the primary candidate reference motion vector V i . 
     An example of an index of a degree of similarity is a sum of absolute differences (SAD). The smaller the SAD, the higher the probability that the primary candidate reference motion vector V i  is close to the motion of the block to be encoded  31 , and thus it is regarded as a reference motion vector with a high degree of reliability. The index of the degree of reliability used in the degree of reliability calculation unit  184  may be another index indicating the degree of similarity between the template  32  and the area to be matched  42 . In addition to the above-mentioned SAD, a sum of squared differences (SSD), a sum of absolute transformed differences (SATD) and the like may be used. All of these are measures indicating that a smaller value thereof means a higher degree of reliability. 
     Since the template  32  has a high correlation with a picture signal of the block to be encoded  31 , if a degree of similarity based thereon is used, it is possible to identify a secondary candidate reference block effective for motion vector prediction. 
     [Process of Step S 3 ] 
     Next, the reference motion vector determination unit  185  (or  256 ) narrows the N primary candidate reference motion vectors down to a small number of secondary candidate reference motion vectors based on degree of reliability information of each primary candidate reference motion vector. 
       FIG. 9A  is a flowchart of a reference motion vector determination process. In step S 31 , the reference motion vector determination unit  185  arranges the degrees of reliability of the primary candidate reference motion vectors, which have been calculated by the degree of reliability calculation unit  184 , in descending order, and sets top M primary candidate reference motion vectors with higher degrees of reliability as secondary candidate reference motion vectors. 
       FIG. 9B  is a flowchart of another reference motion vector determination process, and illustrates an example of a reference motion vector determination process when considering a case in which the number of primary candidate reference motion vectors does not reach M. 
     For example, there may be a case in which the number of primary candidate reference motion vectors does not reach the predetermined number M, such as when a great number of intra blocks are included in the primary candidate reference motion vectors. In this case, the secondary candidate reference motion vectors are determined as reference motion vectors as follows. 
     First, in step S 32 , it is determined whether or not the number N of the primary candidate reference motion vectors is larger than M. If N is larger than M, the process proceeds to step S 33 , and top M primary candidate reference motion vectors with higher degrees of reliability are set as secondary candidate reference motion vectors similarly to above-described step S 31 . If the number N of the primary candidate reference motion vectors actually available is not larger than M, the process proceeds to step S 34 , and N primary candidate reference motion vectors are set as secondary candidate reference motion vectors. 
     [Process of Step S 4 ] 
     The motion vector prediction unit  186  (or  257 ) creates a predictive motion vector of the block to be encoded using the secondary candidate reference motion vectors selected by the reference motion vector determination unit  185 . A key point of the present embodiment is that a great number of primary candidate reference motion vectors are narrowed down in accordance with the degrees of reliability, thereby obtaining a predictive motion vector for calculating a motion vector prediction residual using secondary candidate reference motion vectors with high degrees of reliability. Thus, the process of obtaining the predictive motion vector from the secondary candidate reference motion vectors may be the same as the process of the motion vector prediction unit  103  (or  204 ) of the conventional art described with reference to  FIG. 10  or  FIG. 11 . However, the process is not necessarily the same as that in the conventional art, and the predictive motion vector may be obtained using another process, thereby embodying the present invention. 
     The above-described motion vector prediction encoding process and motion vector prediction decoding process can also be achieved by a computer and a software program. Furthermore, the program can be recorded on a computer-readable recording medium, and it can be provided through a network. 
     While the embodiments of the present invention have been described with reference to the drawings, detailed configurations are not limited to these embodiments, and the present invention encompasses design or the like (addition, omission, and replacement, and other modifications of the configuration) in a range not departing from the gist of the present invention. The present invention is not to be considered as being limited by the foregoing description, and is only limited by the scope of the appended claims. 
     INDUSTRIAL APPLICABILITY 
     The present invention is available in video encoding in which predictive encoding is performed for a motion vector and video decoding technology. According to the present invention, it is possible to improve the efficiency of motion vector prediction, resulting in the improvement of the efficiency of video encoding. 
     DESCRIPTION OF REFERENCE NUMERALS 
     
         
           1  moving picture encoding apparatus 
           2  moving picture decoding apparatus 
           10  prediction residual signal calculation unit 
           11  orthogonal transformation unit 
           12  quantization unit 
           13  information source encoding unit 
           14 ,  21  inverse quantization unit 
           15 ,  22  inverse orthogonal transformation unit 
           16  decoded signal calculation unit 
           17 ,  24  frame memory 
           18 ,  25  motion compensation unit 
           181  motion search unit 
           182 ,  253  motion vector memory 
           183 ,  254  primary candidate reference motion vector-setting unit 
           184 ,  255  degree of reliability calculation unit 
           185 ,  256  reference motion vector determination unit 
           186 ,  257  motion vector prediction unit 
           187  motion vector prediction residual calculation unit 
           20  information source-decoding unit 
           23  decoded signal calculation unit 
           251  motion vector calculation unit 
           252  predictive signal creation unit