Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program
By dividing blocks into subblocks with distinct movement information and using a motion information history memory, the method addresses high processing loads in image encoding, achieving efficient encoding and decoding for videos with deformations.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- JVC KENWOOD CORP
- Filing Date
- 2025-07-10
- Publication Date
- 2026-07-07
AI Technical Summary
Existing image encoding techniques, such as those described in Patent Document 1, suffer from high processing loads due to image conversion processes, particularly when dealing with deformations like enlargement, reduction, and rotation of objects.
The implementation of a motion information history memory and a candidate motion vector derivation system that divides blocks into subblocks with different movement information, utilizing a motion information history memory to store and derive predictive motion vectors, and excluding motion information storage during encoding and decoding specific steps.
This approach reduces processing load while maintaining high efficiency in image encoding and decoding, especially for videos with deformations.
Smart Images

Figure 0007885921000001 
Figure 0007885921000002 
Figure 0007885921000003
Abstract
Description
Technical Field
[0001] The present invention relates to an image encoding and decoding technique for dividing an image into blocks and performing prediction.
Background Art
[0002] In image encoding and decoding, the image to be processed is divided into blocks, which are sets of a predetermined number of pixels, and processing is performed in block units. By appropriately dividing into blocks and appropriately setting intra-prediction (intra prediction) and inter-prediction (inter prediction), the encoding efficiency is improved. In video encoding and decoding, inter-prediction that predicts from encoded and decoded pictures improves the encoding efficiency. Patent Document 1 describes a technique of applying an affine transformation during inter-prediction. In video, it is not uncommon for an object to undergo deformations such as enlargement, reduction, and rotation. By applying the technique of Patent Document 1, efficient encoding becomes possible.
[0003] In video encoding and decoding, encoding efficiency is improved more by inter-prediction that predicts from encoded and decoded pictures. Patent Document 1 describes a technique of applying an affine transformation during inter-prediction. In video, it is not uncommon for an object to undergo deformations such as enlargement, reduction, and rotation. By applying the technique of Patent Document 1, efficient encoding becomes possible.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] However, since the technique of Patent Document 1 involves image conversion, there is a problem of a large processing load. In view of the above problems, the present invention provides an encoding technique with low load and high efficiency.
Means for Solving the Problems
[0006] A motion information history memory that stores the history of multiple motion information, and a candidate motion vector for predicting history. A predictive motion vector candidate derivation unit that derives a predictive motion vector candidate including and an encoding block Subblocks with different movement information are selected as merge candidates for each subblock, which is divided into subblocks of a predetermined size. The system comprises a subblock merge candidate derivation unit and an encoding unit for the predicted motion vector candidate. If so, the motion information is stored in the motion information history memory, and the subblock merge candidate When encoded, the motion information history memory does not store the motion information. A video encoding device is disclosed.
[0007] A motion information history memory that stores the history of multiple motion information, and a candidate motion vector for predicting history. A predicted motion vector candidate derivation step that derives a predicted motion vector candidate including, and an encoding block Subblock merging involves dividing the block into subblocks of a predetermined size, where each subblock has different movement information. The process includes a subblock merge candidate derivation step for deriving candidates, and the predicted motion vector If a candidate is encoded, the motion information is stored in the motion information history memory, and the subblock If a merge candidate is encoded, the motion information will not be stored in the motion information history memory. A video encoding method characterized by the above is disclosed.
[0008] A motion information history memory that stores the history of multiple motion information, and a candidate motion vector for predicting history. A predicted motion vector candidate derivation step that derives a predicted motion vector candidate including, and an encoding block Subblock merging involves dividing the block into subblocks of a predetermined size, where each subblock has different movement information. The computer is made to perform the subblock merge candidate derivation step, which derives candidates, and before When the predicted motion vector candidates are encoded, the motion information is stored in the motion information history memory. Furthermore, when the subblock merge candidate is encoded, the motion information history memory is stored. A video encoding program is disclosed, characterized in that it does not store data.
[0009] A motion information history memory that stores the history of multiple motion information, and a candidate motion vector for predicting history. A predictive motion vector candidate derivation unit that derives a predictive motion vector candidate including a decoding block It derives subblock merge candidates with different movement information for each subblock divided into fixed-size units. The system comprises a subblock merge candidate derivation unit and a decoding unit that decodes the predicted motion vector candidate. In that case, the motion information is stored in the motion information history memory and the subblock merge candidate is restored. When this is done, the motion information is not stored in the motion information history memory, which is a characteristic of this type of video. A decoding device is disclosed.
[0010] A motion information history memory that stores the history of multiple motion information, and a candidate motion vector for predicting history. A predicted motion vector candidate derivation step that derives a predicted motion vector candidate including and a decoding block Subblock merge candidates where movement information differs for each subblock unit, which is divided into subblock units of a predetermined size. The process includes a subblock merge candidate derivation step for deriving a supplement, and the predicted motion vector candidate When the supplement is decoded, the motion information is stored in the motion information history memory, and the subblock memory A key feature is that when a candidate image is decoded, the motion information is not stored in the motion information history memory. A video decoding method is disclosed.
[0011] A motion information history memory that stores the history of multiple motion information, and a candidate motion vector for predicting history. A predicted motion vector candidate derivation step for deriving a predicted motion vector candidate including the motion information of the decoded block, and a predicted motion vector candidate derivation step for deriving a predicted motion vector candidate including a history predicted motion vector candidate from a memory for holding the motion information of the decoded block are executed by a computer. When the predicted motion vector candidate is decoded, the motion information is stored in the motion information history memory, and when the sub-block merge candidate is decoded, the motion information is not stored in the motion information history memory. A moving image decoding program is disclosed. A predicted motion vector candidate derivation step for deriving a predicted motion vector candidate including the motion information of the decoded block, and a predicted motion vector candidate derivation step for deriving a predicted motion vector candidate including a history predicted motion vector candidate from a memory for holding the motion information of the decoded block are executed by a computer. When the predicted motion vector candidate is decoded, the motion information is stored in the motion information history memory, and when the sub-block merge candidate is decoded, the motion information is not stored in the motion information history memory. A moving image decoding program is disclosed. A predicted motion vector candidate derivation step for deriving a predicted motion vector candidate including the motion information of the decoded block, and a predicted motion vector candidate derivation step for deriving a predicted motion vector candidate including a history predicted motion vector candidate from a memory for holding the motion information of the decoded block are executed by a computer. When the predicted motion vector candidate is decoded, the motion information is stored in the motion information history memory, and when the sub-block merge candidate is decoded, the motion information is not stored in the motion information history memory. A moving image decoding program is disclosed. A predicted motion vector candidate derivation step for deriving a predicted motion vector candidate including the motion information of the decoded block, and a predicted motion vector candidate derivation step for deriving a predicted motion vector candidate including a history predicted motion vector candidate from a memory for holding the motion information of the decoded block are executed by a computer. When the predicted motion vector candidate is decoded, the motion information is stored in the motion information history memory, and when the sub-block merge candidate is decoded, the motion information is not stored in the motion information history memory. A moving image decoding program is disclosed. A predicted motion vector candidate derivation step for deriving a predicted motion vector candidate including the motion information of the decoded block, and a predicted motion vector candidate derivation step for deriving a predicted motion vector candidate including a history predicted motion vector candidate from a memory for holding the motion information of the decoded block are executed by a computer. When the predicted motion vector candidate is decoded, the motion information is stored in the motion information history memory, and when the sub-block merge candidate is decoded, the motion information is not stored in the motion information history memory. A moving image decoding program is disclosed. A predicted motion vector candidate derivation step for deriving a predicted motion vector candidate including the motion information of the decoded block, and a predicted motion vector candidate derivation step for deriving a predicted motion vector candidate including a history predicted motion vector candidate from a memory for holding the motion information of the decoded block are executed by a computer. When the predicted motion vector candidate is decoded, the motion information is stored in the motion information history memory, and when the sub-block merge candidate is decoded, the motion information is not stored in the motion information history memory. A moving image decoding program is disclosed.
[0012] Note that this description is exemplary. The scope of the present application and the present invention is not limited or restricted by this description. Also, in this specification, the description of "the present invention" is used for exemplification and is not intended to limit the scope of the present invention or the present application. Note that this description is exemplary. The scope of the present application and the present invention is not limited or restricted by this description. Also, in this specification, the description of "the present invention" is used for exemplification and is not intended to limit the scope of the present invention or the present application. Note that this description is exemplary. The scope of the present application and the present invention is not limited or restricted by this description. Also, in this specification, the description of "the present invention" is used for exemplification and is not intended to limit the scope of the present invention or the present application. Note that this description is exemplary. The scope of the present application and the present invention is not limited or restricted by this description. Also, in this specification, the description of "the present invention" is used for exemplification and is not intended to limit the scope of the present invention or the present application.
Effects of the Invention
[0013] According to the present invention, highly efficient image encoding and decoding processing can be realized with low load.
Brief Description of the Drawings
[0014] [Figure 1] It is a block diagram of an image encoding device according to an embodiment of the present invention. [Figure 2] ]>It is a block diagram of an image decoding device according to an embodiment of the present invention. [Figure 3] It is a flowchart for explaining the operation of dividing a tree block. [Figure 4] It is a diagram showing how an input image is divided into tree blocks. [Figure 5] It is a diagram for explaining z-scan. [Figure 6A] It is a diagram showing the divided shape of a block. [Figure 6B]This diagram shows the division shape of the block. [Figure 6C] This diagram shows the division shape of the block. [Figure 6D] This diagram shows the division shape of the block. [Figure 6E] This diagram shows the division shape of the block. [Figure 7] This is a flowchart to explain the process of dividing a block into four parts. [Figure 8] This is a flowchart illustrating the process of dividing a block into two or three parts. [Figure 9] This is syntax for representing the shape of block divisions. [Figure 10A] This diagram illustrates intranet prediction. [Figure 10B] This diagram illustrates intranet prediction. [Figure 11] This is a diagram illustrating the reference block of interpretation. [Figure 12] This is a syntax for representing the coding block prediction mode. [Figure 13] This figure shows the correspondence between syntax elements and modes for interpretation. [Figure 14] This diagram illustrates affine transformation motion compensation for two control points. [Figure 15] This diagram illustrates affine transform motion compensation for three control points. [Figure 16] Figure 1 is a block diagram showing the detailed configuration of the interpretation unit 102. [Figure 17] Figure 16 is a block diagram showing the detailed configuration of the normal predictive motion vector mode derivation unit 301. [Figure 18] Figure 16 is a block diagram showing the detailed configuration of the normal merge mode derivation unit 302. [Figure 19] Figure 16 is a flowchart illustrating the normal predicted motion vector mode derivation process of the normal predicted motion vector mode derivation unit 301. [Figure 20]This is a flowchart illustrating the processing steps for the normal predicted motion vector mode derivation process. [Figure 21] This is a flowchart explaining the processing steps for the normal merge mode derivation process. [Figure 22] Figure 2 is a block diagram showing the detailed configuration of the interpretation prediction unit 203. [Figure 23] Figure 22 is a block diagram showing the detailed configuration of the normal predictive motion vector mode derivation unit 401. [Figure 24] Figure 22 is a block diagram showing the detailed configuration of the normal merge mode derivation unit 402. [Figure 25] Figure 22 is a flowchart illustrating the normal predicted motion vector mode derivation process of the normal predicted motion vector mode derivation unit 401. [Figure 26] This diagram illustrates the initialization and update process for the historical prediction motion vector candidate list. [Figure 27] This is a flowchart of the identical element verification process in the initialization and update process of the history prediction motion vector candidate list. [Figure 28] This is a flowchart of the element shifting procedure in the initialization and update process of the history prediction motion vector candidate list. [Figure 29] This is a flowchart illustrating the procedure for deriving candidate motion vectors based on historical predictions. [Figure 30] This is a flowchart illustrating the procedure for deriving candidates for history merge. [Figure 31A] This diagram illustrates an example of the process for updating the list of candidate motion vectors predicted in the history. [Figure 31B] This diagram illustrates an example of the process for updating the list of candidate motion vectors predicted in the history. [Figure 31C] This diagram illustrates an example of the process for updating the list of candidate motion vectors predicted in the history. [Figure 32] This diagram illustrates motion compensation prediction in the case of L0 prediction, where the L0 reference picture (RefL0Pic) is at a time earlier than the picture to be processed (CurPic). [Figure 33]This diagram illustrates motion compensation prediction in the case of L0 prediction, where the reference picture for the L0 prediction is at a later time than the picture being processed. [Figure 34] This diagram illustrates the prediction direction of motion-compensated prediction in a dual prediction system where the reference picture for L0 prediction is at a time earlier than the picture to be processed, and the reference picture for L1 prediction is at a time later than the picture to be processed. [Figure 35] This diagram illustrates the prediction direction of motion-compensated prediction in a dual prediction system where the reference picture for L0 prediction and the reference picture for L1 prediction are at a time earlier than the picture being processed. [Figure 36] This diagram illustrates the prediction direction of motion-compensated prediction in a dual prediction system where the reference picture for L0 prediction and the reference picture for L1 prediction are at a later time than the picture being processed. [Figure 37] This figure illustrates an example of the hardware configuration of an encoding / decoding device according to an embodiment of the present invention. [Figure 38A] This is a diagram to explain the temporal relationships between the pictures. [Figure 38B] This is a diagram to explain the positional relationship of the coding blocks. [Figure 39] This is a flowchart illustrating the process of deriving time-predicted motion vector candidates in the normal prediction motion vector mode derivation unit 301. [Figure 40] This table shows another example of historical prediction motion vector candidates that are added by the initialization of the historical prediction motion vector candidate list. [Figure 41] This table shows another example of historical prediction motion vector candidates that are added by the initialization of the historical prediction motion vector candidate list. [Figure 42] This table shows another example of historical prediction motion vector candidates that are added by the initialization of the historical prediction motion vector candidate list. [Figure 43] This flowchart illustrates the procedure for deriving candidate motion vectors based on historical predictions with additional restrictions. [Figure 44]This flowchart explains the procedure for deriving candidate motion vectors based on historical predictions when identical candidate determination is not performed. [Modes for carrying out the invention]
[0015] This section defines the technologies and technical terms used in this embodiment.
[0016] <Tree Block> In this embodiment, the image to be encoded and decoded is divided equally into predetermined units. This is defined as a tree block. In Figure 4, the size of the tree block is 128x128 pixels. However, the size of the tree block is not limited to this, and can be any size. You may set the following: Processing target (encoded target in encoding, decoded target in decoding). The tree blocks corresponding to the target are arranged in raster scan order, i.e., from left to right, and from top to bottom. The following order of transitions occurs. Each tree block can be further recursively subdivided. After recursively dividing a tree block, the blocks to be encoded and decoded are... A lock is defined as such. Furthermore, tree blocks and coded blocks are collectively defined as blocks. By performing appropriate block division, efficient encoding becomes possible. (Tree block) The size can be a fixed value predetermined by the encoding and decoding devices, or the code It is also possible to have a configuration in which the decoding device transmits the size of the tree block determined by the decoding device to the decoding device. Yes, it is possible. Here, the maximum size of the tree block is 128x128 pixels, tree block The minimum size is set to 16x16 pixels. The maximum size of the encoded block is set to 64x64. The minimum size of each pixel and coding block is set to 4x4 pixels.
[0017] <Prediction Mode> An indicator is used to make predictions from the processed image signal of the image to be processed, at the level of the encoding block to be processed. Trap prediction (MODE_INTRA), and interpretation (MO) which predicts from the image signal of a processed image. Switch DE_INTER. A processed image is, in the encoding process, the image obtained by decoding the encoded signal. It is used for numbers, tree blocks, blocks, coded blocks, etc., and in the decoding process, Used for completed images, image signals, tree blocks, blocks, encoded blocks, etc. . This mode identifies the intra prediction (MODE_INTRA) and inter prediction (MODE_INTER). The measurement mode is defined as PredMode. The prediction mode is defined as Intra Prediction (MODE_INTRA ), or has an inter-prediction (MODE_INTER) as its value.
[0018] <Interface Forecast> Interpretation, which makes predictions from the image signals of processed images, references multiple processed images. It can be used as a picture. To manage multiple reference pictures, L0 (reference Two types of reference lists are defined: L1 (Reference List 1) and L0 (Reference List 0), and each has a reference index. Use CSS to identify the reference picture. L0 prediction (Pred_L0) is available for P slices. In B-slice, there are L0 predictions (Pred_L0), L1 predictions (Pred_L1), and bi-predictions (Pred_BI). ) is available. L0 prediction (Pred_L0) refers to the reference picture managed by L0. This is an interpretation, and the L1 prediction (Pred_L1) uses a reference picture managed by L1. This is the reference interpretation. In dual prediction (Pred_BI), both L0 and L1 predictions are performed. Interpretation that references one reference picture each managed by L0 and L1. Therefore, the information that identifies L0 prediction, L1 prediction, and dual prediction is defined as the interprediction mode. For constants and variables with the subscript LX in the output in subsequent processing, L0, L1 It is assumed that processing is performed for each step.
[0019] <Predictive motion vector mode> The predicted motion vector mode uses an index to identify the predicted motion vector, and differential motion Transmits vector, interpretation mode, and reference index, and input of the block to be processed. This mode determines the predictive information for the target block. The predicted motion vector is adjacent to the block to be processed. A processed block, or a block belonging to a processed image, which is the same as the block to be processed. Candidate predicted motion vectors derived from blocks located in or near (in the vicinity of) the predicted It is derived from an index used to identify the measured motion vector.
[0020] <Merge Mode> Merge mode does not transmit the differential motion vector or reference index, but processes the blocks to be processed. Processed blocks adjacent to the block, or blocks belonging to the processed image, are blocks to be processed. Processing is performed using the interpretation information of blocks located at the same position as or near (in the vicinity of) the block in question. This mode derives inter-prediction information for the target block.
[0021] Processed blocks adjacent to the block to be processed, and the interface of those processed blocks - Prediction information is defined as spatial merge candidates. Blocks belonging to the processed image are the blocks to be processed. Blocks located in the same position as or near (in the vicinity of) a block, and the interior of that block. Interpretation information derived from terminal prediction information is defined as a time merge candidate. The supplement is added to the merge candidate list, and the merge index predicts which blocks will be processed. Identify the merge candidates to be used.
[0022] <Adjacent Blocks> Figure 11 shows how to derive interpredictive information in predictive motion vector mode and merge mode. This is a diagram illustrating the reference blocks used for referencing. A0, A1, A2, B0, B1, B2, B3 is a processed block adjacent to the block to be processed. T0 is a processed image. Within the block to which it belongs, at the same location or near the processing target block in the image to be processed ( It is a block located in the vicinity.
[0023] A1 and A2 are located to the left of the coding block to be processed, and adjacent to the coding block to be processed. These are adjacent blocks. B1 and B3 are located above the encoding block to be processed, and are the same as the processing block. These are blocks adjacent to the coded block. A0, B0, and B2 are the codes to be processed, respectively. These are the blocks located in the lower left, upper right, and upper left corners of the numbered block.
[0024] Details on how adjacent blocks are handled in predictive motion vector mode and merge mode. Details will be discussed later.
[0025] <Affine transformation motion compensation> Affine transform motion compensation divides the encoded block into predetermined subblocks, and This method determines a motion vector for each subblock individually and performs motion compensation. The motion vector of each subblock is the same as that of the processed block adjacent to the block being processed, and This refers to a block belonging to the processed image, located at the same position as or near the block being processed. Derived based on one or more control points derived from the interprediction information of the block located at [location]. In this embodiment, the subblock size is set to 4x4 pixels, but the subblock size The method is not limited to this, and motion vectors can also be derived at the pixel level.
[0026] Figure 14 shows an example of affine transform motion compensation with two control points. In this case, the two The control point has two parameters: a horizontal component and a vertical component. Therefore, the control point The affine transformations in the two cases are called four-parameter affine transformations. CP1 in Figure 14, CP2 is the control point. Figure 15 shows an example of affine transform motion compensation when there are three control points. The control point has two parameters: a horizontal component and a vertical component. Therefore, the control point The three cases of affine transformation are called six-parameter affine transformations. CP1 in Figure 15, CP2 and CP3 are control points.
[0027] Affine transformation motion compensation applies to both predictive motion vector modes and merged modes. It is also available in D. Apply affine transform motion compensation in predictive motion vector mode. We define the mode as the subblock prediction motion vector mode and the merge mode as the affine transformation. The mode to which motion compensation is applied is defined as subblock merge mode.
[0028] <Interpretation Syntax> Figures 12 and 13 are used to explain the syntax for interpretation. The merge_flag in Figure 12 determines whether the target coding block is in merge mode or predicts motion. This flag indicates whether to use merge mode. `merge_affine_flag` is used for merge mode processing. This flag indicates whether or not to apply subblock merge mode to the target encoding block. inter_affine_flag is a subblock in the coding block being processed in predictive motion vector mode. This flag indicates whether or not to apply the cu_affine_type_flag predictive motion vector mode. This is a flag used to determine the number of control points in the subblock predictive motion vector mode. That is the case. Figure 13 shows the values of each syntax element and the corresponding prediction methods. merge_fl ag=1,merge_affine_flag=0 corresponds to normal merge mode. Normal merge mode is... This is a merge mode that is not a block merge. merge_flag=1,merge_affine_flag=1 means Supports block merge mode. merge_flag=0, inter_affine_flag=0 is normal prediction behavior It supports the vector mode. The normal predictive motion vector mode is the subblock predictive motion vector. This is a non-cut mode predictive motion vector merge. merge_flag=0, inter_affine_flag=1 This corresponds to the subblock prediction motion vector mode. merge_flag=0,inter_affine_flag If = 1, the cu_affine_type_flag is transmitted to determine the number of control points.
[0029] <poc> POC (Picture Order Count) is a variable associated with the picture being encoded. A value is set that increases by 1 according to the output order of the pictures. It can determine if a picture is the same, determine the order in which pictures are displayed in the output sequence, and It is possible to derive the distance between two pictures. For example, if the POCs of two pictures are the same If they have a value, they can be determined to be the same picture. If the two pictures have different POC values... If both are present, the picture with the smaller POC value will be the one to be output first. The difference in POC between the two pictures indicates the distance between the pictures in the time axis direction.
[0030] (First Embodiment) Regarding the image encoding device 100 and image decoding device 200 according to the first embodiment of the present invention I will explain.
[0031] Figure 1 is a block diagram of the image encoding device 100 according to the first embodiment. The image encoding device 100 includes a block division unit 101, an inter prediction unit 102, and an intra Prediction unit 103, decoded image memory 104, prediction method determination unit 105, residual generation unit 106, orthogonal Conversion / quantization unit 107, bit string encoding unit 108, inverse quantization / inverse orthogonal transformation unit 109, decoding It includes an image signal superposition unit 110 and an encoded information storage memory 111.
[0032] The block division unit 101 recursively divides the input image to generate encoded blocks. The block division unit 101 divides the block to be divided in the horizontal and vertical directions respectively. The four division points to be divided, and the block to be divided can be divided either horizontally or vertically. It includes 2-3 division sections to be divided. The block division section 101 processes the generated encoded block. The image signal of the coding block to be processed is used as the target coding block, and the prediction unit 102, it is supplied to the intra prediction unit 103 and the residual generation unit 106. Also, block division Unit 101 supplies information indicating the determined recursive partition structure to the bit string encoding unit 108. The detailed operation of the lock splitting section 101 will be described later.
[0033] Interpretation unit 102 performs interpretation of the encoding block to be processed. The measurement unit 102 uses the interprediction information stored in the encoded information storage memory 111 and the decoded information. Multiple interprediction information from the decoded image signal stored in the image memory 104 The system derives candidates, and selects the most suitable interpretation mode from among the derived candidates. The selected interprediction mode and the predicted image signal corresponding to the selected interprediction mode This is supplied to the prediction method determination unit 105. The detailed configuration and operation of the interpretation unit 102 will be described later. .
[0034] The intra prediction unit 103 performs intra prediction of the coding block to be processed. The measurement unit 103 uses the decoded image signal stored in the decoded image memory 104 as a reference pixel. The code is then referenced and stored in the coding information storage memory 111, such as the intra prediction mode. Predicted image signals are generated by intra-prediction based on color information. In intra-prediction, The prediction unit 103 selects the appropriate intra prediction mode from among multiple intra prediction modes. The selected intra prediction mode, and the prediction image corresponding to the selected intra prediction mode. The image signal is supplied to the prediction method determination unit 105. Figures 10A and 10B show examples of intranet prediction. Figure 10A shows the prediction method for intranet prediction. This shows the correspondence between the direction and the intra prediction mode number. For example, intra prediction mode 5 0 generates an intra-predictive image by copying the reference pixels vertically. Prediction mode 1 is DC mode, and all pixel values of the block to be processed are calculated as reference pixels. This mode uses the average value. Intra prediction mode 0 is Planar mode, and vertical This mode creates a two-dimensional intra-predictive image from directional and horizontal reference pixels. (Figure) 10B is an example of generating an intra-prediction image in intra-prediction mode 40. The tiger prediction unit 103 predicts the direction indicated by the intra prediction mode for each pixel of the block to be processed. The value of the reference pixel is copied. The intra prediction unit 103 copies the reference pixel of the intra prediction mode. If the reference pixel is not at an integer position, the reference pixel value is determined by interpolation from the reference pixel values at surrounding integer positions. To determine.
[0035] The decoded image memory 104 stores the decoded image generated by the decoded image signal superimposition unit 110. The decoded image memory 104 processes the decoded images stored in it using the interpretation unit 102 and the intraprediction unit. It is supplied to the measuring unit 103.
[0036] The prediction method determination unit 105 determines the coding information for both intra-prediction and inter-prediction. The evaluation is performed using the code values of the report and residuals, the amount of distortion between the predicted image signal and the image signal to be processed, etc. This determines the optimal prediction mode. In the case of intra-prediction, the prediction method determination unit 10 5 uses intra prediction information such as intra prediction mode as encoded information in bit string encoding unit 1 It supplies to 08. In the merge mode of interprediction, the prediction method determination unit 105 is merge The index, information indicating whether or not it is in subblock merge mode (subblock merge flag) Interpretation information such as (g) is supplied to the bit string encoding unit 108 as encoded information. In the case of the predictive motion vector mode of the interpretation prediction, the prediction method determination unit 105 determines the interpretation prediction mode. L0, L1 reference index, differential motion vector Information indicating whether or not it is a subblock predicted motion vector mode (subblock predicted motion vector) Interpretation information such as the Tor Flag is supplied to the bit string encoding unit 108 as encoded information. Furthermore, the prediction method determination unit 105 stores the determined encoded information in the encoded information storage memory 11. It supplies to 1. The prediction method determination unit 105 determines the residual generation unit 106 and the predicted image signal and the decoded image. This is supplied to the signal superposition unit 110.
[0037] The residual generation unit 106 generates the residual by subtracting the predicted image signal from the image signal to be processed. It is generated and supplied to the orthogonal transformation / quantization unit 107.
[0038] The orthogonal transformation / quantization unit 107 performs an orthogonal transformation and quantity transformation on the residual according to the quantization parameters. Substitution is performed to generate orthogonal transform and quantized residuals, and the generated residuals are encoded by the bit string encoding unit 10 It is supplied to 8 and the inverse quantization / inverse orthogonal transformation unit 109.
[0039] The bit sequence encoding unit 108 encodes sequences, pictures, slices, and encoding blocks. In addition to the information, the prediction method determined by the prediction method determination unit 105 for each encoded block is used. The corresponding encoded information is encoded. Specifically, the bit string encoding unit 108 encodes the encoded blocks. Encode the prediction mode PredMode for each class. In addition, the bit string encoding unit 108 sets a flag to determine whether or not it is in merge mode, and a subblock mark. The merge flag, the merge index if in merge mode, and the index if not in merge mode. Information regarding the predictor mode, predicted motion vector index, differential motion vector, sub Encoded information (interpretation information) such as block prediction motion vector flags in a specified syntax Encode according to the bit sequence syntax rules to generate the first bit sequence. Prediction mode If it is intra prediction (MODE_INTRA), then encoded information such as intra prediction mode (intra prediction The measured information is encoded according to a specified syntax (syntax rules for bit sequences), and the first bit The bit sequence is generated. The bit sequence encoding unit 108 also defines the orthogonal transformation and the quantized residual. The second bit string is generated by entropy encoding according to the syntax. The numbering unit 108 multiplexes the first bit string and the second bit string according to a specified syntax. Then, it outputs a bitstream.
[0040] The inverse quantization / inverse orthogonal transformation unit 109 receives the orthogonal transformation supplied from the orthogonal transformation / quantization unit 107. The quantized residuals are inversely quantized and inversely orthogonal transformed to calculate the residuals, and the calculated residuals are then decoded. The signal is supplied to the image signal superposition unit 110.
[0041] The decoded image signal superimposition unit 110 superimposes the predicted image signal according to the determination made by the prediction method determination unit 105. The residuals obtained by inverse quantization and inverse orthogonal transformation in the inverse quantization / inverse orthogonal transformation unit 109 are superimposed and decoded. The image is generated and stored in the decoded image memory 104. The decoded image signal superposition unit 110 is used for decoding. The image was subjected to a filtering process to reduce distortions such as block distortion caused by encoding. The decoded image may then be stored in the memory 104.
[0042] The encoded information storage memory 111 stores the prediction mode (in) determined by the prediction method determination unit 105. Stores coded information such as (inter prediction or intra prediction). In the case of intra prediction, the code The encoded information stored in the data storage memory 111 includes the determined motion vector and a reference list. Interpretation information such as L0 and L1 reference indices, historical prediction motion vector candidate list, etc. This includes. Also, in the case of interprediction merge mode, the coded information storage memory 111 is The encoded information to be stored includes, in addition to the information described above, the merge index and subblock mark. Interpretation information includes information indicating whether or not it is a dimode (subblock merge flag). Furthermore, in the case of the prediction motion vector mode of interpretation, the coded information storage memory 111 is In addition to the information mentioned above, the encoded information to be stored includes the interpretation mode and the predicted motion vector. Index, differential motion vector, subblock predictive motion vector, information indicating whether or not it is in mode. This includes inter-prediction information such as reports (subblock prediction motion vector flags). In the case of prediction, the coded information stored in the coded information storage memory 111 contains the determined int This includes intra-predictive information such as prediction mode.
[0043] Figure 2 shows the configuration of an image decoding device according to an embodiment of the present invention, corresponding to the image encoding device in Figure 1. This is a block showing the result. The image decoding device of the embodiment includes a bit sequence decoding unit 201, and a block C division unit 202, inter prediction unit 203, intra prediction unit 204, coded information storage memory 205, inverse quantization / inverse orthogonal transformation unit 206, decoded image signal superposition unit 207, and decoded image It is equipped with Mori 208.
[0044] The decoding process of the image decoding device in Figure 2 is performed by the decoding process located inside the image encoding device in Figure 1. Since it corresponds to the processing, the encoded information storage memory 205 in Figure 2, inverse quantization and inverse orthogonal The configurations of the conversion unit 206, the decoded image signal superimposition unit 207, and the decoded image memory 208 are shown in Figure Image encoding device 1: Encoding information storage memory 111, inverse quantization / inverse orthogonal transformation unit 109, The configurations of the image signal superposition unit 110 and the decoded image memory 104, and their respective corresponding functions. It holds.
[0045] The bitstream supplied to the bit string decoding unit 201 conforms to the rules of a specified syntax. Therefore, it is separated. The bit sequence decoding unit 201 decodes the separated first bit sequence and Information at the Kens, picture, slice, coded block level, and coded block level Encoded information is obtained. Specifically, the bit sequence decoding unit 201 intercepts the encoded block in units. - Prediction mode PredMode determines whether it is prediction (MODE_INTER) or intra prediction (MODE_INTRA). Decode. If the prediction mode is interprediction (MODE_INTER), the bit sequence decoding unit 201 performs the following: A flag to determine whether or not it is in merge mode; if in merge mode, the merge index, sub Block merge flag, if in predictive motion vector mode, interpredictive mode, predictive Motion vector index, differential motion vector, subblock predicted motion vector flag, etc. The encoded information (interpretation information) related to is decoded according to the specified syntax, and then encoded Information (interface prediction information) is transmitted via the interface prediction unit 203 and the block division unit 202. The encoded information is then supplied to the memory 205. The prediction mode is intra prediction (MODE_INTRA) In this case, the encoded information (intra prediction information) such as intra prediction mode is set to the specified syntax. Therefore, it decodes and the encoded information (intra prediction information) is sent to the inter prediction unit 203 or intra The data is supplied to the encoded information storage memory 205 via the prediction unit 204 and the block division unit 202. The bit sequence decoding unit 201 decodes the separated second bit sequence and performs orthogonal transformation and quantization. The residuals are calculated, and the orthogonal-transformed and quantized residuals are supplied to the inverse quantization and inverse orthogonal-transformation unit 206. do.
[0046] The interpretation unit 203 determines that the prediction mode PredMode of the coding block to be processed is interpretation When prediction (MODE_INTER) is in prediction motion vector mode, the encoded information storage memory 205 Using the encoded information of already decoded image signals stored in the system, multiple predicted motion vectors Candidates for the vector are derived, and the multiple candidates for the derived predicted motion vector are used in the predicted motion vector described later. Register to the candidate list. The interpretation unit 203 registers to the candidate list of predicted motion vectors. From among the multiple predicted motion vector candidates recorded, the bit string decoding unit 201 decodes and supplies Select a predicted motion vector corresponding to the predicted motion vector index, and decode the bit string. From the difference motion vector decoded in section 201 and the selected predicted motion vector, the motion vector The calculated motion vector is stored in the encoded information storage memory 205 along with other encoded information. The encoding information of the encoding block supplied and stored here is in Predictive Mode. , flags predFlagL0[xP][yP], predFlag indicating whether or not to use L0 prediction and L1 prediction. L1[xP][yP], L0, L1's reference index refIdxL0[xP][yP], refIdxL1[xP][yP], L0 These are the motion vectors of L1, mvL0[xP][yP], mvL1[xP][yP], etc., where xP and yP are pictures. This is an index indicating the position of the top-left pixel within the coded block. Prediction mode: PredMo When de is interpretation (MODE_INTER) and the interpretation mode is L0 prediction (Pred_L0) The flag predFlagL0, which indicates whether or not to use L0 prediction, is set to 1, and the flag predFlagL0, which indicates whether or not to use L1 prediction, is set to 1. The flag predFlagL1 is 0. If the interpretation mode is L1 prediction (Pred_L1), The flag predFlagL0, which indicates whether or not to use L0 prediction, is 0, and indicates whether or not to use L1 prediction. The flag predFlagL1 is 1. If the interpretation mode is biprediction (Pred_BI), L0 Flags predFlagL0 and L1 indicate whether or not to use predictions. predFlagL1 is 1 in both cases. Furthermore, the prediction mode PredMode of the coding block to be processed is Interpretation (MODE_INTER) derives merge candidates when in merge mode. Encoding information Using the encoding information of the already decoded encoding block stored in storage memory 205 Multiple merge candidates are derived and registered in the merge candidate list described later, and the merge candidate list From among multiple merge candidates registered, the bit string decoding unit 201 decodes and supplies the merge candidates. Select merge candidates corresponding to the index, predict the L0 of the selected merge candidates, and Flags indicating whether or not to use L1 prediction: predFlagL0[xP][yP], predFlagL1[xP][yP], L0 , the reference index of L1 refIdxL0[xP][yP], refIdxL1[xP][yP], the movement vector of L0 and L1 Interpretation information such as mvL0[xP][yP], mvL1[xP][yP] is stored in the encoded information storage memory 205. Store it. Here, xP and yP indicate the position of the top-left pixel of the encoded block in the picture. This is the index. The detailed configuration and operation of the interpretation unit 203 will be described later.
[0047] The intra prediction unit 204 determines that the prediction mode PredMode of the coding block to be processed is intra During prediction (MODE_INTRA), intra prediction is performed. The code decoded by the bit string decoding unit 201 The numbering information includes an intra prediction mode. The intra prediction unit 204 performs bit sequence reconstruction. Depending on the intra prediction mode included in the encoded information decoded in section 201, the decoded image Predicted image signals are obtained from the decoded image signals stored in Mori 208 through intra-prediction. The generated predicted image signal is supplied to the decoded image signal superimposition unit 207. Intra prediction unit Since 204 corresponds to the intra prediction unit 103 of the image coding device 100, The same processing as in the Intra prediction unit 103 is performed.
[0048] The inverse quantization / inverse orthogonal transformation unit 206 processes the orthogonal transformation / quantum transformation decoded by the bit sequence decoding unit 201. The transformed residuals are subjected to inverse orthogonal transformation and inverse quantization, and the inverse orthogonal transformed and inverse quantized residuals are obtained. To obtain.
[0049] The decoded image signal superposition unit 207 superimposes the predicted image signal interpredicted by the interpretation unit 203. The predicted image signal, or the predicted image signal intra-predicted by the intra-prediction unit 204, and inverse quantization / inverse quantization. By superimposing the inverse orthogonal transform and inversely quantized residuals by the cross-transformation unit 206, the decoded image The image signal is decoded, and the decoded image signal is stored in the decoded image memory 208. When storing in Mori 208, the decoded image signal superimposition unit 207 encodes the decoded image. After applying a filtering process to reduce block distortion and other issues, the decoded image is stored in the image memory 208. It may be stored.
[0050] Next, the operation of the block division unit 101 in the image encoding device 100 will be described. Figure 3 shows the process of dividing an image into tree blocks and then further dividing each tree block. This is a flowchart. First, the input image is divided into tree blocks of a predetermined size. (Step S1001). For each tree block, a predetermined order, i.e., raster Scan in the order of scanning (step S1002) and divide the interior of the tree block to be processed. (Step S1003).
[0051] Figure 7 is a flowchart showing the detailed operation of the splitting process in step S1003. Next, it is determined whether or not to divide the block to be processed into four parts (step S1101).
[0052] If it is determined that the block to be processed should be divided into four parts, then the block to be processed will be divided into four parts (S Step S1102). For each block into which the block to be processed has been divided, in Z-scan order, That is, scan in the order of upper left, upper right, lower left, and lower right (step S1103). Figure 5 shows Z This is an example of a sequence order, and 601 in Figure 6A is an example where the processing target block is divided into four parts. Figure 6 The numbers 0-3 in A601 indicate the order of processing. Then in step S1101 For each divided block, the division process shown in Figure 7 is executed recursively (step S1104). ).
[0053] If it is determined that the block to be processed should not be divided into 4 parts, then divide it into 2 or 3 parts (Step S1) 105).
[0054] Figure 8 is a flowchart detailing the operation of the 2-3 splitting process in step S1105. First, decide whether to divide the block to be processed into 2 or 3 parts, that is, whether to divide it into 2 or 3 parts. Determine whether or not to perform one of the actions (step S1201).
[0055] If it is not decided to divide the block to be processed into 2-3 parts, that is, if it is decided not to divide it. If this occurs, the partitioning is terminated (step S1211). In other words, the partitioning is performed by a recursive partitioning process. No further recursive partitioning is performed on the resulting block.
[0056] If it is determined that the block to be processed should be divided into 2-3 parts, then the block to be processed will be further divided into 2 parts. A decision is made as to whether or not to divide it (step S1202).
[0057] If it is determined that the block to be processed should be divided into two, the block to be processed will be divided vertically (up and down). ) is determined (step S1203) whether or not to divide into blocks, and based on the result, the blocks to be processed are determined Either divide the block into two vertical sections (step S1204), or move the block to be processed to the left. Divide into two horizontally to the right (step S1205). Process as a result of step S1204. The target block is divided into two sections vertically, as shown in 602 of Figure 6B, and As a result of step S1205, the blocks to be processed are as shown in 604 of Figure 6D, left and right (horizontally). It is divided into two parts.
[0058] If, in step S1202, it is not determined that the block to be processed should be divided into two parts, In other words, if it is determined that the data should be divided into three parts, the block to be processed is divided into upper, middle, and lower (vertically). A decision is made as to whether or not to proceed (step S1206), and based on the result, the block to be processed is moved up Divide into three sections vertically (step S1207), or divide the block to be processed into left, middle, and right sections. Divide into three sections horizontally (step S1208). As a result of step S1207, the processing target The block is divided into three sections vertically (upper, middle, and lower), as shown in 603 of Figure 6C. As a result of step S1208, the blocks to be processed are as shown in 605 of Figure 6E, left-center-right (horizontally). It is divided into three sections.
[0059] Steps S1204, S1205, S1207, S1208 After executing one of the above, for each of the divided blocks to be processed, from left to right, top to bottom, or Scan in the following order (step S1209). Numbers 0 to 605 in Figures 6B to E 2 indicates the order of processing. For each divided block, see the 2-3 division process in Figure 8. The logic is executed recursively (step S1210).
[0060] The recursive block partitioning described here depends on the number of times the block is partitioned, or the number of blocks being processed. The necessity of splitting may be restricted depending on the size, etc. The information restricting the necessity of splitting is the encoding device. Even if an agreement is made in advance between the decryption device and the system, it can be implemented in a configuration that does not involve the transmission of information. Good, the encoding device determines the information that limits whether or not division is necessary and records it in a bit string. This may be implemented by a configuration that transmits the data to a decoding device.
[0061] When a block is divided, the original block is called the parent block, and each of the resulting blocks is called the parent block. A block is called a child block.
[0062] Next, the operation of the block division unit 202 in the image decoding device 200 will be described. The lock division unit 202 performs the same processing procedure as the block division unit 101 of the image encoding device 100. This divides the tree block. However, the block division of the image encoding device 100 In section 101, optimization methods such as estimating the optimal shape using image recognition and optimizing the strain rate are applied. In contrast to determining the optimal block division shape, the block division in the image decoding device 200 The division unit 202 decodes the block division information recorded in the bit string, The difference lies in how the division shape is determined.
[0063] Figure 9 shows the syntax (bit sequence syntax rules) for block partitioning in the first embodiment. As shown below, coding_quadtree() represents the syntax for dividing a block into four parts. _type_tree() represents the syntax for splitting a block into two or three parts. qt_spl `it` is a flag indicating whether or not to divide the block into four parts. If the block is to be divided into four parts, use `qt`. Set _split=1 and set qt_split=0 if you do not want to split into 4 parts. If you want to split into 4 parts (qt_split=1), For each of the four divided blocks, the process of dividing into four is performed recursively (coding_quadtree(0), codin g_quadtree(1), coding_quadtree(2), coding_quadtree(3), the arguments 0-3 are shown in Figure 6A 6 Corresponds to the number 01. ) If not split into 4 (qt_split=0), follow multi_type_tree(). Then, the next split is decided. `mtt_split` is a flag indicating whether or not to perform further splits. If further division is required (mtt_split=1), it indicates whether to divide vertically or horizontally. The flag mtt_split_vertical is a flag that determines whether to split into two or three parts. The mtt_split_binary is transmitted. mtt_split_vertical=1 indicates splitting vertically. And, mtt_split_vertical=0 indicates splitting horizontally. mtt_split_binary=1 means, This indicates a 2-way split, and mtt_split_binary=0 indicates a 3-way split. When splitting into 2 (m (tt_split_binary=1), and for each of the two divided blocks, the splitting process is performed recursively (multi_t ype_tree(0), multi_type_tree(1), the argument 0-1 corresponds to 602 or 604 in Figures 6B-D Corresponds to the number. ) When dividing into 3 (mtt_split_binary=0), each of the 3 divided blocks is Then, the partitioning process is performed recursively (multi_type_tree(0), multi_type_tree(1), multi_type_ tree(2), numbers 0-2 correspond to numbers 603 in Figure 6B or 605 in Figure 6E. ) mtt_spli Hierarchical block partitioning is achieved by recursively calling multi_type_tree until t=0. Perform.
[0064] <Interface Forecast> The inter prediction method according to the embodiment is shown in Figure 1, inter prediction unit 102 of the image encoding device. This is also carried out in the interpretation unit 203 of the image decoding device shown in Figure 2.
[0065] The inter prediction method according to the embodiment will be explained with reference to the drawings. The method is performed in units of coded blocks, either by encoding or decoding.
[0066] <Explanation of the encoding-side interpretation unit 102> Figure 16 shows a detailed configuration of the interpretation unit 102 of the image encoding device shown in Figure 1. The normal prediction motion vector mode derivation unit 301 derives a plurality of normal prediction motion vector candidates. Select a predicted motion vector, and compare the selected predicted motion vector with the detected motion vector. Calculate the difference motion vector. Detected interpretation mode, reference index, motion The calculated difference motion vector is the interpretation of the normal predicted motion vector mode. This becomes information. This interpretation prediction information is supplied to the interpretation prediction mode determination unit 305. The detailed configuration and processing of the constant prediction motion vector mode derivation unit 301 will be described later.
[0067] The normal merge mode derivation unit 302 derives multiple normal merge candidates and selects the normal merge candidates. Select and obtain interprediction information in normal merge mode. This interprediction information is inter This is supplied to the prediction mode determination unit 305. Detailed configuration and processing of the normal merge mode derivation unit 302. The reasoning will be explained later.
[0068] In the subblock predicted motion vector mode derivation unit 303, multiple subblock predicted motion vectors Derive candidate subblocks and select subblock prediction motion vectors, then select the selected subblock prediction The difference motion vector between the measured motion vector and the detected motion vector is calculated. Interpretation mode, reference index, motion vector, calculated differential motion vector This interprediction information is for the subblock prediction motion vector mode. This is supplied to the inter-prediction mode determination unit 305.
[0069] The subblock merge mode derivation unit 304 derives multiple subblock merge candidates. Select subblock merge candidates and obtain interprediction information for the subblock merge mode. This inter-prediction information is supplied to the inter-prediction mode determination unit 305.
[0070] In the interprediction mode determination unit 305, the normal prediction motion vector mode derivation unit 301, Merge mode derivation unit 302, subblock predictive motion vector mode derivation unit 303, subblock Based on the inter prediction information supplied from the lock merge mode derivation unit 304, The prediction information is determined. The interprediction mode determination unit 305 determines the interprediction according to the determination result. Measurement information is supplied to the compensation prediction unit 306.
[0071] Based on the determined interprediction information, the motion compensation prediction unit 306 processes the decoded image memory 1 Interpretation is performed on the reference image signal stored in 04. Motion compensation prediction unit 306 The detailed configuration and processing will be described later.
[0072] <Explanation of the decoding side interpretation unit 203> Figure 22 shows a detailed configuration of the interpretation unit 203 of the image decoding device shown in Figure 2.
[0073] The normal prediction motion vector mode derivation unit 401 derives a plurality of normal prediction motion vector candidates. Select the predicted motion vector, and compare the selected predicted motion vector with the decoded difference motion vector. The sum of these values is calculated and used as the motion vector. The decoded interpretation mode and reference index The motion vector is the predictive information of the normal predicted motion vector mode. Center prediction information is supplied to the movement compensation prediction unit 406 via switch 408. The detailed configuration and processing of the motion vector mode derivation unit 401 will be described later.
[0074] The normal merge mode derivation unit 402 derives multiple normal merge candidates and selects a normal merge candidate. Select and obtain interpredictive information in normal merge mode. This interpredictive information switches It is supplied to the motion compensation prediction unit 406 via 408. The detailed configuration and processing will be described later.
[0075] In the subblock predicted motion vector mode derivation unit 403, multiple subblock predicted motion vectors Derive candidate subblocks and select subblock prediction motion vectors, then select the selected subblock prediction The motion vector is calculated by adding the measured motion vector and the decoded difference motion vector. The decoded interpretation mode, reference index, and motion vector are used for subblock prediction. This becomes the interpretation information for the motion vector mode. This interpretation information is for switch 408 It is supplied to the motion compensation prediction unit 406 via [this method].
[0076] The subblock merge mode derivation unit 404 derives multiple subblock merge candidates. Select subblock merge candidates and obtain interprediction information for the subblock merge mode. This interpretation information is supplied to the motion compensation prediction unit 406 via switch 408. .
[0077] The motion compensation prediction unit 406 uses the determined interpretation prediction information to process the decoded image memory 2 Interpretation is performed on the reference image signal stored in 08. Motion compensation prediction unit 406 The detailed configuration and processing are the same as those of the motion compensation prediction unit 306 on the encoding side.
[0078] <Normal Predictive Motion Vector Mode Derivation Unit (Normal AMVP)> The normal predicted motion vector mode derivation unit 301 in Figure 17 derives a candidate for spatial predicted motion vector. Unit 321, Time-predicted motion vector candidate derivation unit 322, History-predicted motion vector candidate derivation unit 3 23, Predicted motion vector candidate supplementation unit 325, Normal motion vector detection unit 326, Predicted motion vector It includes a candidate selection unit 327 and a motion vector subtraction unit 328.
[0079] The normal predicted motion vector mode derivation unit 401 in Figure 23 derives a candidate for spatial predicted motion vector. Unit 421, Time-predicted motion vector candidate derivation unit 422, History-predicted motion vector candidate derivation unit 4 23, Predicted motion vector candidate supplementation unit 425, Predicted motion vector candidate selection unit 426, motion vector Includes a culverter addition unit 427.
[0080] The encoding side's normal predicted motion vector mode derivation unit 301 and the decoding side's normal predicted motion vector The processing procedure for the Tormode Derivation Unit 401 is shown in the flowcharts in Figures 19 and 25, respectively. This will be explained using the following. Figure 19 shows the normal motion vector mode derivation unit 301 on the encoding side. This flowchart shows the procedure for deriving the predicted motion vector mode, and Figure 25 shows the decoding side. The procedure for deriving a normal predicted motion vector mode by the normal motion vector mode derivation unit 401 is shown. This is a flowchart.
[0081] <Explanation of the coding side: Typical predictive motion vector mode derivation unit (typical AMVP):> The normal predicted motion vector mode derivation procedure on the encoding side will be explained with reference to Figure 19. In the explanation of the 19 processing steps, the word "normal" as shown in Figure 19 may be omitted.
[0082] First, the motion vector detection unit 326 detects each reference index in the interpretation mode. Normally, motion vectors are detected (step S100 in Figure 19).
[0083] Next, the spatial prediction motion vector candidate derivation unit 321, and the time prediction motion vector candidate derivation unit 3 22, History prediction motion vector candidate derivation unit 323, Prediction motion vector candidate supplementation unit 325, Pre The motion vector candidate selection unit 327 and the motion vector subtraction unit 328 select the normal predicted motion vector The difference motion vectors used in mode interpretation are L0 and L1 respectively. This is calculated (steps S101-S106 in Figure 19). Specifically, the estimated value of the block to be processed is calculated. The measurement mode PredMode is Interpretation (MODE_INTER), and the Interpretation mode is L0 Prediction (Pr In the case of ed_L0), calculate the predicted motion vector candidate list mvpListL0 for L0, and then the predicted motion vector Select mvpL0 and calculate the difference motion vector mvdL0 of the motion vector mvL0 of L0. If the interpretation mode of the target block is L1 prediction (Pred_L1), the predicted motion vector of L1 The candidate list mvpListL1 is calculated, the predicted motion vector mvpL1 is selected, and the motion vector L1 Calculate the difference motion vector mvdL1 of tolmvL1. Interpretation mode of the block to be processed. In the case of dual prediction (Pred_BI), both L0 and L1 predictions are performed, and the predicted movement vector of L0 is... The candidate list mvpListL0 is calculated, and the predicted motion vector mvpL0 of L0 is selected. The difference motion vector mvdL0 is calculated from the vector mvL0, and the predicted motion vector of L1 is calculated. The supplementary list mvpListL1 is calculated, the predicted motion vector mvpL1 of L1 is calculated, and the motion vector of L1 The difference motion vectors mvdL1 and mvmvL1 are calculated.
[0084] The differential motion vector calculation process is performed for both L0 and L1, but both L0 and L1 This is a common process. Therefore, in the following explanation, L0 and L1 will be represented as a common LX. In the process of calculating the difference motion vector of L0, X in LX is 0, and the difference motion vector of L1 In the process of calculating the vector, X in LX is 1. Also, the difference motion vector of LX is calculated. If, during the process, information from the other list is referenced instead of LX, then the other list... This is represented as LY.
[0085] When using the motion vector mvLX for LX (step S102:YES in Figure 19), LX Calculate candidate predicted motion vectors and construct a list of LX predicted motion vector candidates, mvpListLX. To build (step S103 in Figure 19). In the normal predicted motion vector mode derivation unit 301 Spatial prediction motion vector candidate derivation unit 321, time prediction motion vector candidate derivation unit 322, history Multiple predicted motion vectors are generated in the predicted motion vector candidate derivation unit 323 and the predicted motion vector candidate supplementation unit 325. Candidate motion vectors are derived, and a list of predicted motion vector candidates, mvpListLX, is constructed. Figure 19 The detailed processing procedure for step S103 will be described later using the flowchart in Figure 20. ru.
[0086] Next, the predicted motion vector candidate selection unit 327 selects the predicted motion vector candidate list for LX. Select the predicted motion vector mvpLX from mvpListLX (step S104 in Figure 19). Here, in the list of candidate motion vectors mvpListLX, one element (counting from 0) Let the i-th element be represented as mvpListLX[i]. The motion vector mvLX and the predicted motion vector candidate. The difference between each predicted motion vector stored in the list mvpListLX and the candidate mvpListLX[i] is The difference motion vectors for each are calculated. When these difference motion vectors are encoded... The code value is calculated for each element (predicted motion vector candidate) of the predicted motion vector candidate list mvpListLX. Calculate. Then, among the elements registered in the predicted motion vector candidate list mvpListLX, The candidate for each predicted motion vector, mvpListLX[i], is determined by minimizing the sign value of each candidate for the predicted motion vector. Select the predicted motion vector mvpLX and obtain its index i. Predicted motion vector There are multiple candidate prediction motion vectors in the candidate list mvpListLX that have the smallest generated code amount. In that case, the index i in the predicted motion vector candidate list mvpListLX is a small number. The candidate predicted motion vectors mvpListLX[i] represented by this list are selected as the optimal predicted motion vector mvpLX. Select it and get its index i.
[0087] Next, the motion vector subtraction unit 328 subtracts the selected LX from the LX motion vector mvLX. Subtract the predicted motion vector mvpLX, mvdLX = mvLX - mvpLX The difference motion vector mvdLX is calculated as LX (step S105 in Figure 19).
[0088] <Explanation of the decoder side: Normal predicted motion vector mode derivation unit (normal AMVP):> Next, the normal predicted motion vector mode processing procedure on the decoding side will be explained with reference to Figure 25. On the other side, there is a spatial prediction motion vector candidate derivation unit 421 and a time prediction motion vector candidate derivation unit 4 22. History prediction motion vector candidate derivation unit 423, Prediction motion vector candidate supplementation unit 425, The motion vectors used in the interprediction of the normal predictive motion vector mode are L0 and L1 respectively. Each is calculated (steps S201-S206 in Figure 25). Specifically, the block to be processed Prediction mode is set to inter-prediction (MODE_INTER), and the inter-prediction is performed on the block being processed. If the mode is L0 prediction (Pred_L0), calculate the L0 prediction motion vector candidate list mvpListL0. The system then selects the predicted motion vector mvpL0 and calculates the motion vector mvL0 for L0. If the prediction mode for the elephant block is L1 prediction (Pred_L1), the predicted motion vector of L1 The candidate list mvpListL1 is calculated, the predicted motion vector mvpL1 is selected, and the motion vector L1 Calculate mvL1. If the interpretation mode of the block to be processed is dual prediction (Pred_BI) Both L0 and L1 predictions are performed, and the L0 prediction motion vector candidate list mvpListL0 is calculated. Then, select the predicted motion vector mvpL0 for L0 and calculate the motion vector mvL0 for L0. Together, we calculate the L1 predicted motion vector candidate list mvpListL1, and the L1 predicted motion vector The torque mvpL1 is calculated, and the motion vector mvL1 of L1 is calculated for each.
[0089] Similar to the encoding side, the decoding side also performs motion vector calculation processing for L0 and L1 respectively. This process is performed, but it is the same for both L0 and L1. Therefore, in the following explanation, L0, L1 is represented as a common LX. LX is used for interpretation of the coded block to be processed. This represents the interpretation mode. In the process of calculating the motion vector of L0, X is 0, and L1 In the process of calculating the motion vector, X is 1. Also, the motion vector of LX is calculated. During processing, instead of using the same reference list as LX for calculation, if information from the other reference list is referenced, the other reference list is represented as LY. When using the motion vector mvLX of LX (step S202: YES in FIG. 25), candidates for the predicted motion vector of LX are calculated to construct a list of predicted motion vector candidates mvpListLX for LX (step S203 in FIG. 25). Among the spatial predicted motion vector candidate derivation unit 421, the temporal predicted motion vector candidate derivation unit 422, the history predicted motion vector candidate derivation unit 423, and the predicted motion vector candidate supplementation unit 425 in the normal predicted motion vector mode derivation unit 401, multiple candidates for the predicted motion vector are calculated to construct the list of predicted motion vector candidates mvpListLX for LX. The detailed processing procedure of step S203 in FIG. 25 will be described later using the flowchart of FIG. 20.
[0090] When using the motion vector mvLX of LX (step S202: YES in FIG. 25), candidates for the predicted motion vector of LX are calculated to construct a list of predicted motion vector candidates mvpListLX for LX (step S203 in FIG. 25). Among the spatial predicted motion vector candidate derivation unit 421, the temporal predicted motion vector candidate derivation unit 422, the history predicted motion vector candidate derivation unit 423, and the predicted motion vector candidate supplementation unit 425 in the normal predicted motion vector mode derivation unit 401, multiple candidates for the predicted motion vector are calculated to construct the list of predicted motion vector candidates mvpListLX for LX. The detailed processing procedure of step S203 in FIG. 25 will be described later using the flowchart of FIG. 20. The detailed processing procedure of step S203 in FIG. 25 will be described later using the flowchart of FIG. 20. The detailed processing procedure of step S203 in FIG. 25 will be described later using the flowchart of FIG. 20. will be described later using the flowchart of FIG. 20.
[0091] Subsequently, the predicted motion vector candidate selection unit 426 selects the candidate mvpListLX[mvpIdxLX] of the predicted motion vector corresponding to the index mv pIdxLX of the predicted motion vector decoded and supplied by the bit sequence decoding unit 201 from the list of predicted motion vector candidates mvpListLX as the selected predicted motion vector mvpLX (step S204 in FIG. 25). Subsequently, the predicted motion vector candidate selection unit 426 selects the candidate mvpListLX[mvpIdxLX] of the predicted motion vector corresponding to the index mv pIdxLX of the predicted motion vector decoded and supplied by the bit sequence decoding unit 201 from the list of predicted motion vector candidates mvpListLX as the selected predicted motion vector mvpLX (step S204 in FIG. 25). Subsequently, the predicted motion vector candidate selection unit 426 selects the candidate mvpListLX[mvpIdxLX] of the predicted motion vector corresponding to the index mv pIdxLX of the predicted motion vector decoded and supplied by the bit sequence decoding unit 201 from the list of predicted motion vector candidates mvpListLX as the selected predicted motion vector mvpLX (step S204 in FIG. 25). Subsequently, the predicted motion vector candidate selection unit 426 selects the candidate mvpListLX[mvpIdxLX] of the predicted motion vector corresponding to the index mv pIdxLX of the predicted motion vector decoded and supplied by the bit sequence decoding unit 201 from the list of predicted motion vector candidates mvpListLX as the selected predicted motion vector mvpLX (step S204 in FIG. 25).
[0092] Subsequently, the motion vector addition unit 427 adds the differential motion vector mvdLX of LX and the predicted motion vector mvpLX of LX decoded and supplied by the bit sequence decoding unit 201, mvLX = mvpLX + mvdLX to calculate the motion vector mvLX of LX (step S205 in FIG. 25). to calculate the motion vector mvLX of LX (step S205 in FIG. 25).
[0093] <Normal Predictive Motion Vector Mode Derivation Unit (Normal AMVP): Method for Predicting Motion Vectors> Figure 20 shows the derivation of the normal predicted motion vector mode of the image coding device according to an embodiment of the present invention. Functions common to unit 301 and the normal predicted motion vector mode derivation unit 401 of the image decoding device This is a flowchart representing the processing procedure for a normal predictive motion vector mode derivation process that has [a specific characteristic].
[0094] Normal prediction motion vector mode derivation unit 301 and Normal prediction motion vector mode derivation unit 40 Version 1 includes a list of predicted motion vector candidates, mvpListLX. The `stomvpListLX` has a list structure and indicates the location of the predicted motion vector candidate within the list. The elements are a motion vector index and a predicted motion vector candidate corresponding to the index. A memory area is provided for storing it. The predicted motion vector index numbers start from 0. The predicted motion vector candidates are started and stored in the memory area of the predicted motion vector candidate list mvpListLX. This is stored. In this embodiment, the predicted motion vector candidate list mvpListLX is small It is possible to register at least two predicted motion vector candidates (interpretation information). Furthermore, the predicted motion vectors registered in the predicted motion vector candidate list mvpListLX Set the variable numCurrMvpCand, which indicates the number of candidate characters, to 0.
[0095] The spatial prediction motion vector candidate derivation units 321 and 421 are derived from the block adjacent to the left. Candidates for the predicted motion vector are derived. In this process, the block adjacent to the left (Figure 11) Whether or not interpretation information for A0 or A1) is available, i.e., candidate prediction motion vectors. The predicted motion vector mv is determined by referencing a flag indicating whether it is, the motion vector, the reference index, etc. LXA is derived, and the derived mvLXA is added to the predicted motion vector candidate list mvpListLX (Figure 20). (Step S301). Note that X is 0 when predicting L0 and 1 when predicting L1 (and so on). (Same as below). Next, the spatial prediction motion vector candidate derivation units 321 and 421 are adjacent to the upper side. Candidate predicted motion vectors are derived from the block. In this process, the block adjacent to the upper side... Interpretation information of the lock (B0, B1, or B2 in Figure 11), i.e., predicted motion vector A flag indicating whether a candidate for the toll is available, along with motion vectors, reference indices, etc., are used. Derive the predicted motion vector mvLXB by comparing it, and if the derived mvLXA and mvLXB are not equal... Then, add mvLXB to the predicted motion vector candidate list mvpListLX (step S3 in Figure 20). 02). The processing in steps S301 and S302 in Figure 20 involves the position and number of adjacent blocks being referenced. They are similar except for the difference in whether or not the predicted motion vector candidate for the encoded block is available. The flag availableFlagLXN indicates whether it is available, and the motion vector mvLXN, and the reference index refIdxN( Derive the equation N represents either A or B (and so on).
[0096] Next, the time prediction motion vector candidate derivation units 322 and 422 determine the current processing target picture. This method derives candidate predicted motion vectors from blocks in pictures with different time zones. This process utilizes predicted motion vector candidates for encoded blocks of pictures at different time points. A flag, availableFlagLXCol, indicating whether it is possible or not, and a motion vector, mvLXCol, and a reference index. Derive the reference list listCol and predict the motion vector candidate list m Add it to vpListLX (step S303 in FIG. 20).
[0097] Note that time prediction is performed in units of sequence (SPS), picture (PPS), or slice It is assumed that the processing of the motion vector candidate derivation units 322 and 422 can be omitted.
[0098] Subsequently, the history prediction motion vector candidate derivation units 323 and 423 add the history prediction motion vector candidates registered in the history prediction motion vector candidate list HmvpCandList to the motion vector candidate list mvpListLX. (Step S304 in FIG. 20). The details of the registration processing procedure in this step S304 will be described later using the flowchart in FIG. 29.
[0099] Subsequently, the motion vector candidate supplement units 325 and 425 add motion vector candidates with a predetermined value, such as (0, 0), until the motion vector candidate list mv pListLX is filled (S305 in FIG. 20).
[0100] <Normal merge mode derivation unit (normal merge)> The normal merge mode derivation unit 302 in FIG. 18 includes a spatial merge candidate derivation unit 341, a temporal merge candidate derivation unit 342, an average merge candidate derivation unit 344, a history merge candidate derivation unit 345, a merge candidate supplement unit 346, and a merge candidate selection unit 347.
[0101] The normal merge mode derivation unit 402 in FIG. 24 includes a spatial merge candidate derivation unit 441, a temporal merge candidate derivation unit 442, an average merge candidate derivation unit 444, a history merge candidate derivation unit 445, a merge candidate supplement unit 446, and a merge candidate selection unit 447.
[0102] Figure 21 shows the normal merge mode derivation unit 302 of the image coding device according to an embodiment of the present invention. The normal merge mode has functions common to both the normal merge mode and the normal merge mode derivation unit 402 of the image decoding device. This is a flowchart explaining the procedure for code derivation.
[0103] The following explains the process step by step. Unless otherwise specified, the following explanation will not include the following. This section explains the case where slice type is B slice, but what about the case of P slice? This can also be applied. However, if the slice type slice_type is a P slice, the interpretation model There is only L0 prediction (Pred_L0) as a code; L1 prediction (Pred_L1) and biprediction (Pred_BI) are not available. Since it is not present, the processing related to L1 can be omitted.
[0104] In the normal merge mode derivation unit 302 and the normal merge mode derivation unit 402, merge candidate It has a mergeCandList. The merge candidate list mergeCandList has a list structure, A merge index that shows the location within the merge candidate list, and the merge corresponding to the index. A memory area is provided to store merge candidates as elements. The merge index number is 0. Starting from there, the merge candidates are stored in the memory area of the merge candidate list, mergeCandList. In subsequent processing, the merge index i registered in the merge candidate list mergeCandList will be used. The merge candidates will be represented by mergeCandList[i]. In this embodiment, merge The mergeCandList must register at least 6 merge candidates (internal prediction information). It shall be possible to do so. Furthermore, the merge candidate list mergeCandList is registered Set the variable numCurrMergeCand, which indicates the number of merge candidates, to 0.
[0105] In the spatial merge candidate derivation unit 341 and the spatial merge candidate derivation unit 441, the image encoding device The encoded information is stored in the encoded information storage memory 111 or the encoded information storage memory 205 of the image decoding device. From the encoded information, each block adjacent to the block to be processed (B in Figure 11) 1. Spatial merge candidates from A1, B0, A0, B2) The process is derived sequentially, and the derived spatial merge candidates are registered in the merge candidate list, mergeCandList. (Step S401 in Figure 21). Here, B1, A1, B0, A0, B2 or time mark Define N which represents one of the candidate Col blocks. The interpretation information of block N is spatially marked. availableFlagN is a flag indicating whether or not it can be used as a merge candidate, and L0 is the value of spatial merge candidate N. The reference index refIdxL0N and L1 are reference index refIdxL1N and L0 are predicted. The L0 prediction flag predFlagL0N indicates whether or not an L1 prediction is performed, and the L1 prediction flag indicates whether or not an L1 prediction is performed. Derive the measurement flag predFlagL1N, the motion vector mvL0N for L0, and the motion vector mvL1N for L1. However, in this embodiment, the blocks included in the encoding block to be processed Since merge candidates are derived without referring to interpretation information, the target encoding block is processed. Spatial merge candidates are not derived using interpretation information of the blocks included.
[0106] Next, the time merge candidate derivation unit 342 and the time merge candidate derivation unit 442 consider different times Derive time merge candidates from the intermediate pictures, and use the derived time merge candidates as merge candidates. Register the mergeCandList (step S402 in Figure 21). Time merge candidates are used. A flag, `availableFlagCol`, indicates whether it is possible or not, and whether or not L0 prediction for time merge candidates is performed. The L0 prediction flag predFlagL0Col indicates whether L1 prediction is performed, and the L1 prediction indicates whether L1 prediction is performed or not. The flag predFlagL1Col, and the motion vectors mvL0Col and mvL1Col of L0. Derive.
[0107] Note that time is measured in units of sequence (SPS), picture (PPS), or slice. The processing of the merge candidate derivation unit 342 and the time merge candidate derivation unit 442 can be omitted. Let's assume that.
[0108] Next, the history merge candidate derivation unit 345 and the history merge candidate derivation unit 445 perform history prediction. The historical prediction motion vector candidates registered in the motion vector candidate list HmvpCandList are marked Register the candidate in the mergeCandList (step S403 in Figure 21). Note that the number of merge candidates registered in the merge candidate list mergeCandList is numCurrMergeC If and is less than the maximum number of merge candidates MaxNumMergeCand, the merge candidate list mergeCandL The number of merge candidates registered in ist is numCurrMergeCand, and the maximum number of merge candidates is MaxNumMergeCa With nd as the upper limit, the history merge candidates are derived and registered in the merge candidate list mergeCandList. It can be done.
[0109] Next, the average merge candidate derivation unit 344 and the average merge candidate derivation unit 444 calculate the merge candidates The average merge candidate is derived from the supplementary list mergeCandList, and the derived average merge candidate is used as the merge candidate. Add to the mergeCandList (step S404 in Figure 21). Note that the number of merge candidates registered in the merge candidate list mergeCandList is numCurrMergeC If and is less than the maximum number of merge candidates MaxNumMergeCand, the merge candidate list mergeCandL The number of merge candidates registered in ist is numCurrMergeCand, and the maximum number of merge candidates is MaxNumMergeCa The average merge candidate is derived with nd as the upper limit and registered in the merge candidate list mergeCandList. It can be done. Here, the average merge candidate is the first one registered in the merge candidate list mergeCandList The motion vectors of the merge candidate and the second merge candidate are averaged for each L0 and L1 prediction. This is a new merge candidate with a motion vector obtained from this process.
[0110] Next, the merge candidate supplement unit 346 and the merge candidate supplement unit 446 process the merge candidate list. The number of merge candidates registered in mergeCandList, numCurrMergeCand, is equal to the maximum number of merge candidates, M. If it is smaller than axNumMergeCand, the merge candidate list mergeCandList is registered The number of merge candidates, numCurrMergeCand, is capped at the maximum number of merge candidates, MaxNumMergeCand, for additional merge candidates. Derive the merge candidates and register them in the merge candidate list (mergeCandList) (Step S4 in Figure 21). 05). With the maximum number of merge candidates MaxNumMergeCand as the upper limit, in P slices, the motion vector The prediction mode where the value of L is (0,0) adds a merge candidate for L0 prediction (Pred_L0). In B-slice, the prediction mode where the motion vector has a value of (0,0) is biprediction (Pred_BI). Add merge candidates. The reference index when adding merge candidates is already added. This is different from the reference index.
[0111] Next, the merge candidate selection unit 347 and the merge candidate selection unit 447 select the merge candidate list. Select a merge candidate from the merge candidates registered in mergeCandList. (Encoding side) The merge candidate selection unit 347 selects a merge candidate by calculating the sign amount and strain amount. , a merge index indicating the selected merge candidates, and inter-prediction information of the merge candidates, The data is supplied to the motion compensation prediction unit 306 via the interpretation mode determination unit 305. Meanwhile, the decoding... The merge candidate selection unit 447 on the side selects merge candidates based on the decoded merge index. Select a replacement and supply the selected merge candidate to the motion compensation prediction unit 406.
[0112] <Time-predicted motion vector> Before explaining the time-predicted motion vector, we will explain the temporal relationships between pictures. Figure 38A shows the case where the encoding block to be processed and the picture to be processed are at different times. This shows the relationship between the pictures. Processing of the time-predicted motion vector for the picture to be processed. ColPic is defined as a specific processed picture that is referenced in the syntax. This is identified by [the specified method]. Also, Figure 38B shows that in ColPic, the same as the encoding block to be processed. This indicates the location and the processed coded blocks located in its vicinity.
[0113] Next, the time-predicted motion vector in the normal predicted motion vector mode derivation unit 301 in Figure 17 The operation of the candidate derivation unit 322 will be explained with reference to Figure 39.
[0114] First, ColPic is derived (step S4201). Next, the encoded block colCb is derived. Then, the encoding information is obtained (step S4202). colCb is the code to be processed within ColPic. This encoding block is located to the lower right of the same position as the encoding block. This corresponds to coding block T0 in Figure 38B. However, the prediction mode PredMode of this colCb is If unavailable or if it is an intra prediction (MODE_INTRA), the label to be processed within ColPic Let colCb be the coding block located in the lower right center of the same position as the coding block. The encoding block corresponds to the encoding block T1 in Figure 38B.
[0115] Next, interpretation information is derived for each reference list (S4203, S4204). Here, for the coding block colCb, the motion vector mvLXCol for each reference list, and the code Derive the flag availableFlagLXCol which indicates whether the serialization information is valid or not. LX is a reference list. As shown, in the derivation of reference list 0, LX becomes L0, and in the derivation of reference list 1, LX becomes L1. Yes. If interpretation information is unavailable, use availableFlagLXCol=0 and mvLXCol=(0,0). This is the result. On the other hand, if interpretation information is available, availableFlagLXCol=1. Furthermore, the movement vector of L0 or L1 of the coded block colCb depends on the prediction mode of the coded block colCb. Select a column, and the resulting motion vector, scaled, is the mvLXCol. Scaling This is the ratio of POCs between the picture to be processed and the reference picture, and the ColPic and selected motion vectors. It is calculated based on the ratio of the POC to the reference picture that Toll refers to.
[0116] Then, if availableFlagLXCol=1, mvLXCol is the aforementioned normal predicted motion vector. The candidate is added to the predicted motion vector candidate list mvpListLX in the D derivation unit 301. S4205). With this, the processing of the time-predicted motion vector candidate derivation unit 322 is terminated.
[0117] Time-predicted motion vector candidates in the normal prediction motion vector mode derivation unit 401 shown in Figure 23. The operation of the derivation unit 422 is the same as that of the time-predicted motion vector candidate derivation unit 322 described above. I will omit the explanation.
[0118] The operation of the time merge candidate derivation unit 342 in the normal merge mode derivation unit 302 in Figure 18 is as follows: The operation is almost the same as that of the time prediction motion vector candidate derivation unit 322 described above. However, Figure The only difference from S4205 of 39 is that it performs the following action: Flag availableFlagL0C If ol, or the flag availableFlagL1Col is 1, then mvL0Col and mvL1Col are treated as described above. Add as a candidate to the merge candidate list mergeCandList in the normal merge mode derivation section. S4205).
[0119] The operation of the time merge candidate derivation unit 442 in the normal merge mode derivation unit 402 in Figure 24 is as follows: Since this is the same as the time merge candidate derivation unit 342 described above, the explanation will be omitted.
[0120] <Update to the list of candidate motion vectors for historical prediction> Next, the encoding information storage memory 111 on the encoding side and the encoding information storage memory 20 on the decoding side Regarding the initialization and updating methods for the history prediction motion vector candidate list HmvpCandList to be prepared for step 5. This will be explained in detail. Figure 26 shows the initialization and update process for the history prediction motion vector candidate list. This is a flowchart explaining the process.
[0121] In this embodiment, updating the history prediction motion vector candidate list HmvpCandList is performed by encoding information This shall be carried out in the information storage memory 111 and the encoded information storage memory 205. The prediction unit 102 and the interpretation unit 203 include a history prediction motion vector candidate list update unit. You can install it to update the history prediction motion vector candidate list HmvpCandList.
[0122] At the beginning of the slice, the history prediction motion vector candidate list HmvpCandList is initialized, and On the generation side, the prediction method determination unit 105 determines whether to use the normal prediction motion vector mode or the normal merge mode. If selected, the history prediction motion vector candidate list HmvpCandList is updated, and on the decoding side... The prediction information decoded by the bit string decoding unit 201 is in normal prediction motion vector mode or normal In merge mode, update the history prediction motion vector candidate list HmvpCandList.
[0123] Used when performing interprediction in normal predictive motion vector mode or normal merge mode. Interpretation information is used as interpretation information candidate hMvpCand and historical prediction motion vector candidate Register to the HmvpCandList. The candidate hMvpCand contains the L0 reference index. This indicates whether or not the reference index refIdxL0 and L1 predictions are performed. The L0 prediction flag predFlagL0 and the L1 prediction flag predFl indicate whether or not L1 prediction is performed. This includes the motion vectors agL1, mvL0 (for L0), and mvL1 (for L1).
[0124] The encoding information storage memory 111 on the encoding side and the encoding information storage memory 205 on the decoding side are equipped The elements registered in the historical prediction motion vector candidate list HmvpCandList (i.e., (Interpretation information) contains an interpretation information candidate hMvpCand with the same value as the interpretation information candidate hMvpCand. If it exists, remove that element from the historical prediction motion vector candidate list HmvpCandList. On the other hand, if there is no interpretation information with the same value as the interpretation information candidate hMvpCand, Remove the first element of the historical prediction motion vector candidate list HmvpCandList, and then remove the historical prediction motion vector Add the interpretation information candidate hMvpCand to the end of the candidate list HmvpCandList.
[0125] The encoding information storage memory 111 on the encoding side and the encoding information storage memory 2 on the decryption side of the present invention The number of elements in the history prediction motion vector candidate list HmvpCandList, which is prepared for 05, will be 6.
[0126] First, initialize the HmvpCandList, a list of candidate motion vectors for historical prediction at the slice level. At the beginning of the slice, the history of all elements in the history prediction motion vector candidate list HmvpCandList is entered. Add a candidate for predicted motion vector and register it in the historical candidate list HmvpCandList. The value of NumHmvpCand, which is the number of historical prediction motion vector candidates, is set to 6 (Step 26 in Figure 26) (P2101). Note that these figures are just examples. Actual values, for example, computer systems In implementations on the system, the values may be changed as needed. Regarding other values... The same applies to the latter.
[0127] Note that the initialization of the historical prediction motion vector candidate list HmvpCandList is done in slice units (slice It was stated that this would be done in the first encoding block of the block, but it is done on a picture-by-picture, tile-by-tile, or tree-by-tree basis. This can also be done on a row-by-row basis.
[0128] Figure 40 shows the history added by the initialization of the history prediction motion vector candidate list HmvpCandList. This table shows an example of a candidate for historically predicted motion vectors. The slice type is B slice, and the reference pitch is Here is an example where the number of Kucha is 4. The historical prediction motion vector index is (historical prediction motion The number of candidate vectors ranges from NumHmvpCand-1 to 0, depending on the slice type. Interpretation information with a value of (0, 0) is used as a candidate for historical prediction motion vector, and the historical prediction motion vector Add to the candidate list HmvpCandList and the historical prediction motion vector candidate list with historical candidates Fill in. At this time, the historical prediction motion vector index is (historical prediction motion vector candidate The number NumHmvpCand (where -1) starts from 0, and the reference index refIdxLX (where X is 0 or 1) starts from 0. Set the value by incrementing by 1 up to (the number of referenced pictures, numRefIdx-1). This allows overlaps between candidate motion vectors for historical prediction, and sets refIdxLX to a value of 0. Set values for all of the historical prediction motion vector candidates NumHmvpCand, and the historical prediction motion vector By fixing the value of the number of candidate NumHmvpCand, invalid historical prediction motion vector candidates are eliminated. Remove. This is the probability of adding to the predicted motion vector candidate list or merge candidate list. From the candidates with a high historical prediction motion vector index and a large value, generally a high selection rate By assigning smaller values to the reference index, coding efficiency can be improved. .
[0129] Furthermore, the list of candidate historical motion vectors is displayed on a slice-by-slice basis. By pre-filling the data, the number of candidates for historical motion vector prediction can be treated as a fixed value. For example, this simplifies processes such as the derivation of candidate motion vectors based on historical predictions and the derivation of candidate merged motion vectors based on historical changes. It is possible.
[0130] Here, the value of the motion vector was generally set to (0, 0), which has a high probability of selection, but if it is a predetermined value... For example, you can encode the difference motion vector using values such as (4,4), (0,32), and (-128,0). You can improve efficiency, or you can set multiple predetermined values to improve the encoding efficiency of the differential motion vector. You can.
[0131] Furthermore, the historical prediction motion vector index (number of historical prediction motion vector candidates NumHmvpC) Starting from (and - 1), the reference index refIdxLX (where X is 0 or 1) starts from 0 (reference pict The setting was to increment the value by 1 up to the number of 'ja's (numRefIdx-1), but the historical prediction movement You may start the vector index from 0.
[0132] Figure 41 shows the history added by the initialization of the history prediction motion vector candidate list HmvpCandList. This table shows another example of a historical prediction motion vector candidate. The slice type is B slice, and the references are as follows: An example is shown where the number of illuminated pictures is 2. In this example, the historical prediction motion vector candidate list Hmv Each element of pCandList is indexed to ensure there are no overlaps between candidate historical motion vectors. Interpretation information where either the ks or motion vector value differs historical prediction motion vector Add it as a candidate and fill the list of candidate historical prediction motion vectors. Open the measured motion vector index from (number of historical predicted motion vector candidates NumHmvpCand-1) To begin with, the reference index refIdxLX (where X is 0 or 1) starts from 0 (the number of referenced pictures numRefI Set the value by incrementing by 1 up to dx-1). After that, refIdxLX will be 0 and different. Add the value movement vector as a candidate for historical prediction movement vector. Set all values for the complement of NumHmvpCand, and the number of historical prediction motion vector candidates for NumHmvpCand By fixing the values, invalid historical prediction motion vector candidates are eliminated.
[0133] In this way, the list of candidate historical prediction motion vectors is generated on a slice-by-slice basis, ensuring that there are no duplicate historical prediction motions. By filling with candidate vectors, the following process, which is performed on a coding block basis, can be further implemented. Merger candidate candidates after the history merge candidate derivation unit 345 in the normal merge mode derivation unit 302 The processing in the filling unit 346 can be omitted, thereby reducing the processing volume.
[0134] Here, the motion vector values were set to small values such as (0, 0) and (1, 0), but the historical prediction motion vector If there is no overlap between candidate ctors, the value of the motion vector can be increased.
[0135] Furthermore, the historical prediction motion vector index (number of historical prediction motion vector candidates NumHmvpC) Starting from (and - 1), the reference index refIdxLX (where X is 0 or 1) starts from 0 (reference pict The setting was to increment the value by 1 up to the number of 'ja's (numRefIdx-1), but the historical prediction movement You may start the vector index from 0.
[0136] Figure 42 shows the history added by the initialization of the history prediction motion vector candidate list HmvpCandList. This table shows another example of a candidate for historically predicted motion vectors.
[0137] An example is shown where the slice type is B-slice. In this example, the candidate is a historically predicted motion vector. Each element in the list HmvpCandList should be referenced to ensure there are no overlaps between candidates for historical prediction motion vectors. Index 0, different motion vector values, interpretation information, historical prediction motion vector Add it as a candidate and fill the list of candidate historical prediction motion vectors. Open the measured motion vector index from (number of historical predicted motion vector candidates NumHmvpCand-1) To begin, the reference index refIdxLX (where X is 0 or 1) is set to 0. Historical predicted motion vector Set all values to the number of candidate values NumHmvpCand, and the number of candidate values for the historical prediction motion vector NumHmvpCa By fixing the value of nd, invalid historical prediction motion vector candidates are eliminated.
[0138] In this way, by setting the reference index to 0, we can further consider the number of referenced pictures. Since initialization can be performed without any additional steps, the process can be simplified.
[0139] Here, the motion vector values were set to multiples of 2, but the reference index is 0 and the historical prediction motion Other values are acceptable as long as there is no overlap between the candidate vectors.
[0140] Furthermore, the historical prediction motion vector index (number of historical prediction motion vector candidates NumHmvpC) Starting from (and - 1), the reference index refIdxLX (where X is 0 or 1) starts from 0 (reference pict The setting was to increment the value by 1 up to the number of 'ja's (numRefIdx-1), but the historical prediction movement You may start the vector index from 0.
[0141] Next, for each encoded block within the slice, the following list of candidate historical motion vectors (Hmvp) is presented. The CandList update process is repeated (steps S2102 to S2107 in Figure 26).
[0142] First, initial settings are performed on a coding block basis. A flag indicates whether or not identical candidates exist. Set the value of `identicalCandExist` to FALSE and indicate the candidate to be deleted. Set the dex removeIdx to 0 (step S2103 in Figure 26).
[0143] Determine whether or not the candidate hMvpCand for the target interpretation information to be registered exists (Figure 26) (S2104). The coding side prediction method determination unit 105 normally predicts motion vector mode or If it is determined to be in normal merge mode, or if the bit string decoding unit 201 on the decoding side makes a normal prediction When decoded as motion vector mode or normal merge mode, the interpretation information The report is designated as the candidate for the interpretation information to be registered, hMvpCand. The coding side prediction method determination unit 105 Intra prediction mode, subblock prediction motion vector mode, or subblock merge If a mode is determined to be selected, or if the bit string decoding unit 201 on the decoding side is set to intra prediction mode, Decoded as subblock predictive motion vector mode or subblock merge mode In this case, the process of updating the history prediction motion vector candidate list HmvpCandList will not be performed, and the target of registration will be... The candidate for the interface prediction information hMvpCand does not exist. The candidate for the interface prediction information hMvpCand to be registered is If it does not exist, skip steps S2105 to S2106 (step S2105 in Figure 26). 2104:NO). If there is a candidate for the interpretation information hMvpCand to be registered, step Perform the following steps (Step S2104 in Figure 26: YES).
[0144] In this embodiment, the field is normally encoded and decoded as a predicted motion vector mode. In this case, the interpretation mode is set to hMvpCand and the historical prediction motion vector candidate list is HmvpCand. When the list is updated and encoded / decoded in normal merge mode, the historical predictive movement is Configure the system so that the vector candidate list HmvpCandList is not updated. (See step 26 in Figure 26) Step S2104 corresponds to steps S2404 and S240 in the flowchart of Figure 43. The judgment process can be separated as in step 5. In step S2404, normally merge the process. If it is not a normal merge mode, proceed to step S2405, and if it is a normal merge mode, proceed to step Proceed to S2408.
[0145] In step S2405 of Figure 43, the coding side prediction method determination unit 105 normally predicts motion If it is determined to be in metric mode, or if the bit string decoding unit on the decoding side normally predicts the motion vector When decoded as a mode, the interpretation mode is set to hMvpCand. The measurement method determination unit 105 selects intra prediction mode, subblock prediction motion vector mode, or If subblock merge mode is detected, or if the bit string decoding unit on the decoding side is intra Prediction mode, subblock prediction motion vector mode, or subblock merge mode If decrypted, the process of updating the history prediction motion vector candidate list HmvpCandList is not performed. There are no candidate network prediction information entries for registration, namely hMvpCand. If no supplemental hMvpCand exists, proceed to step S2408. Internet prediction information to be registered. If a candidate hMvpCand exists, the following steps are performed: Steps shown in Figure 26. Steps S2101 to S2103 and Steps S2401 to S2401 in Figure 43 The same process can be applied up to step 2403, so the explanation is omitted. (See step S21 in Figure 26) Steps 05 to S2107 and steps S2406 to S240 in Figure 43 Since steps 1 through 8 can be handled in the same way, the explanation will be omitted.
[0146] Thus, historical prediction is only possible when encoded and decoded as a normal predictive motion vector mode. By updating the list of candidate motion vectors, the list of candidate motion vectors in the historical prediction list will be updated. There is no need to compare motion information with existing candidates, reducing processing load. (Normally, predictive motion) Vector mode adds differential motion vectors to create new motion information that is not present in surrounding blocks. Because it is generated, it is not necessary to compare motion information with existing historical prediction motion vector candidates. The possibility of duplicate information is low.
[0147] Return to the explanation of step S2104 and subsequent steps in Figure 26.
[0148] Next, the elements to be registered in the historical prediction motion vector candidate list HmvpCandList The element with the same value as the candidate hMvpCand (interface prediction information), i.e., the same element Determine whether it exists or not (step S2105 in Figure 26). Figure 27 shows this identical element verification. This is a flowchart of the processing procedure. The value of the number of historical prediction motion vector candidates, NumHmvpCand, is 0. In this case (step S2121:NO in Figure 27), the historical prediction motion vector candidate list HmvpCa ndList is empty and no identical candidates exist, so steps S2122~S2125 in Figure 27 are skipped. The ticket is issued, and the identical element verification process is terminated. Number of historical prediction motion vector candidates: NumHmvpC If the value of AND is greater than 0 (YES in step S2121 in Figure 27), the historical predicted motion vector The process in step S2123 is repeated as the toll index hMvpIdx ranges from 0 to NumHmvpCand-1. Return (steps S2122~S2125 in Figure 27). First, the historical prediction motion vector candidate The element at the hMvpIdx-th position in the string, counting from 0, is the candidate for interpretation information hM Compare whether it is the same as vpCand (step S2123 in Figure 27). If it is the same (Figure 27 Step S2123: YES), flag identicalCandE indicating whether or not identical candidates exist. Set xist to TRUE, and delete target index remo which indicates the position of the element to be deleted. Set the current historical prediction motion vector index hMvpIdx value to veIdx and verify this identical element. Terminate the process. If they are not the same (step S2123:NO in Figure 27), set hMvpIdx to 1 If the historical prediction motion vector index hMvpIdx is less than or equal to NumHmvpCand-1, Then, the processing from step S2123 onwards is performed.
[0149] Here, we populate the list of historical prediction motion vector candidates with historical prediction motion vector candidates. Therefore, step S2121 in Figure 27 can be omitted.
[0150] Returning to the flowchart in Figure 26, the history prediction motion vector candidate list HmvpCandList Element shifting and addition processing is performed (step S2106 in Figure 26). Figure 28 shows the same process as in Figure 26. Element shift / addition processing for the history prediction motion vector candidate list HmvpCandList of step S2106 This is a flowchart of the procedure. First, the history prediction motion vector candidate list HmvpCandList is You can either remove the stored elements before adding a new element, or add a new element without removing the existing elements. Determine whether to add it. Specifically, the flag `identicalCandE` indicates whether or not an identical candidate exists. Compare xist to TRUE or NumHmvpCand to see if it is 6 (step S2141 in Figure 28). ). The flag identicalCandExist, which indicates whether or not identical candidates exist, is set to TRUE or currently If the number of candidates NumHmvpCand satisfies any of the conditions of 6 (step S2141 in Figure 28: YES), except for elements stored in the historical prediction motion vector candidate list HmvpCandList. Add a new element. Set the initial value of index i to removeIdx + 1. The element shifting process in step S2143 is repeated from the initial value to NumHmvpCand. (Figure) Step 28 (S2142~S2144). HmvpCandList[ i - 1 ] to HmvpCandList[ i ] The element is shifted forward by copying the element (step S2143 in Figure 28), i Increment by 1 (steps S2142-S2144 in Figure 28). Next, predict the history. The (NumHmvpCand-1)th HmvpCandLis, which corresponds to the last candidate in the motion vector list, counting from 0. The interpretation information candidate hMvpCand is added to t[NumHmvpCand-1] (step S214 in Figure 28). 5) The process of shifting and adding elements to the history prediction motion vector candidate list HmvpCandList is completed. On the other hand, the flag identicalCandExist, which indicates whether or not identical candidates exist, is set to TRUE. If NumHmvpCand does not satisfy any of the conditions in 6 (step S2141 in Figure 28: NO ), without removing the elements stored in the historical prediction motion vector candidate list HmvpCandList, Add the interpretation information candidate hMvpCand to the end of the historical prediction motion vector candidate list (Figure 2). Step 8 (S2146). Here, the last in the list of candidate historical motion vectors is 0 or It is the NumHmvpCand-th HmvpCandList[NumHmvpCand]. Also, NumHmvpCand is 1 Increment and shift the elements of the list of candidate motion vectors in this history prediction HmvpCandList. The additional processing will now be terminated.
[0151] Here, the list of historical predicted motion vector candidates includes the predicted motion vector mode and the merge mode. This shall apply to both, but it may also apply to only one of them.
[0152] Figure 31 illustrates an example of the process for updating the list of candidate motion vectors for historical prediction. There are six of them. The elements (interface prediction information) are registered in the historical prediction motion vector candidate list HmvpCandList When adding new elements, the previous elements of the history prediction motion vector candidate list HmvpCandList By comparing the new interpretation information in order from the original (Figure 31A), the new elements show historical prediction movements. If the value is the same as the third element from the top of the vector candidate list HmvpCandList, HMVP2, then the history Remove element HMVP2 from the predicted motion vector candidate list HmvpCandList and remove the following elements HMVP3~HM Shift (copy) VP5 forward one by one, and create the history prediction motion vector candidate list HmvpCandLis By adding a new element to the end of t (Figure 31B), we get the historical prediction motion vector candidate list HmvpCan Complete the update of dList (Figure 31C).
[0153] <Historical prediction motion vector candidate derivation process> Next, the history prediction motion vector candidate of the encoding side normal prediction motion vector mode derivation unit 301 Supplementary derivation unit 323, history predicted motion vector of the normal predicted motion vector mode derivation unit 401 on the decoding side The processing procedure for step S304 in Figure 20, which is a common process in the candidate derivation unit 423, is as follows: Method for deriving historical prediction motion vector candidates from the historical prediction motion vector candidate list HmvpCandList This will be explained in detail. Figure 29 illustrates the procedure for deriving candidate motion vectors based on historical predictions. This is a low-profile chart.
[0154] The current number of predicted motion vector candidates is numCurrMvpCand, and the list of predicted motion vector candidates is mvpLis. The number of tLX elements (which we'll assume is 2 here) or the number of historical prediction motion vector candidates is NumHm If the value of vpCand is 0 (NO in step S2201 in Figure 29), then step S22 in Figure 29 The process from 02 to S2209 is omitted, and the historical prediction motion vector candidate derivation procedure is terminated. The current number of predicted motion vector candidates is numCurrMvpCand, and the list of predicted motion vector candidates is mvpLis. If the number of elements in tLX is less than 2, and the number of historical prediction motion vector candidates is NumHmvpCa If the value of nd is greater than 0 (YES in step S2201 in Figure 29), then step in Figure 29 Process steps S2202 through S2209.
[0155] Next, the number of candidates for the historical prediction motion vector, numCheckedHMVP, is calculated as index i from 1 to 4. The process from steps S2203 to S2208 in Figure 29 is repeated until the smaller of the values of Cand is reached. Return (steps S2202-S2209 in Figure 29). Number of current predicted motion vector candidates nu If mCurrMvpCand is 2 or more, which is the maximum number of elements in the predicted motion vector candidate list mvpListLX. (Step S2203:NO in Figure 29), Steps S2204 to S2209 in Figure 29 The process is omitted, and the procedure for deriving candidate motion vectors based on historical predictions is terminated. The number of candidate vectors numCurrMvpCand is the maximum number of elements in the predicted motion vector candidate list mvpListLX. If it is less than a certain 2 (step S2203 in Figure 29: YES), then step S2 in Figure 29 Perform the processing from step 204 onwards.
[0156] Next, the process from steps S2205 to S2207 is performed when Y is 0 and 1 (L0 and L1). Perform the following steps (steps S2204-S2208 in Figure 29). Current predicted motion vector The number of candidate vectors, numCurrMvpCand, is the maximum number of elements in the predicted motion vector candidate list, mvpListLX. If the value is 2 or more (step S2205:NO in Figure 29), then step S2206 in Figure 29 The process in S2209 is omitted, and the procedure for deriving candidate motion vectors based on historical predictions is terminated. The number of current predicted motion vector candidates is numCurrMvpCand, and the list of predicted motion vector candidates is mvpListLX. If the number of elements is less than the maximum number of elements, which is 2 (step S2205 in Figure 29: YES), Figure 29 The process from step S2206 onwards is performed.
[0157] Next, in the historical prediction motion vector candidate list HmvpCandList, the motion to be encoded / decoded is entered. The vector's reference index refIdxLX is the same as the element of the reference index, and the predicted motion vector If the element is different from any element in the calllist mvpListLX (step S2206 in Figure 29) :YES), the numCurrMvpCand element (counting from 0) of the predicted motion vector candidate list is mvpL istLX[numCurrMvpCand] contains the historical prediction motion vector candidate HmvpCandList[NumHmvpCand - i] LY Add the motion vector (step S2207 in Figure 29) and the current predicted motion vector candidate. Increment the number numCurrMvpCand by 1. History prediction motion vector candidate list HmvpCand Within the List, the reference index refIdxLX is the same as the reference index of the motion vector to be encoded / decoded. An element of DEX that is different from any element of the predicted motion vector list mvpListLX If not (step S2206:NO in Figure 29), the additional processing in step S2207 is performed. To push.
[0158] Here, in normal predictive motion vector mode, the historical predictive motion vector candidate list HmvpCandLi The update process for st is performed, and in normal merge mode, the history prediction motion vector candidate list HmvpCandLi If the update process for st is not performed, then step S in Figure 29 will be as shown in Figure 44. It is also possible to configure the system so that it does not perform the process of determining identical candidates, which is the process for step 2206. In merge mode, the process of updating the history prediction motion vector candidate list HmvpCandList will not be performed. This is because it makes it less likely for identical or highly correlated candidates to be included.
[0159] This configuration eliminates the need to perform judgment processing for identical candidates, thus reducing the amount of processing required. It will become like that.
[0160] The processes from steps S2205 to S2207 in Figure 29 are performed on both L0 and L1. (Steps S2204-S2208 in Figure 29). Increment index i by 1. The index i is 4 and the number of historical prediction motion vector candidates is the smaller of NumHmvpCand. In the following cases, the process from step S2203 onwards will be repeated (from step S2202 in Figure 29) S2209).
[0161] <History merge candidate derivation process> Next, the history merge candidate derivation unit 345 of the encoding side normal merge mode derivation unit 302, decoding The diagram shows the common processing in the history merge candidate derivation unit 445 of the normal merge mode derivation unit 402 on the side. The 21st step S404 is the processing procedure for the history merge candidate list HmvpCandList. The method for deriving merge candidates will be explained in detail. Figure 30 shows the procedure for deriving history merge candidates. This is a flowchart for explanation.
[0162] First, the initialization process is performed (step S2301 in Figure 30). isPruned[i] is set from 0 (numCu Set the value of FALSE to each of the (-1)th elements of rrMergeCand and store the result in the variable numOrigMergeCand Sets numCurrMergeCand to the number of elements currently registered in the merge candidate list.
[0163] Next, the initial value of index hMvpIdx is set to 1, and from this initial value up to NumHmvpCand The additional processing from step S2303 to step S2310 in Figure 30 is repeated (Figure 3 Step 0 (S2302~S2311). Elements currently registered in the merge candidate list. If the number of merge candidates, numCurrMergeCand, is not less than or equal to (MaxNumMergeCand - 1), then merge Since merge candidates have been added to all elements of the candidate list, this history merge candidate derivation process will now proceed. Finish (NO in step S2303 in Figure 30). Registered in the current merge candidate list. If the number of elements, numCurrMergeCand, is less than or equal to (maximum number of merge candidates, MaxNumMergeCand-1), then Perform the processing from step S2304 onwards. Set the value of sameMotion to FALSE (Figure 30). (Step S2304). Next, the initial value of index i is set to 0, and from this initial value... The process in steps S2306 and S2307 in Figure 30 is performed up to numOrigMergeCand-1 (Figure 30 (S2305~S2308). The list of historical motion vector prediction candidates counts from 0 (NumHmvp The element (Cand - hMvpIdx)th element HmvpCandList[NumHmvpCand- hMvpIdx] is the merge candidate list Compare whether the i-th element, mergeCandList[i], has the same value as the element counting from 0 (step in Figure 30) (P2306).
[0164] The same value for merge candidates refers to all the components that the merge candidates possess (interpretation mode, etc.). If the values of the reference index and motion vector are the same, the merge candidates will be considered to have the same value. If the pruned values are the same and isPruned[i] is FALSE (YES in step S2306 of Figure 30), Set both sameMotion and isPruned[i] to TRUE (Step S2307 in Figure 30) ). If the values are not the same (NO in step S2306 in Figure 30), proceed to step S2307. Skip the logic. Repeat steps S2305 to S2308 in Figure 30. Once processing is complete, compare whether sameMotion is FALSE (step S230 in Figure 30) 9) If sameMotion is FALSE (YES in step S2309 in Figure 30), then The (NumHmvpCand - hMvpIdx)th element from the list of candidate motion vectors for historical prediction, counting from 0. The raw HmvpCandList[NumHmvpCand - hMvpIdx] does not exist in mergeCandList, therefore it is a merge candidate. The mergeCandList[numCurrMergeCand] at the numCurrMergeCand position in the list contains the historical predicted movement vector. The (NumHmvpCand - hMvpIdx)th element in the list of candidates for tolling, counting from 0, is HmvpCandList[NumHmv Add pCand - hMvpIdx and increment numCurrMergeCand by 1 (step in Figure 30) Step S2310). Increment the index hMvpIdx by 1 (Step S23 in Figure 30). 02) Repeat the steps S2302 to S2311 in Figure 30.
[0165] Once all elements in the historical prediction motion vector candidate list have been reviewed, the merge candidate list will be finalized. Once merge candidates have been added to all elements of the history, the derivation process for these merge candidates is complete. .
[0166] <Motion compensation prediction processing> The motion compensation prediction unit 306 predicts the block that is currently being processed in the coding process. The position and size are obtained. The motion compensation prediction unit 306 also inputs the prediction information. The prediction mode determination unit 305 obtains the information. The reference index is obtained from the acquired prediction information. The slash and motion vectors are derived and identified by the reference index in the decoded image memory 104. The reference picture is moved from the same position as the image signal of the prediction block by the amount of the motion vector. After acquiring the image signal at the specified location, a prediction signal is generated.
[0167] In interprediction, the interprediction mode is a single reference pixel, such as L0 prediction or L1 prediction. In the case of prediction from a picture, the prediction signal obtained from one reference picture is a motion-compensated prediction signal. The prediction mode is set to BI prediction, and the prediction mode is set to 2 reference pictures. In the case of prediction, the weighted average of the prediction signals obtained from two reference pictures is used. The motion compensation prediction signal is used as the compensation prediction signal and is supplied to the prediction method determination unit 105. Here, the two The weighted average ratio for predictions is set to 1:1, but even if you perform a weighted average using other ratios, Good. For example, if the distance between the picture being predicted and the reference picture is close. The weighting ratio may be increased as the value decreases. Also, the calculation of the weighting ratio may be improved. Alternatively, this can be done using a correspondence table between combinations of chat intervals and weighting ratios.
[0168] The motion compensation prediction unit 406 has the same function as the motion compensation prediction unit 306 on the encoding side. The compensation prediction unit 406 uses the interpretation information to determine the normal prediction motion vector mode derivation unit 401. Normal merge mode derivation unit 402, subblock predictive motion vector mode derivation unit 403, The motion compensation is obtained from the block merge mode derivation unit 404 via the switch 408. The prediction unit 406 supplies the obtained motion compensation prediction signal to the decoded image signal superimposition unit 207.
[0169] <About Interpretation Mode> We define the process of making a prediction from a single reference picture as a single prediction, and in the case of a single prediction, it is an L0 prediction. Alternatively, L1 prediction refers to either of the two reference pictures registered in reference lists L0 and L1. We will make a prediction using one of the two methods.
[0170] Figure 32 shows a simple prediction where the reference picture of L0 (RefL0Pic) is the picture to be processed. This shows the case where the time is before (CurPic). Figure 33 is a simple prediction and L0 prediction. This indicates that the reference picture for measurement is at a later time than the picture being processed. Similarly, The reference picture for L0 prediction in Figures 32 and 33 is used as the reference picture for L1 prediction (RefL1Pi You can also perform a simple prediction by replacing it with c).
[0171] The process of making predictions from two reference pictures is defined as dual prediction, and in the case of dual prediction, L0 prediction is used. The BI prediction is expressed using both the L1 and L0 predictions. Figure 34 is a dual prediction, and the L0 prediction is used as a reference. The reference picture is at an earlier time than the picture to be processed, and the reference picture for L1 prediction is the same as the picture to be processed. This shows the case where the time is later than the elephant picture. Figure 35 is a biprediction and is a reference for the L0 prediction. This indicates that the reference picture and the reference picture for L1 prediction are at an earlier time than the picture being processed. Figure 36 is a dual prediction, where the reference picture for the L0 prediction and the reference picture for the L1 prediction are processed. This indicates a case where the time is later than that of the target picture.
[0172] Thus, the relationship between the prediction type L0 / L1 and time is such that L0 is in the past direction and L1 is in the future direction. It can be used without being limited to this. Also, in the case of biprediction, the same reference picture can be used L0 and L1 predictions may be performed using this method. Note that motion compensation prediction can be performed as a single prediction. The decision of whether to perform a single prediction or a dual prediction depends, for example, on whether to use L0 prediction or L1 prediction. The decision is made based on information (for example, a flag) indicating whether or not it applies.
[0173] <About Reference Indexes> In embodiments of the present invention, in order to improve the accuracy of motion compensation prediction, multiple motion compensation predictions are performed. This makes it possible to select the optimal reference picture from among a number of reference pictures. Therefore, The reference picture used in motion compensation prediction is used as the reference index, and the reference Encode the index along with the difference motion vector into the bitstream.
[0174] <Motion compensation processing based on the normal predictive motion vector mode> The motion compensation prediction unit 306 is also shown in the interpretation prediction unit 102 on the encoding side in Figure 16. In the interprediction mode determination unit 305, the normal predicted motion vector mode is derived. If the interpretation prediction information from section 301 is selected, this interpretation prediction information will be used - The interpretation of the block currently being processed, obtained from the prediction mode determination unit 305. The measurement mode, reference index, and motion vector are derived, and a motion compensation prediction signal is generated. The generated motion compensation prediction signal is supplied to the prediction method determination unit 105.
[0175] Similarly, the motion compensation prediction unit 406 is also present in the interpretation prediction unit 203 on the decoding side in Figure 22. As shown, during the decoding process, switch 408 normally predicts the motion vector mode derivation unit 40 When connected to 1, the interpretation is performed by the normal prediction motion vector mode derivation unit 401. The information is retrieved, and the interpretation mode and reference index of the block currently being processed are obtained. Next, the motion vector is derived and a motion compensation prediction signal is generated. The signal is supplied to the decoded image signal superimposition unit 207.
[0176] <Motion compensation processing based on normal merge mode> The motion compensation prediction unit 306 is also shown in the interpretation prediction unit 102 on the encoding side in Figure 16. In the inter prediction mode determination unit 305, the normal merge mode derivation unit 302 If the interpretation prediction information is selected, this interpretation prediction information will be used in the interpretation prediction mode. The inter prediction mode of the block currently being processed is obtained from the block determination unit 305. The reference index and motion vector are derived, and a motion compensation prediction signal is generated. The compensation prediction signal is supplied to the prediction method determination unit 105.
[0177] Similarly, the motion compensation prediction unit 406 is also present in the interpretation prediction unit 203 on the decoding side in Figure 22. As shown, during the decoding process, switch 408 is normally connected to merge mode derivation unit 402. If this occurs, the normal merge mode derivation unit 402 will acquire inter prediction information and process the current The interpretation mode, reference index, and motion vector of the block being analyzed are Derivation is performed to generate a motion-compensated prediction signal. The generated motion-compensated prediction signal is then used to calculate the decoding image signal weight. It is supplied to the tatami mat section 207.
[0178] <Motion compensation processing based on subblock predicted motion vector modes> The motion compensation prediction unit 306 is also shown in the interpretation prediction unit 102 on the encoding side in Figure 16. In the inter-prediction mode determination unit 305, the sub-block prediction motion vector is determined. If the inter prediction information from the code derivation unit 303 is selected, this inter prediction information The interprediction mode determination unit 305 obtains the current block to be processed. Derive the center prediction mode, reference index, and motion vector, and generate a motion compensation prediction signal. The generated motion compensation prediction signal is supplied to the prediction method determination unit 105.
[0179] Similarly, the motion compensation prediction unit 406 is also present in the interpretation prediction unit 203 on the decoding side in Figure 22. As shown, during the decoding process, switch 408 leads the subblock predictive motion vector mode When connected to output unit 403, the subblock predictive motion vector mode derivation unit 403 Interpretation information is obtained, and the interpretation mode of the block currently being processed is obtained. The system derives the reference index and motion vector, and generates a motion compensation prediction signal. The motion compensation prediction signal is supplied to the decoded image signal superimposition unit 207.
[0180] <Motion compensation processing based on subblock merge mode> The motion compensation prediction unit 306 is also shown in the interpretation prediction unit 102 on the encoding side in Figure 16. In the inter prediction mode determination unit 305, the subblock merge mode derivation unit If interpretation information by 304 is selected, this interpretation information will be used for interpretation. Interpretation of the block currently being processed, obtained from the prediction mode determination unit 305. Derive the mode, reference index, and motion vector, and generate a motion compensation prediction signal. The generated motion compensation prediction signal is supplied to the prediction method determination unit 105.
[0181] Similarly, the motion compensation prediction unit 406 is also present in the interpretation prediction unit 203 on the decoding side in Figure 22. As shown, during the decoding process, switch 408 is in subblock merge mode derivation unit 404 When connected, the interprediction information by the subblock merge mode derivation unit 404 Obtain the interpretation mode and reference index of the block currently being processed. Then, the motion vector is derived and a motion compensation prediction signal is generated. The generated motion compensation prediction signal is The decoded image signal is then supplied to the superimposed image signal unit 207.
[0182] <Motion compensation processing based on affine transformation prediction> In normal predictive motion vector mode and normal merge mode, based on the following flags Motion compensation using an affine model can be used. The following flags are used in the encoding process. Based on the conditions for inter-prediction determined by the inter-prediction mode determination unit 305, the following flags It is reflected in the bitstream and encoded within the bitstream. In the decoding process, the bitstream Based on the following flags within the system, it is determined whether or not to perform motion compensation using an affine model. .
[0183] The sps_affine_enabled_flag enables motion compensation using an affine model in interpretation. Indicates whether it is available or not. If sps_affine_enabled_flag is 0, then on a sequence basis It is suppressed so that it is not motion compensation by the affine model. Also, inter_affine_flag and cu_affine_type_flag is the CU (encoded block) syntax of the encoded video sequence. It is not transmitted in the case of sps. If sps_affine_enabled_flag is 1, the encoded video sequence Motion compensation using an affine model can be used in the simulation.
[0184] sps_affine_type_flag indicates that the 6-parameter affine model is used in interpretation. Indicates whether motion compensation is available. If sps_affine_type_flag is 0, there are 6 parameters. Motion compensation by the affine model is suppressed. Also, cu_affine_type_flag This is not transmitted in the CU syntax of the encoded video sequence. sps_affine_typ If e_flag is 1, then the six-parameter affine model is used in the encoded video sequence. Motion compensation can be used. If sps_affine_type_flag does not exist, it will be 0. do.
[0185] When decoding a P or B slice, in the CU currently being processed, If r_affine_flag is 1, generate a motion compensation prediction signal for the currently processed CU. To achieve this, motion compensation using an affine model is employed. When inter_affine_flag is 0 If so, the affine model will not be used for the CU currently being processed. If lag does not exist, it is assumed to be 0.
[0186] When decoding a P or B slice, in the CU currently being processed, cu_a If ffine_type_flag is 1, the motion compensation prediction signal for the currently processed CU is generated. To achieve this, motion compensation using a 6-parameter affine model is employed. (cu_affine_typ) If e_flag is 0, it generates a motion compensation prediction signal for the CU currently being processed. Motion compensation using a four-parameter affine model is employed.
[0187] In motion compensation using the affine model, the reference index and motion vector are used at the subblock level. Since the toll is derived, the reference index being processed is at the subblock level. A motion compensation prediction signal is generated using motion vectors.
[0188] The 4-parameter affine model is the horizontal component of the motion vector of each of the two control points and The motion vector of the subblock is derived from the four parameters of the vertical component, and the subblock single This mode compensates for movement based on position.
[0189] According to the first embodiment described above, in the process of deriving candidate motion vectors based on historical predictions, The processing is branched depending on whether it is in normal predictive motion vector mode or normal merge mode. In normal merge mode, the process of updating the history prediction motion vector candidate list HmvpCandList is performed. By preventing this, the amount of processing required for the update process can be reduced. Furthermore, normally In merge mode, the process of updating the history prediction motion vector candidate list HmvpCandList is not performed. Therefore, the list of candidate motion vectors for historical prediction (HmvpCandList) will include candidates that are identical or highly correlated. This suppresses the addition of supplements, and in the historical prediction motion vector candidate derivation process, the determination process for identical candidates is improved. This eliminates the need to perform that step, further reducing the amount of processing required.
[0190] All of the embodiments described above may be combined in any way.
[0191] In all the embodiments described above, the bitstream output by the image encoding device This allows specific data to be decoded according to the encoding method used in the embodiment. It has a format. Furthermore, the image decoding device corresponding to this image encoding device is... It can decode bitstreams of a specific data format.
[0192] To exchange bitstreams between the image encoding device and the image decoding device, a wired connection is used. Alternatively, when a wireless network is used, the data format should be suitable for the transmission method of the communication channel. The stream may be converted and transmitted. In that case, the bits output by the image encoding device The stream is converted into encoded data in a data format suitable for the transmission method of the communication channel and then used for networking. A transmitting device that sends data to the network, and a device that receives encoded data from the network and converts it into a bitstream. A receiving device is provided which supplies the image to the image decoding device. The transmitting device is provided which the image encoding device Memory to buffer the output bitstream, and the bitstream to be packetized. Packet processing unit and transmission unit that sends packetized encoded data over the network. The receiving device receives packetized encoded data via the network. A receiving unit, a memory that buffers the received encoded data, and a packet that stores the encoded data. It includes a packet processing unit that processes the data to generate a bitstream and provides it to an image decoding device.
[0193] Furthermore, by adding a display unit to the configuration that displays the image decoded by the image decoding device, the display It can also be used as a device. In that case, the display unit is generated by the decoded image signal superposition unit 207, and The decoded image signal stored in the image memory 208 is read out and displayed on the screen.
[0194] Furthermore, by adding an imaging unit to the configuration and inputting the captured image into an image encoding device, It can also be used as a device. In that case, the imaging unit inputs the captured image signal into the block division unit 101. To exert force.
[0195] Figure 37 shows an example of the hardware configuration of the encoding / decoding device of this embodiment. The device in question includes the configuration of an image encoding device and an image decoding device according to an embodiment of the present invention. The encoding / decoding device 9000 comprises a CPU 9001, a codec IC 9002, and an I / O interface 9003, memory 9004, optical disk drive 9005, network It has a work interface 9006 and a video interface 9009, and each part is a bus Connected by 9010.
[0196] The image encoding unit 9007 and the image decoding unit 9008 are typically connected to the codec IC 9002. It is implemented as follows. The image coding process of the image coding device according to an embodiment of the present invention is an image code This is performed by the numbering unit 9007, and is an image decoding in an image decoding device according to an embodiment of the present invention. The image decoding process is performed by the image decoding unit 9008. The I / O interface 9003 is For example, this is achieved via a USB interface, and an external keyboard 9104 and mouse 91 Connects to 05 etc. The CPU 9001 receives input via I / O interface 9003. Based on user input, the encoding / decoding device 90 performs the operation desired by the user. Control 00. User operations using keyboard 9104, mouse 9105, etc. Select whether to perform encoding or decoding, set encoding quality, bitstream This includes input / output destinations for data, image input / output destinations, etc.
[0197] When the user wishes to play back images recorded on the disk recording medium 9100 The optical disc drive 9005 receives bits from the inserted disc recording medium 9100. The stream is read, and the read bitstream is sent to codec I via bus 9010. The bitstream is sent to the image decoding unit 9008 of the C9002. The image decoding unit 9008 processes the input bitstream. The image decoding process in the image decoding device according to the embodiment of the present invention is performed on the object, and the decoding The image is sent to the external monitor 9103 via the video interface 9009. Also, The encoding / decoding device 9000 has a network interface 9006, and the network It is possible to connect to an external distribution server 9106 or a mobile terminal 9107 via the 9101. The user can change the image recorded on the disk recording medium 9100 to the distribution server 9106. If you wish to play back images recorded on the mobile terminal 9107, you will need to use the network. The interface 9006 receives the bitstream from the input disk recording medium 9100. Instead of reading, the bitstream is obtained from network 9101. If the user wishes to play back an image stored in memory 9004, memory 9 The image decoding device according to an embodiment of the present invention processes the bitstream recorded in 004. Perform image decoding processing in the specified location.
[0198] The image captured by the user with the external camera 9102 is encoded and recorded in memory 9004. If operation is desired, the video interface 9009 receives images from camera 9102. The image is then sent via bus 9010 to the image encoding unit 9007 of codec IC 9002. The image encoding unit 9007 processes the image input via the video interface 9009. The image encoding process in the image encoding device according to an embodiment of the present invention is performed, and the bitst Create a memory. Then, send the bitstream to memory 9004 via bus 9010. Send. The user changes memory 9004 and sends the bitstory to disk storage medium 9100. If you wish to record a disc, the optical disc drive 9005 will record the inserted disc. The bitstream is written to the storage medium 9100.
[0199] Hardware configurations that have an image encoding device but no image decoding device, or hardware configurations that have an image decoding device It is also possible to realize a hardware configuration that does not include an image encoding device. The hardware configuration is such that, for example, the codec IC9002 is the image encoding unit 9007, or This is achieved by replacing each of the image decoding units 9008 with their respective components.
[0200] The above encoding and decoding processes are performed using hardware-based transmission, storage, and receiving devices. Of course, it would be fine to implement this using ROM (Read-Only Memory) and flash memory. The actual operation is carried out by firmware stored in memory, etc., and software on computers, etc. It is acceptable to reveal the firmware program, the software program, on the computer. It may be recorded and provided on a recording medium that can be read by, for example, a wired or wireless network. It can be provided from the server via the network, or data from terrestrial or satellite digital broadcasting. It's acceptable to offer it as a broadcast.
[0201] The present invention has been described above based on embodiments. The embodiments are illustrative and their respective components The combination of constituent elements and each processing process can be varied in many ways, and such variations Those skilled in the art will understand that the examples also fall within the scope of the present invention. [Explanation of Symbols]
[0202] 100 Image encoding device, 101 Block division unit, 102 Interpretation unit, 103 Intra prediction unit, 104 Decoded image memory, 105 Prediction method determination unit, 10 6 Residual generation unit, 107 Orthogonal transformation / quantization unit, 108 Bit sequence encoding unit, 10 9 Inverse quantization / inverse orthogonal transform section, 110 Decoded image signal superposition section, 111 Encoded information section Storage memory, 200 image decoding unit, 201 bit sequence decoding unit, 202 blocks Splitting section, 203 Interpretation section, 204 Intraprediction section, 205 Encoded information storage Memory 206 Inverse quantization / inverse orthogonal transform unit, 207 Decoded image signal superposition unit, 208 Decoded image memory.< / poc>
Claims
1. A motion information history memory that stores the history of multiple motion information sets of the picture to be processed, A predictive motion vector candidate derivation unit that derives a predictive motion vector candidate, including a historical predictive motion vector candidate, from a memory that holds motion information of an encoded block, A spatial predictive motion vector candidate derivation unit that adds predictive motion vector candidates predicted from blocks adjacent to the block to be processed to the predictive motion vector candidates, The system includes a subblock merge candidate derivation unit that derives subblock merge candidates with different motion information in units of subblocks obtained by dividing an encoded block into a predetermined size from the memory which holds motion information of an encoded block, A video encoding device characterized in that, when a predicted motion vector candidate is encoded, and a candidate identical to the motion information to be stored in the motion information history memory does not exist in the motion information history memory, motion information is stored in the motion information history memory, and when a subblock merge candidate is encoded, motion information is not stored in the motion information history memory.
2. A motion information history memory step that stores the history of multiple motion information sets of the picture to be processed, A predicted motion vector candidate derivation step of deriving a predicted motion vector candidate, including a historical predicted motion vector candidate, from memory that holds motion information of an encoded block, A spatial predictive motion vector candidate derivation step, in which predictive motion vector candidates predicted from blocks adjacent to the block to be processed are added to the predictive motion vector candidates, The system includes a subblock merge candidate derivation step, which derives subblock merge candidates with different motion information in units of subblocks obtained by dividing the encoded block into predetermined sizes from the memory that holds the motion information of the encoded block, A video encoding method characterized in that, when the predicted motion vector candidate is encoded, and a candidate identical to the motion information to be stored in the motion information history memory does not exist in the motion information history memory, motion information is stored in the motion information history memory, and when the subblock merge candidate is encoded, motion information is not stored in the motion information history memory.
3. A motion information history memory step that stores the history of multiple motion information sets of the picture to be processed, A predicted motion vector candidate derivation step of deriving a predicted motion vector candidate, including a historical predicted motion vector candidate, from memory that holds motion information of an encoded block, A spatial predictive motion vector candidate derivation step, in which predictive motion vector candidates predicted from blocks adjacent to the block to be processed are added to the predictive motion vector candidates, The computer is made to perform a subblock merge candidate derivation step, which derives subblock merge candidates with different motion information in units of subblocks obtained by dividing the encoded block into predetermined sizes from the memory that holds the motion information of the encoded block, A video encoding program characterized in that, when a candidate for the predicted motion vector is encoded, and a candidate identical to the motion information to be stored in the motion information history memory does not exist in the motion information history memory, the program stores the motion information in the motion information history memory, and when a candidate for the subblock merge is encoded, the program does not store the motion information in the motion information history memory.
4. A motion information history memory that stores the history of multiple motion information sets of the picture to be processed, A predicted motion vector candidate derivation unit that derives predicted motion vector candidates, including historical predicted motion vector candidates, from memory that holds motion information of decoded blocks, A spatial predictive motion vector candidate derivation unit that adds predictive motion vector candidates predicted from blocks adjacent to the block to be processed to the predictive motion vector candidates, The system includes a subblock merge candidate derivation unit that derives subblock merge candidates with different movement information in subblock units obtained by dividing the decoded block into a predetermined size from the memory which holds the movement information of the decoded block, A video decoding device characterized in that, when the predicted motion vector candidate is decoded and a candidate identical to the motion information to be stored in the motion information history memory does not exist in the motion information history memory, motion information is stored in the motion information history memory, and when the subblock merge candidate is decoded, motion information is not stored in the motion information history memory.
5. A motion information history memory step that stores the history of multiple motion information sets of the picture to be processed, A predicted motion vector candidate derivation step of deriving a predicted motion vector candidate, including a historical predicted motion vector candidate, from memory that holds motion information of the decoded block, A spatial predictive motion vector candidate derivation step, in which predictive motion vector candidates predicted from blocks adjacent to the block to be processed are added to the predictive motion vector candidates, The system includes a subblock merge candidate derivation step, which derives subblock merge candidates with different movement information in units of subblocks obtained by dividing the decoded block into predetermined sizes from the memory that holds the movement information of the decoded block, A video decoding method characterized in that, when the predicted motion vector candidate is decoded and a candidate identical to the motion information to be stored in the motion information history memory does not exist in the motion information history memory, motion information is stored in the motion information history memory, and when the subblock merge candidate is decoded, motion information is not stored in the motion information history memory.
6. A motion information history memory step that stores the history of multiple motion information sets of the picture to be processed, A predicted motion vector candidate derivation step of deriving a predicted motion vector candidate, including a historical predicted motion vector candidate, from memory that holds motion information of the decoded block, A spatial predictive motion vector candidate derivation step, in which predictive motion vector candidates predicted from blocks adjacent to the block to be processed are added to the predictive motion vector candidates, The computer is made to perform a subblock merge candidate derivation step, which derives subblock merge candidates with different movement information in units of subblocks obtained by dividing the decoded block into predetermined sizes from the memory that holds the movement information of the decoded block, A video decoding program characterized in that, when the predicted motion vector candidate is decoded and a candidate identical to the motion information to be stored in the motion information history memory does not exist in the motion information history memory, motion information is stored in the motion information history memory, and when the subblock merge candidate is decoded, motion information is not stored in the motion information history memory.
7. A storage method for generating a bitstream according to the video encoding method described in claim 2, and storing the bitstream in a recording medium.
8. A transmission method for generating a bitstream according to the video encoding method described in claim 2, and transmitting the bitstream.