Patent Publication Number: US-2023132950-A1

Title: Picture decoding device, picture decoding method, and picture decoding program with history-based candidate selection

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 17/269,962, filed on Feb. 19, 2021, which is the U.S. national stage of International Patent App. No. PCT/JP2019/050093, filed on Dec. 20, 2019, which claims priority to Japanese Patent Application Nos. 2018-247402 filed Dec. 28, 2018 and 2019-171784 filed Sep. 20, 2019, the contents of which are incorporated herein by reference. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to picture coding and decoding technology for dividing a picture into blocks and performing prediction. 
     In picture coding and decoding, a target picture is divided into blocks, each of which is a set of a prescribed number of samples, and a process is performed in units of blocks. Coding efficiency is improved by dividing a picture into appropriate blocks and appropriately setting intra picture prediction (intra prediction) and inter picture prediction (inter prediction). 
     In moving-picture coding/decoding, coding efficiency is improved by inter prediction for performing prediction from a coded/decoded picture. Patent Literature 1 describes technology for applying an affine transform at the time of inter prediction. It is not uncommon for an object to cause deformation such as enlargement/reduction and rotation in moving pictures and efficient coding is enabled by applying the technology of Patent Literature 1. 
     PRIOR ART DOCUMENTS 
     Patent Documents 
     [Patent Document 1] 
     
         
         Japanese Unexamined Patent Application, First Publication No. H9-172644 
       
    
     SUMMARY OF THE INVENTION 
     However, because the technology of Patent Literature 1 involves a picture transform, there is a problem that the processing load is great. In view of the above problem, the present invention provides efficient coding technology with a low load. 
     For example, embodiments to be described below disclose the following aspects. 
     There is provided a picture decoding device including: a spatial candidate derivation unit configured to derive a spatial candidate from inter prediction information of a block neighboring a decoding target block and register the derived spatial candidate as a candidate in a first candidate list; a history-based candidate derivation unit configured to generate a second candidate list by adding a history-based candidate included in a history-based candidate list as a candidate to the first candidate list; a candidate selection unit configured to select a selection candidate from candidates included in the second candidate list; and an inter prediction unit configured to perform inter prediction using the selection candidate, wherein the history-based candidate derivation unit switches between whether or not a history-based candidate overlapping a candidate included in the first candidate list is added in accordance with a prediction mode. 
     In the picture decoding device, the prediction mode is a merge mode and a motion vector predictor mode, the candidate when the prediction mode is the merge mode is motion information, and the candidate when the prediction mode is the motion vector predictor mode is a motion vector. 
     In the picture decoding device, the history-based candidate derivation unit adds the history-based candidate as a candidate to the first candidate list if the history-based candidate does not overlap a candidate included in the first candidate list when the prediction mode is the merge mode and adds the history-based candidate as a candidate to the first candidate list regardless of whether or not the history-based candidate overlaps a candidate included in the first candidate list when the prediction mode is the motion vector predictor mode. 
     The picture decoding device further includes a history-based motion vector predictor candidate list update unit configured to update a history-based motion vector predictor candidate list with the selection candidate so that the history-based motion vector predictor candidate list does not include an overlapping candidate when the prediction mode is the merge mode and update the history-based motion vector predictor candidate list with motion information including at least the selection candidate and a reference index indicating a picture for referring to the selection candidate so that the history-based motion vector predictor candidate list does not include an overlapping candidate when the prediction mode is the motion vector predictor mode. 
     In the picture decoding device, the maximum number of candidates included in the candidate list when the prediction mode is the merge mode is larger than the maximum number of candidates included in the candidate list when the prediction mode is the motion vector predictor mode. 
     In the picture decoding device, the history-based motion vector predictor candidate derivation unit adds the history-based candidate as a candidate to the first candidate list regardless of whether or not the history-based candidate overlaps a candidate included in the first candidate list if a reference index of the history-based candidate is the same as a reference index of the decoding target picture when the prediction mode is the motion vector predictor mode. 
     There is provided a picture decoding method for use in a picture decoding device, the picture decoding method including steps of: deriving a spatial candidate from inter prediction information of a block neighboring a decoding target block and registering the derived spatial candidate as a candidate in a first candidate list; generating a second candidate list by adding a history-based candidate included in a history-based candidate list as a candidate to the first candidate list and switching between whether or not a history-based candidate overlapping a candidate included in the first candidate list is added in accordance with a prediction mode; selecting a selection candidate from candidates included in the second candidate list; and performing inter prediction using the selection candidate. 
     There is provided a computer program stored in a computer-readable non-transitory storage medium in a picture decoding device, the computer program including instructions for causing a computer of the picture decoding device to execute steps of: deriving a spatial candidate from inter prediction information of a block neighboring a decoding target block and registering the derived spatial candidate as a candidate in a first candidate list; generating a second candidate list by adding a history-based candidate included in a history-based candidate list as a candidate to the first candidate list and switching between whether or not a history-based candidate overlapping a candidate included in the first candidate list is added in accordance with a prediction mode; selecting a selection candidate from candidates included in the second candidate list; and performing inter prediction using the selection candidate. 
     There is provided a picture decoding device including: a spatial candidate derivation unit configured to derive a spatial candidate from inter prediction information of a block neighboring a decoding target block and register the derived spatial candidate as a candidate in a first candidate list; a history-based candidate derivation unit configured to generate a second candidate list by adding a history-based candidate included in a history-based candidate list as a candidate to the first candidate list; a candidate selection unit configured to select a selection candidate from candidates included in the second candidate list; and an inter prediction unit configured to perform inter prediction using the selection candidate, wherein the history-based candidate derivation unit switches between whether or not a history-based candidate overlapping a candidate included in the first candidate list is added in accordance with a prediction mode, and wherein the prediction mode is a merge mode and a motion vector predictor mode, the candidate when the prediction mode is the merge mode is motion information, and the candidate when the prediction mode is the motion vector predictor mode is a motion vector. 
     In the picture decoding device, the history-based candidate derivation unit adds the history-based candidate as a candidate to the first candidate list if the history-based candidate does not overlap a candidate included in the first candidate list when the prediction mode is the merge mode and adds the history-based candidate as a candidate to the first candidate list regardless of whether or not the history-based candidate overlaps a candidate included in the first candidate list when the prediction mode is the motion vector predictor mode. 
     The picture decoding device further includes a history-based motion vector predictor candidate list update unit configured to update a history-based motion vector predictor candidate list with the selection candidate so that the history-based motion vector predictor candidate list does not include an overlapping candidate when the prediction mode is the merge mode and update the history-based motion vector predictor candidate list with motion information including at least the selection candidate and a reference index indicating a picture for referring to the selection candidate so that the history-based motion vector predictor candidate list does not include an overlapping candidate when the prediction mode is the motion vector predictor mode. 
     In the picture decoding device, the maximum number of candidates included in the candidate list when the prediction mode is the merge mode is larger than the maximum number of candidates included in the candidate list when the prediction mode is the motion vector predictor mode. 
     In the picture decoding device, the history-based motion vector predictor candidate derivation unit adds the history-based candidate as a candidate to the first candidate list regardless of whether or not the history-based candidate overlaps a candidate included in the first candidate list if a reference index of the history-based candidate is the same as a reference index of the decoding target picture when the prediction mode is the motion vector predictor mode. 
     There is provided a picture decoding method including steps of: deriving a spatial candidate from inter prediction information of a block neighboring a decoding target block and registering the derived spatial candidate as a candidate in a first candidate list; generating a second candidate list by adding a history-based candidate included in a history-based candidate list as a candidate to the first candidate list and switching between whether or not a history-based candidate overlapping a candidate included in the first candidate list is added in accordance with a prediction mode; selecting a selection candidate from candidates included in the second candidate list; and performing inter prediction using the selection candidate, wherein the prediction mode is a merge mode and a motion vector predictor mode, the candidate when the prediction mode is the merge mode is motion information, and the candidate when the prediction mode is the motion vector predictor mode is a motion vector. 
     There is provided a computer program stored in a computer-readable non-transitory storage medium in a picture decoding device, the computer program including instructions for causing a computer of the picture decoding device to execute steps of: deriving a spatial candidate from inter prediction information of a block neighboring a decoding target block and registering the derived spatial candidate as a candidate in a first candidate list; generating a second candidate list by adding a history-based candidate included in a history-based candidate list as a candidate to the first candidate list, switching between whether or not a history-based candidate overlapping a candidate included in the first candidate list is added in accordance with a prediction mode, adding the history-based candidate as a candidate to the first candidate list if the history-based candidate does not overlap a candidate included in the first candidate list when the prediction mode is a merge mode, the prediction mode being the merge mode and a motion vector predictor mode, the candidate when the prediction mode is the merge mode being motion information, the candidate when the prediction mode is the motion vector predictor mode being a motion vector, and adding the history-based candidate as a candidate to the first candidate list regardless of whether or not the history-based candidate overlaps a candidate included in the first candidate list when the prediction mode is the motion vector predictor mode; selecting a selection candidate from candidates included in the second candidate list; and performing inter prediction using the selection candidate. 
     The above description is an example. The scopes of the present application and the present invention are not limited or restricted by the above description. Also, it should be understood that the description of the “present invention” in the present specification does not limit the scope of the present application or the present invention and is used as an example. 
     According to the present invention, it is possible to implement a highly efficient picture coding/decoding process with a low load. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    is a block diagram of a picture coding device according to an embodiment of the present invention. 
         FIG.  2    is a block diagram of a picture decoding device according to an embodiment of the present invention. 
         FIG.  3    is an explanatory flowchart showing an operation of dividing a tree block. 
         FIG.  4    is a diagram showing a state in which an input picture is divided into tree blocks. 
         FIG.  5    is an explanatory diagram showing Z-scan. 
         FIG.  6 A  is a diagram showing a divided shape of a block. 
         FIG.  6 B  is a diagram showing a divided shape of a block. 
         FIG.  6 C  is a diagram showing a divided shape of a block. 
         FIG.  6 D  is a diagram showing a divided shape of a block. 
         FIG.  6 E  is a diagram showing a divided shape of a block. 
         FIG.  7    is an explanatory flowchart showing an operation of dividing a block into four parts. 
         FIG.  8    is an explanatory flowchart showing an operation of dividing a block into two or three parts. 
         FIG.  9    is syntax for expressing a shape of block split. 
         FIG.  10 A  is an explanatory diagram showing intra prediction. 
         FIG.  10 B  is an explanatory diagram showing intra prediction. 
         FIG.  11    is an explanatory diagram showing a reference block of inter prediction. 
         FIG.  12    is syntax for expressing a coding block prediction mode. 
         FIG.  13    is a diagram showing correspondence between a syntax element related to inter prediction and a mode. 
         FIG.  14    is an explanatory diagram showing affine motion compensation of two control points. 
         FIG.  15    is an explanatory diagram showing affine motion compensation of three control points. 
         FIG.  16    is a block diagram of a detailed configuration of an inter prediction unit  102  of  FIG.  1   . 
         FIG.  17    is a block diagram of a detailed configuration of a normal motion vector predictor mode derivation unit  301  of  FIG.  16   . 
         FIG.  18    is a block diagram of a detailed configuration of a normal merge mode derivation unit  302  of  FIG.  16   . 
         FIG.  19    is an explanatory flowchart showing a normal motion vector predictor mode derivation process of the normal motion vector predictor mode derivation unit  301  of  FIG.  16   . 
         FIG.  20    is a flowchart showing a processing procedure of the normal motion vector predictor mode derivation process. 
         FIG.  21    is an explanatory flowchart showing a processing procedure of a normal merge mode derivation process. 
         FIG.  22    is a block diagram of a detailed configuration of an inter prediction unit  203  of  FIG.  2   . 
         FIG.  23    is a block diagram of a detailed configuration of a normal motion vector predictor mode derivation unit  401  of  FIG.  22   . 
         FIG.  24    is a block diagram of a detailed configuration of a normal merge mode derivation unit  402  of  FIG.  22   . 
         FIG.  25    is an explanatory flowchart showing a normal motion vector predictor mode derivation process of the normal motion vector predictor mode derivation unit  401  of  FIG.  22   . 
         FIG.  26    is an explanatory diagram showing a processing procedure of initializing/updating a history-based motion vector predictor candidate list. 
         FIG.  27    is a flowchart of an identical element checking processing procedure in the processing procedure of initializing/updating a history-based motion vector predictor candidate list. 
         FIG.  28    is a flowchart of an element shift processing procedure in the processing procedure of initializing/updating a history-based motion vector predictor candidate list. 
         FIG.  29    is an explanatory flowchart showing a history-based motion vector predictor candidate derivation processing procedure. 
         FIG.  30    is an explanatory flowchart showing a history-based merging candidate derivation processing procedure. 
         FIG.  31 A  is an explanatory diagram showing an example of a history-based motion vector predictor candidate list update process. 
         FIG.  31 B  is an explanatory diagram showing an example of a history-based motion vector predictor candidate list update process. 
         FIG.  31 C  is an explanatory diagram showing an example of a history-based motion vector predictor candidate list update process. 
         FIG.  32    is an explanatory diagram showing motion-compensated prediction when a clock time of a reference picture (RefL0Pic) of L0 is earlier than that of a target picture (CurPic) as L0-prediction. 
         FIG.  33    is an explanatory diagram showing motion-compensated prediction when a clock time of a reference picture of L0-prediction is later than that of a target picture as L0-prediction. 
         FIG.  34    is an explanatory diagram showing a prediction direction of motion-compensated prediction when a clock time of a reference picture of L0-prediction is earlier than that of a target picture and a clock time of a reference picture of L1-prediction is later than that of a target picture as bi-prediction. 
         FIG.  35    is an explanatory diagram showing a prediction direction of motion-compensated prediction when a clock time of a reference picture of L0-prediction and a clock time of a reference picture of L1-prediction are earlier than that of a target picture as bi-prediction. 
         FIG.  36    is an explanatory diagram showing a prediction direction of motion-compensated prediction when a clock time of a reference picture of L0-prediction and a clock time of a reference picture of L1-prediction are later than that of a target picture as bi-prediction. 
         FIG.  37    is an explanatory diagram showing an example of a hardware configuration of a coding/decoding device according to an embodiment of the present invention. 
         FIG.  38    is a table showing an example of history-based motion vector predictor candidates added according to initialization of a history-based motion vector predictor candidate list. 
         FIG.  39    is a table showing another example of history-based motion vector predictor candidates added according to initialization of a history-based motion vector predictor candidate list. 
         FIG.  40    is a table showing another example of history-based motion vector predictor candidates added according to initialization of a history-based motion vector predictor candidate list. 
         FIG.  41    is a flowchart for describing a history-based motion vector predictor candidate derivation processing procedure of modified example 2 of the first embodiment. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Technology and technical terms used in the embodiment will be defined. 
     &lt;Tree Block&gt; 
     In the embodiment, a coding/decoding target picture is equally divided into units of a predetermined size. This unit is defined as a tree block. Although the size of the tree block is 128×128 samples in  FIG.  4   , the size of the tree block is not limited thereto and any size may be set. The tree block of a target (corresponding to a coding target in a coding process or a decoding target in the decoding process) is switched in a raster scan order, i.e., from left to right and from top to bottom. The inside of each tree block can be further recursively divided. A block which is a coding/decoding target after the tree block is recursively divided is defined as a coding block. Also, a tree block and a coding block are collectively defined as blocks. Efficient coding is enabled by performing appropriate block split. The tree block size may be a fixed value predetermined by the coding device and the decoding device or the tree block size determined by the coding device may be configured to be transmitted to the decoding device. Here, a maximum size of the tree block is 128×128 samples and a minimum size of the tree block is 16×16 samples. Also, a maximum size of the coding block is 64×64 samples and a minimum size of the coding block is 4×4 samples. 
     &lt;Prediction Mode&gt; 
     Switching is performed between intra prediction (MODE_INTRA) in which prediction is performed from a processed picture signal of the target picture and inter prediction (MODE_INTER) in which prediction is performed from a picture signal of a processed picture in units of target coding blocks. 
     The processed picture is used for a picture, a picture signal, a tree block, a block, a coding block, and the like obtained by decoding a signal completely coded in the coding process and is used for a picture, a picture signal, a tree block, a block, a coding block, and the like obtained by completing decoding in a decoding process. 
     The mode in which the intra prediction (MODE_INTRA) and the inter prediction (MODE_INTER) are identified is defined as the prediction mode (PredMode). The prediction mode (PredMode) has intra prediction (MODE_INTRA) or inter prediction (MODE_INTER) as a value. 
     &lt;Inter Prediction&gt; 
     In inter prediction in which prediction is performed from a picture signal of a processed picture, a plurality of processed pictures can be used as reference pictures. In order to manage a plurality of reference pictures, two types of reference lists of L0 (reference list 0) and L1 (reference list 1) are defined and a reference picture is identified using each reference index. In a P slice, L0-prediction (Pred_L0) can be used. In a B slice, L0-prediction (Pred_L0), L1-rediction (Pred_L1), and bi-prediction (Pred_BI) can be used. The L0-prediction (Pred_L0) is inter prediction that refers to a reference picture managed in L0 and the L1-prediction (Pred_L1) is inter prediction that refers to a reference picture managed in L1. The bi-prediction (Pred_BI) is inter prediction in which both the L0-prediction and the L1-prediction are performed and one reference picture managed in each of L0 and L1 is referred to. Information for identifying the L0-prediction, the L1-prediction, and the bi-prediction is defined as an inter prediction mode. In the subsequent processing, constants and variables with the subscript LX in the output are assumed to be processed for each of L0 and L1. 
     &lt;Motion Vector Predictor Mode&gt; 
     The motion vector predictor mode is a mode for transmitting an index for identifying a motion vector predictor, a motion vector difference, an inter prediction mode, and a reference index and determining inter prediction information of a target block. The motion vector predictor is derived from a motion vector predictor candidate derived from a processed block neighboring the target block or a block located at the same position as or in the vicinity of (near) the target block among blocks belonging to the processed picture and an index for identifying a motion vector predictor. 
     &lt;Merge Mode&gt; 
     The merge mode is a mode in which inter prediction information of a target block is derived from inter prediction information of a processed block neighboring a target block or a block located at the same position as or in the vicinity of (near) the target block among blocks belonging to the processed picture without transmitting a motion vector difference and a reference index. 
     The processed block neighboring the target block and the inter prediction information of the processed block are defined as spatial merging candidates. The block located at the same position as or in the vicinity of (near) the target block among the blocks belonging to the processed picture and inter prediction information derived from the inter prediction information of the block are defined as temporal merging candidates. Each merging candidate is registered in a merging candidate list, and a merging candidate used for prediction of a target block is identified by a merge index. 
     &lt;Neighboring Block&gt; 
       FIG.  11    is an explanatory diagram showing a reference block that is referred to in deriving inter prediction information in the motion vector predictor mode and the merge mode. A0, A1, A2, B0, B1, B2, and B3 are processed blocks neighboring the target block. T0 is a block located at the same position as or in the vicinity of (near) the target block in the target picture among blocks belonging to the processed picture. 
     A1 and A2 are blocks located on the left side of the target coding block and neighboring the target coding block. B1 and B3 are blocks located on the upper side of the target coding block and neighboring the target coding block. A0, B0, and B2 are blocks located at the lower left, upper right, and upper left of the target coding block, respectively. 
     Details of how to handle neighboring blocks in the motion vector predictor mode and the merge mode will be described below. 
     &lt;Affine Motion Compensation&gt; 
     The affine motion compensation is a process of performing motion compensation by dividing a coding block into subblocks of a predetermined unit and individually determining a motion vector for each of the subblocks into which the coding block is divided. The motion vector of each subblock is derived on the basis of one or more control points derived from inter prediction information of a processed block neighboring the target block or a block located at the same position as or in the vicinity of (near) the target block among blocks belonging to the processed picture. Although the size of the subblock is 4×4 samples in the present embodiment, the size of the subblock is not limited thereto and a motion vector may be derived in units of samples. 
     An example of affine motion compensation in the case of two control points is shown in  FIG.  14   . In this case, the two control points have two parameters of a horizontal direction component and a vertical direction component. Thus, an affine transform in the case of two control points is referred to as a four-parameter affine transform. CP1 and CP2 of  FIG.  14    are control points. 
     An example of affine motion compensation in the case of three control points is shown in  FIG.  15   . In this case, the three control points have two parameters of a horizontal direction component and a vertical direction component. Thus, an affine transform in the case of three control points is referred to as a six-parameter affine transform. CP1, CP2, and CP3 of  FIG.  15    are control points. 
     Affine motion compensation can be used in both the motion vector predictor mode and the merge mode. A mode in which the affine motion compensation is applied in the motion vector predictor mode is defined as a subblock-based motion vector predictor mode, and a mode in which the affine motion compensation is applied in the merge mode is defined as a subblock-based merge mode. 
     &lt;Inter Prediction Syntax&gt; 
     The syntax related to inter prediction will be described using  FIGS.  12  and  13   . 
     The flag merge_flag in  FIG.  12    indicates whether the target coding block is set to the merge mode or the motion vector predictor mode. The flag merge_affine_flag indicates whether or not the subblock-based merge mode is applied to the target coding block of the merge mode. The flag inter_affine_flag indicates whether or not to apply the subblock-based motion vector predictor mode to the target coding block of the motion vector predictor mode. The flag cu_affine_type_flag is used to determine the number of control points in the subblock-based motion vector predictor mode. 
       FIG.  13    shows a value of each syntax element and a prediction method corresponding thereto. The normal merge mode corresponds to merge_flag=1 and merge_affine_flag=0 and is not a subblock-based merge mode. The subblock-based merge mode corresponds to merge_flag=1 and merge_affine_flag=1. The normal motion vector predictor mode corresponds to merge_flag=0 and inter_affine_flag=0. The normal motion vector predictor mode is a motion vector predictor merge mode that is not a subblock-based motion vector predictor mode. The subblock-based motion vector predictor mode corresponds to merge_flag=0 and inter_affine_flag=1. When merge_flag=0 and inter_affine_flag=1, cu_affine_type_flag is further transmitted to determine the number of control points. 
     &lt;POC&gt; 
     A picture order count (POC) is a variable associated with a picture to be coded and is set to a value that is incremented by 1 according to an output order of pictures. According to the POC value, it is possible to discriminate whether pictures are the same, to discriminate an anteroposterior relationship between pictures in the output order, or to derive the distance between pictures. For example, if the POCs of two pictures have the same value, it can be determined that they are the same picture. When the POCs of two pictures have different values, it can be determined that the picture with the smaller POC value is the picture to be output first. A difference between the POCs of the two pictures indicates an inter-picture distance in a time axis direction. 
     First Embodiment 
     The picture coding device  100  and the picture decoding device  200  according to the first embodiment of the present invention will be described. 
       FIG.  1    is a block diagram of a picture coding device  100  according to the first embodiment. The picture coding device  100  according to the embodiment includes a block split unit  101 , an inter prediction unit  102 , an intra prediction unit  103 , a decoded picture memory  104 , a prediction method determination unit  105 , a residual generation unit  106 , an orthogonal transform/quantization unit  107 , a bit strings coding unit  108 , an inverse quantization/inverse orthogonal transform unit  109 , a decoding picture signal superimposition unit  110 , and a coding information storage memory  111 . 
     The block split unit  101  recursively divides the input picture to generate a coding block. The block split unit  101  includes a quad split unit that divides a split target block in the horizontal direction and the vertical direction and a binary-ternary split unit that divides the split target block in either the horizontal direction or the vertical direction. The block split unit  101  sets the generated coding block as a target coding block and supplies a picture signal of the target coding block to the inter prediction unit  102 , the intra prediction unit  103 , and the residual generation unit  106 . Also, the block split unit  101  supplies information indicating a determined recursive split structure to the bit strings coding unit  108 . The detailed operation of the block split unit  101  will be described below. 
     The inter prediction unit  102  performs inter prediction of the target coding block. The inter prediction unit  102  derives a plurality of inter prediction information candidates from the inter prediction information stored in the coding information storage memory  111  and the decoded picture signal stored in the decoded picture memory  104 , selects a suitable inter prediction mode from the plurality of derived candidates, and supplies the selected inter prediction mode and a predicted picture signal according to the selected inter prediction mode to the prediction method determination unit  105 . A detailed configuration and operation of the inter prediction unit  102  will be described below. 
     The intra prediction unit  103  performs intra prediction of the target coding block. The intra prediction unit  103  refers to a decoded picture signal stored in the decoded picture memory  104  as a reference sample and generates a predicted picture signal according to intra prediction based on coding information such as an intra prediction mode stored in the coding information storage memory  111 . In the intra prediction, the intra prediction unit  103  selects a suitable intra prediction mode from among a plurality of intra prediction modes and supplies a selected intra prediction mode and a predicted picture signal according to the selected intra prediction mode to the prediction method determination unit  105 . 
     Examples of intra prediction are shown in  FIGS.  10 A and  10 B .  FIG.  10 A  shows the correspondence between a prediction direction of intra prediction and an intra prediction mode number. For example, in intra prediction mode 50, an intra prediction picture is generated by copying reference samples in the vertical direction. Intra prediction mode 1 is a DC mode and is a mode in which all sample values of the target block are an average value of reference samples. Intra prediction mode 0 is a planar mode and is a mode for creating a two-dimensional intra prediction picture from reference samples in the vertical and horizontal directions.  FIG.  10 B  is an example in which an intra prediction picture is generated in the case of intra prediction mode 40. The intra prediction unit  103  copies the value of the reference sample in the direction indicated by the intra prediction mode with respect to each sample of the target block. When the reference sample of the intra prediction mode is not at an integer position, the intra prediction unit  103  determines a reference sample value according to an interpolation from reference sample values of neighboring integer positions. 
     The decoded picture memory  104  stores a decoded picture generated by the decoding picture signal superimposition unit  110 . The decoded picture memory  104  supplies the stored decoded picture to the inter prediction unit  102  and the intra prediction unit  103 . 
     The prediction method determination unit  105  determines the optimum prediction mode by evaluating each of intra prediction and inter prediction using coding information, a residual code amount, an amount of distortion between a predicted picture signal and a target picture signal, and the like. In the case of intra prediction, the prediction method determination unit  105  supplies intra prediction information such as an intra prediction mode as the coding information to the bit strings coding unit  108 . In the case of the inter prediction merge mode, the prediction method determination unit  105  supplies inter prediction information such as a merge index and information indicating whether or not the mode is a subblock-based merge mode (a subblock-based merge flag) as the coding information to the bit strings coding unit  108 . In the case of the motion vector predictor mode of inter prediction, the prediction method determination unit  105  supplies inter prediction information such as the inter prediction mode, a motion vector predictor index, reference indices of L0 and L1, a motion vector difference, and information indicating whether or not the mode is a subblock-based motion vector predictor mode (a subblock-based motion vector predictor flag) as the coding information to the bit strings coding unit  108 . Further, the prediction method determination unit  105  supplies the determined coding information to the coding information storage memory  111 . The prediction method determination unit  105  supplies a predicted picture signal to the residual generation unit  106  and the decoding picture signal superimposition unit  110 . 
     The residual generation unit  106  generates a residual by subtracting the predicted picture signal from the target picture signal and supplies the residual to the orthogonal transform/quantization unit  107 . 
     The orthogonal transform/quantization unit  107  performs an orthogonal transform and quantization on the residual in accordance with the quantization parameter to generate an orthogonally transformed/quantized residual and supplies the generated residual to the bit strings coding unit  108  and the inverse quantization/inverse orthogonal transform unit  109 . 
     The bit strings coding unit  108  codes coding information according to the prediction method determined by the prediction method determination unit  105  for each coding block in addition to information of units of sequences, pictures, slices, and coding blocks. Specifically, the bit strings coding unit  108  codes the prediction mode PredMode for each coding block. When the prediction mode is inter prediction (MODE_INTER), the bit strings coding unit  108  codes coding information (inter prediction information) such as a flag for discriminating whether or not the mode is a merge mode, a subblock-based merge flag, a merge index when the mode is the merge mode, an inter prediction mode when the mode is not the merge mode, a motion vector predictor index, information about a motion vector difference, and a subblock-based motion vector predictor flag in accordance with specified syntax (a bit strings syntax rule) and generates first bit strings. When the prediction mode is intra prediction (MODE_INTRA), coding information (intra prediction information) such as the intra prediction mode is coded in accordance with specified syntax (a bit strings syntax rule) and first bit strings is generated. Also, the bit strings coding unit  108  entropy-codes the orthogonally transformed and quantized residual in accordance with specified syntax to generate second bit strings. The bit strings coding unit  108  multiplexes the first bit strings and the second bit strings in accordance with specified syntax and outputs a bitstream. 
     The inverse quantization/inverse orthogonal transform unit  109  calculates the residual by performing inverse quantization and an inverse orthogonal transform on the orthogonally transformed/quantized residual supplied from the orthogonal transform/quantization unit  107  and supplies the calculated residual to the decoding picture signal superimposition unit  110 . 
     The decoding picture signal superimposition unit  110  superimposes the predicted picture signal according to the determination of the prediction method determination unit  105  and the residual inversely quantized and inversely orthogonally transformed by the inverse quantization/inverse orthogonal transform unit  109  to generate a decoded picture and stores the decoded picture in the decoded picture memory  104 . Also, the decoding picture signal superimposition unit  110  may store the decoded picture in the decoded picture memory  104  after performing a filtering process of reducing distortion such as block distortion due to coding on the decoded picture. 
     The coding information storage memory  111  stores coding information such as a prediction mode (inter prediction or intra prediction) determined by the prediction method determination unit  105 . In the case of the inter prediction, the coding information stored in the coding information storage memory  111  includes inter prediction information such as a determined motion vector, reference indices of reference lists L0 and L1, and a history-based motion vector predictor candidate list. Also, in the case of the inter prediction merge mode, the coding information stored in the coding information storage memory  111  includes inter prediction information such as a merge index and information indicating whether or not the mode is the subblock-based merge mode (a subblock-based merge flag) in addition to the above-described information. Also, in the case of the motion vector predictor mode of the inter prediction, the coding information stored in the coding information storage memory  111  includes inter prediction information such as an inter prediction mode, a motion vector predictor index, a motion vector difference, and information indicating whether or not the mode is the subblock-based motion vector predictor mode (a subblock-based motion vector predictor flag) in addition to the above-described information. In the case of the intra prediction, the coding information stored in the coding information storage memory  111  includes intra prediction information such as the determined intra prediction mode. 
       FIG.  2    is a block diagram showing a configuration of the picture decoding device according to the embodiment of the present invention corresponding to the picture coding device of  FIG.  1   . The picture decoding device according to the embodiment includes a bit strings decoding unit  201 , a block split unit  202 , an inter prediction unit  203 , an intra prediction unit  204 , a coding information storage memory  205 , an inverse quantization/inverse orthogonal transform unit  206 , a decoding picture signal superimposition unit  207 , and a decoded picture memory  208 . 
     Because a decoding process of the picture decoding device of  FIG.  2    corresponds to a decoding process provided in the picture coding device of  FIG.  1   , the components of the coding information storage memory  205 , the inverse quantization/inverse orthogonal transform unit  206 , the decoding picture signal superimposition unit  207 , and the decoded picture memory  208  of  FIG.  2    have functions corresponding to the components of the coding information storage memory  111 , the inverse quantization/inverse orthogonal transform unit  109 , the decoding picture signal superimposition unit  110 , and the decoded picture memory  104  of the picture coding device of  FIG.  1   . 
     A bitstream supplied to the bit strings decoding unit  201  is separated in accordance with a specified syntax rule. The bit strings decoding unit  201  decodes a separated first bit string, and obtains information of units of sequences, pictures, slices, coding blocks and coding information of units of coding blocks. Specifically, the bit strings decoding unit  201  decodes a prediction mode PredMode for discriminating inter prediction (MODE_INTER) or intra prediction (MODE_INTRA) in units of coding blocks. When the prediction mode is inter prediction (MODE_INTER), the bit strings decoding unit  201  decodes coding information (inter prediction information) about a flag for discriminating whether or not the mode is a merge mode, a merge index when the mode is the merge mode, a subblock-based merge flag, an inter prediction mode when the mode is a motion vector predictor mode, a motion vector predictor index, a motion vector difference, a subblock-based motion vector predictor flag, and the like in accordance with specified syntax and supplies the coding information (the inter prediction information) to the coding information storage memory  205  via the inter prediction unit  203  and the block split unit  202 . When the prediction mode is intra prediction (MODE_INTRA), coding information (intra prediction information) such as the intra prediction mode is decoded in accordance with specified syntax and the coding information (the intra prediction information) is supplied to the coding information storage memory  205  via the inter prediction unit  203  or the intra prediction unit  204  and the block split unit  202 . The bit strings decoding unit  201  decodes separated second bit strings to calculate an orthogonally transformed/quantized residual and supplies the orthogonally transformed/quantized residual to the inverse quantization/inverse orthogonal transform unit  206 . 
     When the prediction mode PredMode of the target coding block is the motion vector predictor mode in the inter prediction (MODE_INTER), the inter prediction unit  203  derives a plurality of motion vector predictor candidates using coding information of the previously decoded picture signal stored in the coding information storage memory  205  and registers the plurality of derived motion vector predictor candidates in the motion vector predictor candidate list to be described below. The inter prediction unit  203  selects a motion vector predictor according to the motion vector predictor index decoded and supplied by the bit strings decoding unit  201  from among the plurality of motion vector predictor candidates registered in the motion vector predictor candidate list, calculates a motion vector from the motion vector difference decoded by the bit strings decoding unit  201  and the selected motion vector predictor, and stores the calculated motion vector in the coding information storage memory  205  together with other coding information. The coding information of the coding block supplied/stored here is a prediction mode PredMode, flags predFlagL0[xP][yP] and predFlagL1[xP][yP] indicating whether or not to use L0-prediction and L1-prediction, reference indices refIdxL0[xP][yP] and refIdxL1[xP][yP] of L0 and L1, motion vectors mvL0[xP][yP] and mvL1[xP][yP] of L0 and L1, and the like. Here, xP and yP are indices indicating a position of an upper left sample of the coding block within the picture. When the prediction mode PredMode is inter prediction (MODE_INTER) and the inter prediction mode is L0-prediction (Pred_L0), the flag predFlagL0 indicating whether or not to use L0-prediction is 1, and the flag predFlagL1 indicating whether or not to use L1-prediction is 0. When the inter prediction mode is L1-prediction (Pred_L1), the flag predFlagL0 indicating whether or not to use L0-prediction is 0 and the flag predFlagL1 indicating whether or not to use L1-prediction is 1. When the inter prediction mode is bi-prediction (Pred_BI), both the flag predFlagL0 indicating whether or not to use L0-prediction and the flag predFlagL1 indicating whether or not to use L1-prediction are 1. Further, merging candidates are derived in the merge mode in which the prediction mode PredMode of the coding block of the target is inter prediction (MODE_INTER). A plurality of merging candidates are derived using the coding information of the previously decoded coding blocks stored in the coding information storage memory  205  and are registered in a merging candidate list to be described below, a merging candidate corresponding to a merge index to be decoded and supplied by the bit strings decoding unit  201  is selected from among the plurality of merging candidates registered in the merging candidate list, and inter prediction information such as the flags predFlagL0[xP][yP] and predFlagL1[xP][yP] indicating whether or not to use L0-prediction and L1-prediction of the selected merging candidate, the reference indices refIdxL0[xP][yP] and refIdxL1[xP][yP] of L0 and L1, and the motion vectors mvL0[xP][yP] and mvL1[xP][yP] of L0 and L1 is stored in the coding information storage memory  205 . Here, xP and yP are indices indicating the position of the upper left sample of the coding block in the picture. A detailed configuration and operation of the inter prediction unit  203  will be described below. 
     The intra prediction unit  204  performs intra prediction when the prediction mode PredMode of the coding block of the target is intra prediction (MODE_INTRA). The coding information decoded by the bit strings decoding unit  201  includes an intra prediction mode. The intra prediction unit  204  generates a predicted picture signal according to intra prediction from the decoded picture signal stored in the decoded picture memory  208  in accordance with the intra prediction mode included in the coding information decoded by the bit strings decoding unit  201  and supplies the generated predicted picture signal to the decoding picture signal superimposition unit  207 . Because the intra prediction unit  204  corresponds to the intra prediction unit  103  of the picture coding device  100 , a process similar to that of the intra prediction unit  103  is performed. 
     The inverse quantization/inverse orthogonal transform unit  206  performs an inverse orthogonal transform and inverse quantization on the orthogonally transformed/quantized residual decoded by the bit strings decoding unit  201  and obtains the inversely orthogonally transformed/inversely quantized residual. 
     The decoding picture signal superimposition unit  207  decodes a decoding picture signal by superimposing a predicted picture signal inter-predicted by the inter prediction unit  203  or a predicted picture signal intra-predicted by the intra prediction unit  204  and the residual inversely orthogonally transformed/inversely quantized by the inverse quantization/inverse orthogonal transform unit  206  and stores the decoded decoding picture signal in the decoded picture memory  208 . At the time of storage in the decoded picture memory  208 , the decoding picture signal superimposition unit  207  may store a decoded picture in the decoded picture memory  208  after a filtering process of reducing block distortion or the like due to coding is performed on the decoded picture. 
     Next, an operation of the block split unit  101  in the picture coding device  100  will be described.  FIG.  3    is a flowchart showing an operation of dividing a picture into tree blocks and further dividing each tree block. First, an input picture is divided into tree blocks having a predetermined size (step S 1001 ). Each tree block is scanned in a predetermined order, i.e., raster scan order (step S 1002 ), and the inside of the tree block of a target is divided (step S 1003 ). 
       FIG.  7    is a flowchart showing a detailed operation of a split process of step S 1003 . First, it is determined whether or not a target block will be divided into four parts (step S 1101 ). 
     When it is determined that the target block will be divided into four parts, the target block is divided into four parts (step S 1102 ). Each block obtained by dividing the target block is scanned in a Z-scan order, i.e., in the order of upper left, upper right, lower left, and lower right (step S 1103 ).  FIG.  5    shows an example of the Z-scan order, and reference numeral  601  of  FIG.  6 A  shows an example in which the target block is divided into four parts. Numbers 0 to 3 of reference numeral  601  of  FIG.  6 A  indicate the order of processing. Then, the split process of  FIG.  7    is recursively executed for each block from the division in step S 1101  (step S 1104 ). 
     When it is determined that the target block will not be divided into four parts, a binary-ternary split is performed (step S 1105 ). 
       FIG.  8    is a flowchart showing the detailed operation of a binary-ternary split process of step S 1105 . First, it is determined whether or not a target block will be divided into two or three parts, i.e., whether or not either a binary or ternary split will be performed (step S 1201 ). 
     When it is not determined that the target block will be divided into two or three parts, i.e., when it is determined that the target block will not be divided, the split ends (step S 1211 ). That is, a recursive split process is not further performed on blocks divided according to the recursive split process. 
     When it is determined that the target block will be divided into two or three parts, it is further determined whether or not the target block will be divided into two parts (step S 1202 ). 
     When it is determined that the target block will be divided into two parts, it is determined whether or not the target block will be divided into upper and lower parts (in a vertical direction) (step S 1203 ). On the basis of a determination result, the target block is divided into two parts that are upper and lower parts (in the vertical direction) (step S 1204 ) or the target block is divided into two parts that are left and right parts (in a horizontal direction) (step S 1205 ). As a result of step S 1204 , the target block is divided into two parts that are upper and lower parts (in the vertical direction) as indicated by reference numeral  602  in  FIG.  6 B . As a result of step S 1205 , the target block is divided into two parts that are left and right parts (in the horizontal direction) as indicated by reference numeral  604  of  FIG.  6 D . 
     When it is not determined that the target block will be divided into two parts, i.e., when it is determined that the target block will be divided into three parts, in step S 1202 , it is determined whether or not the target block will be divided into upper, middle, and lower parts (in the vertical direction) (step S 1206 ). On the basis of a determination result, the target block is divided into three parts that are upper, middle and lower parts (in the vertical direction) (step S 1207 ) or the target block is divided into three parts that are left, middle, and right parts (in the horizontal direction) (step S 1208 ). As a result of step S 1207 , the target block is divided into three parts that are upper, middle, and lower parts (in the vertical direction) as indicated by reference numeral  603  of  FIG.  6 C . As a result of step S 1208 , the target block is divided into three parts that are left, middle, and right parts (in the horizontal direction) as indicated by reference numeral  605  of  FIG.  6 E . 
     After any one of steps S 1204 , S 1205 , S 1207 , and S 1208  is executed, each of blocks into which the target block is divided is scanned in order from left to right and from top to bottom (step S 1209 ). Numbers 0 to 2 of reference numerals  602  to  605  of  FIGS.  6 B to  6 E  indicate the order of processing. For each of the blocks into which the target block is divided, a binary-ternary split process of  FIG.  8    is recursively executed (step S 1210 ). 
     The recursive block split described here may limit the necessity of a split according to the number of splits or a size of the target block or the like. Information that limits the necessity of a split may be implemented by a configuration in which information is not delivered by making an agreement between the coding device and the decoding device in advance or implemented by a configuration in which the coding device determines information that limits the necessity of a split, records the information in a bit string, and delivers the information to the decoding device. 
     When a certain block is divided, a block before the split is referred to as a parent block and each block after the split is referred to as a child block. 
     Next, an operation of the block split unit  202  in the picture decoding device  200  will be described. The block split unit  202  divides the tree block according to a processing procedure similar to that of the block split unit  101  of the picture coding device  100 . However, there is a difference in that the block split unit  101  of the picture coding device  100  applies an optimization technique such as estimation of an optimum shape based on picture recognition or distortion rate optimization to determine an optimum block split shape, whereas the block split unit  202  of the picture decoding device  200  determines a block split shape by decoding the block split information recorded in the bit string. 
     Syntax (a bit strings syntax rule) related to a block split according to the first embodiment is shown in  FIG.  9   . coding_quadtree( ) represents syntax related to a quad split process on the block. multi_type_tree( ) represents syntax related to a binary or ternary split process on a block. qt_split is a flag indicating whether or not a block is divided into four parts. qt_split=1 when the block is divided into four parts and qt_split=0 when the block is not divided into four parts. When the block is divided into four parts (qt_split=1), a quad split process is recursively performed on blocks, each of which has been divided into four parts (coding_quadtree(0), coding_quadtree(1), coding_quadtree(2), coding_quadtree(3), and arguments 0 to 3 correspond to numbers indicated by reference numeral  601  of  FIG.  6 A ). When the block is not divided into four parts (qt_split=0), the subsequent split is determined according to multi_type_tree( ). mtt_split is a flag indicating whether or not a split is further performed. When a split is further performed (mtt_split=1), mtt_split_vertical which is a flag indicating whether the block is divided vertically or horizontally and mtt_split_binary which is a flag for determining whether a binary or ternary split is performed are transmitted. mtt_split_vertical=1 indicates a split in the vertical direction and mtt_split_vertical=0 indicates a split in the horizontal direction. mtt_split_binary=1 indicates a binary split and mtt_split_binary=0 indicates a ternary split. In the binary split (mtt_split_binary=1), a split process is recursively performed on blocks, each of which is divided into two parts (multi_type_tree(0), multi_type_tree(1), and arguments 0 to 1 correspond to numbers indicated by reference numeral  602  or  604  in  FIGS.  6 B to  6 D ). In the case of the ternary split (mtt_split_binary=0), a split process is recursively performed on blocks, each of which is divided into three parts (multi_type_tree(0), multi_type_tree(1), multi_type_tree(2), and arguments 0 to 2 correspond to numbers indicated by reference numeral  603  of  FIG.  6 B  or numbers indicated by reference numeral  605  of  FIG.  6 E ). Until mtt_split=0 is reached, a hierarchical block split is performed by recursively calling multi_type_tree. 
     &lt;Inter Prediction&gt; 
     An inter prediction method according to the embodiment is performed in the inter prediction unit  102  of the picture coding device of  FIG.  1    and the inter prediction unit  203  of the picture decoding device of  FIG.  2   . 
     The inter prediction method according to the embodiment will be described with reference to the drawings. The inter prediction method is performed in both coding and decoding processes in units of coding blocks. 
     &lt;Description of Inter Prediction Unit  102  of Coding Side&gt; 
       FIG.  16    is a diagram showing a detailed configuration of the inter prediction unit  102  of the picture coding device in  FIG.  1   . The normal motion vector predictor mode derivation unit  301  derives a plurality of normal motion vector predictor candidates to select a motion vector predictor, and calculates a motion vector difference between the selected motion vector predictor and a detected motion vector. A detected inter prediction mode, reference index, and motion vector and the calculated motion vector difference become inter prediction information of the normal motion vector predictor mode. This inter prediction information is supplied to the inter prediction mode determination unit  305 . A detailed configuration and a process of the normal motion vector predictor mode derivation unit  301  will be described below. 
     The normal merge mode derivation unit  302  derives a plurality of normal merging candidates to select a normal merging candidate and obtains inter prediction information of the normal merge mode. This inter prediction information is supplied to the inter prediction mode determination unit  305 . A detailed configuration and a process of the normal merge mode derivation unit  302  will be described below. 
     A subblock-based motion vector predictor mode derivation unit  303  derives a plurality of subblock-based motion vector predictor candidates to select a subblock-based motion vector predictor and calculates a motion vector difference between the selected subblock-based motion vector predictor and the detected motion vector. A detected inter prediction mode, reference index, and motion vector and the calculated motion vector difference become the inter prediction information of the subblock-based motion vector predictor mode. This inter prediction information is supplied to the inter prediction mode determination unit  305 . 
     The subblock-based merge mode derivation unit  304  derives a plurality of subblock-based merging candidates to select a subblock-based merging candidate, and obtains inter prediction information of the subblock-based merge mode. This inter prediction information is supplied to the inter prediction mode determination unit  305 . 
     The inter prediction mode determination unit  305  determines inter prediction information on the basis of the inter prediction information supplied from the normal motion vector predictor mode derivation unit  301 , the normal merge mode derivation unit  302 , the subblock-based motion vector predictor mode derivation unit  303 , and the subblock-based merge mode derivation unit  304 . Inter prediction information according to the determination result is supplied from the inter prediction mode determination unit  305  to the motion-compensated prediction unit  306 . 
     The motion-compensated prediction unit  306  performs inter prediction on the reference picture signal stored in the decoded picture memory  104  on the basis of the determined inter prediction information. A detailed configuration and a process of the motion-compensated prediction unit  306  will be described below. 
     &lt;Description of Inter Prediction Unit  203  of Decoding Side&gt; 
       FIG.  22    is a diagram showing a detailed configuration of the inter prediction unit  203  of the picture decoding device of  FIG.  2   . 
     A normal motion vector predictor mode derivation unit  401  derives a plurality of normal motion vector predictor candidates to select a motion vector predictor, calculates a sum of the selected motion vector predictor and the decoded motion vector difference, and sets the calculated sum as a motion vector. A decoded inter prediction mode, reference index, and motion vector become inter prediction information of the normal motion vector predictor mode. This inter prediction information is supplied to a motion-compensated prediction unit  406  via the switch  408 . A detailed configuration and a process of the normal motion vector predictor mode derivation unit  401  will be described below. 
     A normal merge mode derivation unit  402  derives a plurality of normal merging candidates to select a normal merging candidate and obtains inter prediction information of the normal merge mode. This inter prediction information is supplied to the motion-compensated prediction unit  406  via the switch  408 . A detailed configuration and a process of the normal merge mode derivation unit  402  will be described below. 
     A subblock-based motion vector predictor mode derivation unit  403  derives a plurality of subblock-based motion vector predictor candidates to select a subblock-based motion vector predictor, calculates a sum of the selected subblock-based motion vector predictor and the decoded motion vector difference, and sets the calculated sum as a motion vector. A decoded inter prediction mode, reference index, and motion vector become the inter prediction information of the subblock-based motion vector predictor mode. This inter prediction information is supplied to the motion-compensated prediction unit  406  via the switch  408 . 
     A subblock-based merge mode derivation unit  404  derives a plurality of subblock-based merging candidates to select a subblock-based merging candidate and obtains inter prediction information of the subblock-based merge mode. This inter prediction information is supplied to the motion-compensated prediction unit  406  via the switch  408 . 
     The motion-compensated prediction unit  406  performs inter prediction on the reference picture signal stored in the decoded picture memory  208  on the basis of the determined inter prediction information. A detailed configuration and a process of the motion-compensated prediction unit  406  are similar to those of the motion-compensated prediction unit  306  of the coding side. 
     &lt;Normal Motion Vector Predictor Mode Derivation Unit (Normal AMVP)&gt; 
     The normal motion vector predictor mode derivation unit  301  of  FIG.  17    includes a spatial motion vector predictor candidate derivation unit  321 , a temporal motion vector predictor candidate derivation unit  322 , a history-based motion vector predictor candidate derivation unit  323 , a motion vector predictor candidate replenishment unit  325 , a normal motion vector detection unit  326 , a motion vector predictor candidate selection unit  327 , and a motion vector subtraction unit  328 . 
     The normal motion vector predictor mode derivation unit  401  of  FIG.  23    includes a spatial motion vector predictor candidate derivation unit  421 , a temporal motion vector predictor candidate derivation unit  422 , a history-based motion vector predictor candidate derivation unit  423 , a motion vector predictor candidate replenishment unit  425 , a motion vector predictor candidate selection unit  426 , and a motion vector addition unit  427 . 
     Processing procedures of the normal motion vector predictor mode derivation unit  301  of the coding side and the normal motion vector predictor mode derivation unit  401  of the decoding side will be described using the flowcharts of  FIGS.  19  and  25   , respectively.  FIG.  19    is a flowchart showing a normal motion vector predictor mode derivation processing procedure of the normal motion vector predictor mode derivation unit  301  of the coding side and  FIG.  25    is a flowchart showing a normal motion vector predictor mode derivation processing procedure of the normal motion vector predictor mode derivation unit  401  of the decoding side. 
     &lt;Normal Motion Vector Predictor Mode Derivation Unit (Normal AMVP): Description of Coding Side&gt; 
     The normal motion vector predictor mode derivation processing procedure of the coding side will be described with reference to  FIG.  19   . In the description of the processing procedure of  FIG.  19   , the term “normal” shown in  FIG.  19    may be omitted. 
     First, the normal motion vector detection unit  326  detects a normal motion vector for each inter prediction mode and each reference index (step S 100  of  FIG.  19   ). 
     Subsequently, in the spatial motion vector predictor candidate derivation unit  321 , the temporal motion vector predictor candidate derivation unit  322 , the history-based motion vector predictor candidate derivation unit  323 , the motion vector predictor candidate replenishment unit  325 , the motion vector predictor candidate selection unit  327 , and the motion vector subtraction unit  328 , a motion vector difference of a motion vector used for inter prediction of the normal motion vector predictor mode is calculated for each of L0 and L1 (steps S 101  to S 106  of  FIG.  19   ). Specifically, when the prediction mode PredMode of the target block is inter prediction (MODE_INTER) and the inter prediction mode is L0-prediction (Pred_L0), the motion vector predictor candidate list mvpListL0 of L0 is calculated to select the motion vector predictor mvpL0 and the motion vector difference mvdL0 of the motion vector mvL0 of L0 is calculated. When the inter prediction mode of the target block is L1-prediction (Pred_L1), the motion vector predictor candidate list mvpListL1 of L1 is calculated to select the motion vector predictor mvpL1 and the motion vector difference mvdL1 of the motion vector mvL1 of L1 is calculated. When the inter prediction mode of the target block is bi-prediction (Pred_BI), both L0-prediction and L1-prediction are performed, the motion vector predictor candidate list mvpListL0 of L0 is calculated to select a motion vector predictor mvpL0 of L0, the motion vector difference mvdL0 of a motion vector mvL0 of L0 is calculated, the motion vector predictor candidate list mvpListL1 of L1 is calculated to select a motion vector predictor mvpL1 of L1, and a motion vector difference mvdL1 of a motion vector mvL1 of L1 is calculated. 
     Although a motion vector difference calculation process is performed for each of L0 and L1, the motion vector difference calculation process becomes a process common to both L0 and L1. Therefore, in the following description, L0 and L1 are represented as common LX. X of LX is 0 in the process of calculating the motion vector difference of L0 and X of LX is 1 in the process of calculating the motion vector difference of L1. Also, when information of another list instead of LX is referred to during the process of calculating the motion vector difference of LX, the other list is represented as LY. 
     When the motion vector mvLX of LX is used (step S 102  of  FIG.  19   : YES), the motion vector predictor candidates of LX are calculated to construct the motion vector predictor candidate list mvpListLX of LX (step S 103  of  FIG.  19   ). In the spatial motion vector predictor candidate derivation unit  321 , the temporal motion vector predictor candidate derivation unit  322 , the history-based motion vector predictor candidate derivation unit  323 , and the motion vector predictor candidate replenishment unit  325  of the normal motion vector predictor mode derivation unit  301 , a plurality of motion vector predictor candidates are derived to construct the motion vector predictor candidate list mvpListLX. The detailed processing procedure of step S 103  of  FIG.  19    will be described below using the flowchart of  FIG.  20   . 
     Subsequently, the motion vector predictor candidate selection unit  327  selects a motion vector predictor mvpLX of LX from the motion vector predictor candidate list mvpListLX of LX (step S 104  of  FIG.  19   ). Here, one element (an ith element when counted from a 0th element) in the motion vector predictor candidate list mvpListLX is represented as mvpListLX[i]. Each motion vector difference that is a difference between the motion vector mvLX and each motion vector predictor candidate mvpListLX[i] stored in the motion vector predictor candidate list mvpListLX is calculated. A code amount when the motion vector differences are coded is calculated for each element (motion vector predictor candidate) of the motion vector predictor candidate list mvpListLX. Then, a motion vector predictor candidate mvpListLX[i] that minimizes the code amount for each motion vector predictor candidate among the elements registered in the motion vector predictor candidate list mvpListLX is selected as the motion vector predictor mvpLX and its index i is acquired. When there are a plurality of motion vector predictor candidates having the smallest generated code amount in the motion vector predictor candidate list mvpListLX, a motion vector predictor candidate mvpListLX[i] represented by a smaller number in the index i in the motion vector predictor candidate list mvpListLX is selected as an optimum motion vector predictor mvpLX and its index i is acquired. 
     Subsequently, the motion vector subtraction unit  328  subtracts the selected motion vector predictor mvpLX of LX from the motion vector mvLX of LX and calculates a motion vector difference mvdLX of LX as mvdLX=mvLX−mvpLX (step S 105  of  FIG.  19   ). 
     &lt;Normal Motion Vector Predictor Mode Derivation Unit (Normal AMVP): Description of Decoding Side&gt; 
     Next, the normal motion vector predictor mode processing procedure of the decoding side will be described with reference to  FIG.  25   . On the decoding side, in the spatial motion vector predictor candidate derivation unit  421 , the temporal motion vector predictor candidate derivation unit  422 , the history-based motion vector predictor candidate derivation unit  423 , and the motion vector predictor candidate replenishment unit  425 , a motion vector for use in inter prediction of the normal motion vector predictor mode is calculated for each of L0 and L1 (steps S 201  to S 206  of  FIG.  25   ). Specifically, when the prediction mode PredMode of the target block is inter prediction (MODE_INTER) and the inter prediction mode of the target block is L0-prediction (Pred_L0), the motion vector predictor candidate list mvpListL0 of L0 is calculated to select the motion vector predictor mvpL0 and a motion vector mvL0 of L0 is calculated. When the inter prediction mode of the target block is L1-prediction (Pred_L1), the motion vector predictor candidate list mvpListL1 of L1 is calculated to select the motion vector predictor mvpL1 and the motion vector mvL1 of L1 is calculated. When the inter prediction mode of the target block is bi-prediction (Pred_BI), both L0-prediction and L1-prediction are performed, the motion vector predictor candidate list mvpListL0 of L0 is calculated to select a motion vector predictor mvpL0 of L0, a motion vector mvL0 of L0 is calculated, the motion vector predictor candidate list mvpListL1 of L1 is calculated to select a motion vector predictor mvpL1 of L1, and each motion vector mvL1 of L1 is calculated. 
     Although a motion vector calculation process is performed for each of L0 and L1 on the decoding side as on the coding side, the motion vector calculation process becomes a process common to both L0 and L1. Therefore, in the following description, L0 and L1 are represented as common LX. LX represents an inter prediction mode for use in the inter prediction of a target coding block. X is 0 in the process of calculating the motion vector of L0 and X is 1 in the process of calculating the motion vector of L1. Also, when information of another reference list instead of a reference list identical to that of LX of a calculation target is referred to during the process of calculating the motion vector of LX, the other reference list is represented as LY. 
     When the motion vector mvLX of LX is used (step S 202  of  FIG.  25   : YES), the motion vector predictor candidates of LX are calculated to construct the motion vector predictor candidate list mvpListLX of LX (step S 203  of  FIG.  25   ). In the spatial motion vector predictor candidate derivation unit  421 , the temporal motion vector predictor candidate derivation unit  422 , the history-based motion vector predictor candidate derivation unit  423 , and the motion vector predictor candidate replenishment unit  425  of the normal motion vector predictor mode derivation unit  401 , a plurality of motion vector predictor candidates are calculated to construct a motion vector predictor candidate list mvpListLX. A detailed processing procedure of step S 203  of  FIG.  25    will be described below using the flowchart of  FIG.  20   . 
     Subsequently, the motion vector predictor candidate mvpListLX[mvpIdxLX] corresponding to the index mvpIdxLX of the motion vector predictor decoded and supplied by the bit strings decoding unit  201  from the motion vector predictor candidate list mvpListLX is extracted as a selected motion vector predictor mvpLX in the motion vector predictor candidate selection unit  426  (step S 204  of  FIG.  25   ). 
     Subsequently, the motion vector addition unit  427  sums the motion vector difference mvdLX of LX that is decoded and supplied by the bit strings decoding unit  201  and the motion vector predictor mvpLX of LX and calculates the motion vector mvLX of LX as mvLX=mvpLX+mvdLX (step S 205  of  FIG.  25   ). 
     &lt;Normal Motion Vector Predictor Mode Derivation Unit (Normal AMVP): Motion Vector Prediction Method&gt; 
       FIG.  20    is a flowchart showing a processing procedure of a normal motion vector predictor mode derivation process having a function common to the normal motion vector predictor mode derivation unit  301  of the picture coding device and the normal motion vector predictor mode derivation unit  401  of the picture decoding device according to the embodiment of the present invention. 
     The normal motion vector predictor mode derivation unit  301  and the normal motion vector predictor mode derivation unit  401  include a motion vector predictor candidate list mvpListLX. The motion vector predictor candidate list mvpListLX has a list structure and is provided with a storage area where a motion vector predictor index indicating the location inside the motion vector predictor candidate list and a motion vector predictor candidate corresponding to the index are stored as elements. The number of the motion vector predictor index starts from 0 and motion vector predictor candidates are stored in the storage area of the motion vector predictor candidate list mvpListLX. In the present embodiment, it is assumed that at least two motion vector predictor candidates (inter prediction information) can be registered in the motion vector predictor candidate list mvpListLX. Furthermore, a variable numCurrMvpCand indicating the number of motion vector predictor candidates registered in the motion vector predictor candidate list mvpListLX is set to 0. 
     The spatial motion vector predictor candidate derivation units  321  and  421  derive motion vector predictor candidates from neighboring blocks on the left side. In this process, a motion vector predictor mvLXA is derived with reference to the inter prediction information of the neighboring block on the left side (A0 or A1 of  FIG.  11   ), i.e., a flag indicating whether or not a motion vector predictor candidate can be used, a motion vector, a reference index, and the like, and the derived mvLXA is added to the motion vector predictor candidate list mvpListLX (step S 301  of  FIG.  20   ). Also, X is 0 at the time of L0-prediction and X is 1 at the time of L1-prediction (the same is true hereinafter). Subsequently, the spatial motion vector predictor candidate derivation units  321  and  421  derive a motion vector predictor candidate from a neighboring block on the upper side. In this process, the motion vector predictor mvLXB is derived with reference to inter prediction information of a neighboring block on the upper side (B0, B1, or B2 of  FIG.  11   ), i.e., a flag indicating whether or not a motion vector predictor candidate can be used, a motion vector, a reference index, and the like, and mvLXB is added to the motion vector predictor candidate list mvpListLX if the derived mvLXA is not equal to the derived mvLXB (step S 302  of  FIG.  20   ). The processing of steps S 301  and S 302  of  FIG.  20    is common except that positions of neighboring blocks to be referred to and the number of neighboring blocks to be referred to are different, and a flag availableFlagLXN indicating whether or not a motion vector predictor candidate of the coding block can be used, a motion vector mvLXN, and a reference index refIdxN (N represents A or B and the same is true hereinafter) are derived. 
     Subsequently, the temporal motion vector predictor candidate derivation units  322  and  422  derive motion vector predictor candidates from blocks in a picture whose time is different from that of the current target picture. In this process, a flag availableFlagLXCol indicating whether or not a motion vector predictor candidate of a coding block of a picture of different time can be used, a motion vector mvLXCol, a reference index refIdxCol, and a reference list listCol are derived, and mvLXCol is added to the motion vector predictor candidate list mvpListLX (step S 303  of  FIG.  20   ). 
     Also, it is assumed that the processes of the temporal motion vector predictor candidate derivation units  322  and  422  can be omitted in units of sequences (SPS), pictures (PPS), or slices. 
     Subsequently, the history-based motion vector predictor candidate derivation units  323  and  423  add the history-based motion vector predictor candidates registered in the history-based motion vector predictor candidate list HmvpCandList to the motion vector predictor candidate list mvpListLX (step S 304  of  FIG.  20   ). Details of the registration processing procedure of step S 304  will be described below using the flowchart of  FIG.  29   . 
     Subsequently, the motion vector predictor candidate replenishment units  325  and  425  add motion vector predictor candidates having a predetermined value such as (0, 0) until the motion vector predictor candidate list mvpListLX is satisfied (S 305  of  FIG.  20   ). 
     &lt;Normal Merge Mode Derivation Unit (Normal Merge)&gt; 
     The normal merge mode derivation unit  302  of  FIG.  18    includes a spatial merging candidate derivation unit  341 , a temporal merging candidate derivation unit  342 , an average merging candidate derivation unit  344 , a history-based merging candidate derivation unit  345 , a merging candidate replenishment unit  346 , and a merging candidate selection unit  347 . 
     The normal merge mode derivation unit  402  of  FIG.  24    includes a spatial merging candidate derivation unit  441 , a temporal merging candidate derivation unit  442 , an average merging candidate derivation unit  444 , a history-based merging candidate derivation unit  445 , a merging candidate replenishment unit  446 , and a merging candidate selection unit  447 . 
       FIG.  21    is an explanatory flowchart showing a procedure of a normal merge mode derivation process having a function common to the normal merge mode derivation unit  302  of the picture coding device and the normal merge mode derivation unit  402  of the picture decoding device according to the embodiment of the present invention. 
     Hereafter, various processes will be described step by step. Although a case in which a type of slice slice_type is a B slice will be described unless otherwise specified in the following description, the present invention can also be applied to the case of a P slice. However, when the type of slice slice_type is a P slice, because only the L0-prediction (Pred_L0) is provided as the inter prediction mode and L1-prediction (Pred_L1) and bi-prediction (Pred_BI) are absent, a process related to L1 can be omitted. 
     The normal merge mode derivation unit  302  and the normal merge mode derivation unit  402  have a merging candidate list mergeCandList. The merging candidate list mergeCandList has a list structure and is provided with a merge index indicating the location within the merging candidate list and a storage area where merging candidates corresponding to the index are stored as elements. The number of the merge index starts from 0 and merging candidates are stored in the storage area of the merging candidate list mergeCandList. In the subsequent process, the merging candidate of the merge index i registered in the merging candidate list mergeCandList is represented by mergeCandList[i]. In the present embodiment, it is assumed that at least six merging candidates (inter prediction information) can be registered in the merging candidate list mergeCandList. Further, a variable numCurrMergeCand indicating the number of merging candidates registered in the merging candidate list mergeCandList is set to 0. 
     In the spatial merging candidate derivation unit  341  and the spatial merging candidate derivation unit  441 , spatial merging candidates A and B from the neighboring blocks on the left side and the upper side of the target block are derived from the coding information stored in the coding information storage memory  111  of the picture coding device or the coding information storage memory  205  of the picture decoding device and the derived spatial merging candidates are registered in the merging candidate list mergeCandList (step S 401  of  FIG.  21   ). Here, N indicating either the spatial merging candidate A or B or the temporal merging candidate Col is defined. A flag availableFlagN indicating whether or not the inter prediction information of block N can be used as a spatial merging candidate, a reference index refIdxL0N of L0 and a reference index refIdxL1N of L1 of spatial merging candidate N, an L0-prediction flag predFlagL0N indicating whether or not L0-prediction is performed, an L1-prediction flag predFlagL1N indicating whether or not L1-prediction is performed, a motion vector mvL0N of L0, and a motion vector mvL1N of L1 are derived. However, because the merging candidate is derived without referring to the inter prediction information of the block included in the coding block which is a target in the present embodiment, no spatial merging candidate using the inter prediction information of the block included in the target coding block is derived. 
     Subsequently, the temporal merging candidate derivation unit  342  and the temporal merging candidate derivation unit  442  derive temporal merging candidates from pictures of different times and register the derived temporal merging candidates in the merging candidate list mergeCandList (step S 402  of  FIG.  21   ). A flag availableFlagCol indicating whether or not the temporal merging candidate can be used, an L0-prediction flag predFlagL0Col indicating whether or not L0-prediction of the temporal merging candidate is performed, an L1-prediction flag predFlagL1Col indicating whether or not L1-prediction is performed, a motion vector mvL0Col of L0, and a motion vector mvL1Col of L1 are derived. 
     Also, it is assumed that the processes of the temporal merging candidate derivation unit  342  and the temporal merging candidate derivation unit  442  can be omitted in units of sequences (SPS), pictures (PPS), or slices. 
     Subsequently, the history-based merging candidate derivation unit  345  and the history-based merging candidate derivation unit  445  register history-based motion vector predictor candidates registered in the history-based motion vector predictor candidate list HmvpCandList in the merging candidate list mergeCandList (step S 403  of  FIG.  21   ). 
     Also, when the number of merging candidates numCurrMergeCand registered within the merging candidate list mergeCandList is smaller than the maximum number of merging candidates MaxNumMergeCand, the maximum number of merging candidates MaxNumMergeCand is set as an upper limit of the number of merging candidates numCurrMergeCand registered within the merging candidate list mergeCandList and history-based merging candidates are derived and registered in the merging candidate list mergeCandList. 
     Subsequently, the average merging candidate derivation unit  344  and the average merging candidate derivation unit  444  derive an average merging candidate from the merging candidate list mergeCandList and adds the derived average merging candidate to the merging candidate list mergeCandList (step S 404  of  FIG.  21   ). 
     Also, when the number of merging candidates numCurrMergeCand registered within the merging candidate list mergeCandList is smaller than the maximum number of merging candidates MaxNumMergeCand, the maximum number of merging candidates MaxNumMergeCand is set as an upper limit of the number of merging candidates numCurrMergeCand registered within the merging candidate list mergeCandList and average merging candidates are derived and registered in the merging candidate list mergeCandList. 
     Here, the average merging candidate is a new merging candidate having a motion vector obtained by averaging motion vectors of a first merging candidate and a second merging candidate registered in the merging candidate list mergeCandList for each of the L0-prediction and the L1-prediction. 
     Subsequently, in the merging candidate replenishment unit  346  and the merging candidate replenishment unit  446 , when the number of merging candidates numCurrMergeCand registered within the merging candidate list mergeCandList is smaller than the maximum number of merging candidates MaxNumMergeCand, the maximum number of merging candidates MaxNumMergeCand is set as an upper limit of the number of merging candidates numCurrMergeCand registered within the merging candidate list mergeCandList and an additional merging candidate is derived and registered in the merging candidate list mergeCandList (step S 405  of  FIG.  21   ). In the P slice, a merging candidate for which a motion vector has a value of (0, 0) and the prediction mode is L0-prediction (Pred_L0) is added using the maximum number of merging candidates MaxNumMergeCand as the upper limit. In the B slice, a merging candidate for which a motion vector has a value of (0, 0) and the prediction mode is bi-prediction (Pred_BI) is added. A reference index when the merging candidate is added is different from the previously added reference index. 
     Subsequently, the merging candidate selection unit  347  and the merging candidate selection unit  447  select merging candidates from the merging candidates registered within the merging candidate list mergeCandList. The merging candidate selection unit  347  of the coding side selects a merging candidate by calculating a code amount and a distortion amount, and supplies a merge index indicating the selected merging candidate and inter prediction information of the merging candidate to the motion-compensated prediction unit  306  via the inter prediction mode determination unit  305 . On the other hand, the merging candidate selection unit  447  of the decoding side selects a merging candidate on the basis of a decoded merge index and supplies the selected merging candidate to the motion-compensated prediction unit  406 . 
     &lt;Update of History-Based Motion Vector Predictor Candidate List&gt; 
     Next, an initialization method and an update method of the history-based motion vector predictor candidate list HmvpCandList provided in the coding information storage memory  111  of the coding side and the coding information storage memory  205  of the decoding side will be described in detail.  FIG.  26    is an explanatory flowchart showing a processing procedure of initializing/updating a history-based motion vector predictor candidate list. 
     In the present embodiment, it is assumed that the history-based motion vector predictor candidate list HmvpCandList is updated in the coding information storage memory  111  and the coding information storage memory  205 . A history-based motion vector predictor candidate list update unit may be installed in the inter prediction unit  102  and the inter prediction unit  203  to update the history-based motion vector predictor candidate list HmvpCandList. 
     The history-based motion vector predictor candidate list HmvpCandList is initially set at the beginning of the slice, the history-based motion vector predictor candidate list HmvpCandList is updated when the normal motion vector predictor mode or the normal merge mode has been selected by the prediction method determination unit  105  on the coding side, and the history-based motion vector predictor candidate list HmvpCandList is updated when the prediction information decoded by the bit strings decoding unit  201  is about the normal motion vector predictor mode or the normal merge mode on the decoding side. 
     The inter prediction information used when inter prediction is performed in the normal motion vector predictor mode or the normal merge mode is registered as an inter prediction information candidate hMvpCand in the history-based motion vector predictor candidate list HmvpCandList. The inter prediction information candidate hMvpCand includes a reference index refIdxL0 of L0, a reference index refIdxL1 of L1, an L0-prediction flag predFlagL0 indicating whether or not L0-prediction is performed, an L1-prediction flag predFlagL1 indicating whether or not L1-prediction is performed, a motion vector mvL0 of L0, and a motion vector mvL1 of L1. 
     When there is inter prediction information having the same value as an inter prediction information candidate hMvpCand among elements (i.e., inter prediction information) registered in the history-based motion vector predictor candidate list HmvpCandList provided in the coding information storage memory  111  of the coding side and the coding information storage memory  205  of the decoding side, the element is removed from the history-based motion vector predictor candidate list HmvpCandList. On the other hand, when there is no inter prediction information having the same value as an inter prediction information candidate hMvpCand, the element at the beginning of the history-based motion vector predictor candidate list HmvpCandList is removed and the inter prediction information candidate hMvpCand is added to the end of the history-based motion vector predictor candidate list HmvpCandList. 
     The number of elements of the history-based motion vector predictor candidate list HmvpCandList provided in the coding information storage memory  111  of the coding side and the coding information storage memory  205  of the decoding side according to the present invention is assumed to be six. 
     First, the history-based motion vector predictor candidate list HmvpCandList is initialized in units of slices. History-based motion vector predictor candidates are added to all elements of the history-based motion vector predictor candidate list HmvpCandList at the beginning of the slice and a value of the number of history-based motion vector predictor candidates NumHmvpCand registered in the history-based motion vector predictor candidate list HmvpCandList is set to 6 (step S 2101  of  FIG.  26   ). 
     Here, the initialization of the history-based motion vector predictor candidate list HmvpCandList is performed in units of slices (a first coding block of a slice), but may be performed in units of pictures, tiles, or tree block rows. 
       FIG.  38    is a table showing an example of history-based motion vector predictor candidates added according to initialization of the history-based motion vector predictor candidate list HmvpCandList. An example when a type of slice is a B slice and the number of reference pictures is 4 is shown. A history-based motion vector predictor index is a value from (the number of history-based motion vector predictor candidates NumHmvpCand−1) to 0 and the history-based motion vector predictor candidate list is filled with history-based candidates by adding inter prediction information with a motion vector value of (0, 0) as a history-based motion vector predictor candidate to the motion vector predictor candidate list HmvpCandList in accordance with a type of slice. At this time, the history-based motion vector predictor index starts from (the number of history-based motion vector predictor candidates NumHmvpCand−1) and a value incremented by 1 from 0 to (the number of reference pictures numRefIdx−1) is set as the reference index refIdxLX (X is 0 or 1). Subsequently, overlapping between the history-based motion vector predictor candidates is allowed and the value of 0 is set in refIdxLX. Invalid history-based motion vector predictor candidates are eliminated by setting all values for the number of history-based motion vector predictor candidates NumHmvpCand and setting the value of the number of history-based motion vector predictor candidates NumHmvpCand to a fixed value. In this manner, it is possible to improve coding efficiency by generally allocating a small value to a reference index of high selectivity from a candidate of a history-based motion vector predictor index of a highest probability having a largest value to be added to the motion vector predictor candidate list or the merging candidate list. 
     Also, because the number of the history-based motion vector predictor candidates can be treated as a fixed value by filling the history-based motion vector predictor candidate list with the history-based motion vector predictor candidates in units of slices, for example, the history-based motion vector predictor candidate derivation process or the history-based merging candidate derivation process can be simplified. 
     Here, although the value of the motion vector is generally set to (0, 0) at a high selection probability, it is only necessary for the value of the motion vector to be a predetermined value. For example, the coding efficiency of the motion vector difference may be improved by setting values such as (4, 4), (0, 32), (−128, 0) or the coding efficiency of the motion vector difference may be improved by setting a plurality of predetermined values. 
     Also, although it is assumed that the history-based motion vector predictor index starts from (the number of history-based motion vector predictor candidates NumHmvpCand−1) and a value incremented by 1 from 0 to (the number of reference pictures numRefIdx−1) is set as the reference index refIdxLX (X is 0 or 1), the history-based motion vector predictor index may start from 0. 
       FIG.  39    is a table showing another example of history-based motion vector predictor candidates added according to the initialization of the history-based motion vector predictor candidate list HmvpCandList. An example when the type of slice is a B slice and the number of reference pictures is 2 is shown. In this example, the history-based motion vector predictor candidate list is filled by adding inter prediction information with a different reference index or a different motion vector value as a history-based motion vector predictor candidate so that there is no overlapping between history-based motion vector predictor candidates in elements of the history-based motion vector predictor candidate list HmvpCandList. At this time, the history-based motion vector predictor index starts from (the number of history-based motion vector predictor candidates NumHmvpCand−1) and a value incremented by 1 from 0 to (the number of reference pictures numRefIdx−1) is set as the reference index refIdxLX (X is 0 or 1). Subsequently, motion vectors with different values are added as history-based motion vector predictor candidates when refIdxLX is 0. Invalid history-based motion vector predictor candidates are eliminated by setting all values for the number of history-based motion vector predictor candidates NumHmvpCand and setting the value of the number of history-based motion vector predictor candidates NumHmvpCand to a fixed value. 
     In this manner, it is possible to fill the history-based motion vector predictor candidate list with non-overlapping history-based motion vector predictor candidates in units of slices and it is furthermore possible to omit a process of the merging candidate replenishment unit  346  to be executed in units of coding blocks after the history-based merging candidate derivation unit  345  in the normal merge mode derivation unit  302  to be described below and reduce an amount of processing. 
     Here, although the value of the motion vector is set to a small value such as (0, 0) or (1, 0), the value of the motion vector may be increased as long as the history-based motion vector predictor candidates do not overlap. 
     Also, although it is assumed that the history-based motion vector predictor index starts from (the number of history-based motion vector predictor candidates NumHmvpCand−1) and a value incremented by 1 from 0 to (the number of reference pictures numRefIdx−1) is set as the reference index refIdxLX (X is 0 or 1), the history-based motion vector predictor index may start from 0. 
       FIG.  40    is a table showing another example of history-based motion vector predictor candidates added according to initialization of the history-based motion vector predictor candidate list HmvpCandList. 
     An example when a type of slice is a B slice is shown. In this example, the history-based motion vector predictor candidate list is filled by adding inter prediction information having different motion vector values as history-based motion vector predictor candidates when the reference index is 0 so that there is no overlapping between history-based motion vector predictor candidates in elements of the history-based motion vector predictor candidate list HmvpCandList. At this time, the history-based motion vector predictor index starts from (the number of history-based motion vector predictor candidates NumHmvpCand−1) and 0 is set as the reference index refIdxLX (X is 0 or 1). Invalid history-based motion vector predictor candidates are eliminated by setting all values for the number of history-based motion vector predictor candidates NumHmvpCand and setting the value of the number of history-based motion vector predictor candidates NumHmvpCand to a fixed value. 
     In this manner, a process can be further simplified because it is possible to perform the initialization without considering the number of reference pictures by setting the reference index to 0. 
     Here, although it is assumed that the value of the motion vector is a multiple of 2, other values may be used as long as there is no overlapping between the history-based motion vector predictor candidates when the reference index is 0. 
     Also, although it is assumed that the history-based motion vector predictor index starts from (the number of history-based motion vector predictor candidates NumHmvpCand−1) and a value incremented by 1 from 0 to (the number of reference pictures numRefIdx−1) is set as the reference index refIdxLX (X is 0 or 1), the history-based motion vector predictor index may start from 0. 
     Subsequently, the following process of updating the history-based motion vector predictor candidate list HmvpCandList is iteratively performed for each coding block within the slice (steps S 2102  to S 2111  of  FIG.  26   ). 
     First, initial setting is performed in units of coding blocks. A flag identicalCandExist indicating whether or not there is an identical candidate is set to a value of FALSE and a removal target index removeIdx is set to 0 (step S 2103  of  FIG.  26   ). 
     Also, the initialization of the history-based motion vector predictor candidate list HmvpCandList is performed in units of slices (a first coding block of a slice), but may be performed in units of pictures, tiles, or tree block rows. 
     It is determined whether or not there is an inter prediction information candidate hMvpCand of the registration target (step S 2104  of  FIG.  26   ). When the prediction method determination unit  105  of the coding side determines that the mode is the normal motion vector predictor mode or the normal merge mode or when the bit strings decoding unit  201  of the decoding side decodes the mode as the normal motion vector predictor mode or the normal merge mode, its inter prediction information is set as an inter prediction information candidate hMvpCand of the registration target. When the prediction method determination unit  105  of the coding side determines that the mode is the intra-prediction mode, the subblock-based motion vector predictor mode, or the subblock-based merge mode or when the bit strings decoding unit  201  of the decoding side decodes the mode as the intra-prediction mode, the subblock-based motion vector predictor mode, or the subblock-based merge mode, a process of updating the history-based motion vector predictor candidate list HmvpCandList is not performed and the inter prediction information candidate hMvpCand of the registration target does not exist. When there is no inter prediction information candidate hMvpCand of the registration target, steps S 2105  to S 2106  are skipped (step S 2104  of  FIG.  26   : NO). When there is an inter prediction information candidate hMvpCand of the registration target, the processing from step S 2105  is performed (step S 2104  of  FIG.  26   : YES). 
     Subsequently, it is determined whether or not there is an element (inter prediction information) having the same value as the inter prediction information candidate hMvpCand of the registration target, i.e., an identical element, among elements of the history-based motion vector predictor candidate list HmvpCandList (step S 2105  of  FIG.  26   ).  FIG.  27    is a flowchart of an identical element checking processing procedure. When a value of the number of history-based motion vector predictor candidates NumHmvpCand is 0 (step S 2121  of  FIG.  27   : NO), the history-based motion vector predictor candidate list HmvpCandList is empty and there is no identical candidate, so that steps S 2122  to S 2125  of  FIG.  27    are skipped and the present identical element checking processing procedure is completed. When the value of the number of history-based motion vector predictor candidates NumHmvpCand is greater than 0 (YES in step S 2121  of  FIG.  27   ), the processing of step S 2123  is iterated until the history-based motion vector predictor index hMvpIdx changes from 0 to NumHmvpCand−1 (steps S 2122  to S 2125  of  FIG.  27   ). First, a comparison is made regarding whether or not an hMvpIdxth element HmvpCandList[hMvpIdx] when counted from a 0th element of the history-based motion vector predictor candidate list is identical to the inter prediction information candidate hMvpCand (step S 2123  of  FIG.  27   ). When they are the same (step S 2123  of  FIG.  27   : YES), a flag identicalCandExist indicating whether or not there is an identical candidate is set to a value of TRUE and a removal target index removeIdx indicating a position of an element of a removal target is set to a current value of the history-based motion vector predictor index hMvpIdx, and the present identical element checking process ends. When they are not the same (step S 2123  of  FIG.  27   : NO), hMvpIdx is incremented by 1. If the history-based motion vector predictor index hMvpIdx is less than or equal to NumHmvpCand−1, the processing from step S 2123  is performed. 
     Here, it is possible to omit step S 2121  of  FIG.  27    by filling the history-based motion vector predictor candidate list with the history-based motion vector predictor candidates. 
     Referring to the flowchart of  FIG.  26    again, a process of shifting and adding an element of the history-based motion vector predictor candidate list HmvpCandList is performed (step S 2106  of  FIG.  26   ).  FIG.  28    is a flowchart of a processing procedure of shifting/adding an element of the history-based motion vector predictor candidate list HmvpCandList of step S 2106  of  FIG.  26   . First, it is determined whether or not to add a new element after removing an element stored in the history-based motion vector predictor candidate list HmvpCandList or to add a new element without removing the element. Specifically, a comparison is made regarding whether or not the flag identicalCandExist indicating whether or not an identical candidate exists is TRUE or NumHmvpCand is six (step S 2141  of  FIG.  28   ). When either the condition that the flag identicalCandExist indicating whether or not an identical candidate exists is TRUE or the condition that the current number of candidates NumHmvpCand is six is satisfied (step S 2141  of  FIG.  28   : YES), a new element is added after removing the element stored in the history-based motion vector predictor candidate list HmvpCandList. The initial value of index i is set to a value of removeIdx+1. The element shift process of step S 2143  is iterated from this initial value to NumHmvpCand (steps S 2142  to S 2144  of  FIG.  28   ). By copying the element of HmvpCandList[i] to HmvpCandList[i−1], the element is shifted forward (step S 2143  of  FIG.  28   ) and i is incremented by 1 (steps S 2142  to S 2144  of  FIG.  28   ). Subsequently, the inter prediction information candidate hMvpCand is added to a (NumHmvpCand−1)th element HmvpCandList[NumHmvpCand−1] when counted from a 0th element that corresponds to the end of the history-based motion vector predictor candidate list (step S 2145  of  FIG.  28   ) and the present process of shifting/adding an element of the history-based motion vector predictor candidate list HmvpCandList ends. On the other hand, when neither the condition that the flag identicalCandExist indicating whether or not an identical candidate exists is TRUE nor the condition that the current number of candidates NumHmvpCand is six is satisfied (step S 2141  of  FIG.  28   : NO), the inter prediction information candidate hMvpCand is added to the end of the history-based motion vector predictor candidate list without removing an element stored in the history-based motion vector predictor candidate list HmvpCandList (step S 2146  of  FIG.  28   ). Here, the end of the history-based motion vector predictor candidate list is a NumHmvpCandth element HmvpCandList[NumHmvpCand] when counted from a 0th element. Also, NumHmvpCand is incremented by 1 and the present process of shifting and adding an element of the history-based motion vector predictor candidate list HmvpCandList ends. 
     Here, although the history-based motion vector predictor candidate list is applied to both the motion vector predictor mode and the merge mode, the history-based motion vector predictor candidate list may be applied to only one of the modes. 
     As described above, because a new element is added after an identical element stored in the history-based motion vector predictor candidate list is removed when the history-based motion vector predictor candidate list is updated, there are no overlapping elements in the history-based motion vector predictor candidate list and the history-based motion vector predictor candidate list includes all different elements. 
       FIG.  31    is an explanatory diagram showing an example of a process of updating the history-based motion vector predictor candidate list. When a new element is added to the history-based motion vector predictor candidate list HmvpCandList in which six elements (inter prediction information) have been registered, the elements are compared with the new inter prediction information in order from a front element of the history-based motion vector predictor candidate list HmvpCandList ( FIG.  31 A ). If the new element has the same value as a third element HMVP 2  from the beginning of the history-based motion vector predictor candidate list HmvpCandList, the element HMVP 2  is removed from the history-based motion vector predictor candidate list HmvpCandList and subsequent elements HMVP 3  to HMVP 5  are shifted forward (copied) one by one, and the new element is added to the end of the history-based motion vector predictor candidate list HmvpCandList ( FIG.  31 B ) to complete the update of the history-based motion vector predictor candidate list HmvpCandList ( FIG.  31 C ). 
     &lt;History-Based Motion Vector Predictor Candidate Derivation Process&gt; 
     Next, a method of deriving a history-based motion vector predictor candidate from the history-based motion vector predictor candidate list HmvpCandList which is a processing procedure of step S 304  of  FIG.  20    that is a process common to the history-based motion vector predictor candidate derivation unit  323  of the normal motion vector predictor mode derivation unit  301  of the coding side and the history-based motion vector predictor candidate derivation unit  423  of the normal motion vector predictor mode derivation unit  401  of the decoding side will be described in detail.  FIG.  29    is an explanatory flowchart showing a history-based motion vector predictor candidate derivation processing procedure. 
     When the current number of motion vector predictor candidates numCurrMvpCand is larger than or equal to the maximum number of elements in the motion vector predictor candidate list mvpListLX (here, 2) or a value of the number of history-based motion vector predictor candidates NumHmvpCand is 0 (NO in step S 2201  of  FIG.  29   ), the processing of steps S 2202  to S 2208  of  FIG.  29    is omitted and the history-based motion vector predictor candidate derivation processing procedure ends. When the current number of motion vector predictor candidates numCurrMvpCand is smaller than 2 which is the maximum number of elements of the motion vector predictor candidate list mvpListLX and the value of the number of history-based motion vector predictor candidates NumHmvpCand is larger than 0 (YES in step S 2201  of  FIG.  29   ), the processing of steps S 2202  to S 2208  of  FIG.  29    is performed. 
     Subsequently, the processing of steps S 2203  to S 2207  of  FIG.  29    is iterated until the index i changes from 1 to a smaller value of 4 and the number of history-based motion vector predictor candidates numCheckedHMVPCand (steps S 2202  to S 2208  of  FIG.  29   ). When the current number of motion vector predictor candidates numCurrMvpCand is larger than or equal to 2 which is the maximum number of elements of the motion vector predictor candidate list mvpListLX (step S 2203  of  FIG.  29   : NO), the processing of steps S 2204  to S 2208  in  FIG.  29    is omitted and the present history-based motion vector predictor candidate derivation processing procedure ends. When the current number of motion vector predictor candidates numCurrMvpCand is smaller than 2 which is the maximum number of elements of the motion vector predictor candidate list mvpListLX (step S 2203  of  FIG.  29   : YES), the processing from step S 2204  of  FIG.  29    is performed. 
     Subsequently, the processing of steps S 2205  and S 2206  is performed for Y=0 and 1 (L0 and L1) (steps S 2204  to S 2207  of  FIG.  29   ). When the current number of motion vector predictor candidates numCurrMvpCand is larger than or equal to 2 which is the maximum number of elements of the motion vector predictor candidate list mvpListLX (step S 2205  of  FIG.  29   : NO), the processing of steps S 2206  to S 2208  of  FIG.  29    is omitted and the present history-based motion vector predictor candidate derivation processing procedure ends. When the current number of motion vector predictor candidates numCurrMvpCand is smaller than 2 which is the maximum number of elements of the motion vector predictor candidate list mvpListLX (step S 2205  of  FIG.  29   : YES), the processing from step S 2206  of  FIG.  29    is performed. 
     Subsequently, the motion vector of LY of the history-based motion vector predictor candidate HmvpCandList [NumHmvpCand−i] is added to a numCurrMvpCandth element mvpListLY[numCurrMvpCand] when counted from 0 in the motion vector predictor candidate list of LY-prediction and the current number of motion vector predictor candidates numCurrMvpCand is incremented by 1 (step S 2206  of  FIG.  29   ). 
     The above processing of steps S 2205  and S 2206  of  FIG.  29    is performed for both L0 and L1 (steps S 2204  to S 2207  of  FIG.  29   ). When the index i is incremented by 1 and the index i is less than or equal to a smaller value of 4 and the number of history-based motion vector predictor candidates NumHmvpCand, the processing from step S 2203  is performed again (steps S 2202  to S 2208  of  FIG.  29   ). 
     In the present embodiment, as described above, in the history-based motion vector predictor candidate derivation process, the motion vector of the element of the history-based motion vector predictor candidate list is added to the motion vector predictor candidate list without making a comparison between the motion vector of the element of the history-based motion vector predictor candidate list and the motion vector of the element of the motion vector predictor candidate list. 
     By adopting this configuration, if the number of history-based motion vector predictor candidates is larger than or equal to 2, it is possible to ensure that the number of elements of the motion vector predictor candidate list reaches the maximum number of elements after the history-based motion vector predictor candidate list candidate derivation process is completed. Also, an amount of processing and a circuit scale for checking whether or not the motion vectors are the same can be reduced. 
     Because the normal motion vector predictor mode is a mode in which the motion information of a target block is determined according to a motion vector difference from a motion vector predictor candidate included in the motion vector predictor candidate list and an appropriate motion vector is allowed to be determined according to the motion vector difference, the deterioration of coding efficiency due to the reduction of options can be minimized even if the elements of the motion vector predictor candidate list are forced to overlap. 
     Also, in the normal motion vector predictor mode, the motion vector predictor candidate list is processed separately for L0-prediction and L1-prediction. Thus, even if the elements overlap in the motion vector predictor candidate list of L0-prediction, the elements may not overlap in the motion vector predictor candidate list of L1-prediction. 
     Also, the motion vector predictor candidate and the reference index are separately processed in the normal motion vector predictor mode. Thus, even if the elements overlap in the motion vector predictor candidate list, the reference index is not affected. 
     Also, because the motion vector predictor candidate list includes only two elements at the maximum, the number of options to be reduced is only one even if the elements of the motion vector predictor candidate list overlap. 
     Also, because no identical element is included in the history-based motion vector predictor candidate list, a practically meaningful comparison between an element of the history-based motion vector predictor candidate list and an element of the motion vector predictor candidate list is limited to case in which only one element of the motion vector predictor candidate list is generated by the spatial motion vector predictor candidate derivation unit  421  and the temporal motion vector predictor candidate derivation unit  422  and a frequency thereof is significantly low. Also, a case in which the normal motion vector predictor mode is generally selected is a case in which the motion is not similar to that of neighboring blocks and a possibility that an element of the history-based motion vector predictor candidate list will overlap an element already added to the motion vector predictor candidate list is low. 
     For this reason, even if the elements of the motion vector predictor candidate list overlap, it is possible to reduce a comparison process between the motion vector of the history-based motion vector predictor candidate and the motion vector of the motion vector predictor candidate while limiting the deterioration of coding efficiency due to a decrease in the number of options. 
     Also, the history-based motion vector predictor candidate list is filled with non-overlapping history-based motion vector predictor candidates, a comparison between the elements of the history-based motion vector predictor candidate list and the elements of the motion vector predictor candidate list is not made, and an element of the history-based motion vector predictor candidate list is added to the motion vector predictor candidate list, so that it is possible to omit the process of the motion vector predictor replenishment unit  325  after the history-based motion vector predictor candidate derivation unit  323  in the normal motion vector predictor mode derivation unit  301 . 
     &lt;History-Based Merging Candidate Derivation Process&gt; 
     Next, a method of deriving history-based merging candidates from the history-based merging candidate list HmvpCandList which is the processing procedure of step S 404  of  FIG.  21    which is a process common to the history-based merging candidate derivation unit  345  of the normal merge mode derivation unit  302  of the coding side and the history-based merging candidate derivation unit  445  of the normal merge mode derivation unit  402  of the decoding side will be described in detail.  FIG.  30    is an explanatory flowchart showing the history-based merging candidate derivation processing procedure. 
     First, an initialization process is performed (step S 2301  of  FIG.  30   ). Each (numCurrMergeCand−1)th element from 0 of isPruned[i] is set to a value of FALSE and a variable numOrigMergeCand is set to the number of elements numCurrMergeCand registered in the current merging candidate list. 
     Subsequently, the initial value of the index hMvpIdx is set to 1 and the addition process of steps S 2303  to S 2310  of  FIG.  30    is iterated until the index hMvpIdx changes from the initial value to NumHmvpCand (steps S 2302  to S 2311  of  FIG.  30   ). If the number of elements registered in the current merging candidate list numCurrMergeCand is not less than or equal to (the maximum number of merging candidates MaxNumMergeCand−1), merging candidates are added to all elements of the merging candidate list, so that the present history-based merging candidate derivation process ends (NO in step S 2303  of  FIG.  30   ). When the number of the elements numCurrMergeCand registered in the current merging candidate list is less than or equal to (the maximum number of merging candidates MaxNumMergeCand−1), the processing from step S 2304  is performed. sameMotion is set to a value of FALSE (step S 2304  of  FIG.  30   ). Subsequently, the initial value of the index i is set to 0 and the processing of steps S 2306  and S 2307  of  FIG.  30    is performed until the index changes from the initial value to numOrigMergeCand−1 (S 2305  to S 2308  in  FIG.  30   ). A comparison is made regarding whether or not a (NumHmvpCand−hMvpIdx)th element HmvpCandList[NumHmvpCand−hMvpIdx] when counted from a 0th element of the history-based motion vector prediction candidate list has the same value as an ith element mergeCandList[i] when counted from a 0th element of a merging candidate list (step S 2306  of  FIG.  30   ). 
     The merging candidates have the same value when values of all components (an inter prediction mode, a reference index, and a motion vector) of the merging candidates are identical. When the merging candidates have the same value and isPruned[i] is FALSE (YES in step S 2306  of  FIG.  30   ), both sameMotion and isPruned [i] are set to TRUE (step S 2307  of  FIG.  30   ). When the merging candidates do not have the same value (NO in step S 2306  of  FIG.  30   ), the processing of step S 2307  is skipped. When the iterative processing of steps S 2305  to S 2308  of  FIG.  30    has been completed, a comparison is made regarding whether or not sameMotion is FALSE (step S 2309  of  FIG.  30   ). If sameMotion is FALSE (YES in step S 2309  of  FIG.  30   ), i.e., because a (NumHmvpCand−hMvpIdx)th element HmvpCandList[NumHmvpCand−hMvpIdx] when counted from a 0th element of the history-based motion vector predictor candidate list does not exist in mergeCandList, a (NumHmvpCand−hMvpIdx)th element HmvpCandList[NumHmvpCand−hMvpIdx] when counted from a 0th element of the history-based motion vector predictor candidate list is added to a numCurrMergeCandth element mergeCandList[numCurrMergeCand] of the merging candidate list and numCurrMergeCand is incremented by 1 (step S 2310  of  FIG.  30   ). The index hMvpIdx is incremented by 1 (step S 2302  of  FIG.  30   ) and a process of iterating steps S 2302  to S 2311  of  FIG.  30    is performed. 
     When the checking of all elements of the history-based motion vector predictor candidate list is completed or when merging candidates are added to all elements of the merging candidate list, the present history-based merging candidate derivation process is completed. 
     In the present embodiment, as described above, in the history-based merging candidate derivation process, the elements of the history-based motion vector predictor candidate list are compared with the elements of the current merging candidate list and only an element of the history-based motion vector predictor candidate list absent in the current merging candidate list is added to the merging candidate list. 
     Unlike the normal motion vector predictor mode, the normal merge mode is a mode in which the motion information of the target block is directly determined without using the motion vector difference. Therefore, it is possible to improve the coding efficiency by prohibiting the addition of an element of the history-based merging candidate list overlapping an element of the current merging candidate list. Here, although the elements of the history-based motion vector predictor candidate list have been compared with all candidates of the current merging candidate list are compared, the present invention is not limited thereto as long as it is possible to improve the coding efficiency by comparing at least the elements of the history-based motion vector predictor candidate list with the elements of the current merging candidate list. 
     For example, the number of elements of the history-based motion vector predictor candidate list to be compared may be limited to 1, 2, or the like. Also, the number of elements of the current merging candidate list to be compared may be limited to 1 or 2. 
     Also, in the normal merge mode, the merging candidate list includes both the motion vector of L0-prediction and the motion vector of L1-prediction. Thus, as in the normal motion vector predictor mode, it is difficult to separately adjust the motion vector predictor of L0-prediction and the motion vector predictor of L1-prediction. 
     Also, in the normal merge mode, the merging candidate list includes both the reference index for L0-prediction and the reference index for L1-prediction. Thus, as in the normal motion vector predictor mode, it is difficult to separately adjust the reference index of the L0-prediction and the reference index of the L1-prediction. 
     Also, because the merging candidate list includes a maximum of 6 elements, which are more than those of the motion vector predictor candidate list, the number of overlapping elements within the merging candidate list increases and it is difficult to efficiently use the merging candidate list when an overlapping element has been added to the merging candidate list. 
     Also, the element of the history-based motion vector predictor candidate list added to the merging candidate list is the most recently added element among the elements of the history-based motion vector predictor candidate list. Thus, the elements of the history-based motion vector predictor candidate list added to the merging candidate list become motion information closest to a target coding block in the space domain. In general, the normal merge mode is selected when motion is similar to that of neighboring blocks and a possibility that the elements of the history-based motion vector predictor candidate list will overlap the elements already added to the merging candidate list becomes high. 
     It is possible to improve the coding efficiency by prohibiting the addition of an element of the history-based motion vector predictor candidate list overlapping an element of the merging candidate list and increasing the number of valid selection elements in order to solve the problems as described above. 
     Also, the selection probability of the normal merge mode increases because  6  which is the maximum number of elements capable of being included in the merging candidate list is larger than 2 which is the maximum number of elements capable of being included in the motion vector predictor candidate list, so that it is possible to reduce the comparison process between the motion vector of the history-based motion vector predictor candidate and the motion vector of the motion vector predictor candidate while limiting the deterioration of coding efficiency due to the overlapping of the elements of the motion vector predictor candidate list. 
     Also, various merging candidates such as temporal merging candidates, history-based merging candidates, average merging candidates, and zero merging candidates are included in addition to spatial merging candidates and the selection probability of the normal merge mode increases, so that it is possible to reduce the comparison process between the motion vector of the history-based motion vector predictor candidate and the motion vector of the motion vector predictor candidate while limiting the deterioration of coding efficiency due to the overlapping of the elements of the motion vector predictor candidate list. 
     &lt;Motion-Compensated Prediction Process&gt; 
     The motion-compensated prediction unit  306  acquires a position and a size of a block that is a current target of a prediction process in coding. Also, the motion-compensated prediction unit  306  acquires inter prediction information from the inter prediction mode determination unit  305 . A reference index and a motion vector are derived from the acquired inter prediction information and a prediction signal is generated after a picture signal of a position to which a reference picture identified by the reference index within the decoded picture memory  104  is moved from a position identical to that of a picture signal of a prediction block by an amount of motion vector is acquired. 
     A motion-compensated prediction signal is supplied to a prediction method determination unit  105  using a prediction signal acquired from one reference picture as a motion-compensated prediction signal when the inter prediction mode in the inter prediction is prediction from a single reference picture such as L0-prediction or L1-prediction and using a prediction signal obtained by weighted-averaging prediction signals acquired from two reference pictures as a motion-compensated prediction signal when the prediction mode is prediction from two reference pictures such as an inter prediction mode of Bi-prediction. Although a weighted average ratio of bi-prediction is 1:1 here, a weighted average may be performed using another ratio. For example, a weighting ratio may increase as the picture interval between a picture, which is a prediction target, and a reference picture decreases. Also, the weighting ratio may be calculated using a corresponding table between combinations of picture intervals and weighting ratios. 
     The motion-compensated prediction unit  406  has a function similar to that of the motion-compensated prediction unit  306  of the coding side. The motion-compensated prediction unit  406  acquires inter prediction information from the normal motion vector predictor mode derivation unit  401 , the normal merge mode derivation unit  402 , the subblock-based motion vector predictor mode derivation unit  403 , and the subblock-based merge mode derivation unit  404  via the switch  408 . The motion-compensated prediction unit  406  supplies an obtained motion-compensated prediction signal to the decoding picture signal superimposition unit  207 . 
     &lt;About Inter Prediction Mode&gt; 
     A process of performing prediction from a single reference picture is defined as uni-prediction. In the case of uni-prediction, prediction using either one of two reference pictures registered in reference lists L0 and L1 such as L0-prediction or L1-prediction is performed. 
       FIG.  32    shows the case of uni-prediction in which a clock time of a reference picture (RefL0Pic) of L0 is earlier than that of a target picture (CurPic).  FIG.  33    shows the case of uni-prediction in which a clock time of a reference picture of the L0-prediction is later than that of a target picture. Likewise, the reference picture of L0-prediction of  FIGS.  32  and  33    can be replaced with a reference picture (RefL1Pic) of L1-prediction to perform uni-prediction. 
     The process of performing prediction from two reference pictures is defined as bi-prediction and the bi-prediction is represented as Bi-prediction using both L0-prediction and L1-prediction.  FIG.  34    shows the case of the bi-prediction in which a clock time of a reference picture of L0-prediction is earlier than that of a target picture and a clock time of a reference picture of L1-prediction is later than that of the target picture.  FIG.  35    shows the case of bi-prediction in which clock times of the reference picture of L0-prediction and the reference picture of L1-prediction are earlier than that of a target picture.  FIG.  36    shows the case of bi-prediction in which a clock time of a reference picture of L0-prediction and a clock time of a reference picture of L1-prediction are later than that of a target picture. 
     As described above, a relationship between a type of prediction of L0/L1 and time can be used without being limited to L0 which is in the past direction and L1 which is in the future direction. In the case of bi-prediction, each of L0-prediction and L1-prediction may be performed using the same reference picture. Also, it is determined whether to perform motion-compensated prediction according to uni-prediction or bi-prediction on the basis of, for example, information (for example, a flag) indicating whether to use L0-prediction and whether to use L1-prediction. 
     &lt;About Reference Index&gt; 
     In the embodiment of the present invention, it is possible to select an optimum reference picture from a plurality of reference pictures in motion-compensated prediction to improve the accuracy of motion-compensated prediction. Thus, the reference picture used in the motion-compensated prediction is used as a reference index and the reference index is coded in the bitstream together with the motion vector difference. 
     &lt;Motion Compensation Process Based on Normal Motion Vector Predictor Mode&gt; 
     As shown in the inter prediction unit  102  of the coding side of  FIG.  16   , when inter prediction information from the normal motion vector predictor mode derivation unit  301  has been selected in the inter prediction mode determination unit  305 , the motion-compensated prediction unit  306  acquires the inter prediction information from the inter prediction mode determination unit  305 , derives an inter prediction mode, a reference index, and a motion vector of a current target block, and generates a motion-compensated prediction signal. The generated motion-compensated prediction signal is supplied to the prediction method determination unit  105 . 
     Likewise, as shown in the inter prediction unit  203  of the decoding side of  FIG.  22   , when the switch  408  has been connected to the normal motion vector predictor mode derivation unit  401  in the decoding process, the motion-compensated prediction unit  406  acquires inter prediction information from the normal motion vector predictor mode derivation unit  401 , derives an inter prediction mode, a reference index, and a motion vector of a current target block, and generates a motion-compensated prediction signal. The generated motion-compensated prediction signal is supplied to the decoding picture signal superimposition unit  207 . 
     &lt;Motion Compensation Process Based on Normal Merge Mode&gt; 
     Also, as shown in the inter prediction unit  102  in the coding side of  FIG.  16   , when inter prediction information has been selected from the normal merge mode derivation unit  302  in the inter prediction mode determination unit  305 , the motion-compensated prediction unit  306  acquires the inter prediction information from the inter prediction mode determination unit  305 , derives an inter prediction mode, a reference index, and a motion vector of a current target block, and generates a motion-compensated prediction signal. The generated motion-compensated prediction signal is supplied to the prediction method determination unit  105 . 
     Likewise, as shown in the inter prediction unit  203  in the decoding side of  FIG.  22   , when the switch  408  has been connected to the normal merge mode derivation unit  402  in the decoding process, the motion-compensated prediction unit  406  acquires inter prediction information from the normal merge mode derivation unit  402 , derives an inter prediction mode, a reference index, and a motion vector of a current target block, and generates a motion-compensated prediction signal. The generated motion-compensated prediction signal is supplied to the decoding picture signal superimposition unit  207 . 
     &lt;Motion Compensation Process Based on Subblock-Based Motion Vector Predictor Mode&gt; 
     Also, as shown in the inter prediction unit  102  on the coding side of  FIG.  16   , when inter prediction information from the subblock-based motion vector predictor mode derivation unit  303  has been selected in the inter prediction mode determination unit  305 , the motion-compensated prediction unit  306  acquires the inter prediction information from the inter prediction mode determination unit  305 , derives an inter prediction mode, a reference index, and a motion vector of a current target block, and generates a motion-compensated prediction signal. The generated motion-compensated prediction signal is supplied to the prediction method determination unit  105 . 
     Likewise, as shown in the inter prediction unit  203  in the decoding side of  FIG.  22   , when the switch  408  has been connected to the subblock-based motion vector predictor mode derivation unit  403  in the decoding process, the motion-compensated prediction unit  406  acquires inter prediction information from the subblock-based motion vector predictor mode derivation unit  403 , derives an inter prediction mode, a reference index, and a motion vector of a current target block, and generates a motion-compensated prediction signal. The generated motion-compensated prediction signal is supplied to the decoding picture signal superimposition unit  207 . 
     &lt;Motion Compensation Process Based on Subblock-Based Merge Mode&gt; 
     Also, as shown in the inter prediction unit  102  on the coding side of  FIG.  16   , when inter prediction information from the subblock-based merge mode derivation unit  304  has been selected in the inter prediction mode determination unit  305 , the motion-compensated prediction unit  306  acquires the inter prediction information from the inter prediction mode determination unit  305 , derives an inter prediction mode, a reference index, and a motion vector of a current target block, and generates a motion-compensated prediction signal. The generated motion-compensated prediction signal is supplied to the prediction method determination unit  105 . 
     Likewise, as shown in the inter prediction unit  203  in the decoding side of  FIG.  22   , when the switch  408  has been connected to the subblock-based merge mode derivation unit  404  in the decoding process, the motion-compensated prediction unit  406  acquires inter prediction information from the subblock-based merge mode derivation unit  404 , derives an inter prediction mode, a reference index, and a motion vector of a current target block, and generates a motion-compensated prediction signal. The generated motion-compensated prediction signal is supplied to the decoding picture signal superimposition unit  207 . 
     &lt;Motion Compensation Process Based on Affine Transform Prediction&gt; 
     In the normal motion vector predictor mode and the normal merge mode, motion compensation of an affine model can be used on the basis of the following flags. The following flags are reflected in the following flags on the basis of inter prediction conditions determined by the inter prediction mode determination unit  305  in the coding process and are coded in a bitstream. In the decoding process, it is identified whether to perform the motion compensation of the affine model on the basis of the following flags in the bitstream. 
     sps_affine_enabled_flag represents whether or not motion compensation of the affine model can be used in inter prediction. If sps_affine_enabled_flag is 0, suppression is performed so that it is not motion compensation of an affine model in units of sequences. Also, inter_affine_flag and cu_affine_type_flag are not transmitted in CU (coding block) syntax of a coding video sequence. If sps_affine_enabled_flag is 1, motion compensation of an affine model can be used in a coding video sequence. 
     sps_affine_type_flag represents whether or not motion compensation of a six-parameter affine model can be used in inter prediction. If sps_affine_type_flag is 0, suppression is performed so that it is not motion compensation of the six-parameter affine model. Also, cu_affine_type_flag is not transmitted in CU syntax of a coding video sequence. If sps_affine_type_flag is 1, motion compensation of the six-parameter affine model can be used in the coding video sequence. When sps_affine_type_flag does not exist, it is assumed to be 0. 
     When a P or B slice is decoded, if inter_affine_flag is 1 in the current target CU, motion compensation of the affine model is used to generate a motion-compensated prediction signal of the current target CU. If inter_affine_flag is 0, the affine model is not used in the current target CU. When inter_affine_flag does not exist, it is assumed to be 0. 
     When a P or B slice is decoded, if cu_affine_type_flag is 1 in the current target CU, motion compensation of a six-parameter affine model is used to generate a motion-compensated prediction signal of the current target CU. If cu_affine_type_flag is 0, motion compensation of a four-parameter affine model is used to generate a motion-compensated prediction signal of the current target CU. 
     In motion compensation of an affine model, because a reference index and a motion vector are derived in units of subblocks, a motion-compensated prediction signal is generated using a reference index or a motion vector which is a target in units of subblocks. 
     A four-parameter affine model is a mode in which the motion vector of the subblock is derived from four parameters of horizontal components and vertical components of motion vectors of the two control points and motion compensation is performed in units of subblocks. 
     Modified Example 1 
     Modified example 1 of the present embodiment will be described. The present modified example is different from the present embodiment in that a merge motion vector difference mode is added. Only differences from the present embodiment will be described. The merge motion vector difference mode is set if umve_flag in  FIG.  12    is 1 and the normal merge mode is set if umve_flag is 0. 
     Next, an operation of the merge motion vector difference mode will be described. The merge motion vector difference mode is a mode in which one merge motion vector difference can be added to each of a motion vector of L0-prediction and a motion vector of L1-prediction in one merging candidate of two higher-order merging candidates (merging candidates having merge indices of 0 and 1 within a merging candidate list). 
     Also, in the case of the merge motion vector difference mode, the merge motion vector difference is coded by the bit strings coding unit  108  and decoded by the bit strings decoding unit  201 . 
     As described above, because the merging candidate list is also used in the merge motion vector difference mode, it is possible to improve the coding efficiency by prohibiting the addition of an element of the history-based motion vector predictor candidate list overlapping an element of the merging candidate list and increasing the number of valid selection elements. 
     Also, the selection probability of the normal motion vector predictor mode is decreased by adding the merge motion vector difference mode, so that it is possible to reduce the comparison process between the motion vector of the history-based motion vector predictor candidate and the motion vector of the motion vector predictor candidate while limiting the deterioration of coding efficiency due to the overlapping of the elements of the motion vector predictor candidate list. 
     Modified Example 2 
     Modified example 2 of the present embodiment will be described. The present modified example is different from the present embodiment in that the operations of the history-based motion vector predictor candidate derivation units  323  and  423  shown in  FIG.  29    are different from an operation of the present embodiment. Only differences from the present embodiment will be described.  FIG.  41    is a flowchart illustrating a history-based motion vector predictor candidate derivation processing procedure of modified example 2.  FIG.  41    is different from  FIG.  29    in that step S 2209  is added. The operation shown in  FIG.  29    is the same as that shown in  FIG.  41   , except for step S 2209  of  FIG.  41   . 
     A process when numCurrMvpCand is smaller than 2, which is the maximum number of elements of the motion vector predictor candidate list (YES in step S 2205  of  FIG.  41   ) will be described. 
     It is checked whether or not the reference index of LY of the history-based motion vector predictor candidate HmvpCandList[NumHmvpCand−i] is the same as the reference index of LY of a target coding block (step S 2209  of  FIG.  41   ). If the reference index of LY of the history-based motion vector predictor candidate HmvpCandList[NumHmvpCand−i] is the same as the reference index of LY of the target coding block (YES in step S 2209  of  FIG.  41   ), the process proceeds to S 2206 . If the reference index of LY of the history-based motion vector predictor candidate HmvpCandList[NumHmvpCand−i] is not the same as the reference index of LY of the target coding block (NO in step S 2209  of  FIG.  41   ), the process proceeds to S 2207 . 
     As described above, when the reference index of LY of the history-based motion vector predictor candidate is the same as the reference index of LY of the target coding block, the motion vector of the history-based motion vector predictor candidate is added to the motion vector predictor candidate list of LY-prediction, so that it is possible to add highly accurate history-based motion vector predictor candidates to the motion vector predictor candidate list without comparing the motion vector of the history-based motion vector predictor candidate with the motion vector of the motion vector predictor candidate. 
     In the present embodiment, an element of the history-based motion vector predictor candidate list is added to the motion vector predictor candidate list without comparing the elements of the history-based motion vector predictor candidate list with the elements of the motion vector predictor candidate list in the history-based motion vector predictor candidate derivation process, whereas the elements of the history-based merging candidate list are compared with the elements of the merging list and only a history-based merging candidate list absent in the merging list is added to the merging list in the history-based merging candidate derivation process. The following effects can be obtained by adopting the above configuration. 
     1. In the history-based motion vector predictor candidate list candidate derivation process, it is not necessary to perform an additional candidate derivation process, it is possible to reduce an amount of processing amount and a circuit scale, and it is possible to minimize the deterioration of coding efficiency due to the reduction of options even if the elements of the motion vector predictor candidate list are forced to overlap. 
     2. In the history-based merging candidate derivation process, it is possible to construct an appropriate merging candidate list and improve coding efficiency in the normal merge mode in which the motion information of the target block is determined without using the motion vector difference by prohibiting the addition of an element of the history-based merging candidate list overlapping an element of the merge list. 
     3. It is possible to fill the history-based motion vector predictor candidate list with non-overlapping history-based motion vector predictor candidates and it is possible to omit a process of the merging candidate replenishment unit  346  after the history-based merging candidate derivation unit  345  in the normal merge mode derivation unit  302  and reduce an amount of processing. 
     4. The history-based motion vector predictor candidate list is filled with non-overlapping history-based motion vector predictor candidates, a comparison between the elements of the history-based motion vector predictor candidate list and the elements of the motion vector predictor candidate list is not made, and an element of the history-based motion vector predictor candidate list is added to the motion vector predictor candidate list, so that it is possible to omit the process of the motion vector predictor replenishment unit  325  after the history-based motion vector predictor candidate derivation unit  323  in the normal motion vector predictor mode derivation unit  301 . 
     Two or more of all the embodiments described above may be combined. 
     In all the embodiments described above, a bitstream output by the picture coding device has a specific data format so that the bitstream can be decoded in accordance with the coding method used in the embodiment. Also, a picture decoding device corresponding to the picture coding device can decode the bitstream of the specific data format. 
     When a wired or wireless network is used to exchange a bitstream between the picture coding device and the picture decoding device, the bitstream may be converted into a data format suitable for a transmission form of a communication path and transmitted. In this case, a transmission device for converting the bitstream output from the picture coding device into coded data of a data format suitable for the transmission form of the communication path and transmitting the coded data to the network and a reception device for receiving the coded data from the network, restoring the coded data to the bitstream, and supplying the bitstream to the picture decoding device are provided. The transmission device includes a memory that buffers the bitstream output by the picture coding device, a packet processing unit that packetizes the bitstream, and a transmission unit that transmits packetized coded data via the network. The reception device includes a reception unit that receives the packetized coded data via the network, a memory that buffers the received coded data, and a packet processing unit that generates a bitstream by performing packet processing on the coded data and supplies the bitstream to the picture decoding device. 
     Also, a display device may be provided by adding a display unit that displays a picture decoded by the picture decoding device to the configuration. In this case, the display unit reads a decoded picture signal generated by the decoding picture signal superimposition unit  207  and stored in the decoded picture memory  208  and displays the decoded picture signal on a screen. 
     Also, an imaging device may be provided by adding an imaging unit that inputs a captured picture to the picture coding device to the configuration. In this case, the imaging unit inputs a captured picture signal to the block split unit  101 . 
       FIG.  37    shows an example of a hardware configuration of the coding/decoding device according to the present embodiment. The coding/decoding device includes the configuration of the picture coding device and the picture decoding device according to the embodiment of the present invention. A related coding/decoding device  9000  includes a CPU  9001 , a codec IC  9002 , an I/O interface  9003 , a memory  9004 , an optical disc drive  9005 , a network interface  9006 , and a video interface  9009  and the respective parts are connected by a bus  9010 . 
     A picture coding unit  9007  and a picture decoding unit  9008  are typically implemented as the codec IC  9002 . A picture coding process of the picture coding device according to the embodiment of the present invention is executed by the picture coding unit  9007  and a picture decoding process in the picture decoding device according to the embodiment of the present invention is performed by the picture decoding unit  9008 . The I/O interface  9003  is implemented by, for example, a USB interface, and is connected to an external keyboard  9104 , a mouse  9105 , and the like. The CPU  9001  controls the coding/decoding device  9000  so that a user-desired operation is executed on the basis of a user operation input via the I/O interface  9003 . User operations using the keyboard  9104 , the mouse  9105 , and the like include the selection of a coding or decoding function to be executed, setting of coding quality, designation of an input/output destination of a bitstream, designation of an input/output destination of a picture, and the like. 
     When the user desires an operation of reproducing a picture recorded on a disc recording medium  9100 , the optical disc drive  9005  reads a bitstream from the disc recording medium  9100  that has been inserted and transmits the read bitstream to the picture decoding unit  9008  of the codec IC  9002  via the bus  9010 . The picture decoding unit  9008  executes a picture decoding process on the input bitstream in the picture decoding device according to the embodiment of the present invention and transmits a decoded picture to an external monitor  9103  via the video interface  9009 . The coding/decoding device  9000  includes a network interface  9006  and can be connected to an external distribution server  9106  and a portable terminal  9107  via a network  9101 . When the user desires to reproduce the picture recorded on the distribution server  9106  or the portable terminal  9107  instead of the picture recorded on the disc recording medium  9100 , the network interface  9006  acquires a bitstream from the network  9101  instead of reading the bitstream from the input disc recording medium  9100 . When the user desires to reproduce the picture recorded in the memory  9004 , the picture decoding process in the picture decoding device according to the embodiment of the present invention is executed on the bitstream recorded in the memory  9004 . 
     When the user desires to perform an operation of coding a picture captured by the external camera  9102  and recording the coded picture in the memory  9004 , the video interface  9009  inputs the picture from the camera  9102  and transmits the picture to the picture coding unit  9007  of the codec IC  9002  via the bus  9010 . The picture coding unit  9007  executes a picture coding process on a picture input via the video interface  9009  in the picture coding device according to the embodiment of the present invention to create a bitstream. Then, the bitstream is transmitted to the memory  9004  via the bus  9010 . When the user desires to record a bitstream on the disc recording medium  9100  instead of the memory  9004 , the optical disc drive  9005  writes the bitstream to the disc recording medium  9100  which has been inserted. 
     It is also possible to implement a hardware configuration that includes a picture coding device without including a picture decoding device or a hardware configuration that includes a picture decoding device without including a picture coding device. Such a hardware configuration is implemented, for example, by replacing the codec IC  9002  with the picture coding unit  9007  or the picture decoding unit  9008 . 
     The above processes related to coding and decoding may be implemented as a transmission, storage, and reception device using hardware and implemented by firmware stored in a read only memory (ROM), a flash memory, or the like or software of a computer or the like. A firmware program and a software program thereof may be provided by recording the programs on a recording medium capable of being read by a computer or the like or may be provided from a server through a wired or wireless network or may be provided as data broadcasts of terrestrial or satellite digital broadcasting. 
     The present invention has been described above on the basis of the embodiments. The embodiments are examples and it will be understood by those skilled in the art that various modifications are possible in combinations of the respective components and processing processes and such modifications are within the scope of the present invention. 
     EXPLANATION OF REFERENCES 
     
         
         
           
               100  Picture coding device 
               101  Block split unit 
               102  Inter prediction unit 
               103  Intra prediction unit 
               104  Decoded picture memory 
               105  Prediction method determination unit 
               106  Residual generation unit 
               107  Orthogonal transform/quantization unit 
               108  Bit strings coding unit 
               109  Inverse quantization/inverse orthogonal transform unit 
               110  Decoding picture signal superimposition unit 
               111  Coding information storage memory 
               200  Picture decoding device 
               201  Bit strings decoding unit 
               202  Block split unit 
               203  Inter prediction unit 
               204  Intra prediction unit 
               205  Coding information storage memory 
               206  Inverse quantization/inverse orthogonal transform unit 
               207  Decoding picture signal superimposition unit 
               208  Decoded picture memory