Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program

The image encoding technique optimizes processing efficiency by using inter-prediction information in block units with a history prediction motion vector candidate list and spatial merge candidates, addressing high processing loads in moving images with deformations.

JP7885929B2Active Publication Date: 2026-07-07JVC KENWOOD CORP

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
JVC KENWOOD CORP
Filing Date
2025-10-01
Publication Date
2026-07-07

AI Technical Summary

Technical Problem

Existing image encoding techniques, such as those described in Patent Document 1, suffer from high processing loads due to image conversion processes, particularly in handling deformations like enlargement, reduction, and rotation in moving images.

Method used

An image encoding apparatus and method that utilize inter-prediction information in block units, incorporating a history prediction motion vector candidate list, spatial prediction motion vector candidates, and average merge candidates, with reverse-order referencing to optimize processing efficiency.

Benefits of technology

Achieves highly efficient image encoding and decoding with reduced processing overhead by leveraging inter-prediction techniques in block units, enhancing encoding efficiency for moving images with deformations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007885929000001
    Figure 0007885929000001
  • Figure 0007885929000002
    Figure 0007885929000002
  • Figure 0007885929000003
    Figure 0007885929000003
Patent Text Reader

Abstract

To provide a technology for improving encoding efficiency by performing block division suitable for encoding and decoding an image.SOLUTION: There is provided a technology for improving encoding efficiency by performing block division suitable for encoding and decoding an image. Included are an encoded information storage unit that adds inter-prediction information used for inter-prediction to a history predictive motion vector candidate list; a history predictive motion vector candidate derivation unit that derives history predictive motion vector candidates from the history predictive motion vector candidate list; and a history merge candidate derivation unit that derives history merge candidates from the history predictive motion vector candidate list. The history predictive motion vector candidate derivation unit and the history merge candidate derivation unit refer to the candidates included in the history predictive motion vector candidate list in orders different from each other, and designate each of the candidates as a history predictive motion vector candidate or a history merge candidate.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

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, an 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) within the screen, the encoding efficiency is improved. In the encoding and decoding of moving images, inter-prediction that predicts from an encoded and decoded picture improves the encoding efficiency. Patent Document 1 describes a technique for applying an affine transformation during inter-prediction. In moving images, 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 the encoding and decoding of moving images, encoding efficiency is improved by inter-prediction that predicts from an encoded and decoded picture. Patent Document 1 describes a technique for applying an affine transformation during inter-prediction. In moving images, 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] To solve the above problems, the first embodiment of the present invention is an image encoding apparatus that encodes a moving image using inter-prediction information in block units obtained by dividing each picture of the moving image to form a bitstream, comprising: an encoding information storage unit that adds the inter-prediction information used in inter-prediction to a history prediction motion vector candidate list; a spatial prediction motion vector candidate derivation unit that derives spatial prediction motion vector candidates from blocks adjacent to the processing target block and adds the spatial prediction motion vector candidates to a prediction motion vector candidate list; and a history prediction motion vector candidate that derives history prediction motion vector candidates from the history prediction motion vector candidate list and adds the history prediction motion vector candidates to the prediction motion vector candidate list. The system includes a vector candidate derivation unit, a spatial merge candidate derivation unit that derives spatial merge candidates from blocks adjacent to the processing target block and adds the spatial merge candidates to a merge candidate list, a history merge candidate derivation unit that derives history merge candidates from the history prediction motion vector candidate list and adds the history merge candidates to the merge candidate list, and an average merge candidate derivation unit that derives an average merge candidate having a motion vector obtained by averaging the motion vectors of two merge candidates in the merge candidate list and adds the average merge candidate to the merge candidate list, wherein the history prediction motion vector candidate derivation unit and the history merge candidate derivation unit refer to the inter-prediction information included in the history prediction motion vector candidate list in reverse order.

[0007] A second aspect of the present invention is an image encoding method for forming a bitstream by encoding a moving image using inter-prediction information in block units obtained by dividing each picture of the moving image, comprising: an encoding information storage step of adding the inter-prediction information used in inter-prediction to a history prediction motion vector candidate list; a spatial prediction motion vector candidate derivation step of deriving a spatial prediction motion vector candidate from a block adjacent to the processing target block and adding the spatial prediction motion vector candidate to a prediction motion vector candidate list; a history prediction motion vector candidate derivation step of deriving a history prediction motion vector candidate from the history prediction motion vector candidate list and adding the history prediction motion vector candidate to the prediction motion vector candidate list; and The process includes: a spatial merge candidate derivation step of deriving a spatial merge candidate from a block adjacent to the block to be processed and adding the spatial merge candidate to a merge candidate list; a history merge candidate derivation step of deriving a history merge candidate from the history prediction motion vector candidate list and adding the history merge candidate to the merge candidate list as a merge candidate; and an average merge candidate derivation step of deriving an average merge candidate having a motion vector obtained by averaging the motion vectors of two merge candidates in the merge candidate list and adding the average merge candidate to the merge candidate list, wherein the history prediction motion vector candidate derivation step and the history merge candidate derivation step refer to the inter-prediction information included in the history prediction motion vector candidate list in reverse order.

[0008] A third aspect of the present invention is an image encoding program that encodes a moving image using inter-prediction information in block units obtained by dividing each picture of the moving image, comprising: an encoding information storage step of adding the inter-prediction information used in inter-prediction to a history prediction motion vector candidate list; a spatial prediction motion vector candidate derivation step of deriving a spatial prediction motion vector candidate from a block adjacent to the processing target block and adding the spatial prediction motion vector candidate to a prediction motion vector candidate list; a history prediction motion vector candidate derivation step of deriving a history prediction motion vector candidate from the history prediction motion vector candidate list and adding the history prediction motion vector candidate to the prediction motion vector candidate list; and the processing target The method comprises: a spatial merge candidate derivation step of deriving a spatial merge candidate from a block adjacent to a block and adding the spatial merge candidate to a merge candidate list; a history merge candidate derivation step of deriving a history merge candidate from the history prediction motion vector candidate list and adding the history merge candidate to the merge candidate list as a merge candidate; and an average merge candidate derivation step of deriving an average merge candidate having a motion vector obtained by averaging the motion vectors of two merge candidates in the merge candidate list and adding the average merge candidate to the merge candidate list, wherein the history prediction motion vector candidate derivation step and the history merge candidate derivation step refer to the inter-prediction information included in the history prediction motion vector candidate list in reverse order.

[0009] An image decoding device according to a fourth aspect of the present invention is an image decoding device that decodes a bit sequence encoded in a moving image using inter-prediction information in block units obtained by dividing each picture of the moving image, comprising: an encoding information storage unit that adds the inter-prediction information used in inter-prediction to a history prediction motion vector candidate list; a spatial prediction motion vector candidate derivation unit that derives a spatial prediction motion vector candidate from a block adjacent to the processing target block and adds the spatial prediction motion vector candidate to a prediction motion vector candidate list; and a history prediction motion vector candidate derivation unit that derives a history prediction motion vector candidate from the history prediction motion vector candidate list and adds the history prediction motion vector candidate to the prediction motion vector candidate list. The system includes: a spatial merge candidate derivation unit that derives a spatial merge candidate from a block adjacent to the processing target block and adds the spatial merge candidate to a merge candidate list; a history merge candidate derivation unit that derives a history merge candidate from the history prediction motion vector candidate list and adds the history merge candidate to the merge candidate list; and an average merge candidate derivation unit that derives an average merge candidate having a motion vector obtained by averaging the motion vectors of two merge candidates in the merge candidate list and adds the average merge candidate to the merge candidate list, wherein the history prediction motion vector candidate derivation unit and the history merge candidate derivation unit refer to the inter-prediction information included in the history prediction motion vector candidate list in reverse order.

[0010] A fifth aspect of the present invention is an image decoding method that decodes a bit sequence encoded in a moving image using inter-prediction information in block units obtained by dividing each picture of the moving image, comprising: an encoded information storage step of adding the inter-prediction information used in inter-prediction to a history prediction motion vector candidate list; a spatial prediction motion vector candidate derivation step of deriving a spatial prediction motion vector candidate from a block adjacent to the processing target block and adding the spatial prediction motion vector candidate to a prediction motion vector candidate list; a history prediction motion vector candidate derivation step of deriving a history prediction motion vector candidate from the history prediction motion vector candidate list and adding the history prediction motion vector candidate to the prediction motion vector candidate list; and the processing The process includes: a spatial merge candidate derivation step of deriving a spatial merge candidate from a block adjacent to an elephant block and adding the spatial merge candidate to a merge candidate list; a history merge candidate derivation step of deriving a history merge candidate from the history prediction motion vector candidate list and adding the history merge candidate to the merge candidate list as a merge candidate; and an average merge candidate derivation step of deriving an average merge candidate having a motion vector obtained by averaging the motion vectors of two merge candidates in the merge candidate list and adding the average merge candidate to the merge candidate list, wherein the history prediction motion vector candidate derivation step and the history merge candidate derivation step refer to the inter-prediction information included in the history prediction motion vector candidate list in reverse order.

[0011] A sixth aspect of the present invention is an image decoding program that decodes a bit string encoded in a video using inter-prediction information in inter-prediction units obtained by dividing each picture of the video into blocks, comprising: an encoding information storage step of adding the inter-prediction information used in inter-prediction to a history prediction motion vector candidate list; a spatial prediction motion vector candidate derivation step of deriving a spatial prediction motion vector candidate from a block adjacent to the processing target block and adding the spatial prediction motion vector candidate to a prediction motion vector candidate list; a history prediction motion vector candidate derivation step of deriving a history prediction motion vector candidate from the history prediction motion vector candidate list and adding the history prediction motion vector candidate to the prediction motion vector candidate list; and The process includes: a spatial merge candidate derivation step of deriving a spatial merge candidate from a block adjacent to the block to be processed and adding the spatial merge candidate to a merge candidate list; a history merge candidate derivation step of deriving a history merge candidate from the history prediction motion vector candidate list and adding the history merge candidate to the merge candidate list as a merge candidate; and an average merge candidate derivation step of deriving an average merge candidate having a motion vector obtained by averaging the motion vectors of two merge candidates in the merge candidate list and adding the average merge candidate to the merge candidate list, wherein the history prediction motion vector candidate derivation step and the history merge candidate derivation step refer to the inter-prediction information included in the history prediction motion vector candidate list in reverse order. [Effects of the Invention]

[0012] According to the present invention, highly efficient image encoding and decoding can be achieved with low overhead. [Brief explanation of the drawing]

[0013] [Figure 1] This is a block diagram of an image encoding device according to an embodiment of the present invention. [Figure 2] This is a block diagram of an image decoding device according to an embodiment of the present invention. [Figure 3]This is a flowchart for explaining the operation of splitting a tree block. [Figure 4] This is a diagram showing how the input image is split into tree blocks. [Figure 5] This is a diagram for explaining z-scan. [Figure 6A] This is a diagram showing the split shape of the block. [Figure 6B] This is a diagram showing the split shape of the block. [Figure 6C] This is a diagram showing the split shape of the block. [Figure 6D] This is a diagram showing the split shape of the block. [Figure 6E] This is a diagram showing the split shape of the block. [Figure 7] This is a flowchart for explaining the operation of dividing a block into four parts. [Figure 8] This is a flowchart for explaining the operation of dividing a block into two or three parts. [Figure 9] This is a syntax for expressing the shape of block splitting. [Figure 10A] This is a diagram for explaining intra prediction. [Figure 10B] This is a diagram for explaining intra prediction. [Figure 11] This is a diagram for explaining the reference block of inter prediction. [Figure 12] This is a syntax for expressing the prediction mode of the coded block. [Figure 13] This is a diagram showing the correspondence between syntax elements and modes related to inter prediction. [Figure 14] This is a diagram for explaining the affine transform motion compensation of two control points. [Figure 15] This is a diagram for explaining the affine transform motion compensation of three control points. [Figure 16] This is a block diagram of the detailed configuration of the inter prediction unit 102 in FIG. 1. [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 38] 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 39] 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 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 is a diagram illustrating the structure of the list of candidate motion vectors for historical prediction. [Figure 42]This diagram illustrates how the first element is removed when adding a candidate to the historical prediction motion vector list. [Figure 43] This diagram illustrates how each element is shifted within the list when adding it to the list of candidate motion vectors for historical prediction. [Figure 44] This diagram illustrates how a new element is added when it is added to the list of candidate motion vectors for historical prediction. [Figure 45] This figure illustrates the referencing order of the history prediction motion vector candidate list in the normal merge mode of the second embodiment. [Figure 46] This figure illustrates the referencing order of the historical predictive motion vector candidate list in the normal predictive motion vector mode of the second embodiment. [Figure 47] This is a flowchart illustrating the procedure for deriving candidate motion vectors based on the history prediction of the second embodiment. [Modes for carrying out the invention]

[0014] This section defines the technologies and technical terms used in this embodiment.

[0015] <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.

[0016] <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.

[0017] 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. .

[0018] 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.

[0019] <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.

[0020] <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.

[0021] <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.

[0022] 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.

[0023] <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.

[0024] 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.

[0025] Details on how adjacent blocks are handled in predictive motion vector mode and merge mode. Details will be discussed later.

[0026] <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.

[0027] 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.

[0028] 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.

[0029] 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.

[0030] <Interpretation Syntax> Figures 12 and 13 are used to explain the syntax for interpretation.

[0031] 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.

[0032] 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 corresponds to the vector mode. The normal predictive motion vector mode is 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.

[0033] <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. (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.

[0034] 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.

[0035] 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.

[0036] 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. .

[0037] The intra prediction unit 103 performs intra prediction of the coding block to be processed. The measurement unit 103 measures the decoded image signal stored in the decoded image memory 104 and the 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.

[0038] 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) Figure 10B shows an example of generating an intra-prediction image in intra-prediction mode 40. The intra 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 in the direction is copied. The intra prediction unit 103 copies the reference pixel in intra prediction mode. If the prime pixel is not at an integer position, the reference pixel value is interpolated from the reference pixel values ​​at surrounding integer positions. I will make a decision.

[0039] 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.

[0040] 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.

[0041] 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.

[0042] 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.

[0043] 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.

[0044] 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.

[0045] 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.

[0046] 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.

[0047] 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.

[0048] 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 has.

[0049] 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.

[0050] 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.

[0051] 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.

[0052] 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.

[0053] 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.

[0054] 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).

[0055] 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).

[0056] 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). ).

[0057] 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).

[0058] 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).

[0059] 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.

[0060] 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).

[0061] 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.

[0062] 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.

[0063] 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).

[0064] 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.

[0065] 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.

[0066] 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.

[0067] 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. To do so.

[0068] <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.

[0069] 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.

[0070] <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.

[0071] The normal merge mode derivation unit 302 derives multiple normal merge candidates and selects the normal merge candidates. Select and obtain inter prediction information in normal merge mode. This inter prediction information 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.

[0072] 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.

[0073] 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.

[0074] 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.

[0075] 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.

[0076] <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.

[0077] 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.

[0078] 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.

[0079] 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].

[0080] 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. .

[0081] 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.

[0082] <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.

[0083] 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.

[0084] 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.

[0085] <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.

[0086] 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).

[0087] 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.

[0088] 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.

[0089] 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.

[0090] 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.

[0091] 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).

[0092] <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.

[0093] 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 the LX being calculated, information from another reference list is used. When comparing, the other reference list is represented as LY.

[0094] When using the motion vector mvLX for LX (step S202:YES in Figure 25), LX Calculate candidate predicted motion vectors and construct a list of LX predicted motion vector candidates, mvpListLX. To build (step S203 in Figure 25). In the normal predicted motion vector mode derivation unit 401 Spatial prediction motion vector candidate derivation unit 421, time prediction motion vector candidate derivation unit 422, history Multiple predicted motion vectors are generated in the predicted motion vector candidate derivation unit 423 and the predicted motion vector candidate supplementation unit 425. Candidate motion vectors are calculated, and a list of predicted motion vector candidates, mvpListLX, is constructed. (Figure 25) The detailed processing procedure for step S203 will be described later using the flowchart in Figure 20. ru.

[0095] Next, the predicted motion vector candidate selection unit 426 selects the predicted motion vector candidate list mvpListLX The index mv of the predicted motion vector, which is decoded and supplied by the bit sequence decoding unit 201. Candidate predicted motion vectors corresponding to pIdxLX are mvpListLX[mvpIdxLX] selected as predicted motion vectors Extract it as `mvpLX` (step S204 in Figure 25).

[0096] Next, the motion vector addition unit 427 decodes the bit string decoding unit 201 and supplies it. The difference motion vector mvdLX of LX and the predicted motion vector mvpLX of LX are added together. mvLX = mvpLX + mvdLX The motion vector mvLX of LX is calculated (step S205 in Figure 25).

[0097] <Normal Predictive Motion Vector Mode Derivation Unit (Normal AMVP): Method for Predicting Motion Vectors> FIG. 20 shows the derivation of the normal prediction motion vector mode of the image encoding apparatus according to the embodiment of the present invention and the common functions of the normal prediction motion vector mode derivation unit 301 and the normal prediction motion vector mode derivation unit 401 of the image decoding apparatus It is a flowchart showing the processing procedure of the normal prediction motion vector mode derivation process having

[0098] The normal prediction motion vector mode derivation unit 301 and the normal prediction motion vector mode derivation unit 40 1 has a prediction motion vector candidate list mvpListLX. The prediction motion vector candidate list mvpListLX has a list structure, and a prediction motion vector index indicating the location inside the prediction motion vector candidate list and a prediction motion vector candidate corresponding to the index are stored as elements in a storage area. The number of the prediction motion vector index starts from 0, and the prediction motion vector candidate is stored in the storage area of the prediction motion vector candidate list mvpListLX In the present embodiment, the prediction motion vector candidate list mvpListLX can register at least two prediction motion vector candidates (inter prediction information) as described. Further, a variable numCurrMvpCand indicating the number of prediction motion vector candidates registered in the prediction motion vector candidate list mvpListLX is set to 0

[0099] The spatial prediction motion vector candidate derivation units 321 and 421 derive candidates for the prediction motion vector from the block adjacent on the left In this process, the inter prediction information of the block adjacent on the left (A0 or A1 in FIG. 11), that is, a flag indicating whether the prediction motion vector candidate is available, and the motion vector, reference index, etc. are referred to, and the prediction motion vector mv ​​​​​​Derive LXA, and add the derived mvLXA to the predicted motion vector candidate list mvpListLX (Figure 20 step S301). When predicting with L0, X is 0, and when predicting with L1, X is 1 (the same hereinafter). Subsequently, the spatial predicted motion vector candidate derivation units 321 and 421 derive candidates for the predicted motion vector from the blocks adjacent above . In this process, the inter-prediction information of the blocks adjacent above (B0, B1, or B2 in Figure 11), that is, the flag indicating whether the predicted motion vector candidate is available, and the motion vector, reference index, etc. are used as references to derive the predicted motion vector mvLXB. If the derived mvLXA and mvLXB are not equal , then add mvLXB to the predicted motion vector candidate list mvpListLX (step S3 02 in Figure 20). The processes of steps S301 and S302 in Figure 20 are common except that the positions and numbers of the adjacent blocks to be referenced are different. The flag availableFlagLXN indicating whether the predicted motion vector candidate of the encoded block is available, and the motion vector mvLXN, reference index refIdxN (N indicates A or B, the same hereinafter) are derived. Subsequently, the temporal predicted motion vector candidate derivation units 322 and 422 derive candidates for the predicted motion vector from the blocks in pictures with different times from the current processing target picture . In this process, the flag availableFlagLXCol indicating whether the predicted motion vector candidate of the encoded block in pictures with different times is available, and the motion vector mvLXCol, reference index refIdxCol , reference list listCol are derived, and mvLXCol is added to the predicted motion vector candidate list mvpListLX (step S3

[0100] 03 in Figure 20). vpListLX (step S303 in Figure 20).

[0101] Time predictions are provided in units of sequence (SPS), picture (PPS), or slice. The processing of motion vector candidate derivation units 322 and 422 can be omitted.

[0102] Next, the history prediction motion vector candidate derivation units 323 and 423 derive history prediction motion vector candidates The historical prediction motion vector candidates registered in the supplementary list HmvpCandList are prediction motion vector candidates Add to the supplementary list mvpListLX. (Step S304 in Figure 20). This step S304 Details of the registration process will be described later using the flowchart in Figure 29.

[0103] Next, the predicted motion vector candidate supplementation units 325 and 425 add the predicted motion vector candidate list mv Add a list of predicted motion vector candidates with predetermined values, such as (0,0), until the pListLX condition is met. (S305 in Figure 20).

[0104] <Normal Merge Mode Derivation Section (Normal Merge)> The normal merge mode derivation unit 302 in Figure 18 is a spatial merge candidate derivation unit 341, and a time merge Candidate derivation unit 342, average merge candidate derivation unit 344, history merge candidate derivation unit 345, merge Includes a candidate replacement unit 346 and a merge candidate selection unit 347.

[0105] The normal merge mode derivation unit 402 in Figure 24 is a spatial merge candidate derivation unit 441, and a time merge Candidate derivation unit 442, average merge candidate derivation unit 444, history merge candidate derivation unit 445, merge Includes a candidate replacement unit 446 and a merge candidate selection unit 447.

[0106] Figure 21 shows the normal merge mode derivation unit 302 of the image coding device according to an embodiment of the present invention. This is a flowchart for explaining the procedure of the normal merge mode derivation process that has functions common to the normal merge mode derivation unit 402 of the image decoding device and the normal merge mode derivation unit 302.

[0107] The following describes each process in sequence. In the following description, unless otherwise specified, the case where the slice type slice_type is a B slice will be described, but it can also be applied to the case of a P slice. However, when the slice type slice_type is a P slice, there is only L0 prediction (Pred_L0) as the inter prediction mode, and there is no L1 prediction (Pred_L1) or bi-prediction (Pred_BI). Therefore, the processes related to L1 can be omitted.

[0108] The normal merge mode derivation unit 302 and the normal merge mode derivation unit 402 have a merge candidate list mergeCandList. The merge candidate list mergeCandList has a list structure, and is provided with a merge index indicating the location inside the merge candidate list and a storage area for storing merge candidates corresponding to the index as elements. The number of the merge index starts from 0, and merge candidates are stored in the storage area of the merge candidate list mergeCandList. In the subsequent processes, the merge candidate at the merge index i registered in the merge candidate list mergeCandList will be represented by mergeCandList[i]. In the present embodiment, the merge candidate list mergeCandList can register at least six merge candidates (inter prediction information). Furthermore, a variable numCurrMergeCand indicating the number of merge candidates registered in the merge candidate list mergeCandList is set to 0.

[0109] ​​​​ 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, the space from the blocks adjacent to the left and above the block to be processed. Derive merge candidates A and B, and list the derived spatial merge candidates as the merge candidate list mergeCandL. Register with ist (step S401 in Figure 21). Here, spatial merge candidates A, B, or Define N which represents one of the time merge candidate Col. Interpretation information of block N availableFlagN indicates whether or not a spatial merge candidate is available, and N is the spatial merge candidate. The reference index for L0 is refIdxL0N and the reference index for L1 is refIdxL1N, and the L0 prediction is The L0 prediction flag predFlagL0N indicates whether or not the prediction will be performed, and the L1 prediction indicates whether or not the prediction will be performed. The L1 prediction flag predFlagL1N, the L0 motion vector mvL0N, and the L1 motion vector mvL1N are Derived. However, in this embodiment, the encoding block to be processed is included in the block. Since merge candidates are derived without referring to the interpretation information of the lock, the encoding of the target being processed is Spatial merge candidates are not derived using interpretation information of blocks contained within a block.

[0110] 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.

[0111] 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.

[0112] 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).

[0113] 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.

[0114] 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).

[0115] 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.

[0116] 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.

[0117] 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.

[0118] 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.

[0119] In the normal merge mode derivation unit 302 and the normal merge mode derivation unit 402, a certain encoding block If the lock size (product of width and height) is less than 32, the parent block of that encoded block will In this, merge candidates are derived. And in all child blocks, in the parent block, Use the suggested merge candidates. However, the parent block size must be 32 or larger, and within the screen. Only if it is contained.

[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. (Step S2101 in Figure 26). The list of candidate historical motion vectors Hm at the beginning of the slice. Add historical prediction motion vector candidates to all elements of vpCandList, and historical prediction motion vector The number of historical prediction motion vector candidates registered in the candidate list HmvpCandList is NumHmvpCand. Set the value to 6. Alternatively, at the beginning of the slice, add the historical prediction motion vector candidate list HmvpCandL Clear all elements of ist and register them in the historical prediction motion vector candidate list HmvpCandList The value of NumHmvpCand, which represents the number of historical prediction motion vector candidates (current number of candidates), can be set to 0. good.

[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 38 shows the history added during 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 hMvpIdx is (history The number of predicted motion vector candidates (NumHmvpCand) ranges from 1 to 0, depending on the slice type. Interpretation information for vector mvLXHmvp (where X is 0 or 1) with a value of (0, 0), historical prediction motion vector As a candidate for the vector, add it to the historical prediction motion vector candidate list HmvpCandList and perform historical prediction The motion vector candidate list is filled with history candidates. At this time, the history prediction motion vector index The hMvpIdx starts from (the number of historical prediction motion vector candidates NumHmvpCand-1) and references The dex refIdxLX (where X is 0 or 1) ranges from 0 to (number of referenced pictures numRefIdx-1) = 1. Set the incremented value. After that, check the overlap between candidate historical motion vectors. Allow and set the reference index refIdxLX to a value of 0. Historical prediction motion vector candidate Set all values ​​to the number of NumHmvpCand values, and the number of historical prediction motion vector candidates to the value of NumHmvpCand. By fixing this value, invalid historical prediction motion vector candidates are eliminated. In this way, the prediction motion Historical predicted motion vectors that have a high probability of being added to the candidate list of new vectors or the candidate list of mergers. From the candidates for index hMvpIdx with a large value, the reference index ref generally has a high selectivity. By assigning a small value to IdxLX, encoding 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... Other values ​​are also acceptable. For example, you can use values ​​such as (4,4), (0,32), and (-128,0) to calculate the difference motion vector. You can improve the coding efficiency of the 'L', or you can set multiple predetermined values ​​to improve the coding efficiency of the difference motion vector. The rate can be improved.

[0131] Furthermore, the historical prediction motion vector index hMvpIdx is (number of historical prediction motion vector candidates N) Starting from umHmvpCand-1), the reference index refIdxLX (where X is 0 or 1) starts from 0 (see The setting was to increment the value by 1 up to the number of pictures (numRefIdx-1), but The historical prediction motion vector index hMvpIdx may be started from 0.

[0132] Figure 39 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. Either the value of 'xrefIdxLX' (where X is 0 or 1) or the value of the motion vector 'mvLXHmvp' (where X is 0 or 1). By adding different interpretation information as historical prediction motion vector candidates, the historical prediction motion The list of candidate vectors is filled. At this time, the historical prediction motion vector index hMvpIdx Starting from (number of historical prediction motion vector candidates NumHmvpCand-1), reference index refId xLX (where X is 0 or 1) is incremented by 1 from 0 to (number of referenced pictures numRefIdx-1). Set the entered value. After that, the reference index refIdxLX will have a different value movement of 0. Add the character mvLXHmvp as a candidate for historical motion vector prediction. Historical motion vector candidate Set all values ​​to the number of NumHmvpCand values, and the number of historical prediction motion vector candidates to the value of NumHmvpCand. By setting this to a fixed value, 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 absolute values ​​of each component of the motion vector mvLXHmvp were set to 0 or 1, but the historical predicted motion If there is no overlap between the candidate vectors, the absolute value of each component of the motion vector mvLXHmvp is 1. You can make it even bigger.

[0135] Furthermore, the historical prediction motion vector index hmvpIdx is (number of historical prediction motion vector candidates N) Starting from umHmvpCand-1), the reference index refIdxLX (where X is 0 or 1) starts from 0 (see The setting was to increment the value by 1 up to the number of pictures (numRefIdx-1), but The historical prediction motion vector index hMvpIdx may be started from 0.

[0136] Figure 40 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] This example shows the case where the slice type is B slice and the number of reference pictures is 1. Each element of the historical prediction motion vector candidate list HmvpCandList is a historical prediction motion vector candidate. To avoid duplication, the reference index refIdxLX is 0, and the value of the motion vector mvLXHmvp is Add different interpretation information as historical prediction motion vector candidates, and the historical prediction motion vector Fill the list of candidate tolls. At this time, the historical prediction motion vector index hMvpIdx is ( The number of historical prediction motion vector candidates starts from NumHmvpCand-1) and references the index refIdxLX (X is 0 or 1) sets different interpretation information where the moving vector mvLXHmvp values ​​are 0 and different. Set all values ​​in NumHmvpCand to the number of historical prediction motion vector candidates, and the historical prediction motion vector By fixing the value of the number of candidate vectors, NumHmvpCand, invalid historical prediction motion vector candidates are eliminated. Eliminate it.

[0138] In this way, by setting the reference index refIdxLX to 0, the number of reference pictures can be further determined. Since initialization can be performed without considering this, the process can be simplified.

[0139] Here, the absolute values ​​of each component of the motion vector mvLXHmvp were taken as powers of 0, 1, or 2, If the reference index is 0 and there is no overlap between candidate historical motion vectors, then the motion vector The absolute values ​​of each component of tolmvLXHmvp may be powers of values ​​other than 2, such as 3 or 4, or any other arbitrary value. You can do that.

[0140] Furthermore, the historical prediction motion vector index hMvpIdx is (number of historical prediction motion vector candidates N) Starting from umHmvpCand-1), the reference index refIdxLX (where X is 0 or 1) moves at 0. Although we set different interpretation information for the TormvLXHmvp values, the historical prediction motion vector You may start the index hMvpIdx 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 S2111 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] 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.

[0145] 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.

[0146] 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).

[0147] <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.

[0148] 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.

[0149] 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 204 onwards.

[0150] 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. In the case of 2 or more (step S2205:NO in Figure 29), step S2206 in Figure 29 The process in S2209 is omitted, and this history 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 mvpListL. If the number of elements in X is less than 2 (step S2205 in Figure 29: YES), then Figure 2 Perform the processing from step S2206 onwards in step 9.

[0151] 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.

[0152] 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).

[0153] <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.

[0154] 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.

[0155] 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).

[0156] 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.

[0157] 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. .

[0158] <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.

[0159] 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 increases. Also, the calculation of the weighting ratio may be done by picturing Alternatively, this can be done using a correspondence table between combinations of chat intervals and weighting ratios.

[0160] 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.

[0161] <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.

[0162] 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).

[0163] 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.

[0164] 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.

[0165] <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.

[0166] <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.

[0167] 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.

[0168] <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.

[0169] 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 prediction 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.

[0170] <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 being 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.

[0171] 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.

[0172] <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.

[0173] 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.

[0174] <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. .

[0175] 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.

[0176] 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.

[0177] 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.

[0178] 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.

[0179] 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.

[0180] 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. (Second Embodiment) In the first embodiment, the usual predictive motion vector mode and the usual merge mode are used for historical predictive motion The order in which the elements (candidates) of the vector candidate list were referenced was the same. On the other hand, in the second implementation... In this embodiment, the following additions and modifications are made to the first embodiment: Historical prediction The reference order when using the motion vector candidate list is the normal predicted motion vector in the second embodiment. In Tormode, the procedure is carried out in the reverse order of the first embodiment, as shown in Figure 46, and the second embodiment In the normal merge mode of the implementation form, the same order as in the first embodiment is shown in Figure 45. This will be done. In other words, the history prediction will be done using the normal prediction motion vector mode and the normal merge mode. Reverse the order in which candidates are referenced in the motion vector candidate list. In normal predictive motion vector mode, elements in the historical predictive motion vector candidate list are old Elements are added to the predicted motion vector candidate list in order from the most important element, and in normal merge mode, the history prediction The elements in the list of candidate motion vectors are in the list of candidate motion vectors, in order from the newest element to the newest element. It will be added to the list.

[0181] <List of candidate historical motion vectors> This is a list of candidate historical motion vectors. The configuration and operation will be explained. As shown in Figure 41, in the block to be encoded... The interpretation information used by interpretation prediction is the candidate interpretation information hM to be registered. vpCand is used as a history of past usage, and the history of predicted motion vector candidate list Hm is used. Register in vpCandList. In Figure 41, the historical prediction motion vector candidate list has 6 elements. It has a list structure that can store items, and the elements stored first are retrieved in the order they were stored, i.e., first-in, first-out. The basic storage operation uses the FIFO (First-In, First-Out) method.

[0182] Here, as an example, we define the maximum number of elements that can be stored in HmvpCandList on the encoding and decoding sides. While we will explain this as a set of six agreements, it is not particularly limited to six or more. That's fine too. Also, the maximum number of elements that can be stored in HmvpCandList is 5 or less. It can also be constructed as the number of elements. For example, the maximum number of elements in the predicted motion vector candidate list mvpListLX. Interpretation information candidates such as prime numbers, maximum number of merge candidates, maximum number of subblock merge candidates, etc. You may configure HmvpCandList to have the same maximum number of elements as the maximum number of elements for each mode. You may configure HmvpCandList to be linked to the maximum number of elements in the predicted information candidates.

[0183] The maximum number of elements in this HmvpCandList will be included in the bitstream syntax elements. It may also be configured to transmit from the encoding side to the decoding side.

[0184] As shown in Figure 41, HmvpCandList is structured from position 0, which is the beginning of the list, to the end of the list. Six elements can be stored at position 5, which is the tail, and the elements are filled in order from position 0 to position 5. This can be done. The historical prediction motion vector index hMvpId is used to determine the range from position 0 to position 5. It is managed as x. For example, position 0 can be represented as hMVpIdx[0], and position 5 as hMVpIdx[5]. HMV The number of elements stored in pCandList is managed by NumHmvpCand, and the number of elements stored ranges from 0 to the maximum number of elements, which is 6. Manages the addition and removal of elements.

[0185] When adding a new element to HmvpCandList, if the maximum number of elements is already stored in HmvpCandList, Let's explain in detail. As shown in Figure 42, the interpretation information candidate hMvpCand is newly entered When registering as history, delete the element at position 0, which is the first element, and set the position of each element to 1. The elements are shifted one by one towards the beginning. As a result of the shift, the number of stored elements decreases by one, as shown in Figure 43. This allows a new element to be stored at position 5 at the end. Therefore, interpredictive information By storing the candidate hMvpCand at position 5 at the end, a new HmvpCandList is added, as shown in Figure 44. An element is added.

[0186] <Derivation of historical predictive motion vector candidates in the normal predictive motion vector mode of the second embodiment> Processing > Here, the history predictive motion in the normal predictive motion vector mode of the second embodiment. This section explains the process for deriving candidate vectors.

[0187] Figure 47 shows the normal predicted motion vector mode of the second embodiment, and the normal merge mode. The history prediction motion vector candidate list HmvpCandList is accessed in the reverse order of the reference order. This flowchart describes the procedure for deriving candidate motion vectors based on historical predictions when configured to use this feature. —This is a chart.

[0188] The current number of predicted motion vector candidates is numCurrMvpCand, and the list of predicted motion vector candidates is mvpLis. The number of elements in tLX (which we'll assume is 2 here) or the number of historically predicted motion vector candidates NumHmvp If the value of Cand is 0 (NO in step S2601 in Figure 47), then step S260 in Figure 47 The process from step 2 to S2609 is omitted, and the procedure for deriving candidate motion vectors based on historical predictions is terminated. The current number of predicted motion vector candidates is numCurrMvpCand, and the list of predicted motion vector candidates is mvpListL. The value of NumHmvpCand, which is the number of historical prediction motion vector candidates, and is less than 2, which is the maximum number of elements in X. If it is greater than 0 (YES in step S2601 in Figure 47), then step S26 in Figure 47 Process steps 02 through S2609.

[0189] Next, the index i ranges from 0 to 4, and the number of historical prediction motion vector candidates is NumHmvpCand. From the smaller of the two values, subtract 1, in steps S2603 to S2608 of Figure 47 Repeat the process (steps S2602-S2609 in Figure 47). Current predicted motion vector The number of candidates, numCurrMvpCand, is the maximum number of elements in the predicted motion vector candidate list, mvpListLX, which is 2. In the above case (NO in step S2603 of Figure 47), steps S2604 to S in Figure 47 The process for deriving candidate motion vectors based on this history prediction will be omitted and the current procedure will be terminated. The number of predicted motion vector candidates, numCurrMvpCand, is the number of predicted motion vector candidate lists, mvpListLX. If the number of major elements is less than 2 (YES in step S2603 of Figure 47), then the S in Figure 47 Perform the processing from step S2604 onwards.

[0190] Next, the process from step S2605 to S2607 is performed with index Y being 0 and 1 (L Perform the following steps for 0 and L1 respectively (steps S2604-S2608 in Figure 47). The number of predicted motion vector candidates, numCurrMvpCand, is the number of predicted motion vector candidate lists, mvpListLX. If the number of major elements is 2 or more (NO in step S2605 of Figure 47), then step 47 The processing steps from S2606 to S2609 are omitted, and the procedure for deriving candidate motion vectors based on historical predictions is omitted. Ending. The current number of predicted motion vector candidates is numCurrMvpCand. If the number of elements in mvpListLX is less than 2 (YE in step S2605 of Figure 47) S) Perform the processing from step S2606 onwards in Figure 47.

[0191] 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 candidate list mvpListLX (step S26 in Figure 47) 06 (YES), the numCurrMvpCand element, counting from 0 in the list of predicted motion vector candidates The movement of LY in HmvpCandList[i] is a historical prediction movement vector candidate in mvpListLX[numCurrMvpCand]. Add the vector (step S2607 in Figure 47), and the number of current predicted motion vector candidates nu Increment mCurrMvpCand by 1. The historical prediction motion vector candidate list HmvpCandList Inside, the reference index refIdxLX of the motion vector to be encoded / decoded is the same reference index It is an element of the prediction motion vector candidate list mvpListLX and is different from any of the other elements. If not (NO in step S2607 in Figure 47), skip the additional processing in step S2607. To do.

[0192] The processes from steps S2605 to S2607 in Figure 47 are performed on both L0 and L1. (Steps S2604-S2608 in Figure 47).

[0193] Increment index i by 1 (steps S2602 and S2609 in Figure 47), The index i is the smaller of 4 or the number of historical prediction motion vector candidates, NumHmvpCand. If the value is less than or equal to the value obtained by subtracting 1, the process from step S2603 onwards will be repeated (step 47 in Figure 47) (S2602~S2609).

[0194] As described above, in normal predictive motion vector mode, within the list of historical predictive motion vector candidates The elements added first (oldest elements) are referenced in order and added to the list of predicted motion vector candidates. To be added.

[0195] <Variation Example 1> This demonstrates the reference order of the historical prediction motion vector candidate list as in this embodiment. A history reference flag is introduced to separate the reference order of the first embodiment from the reference order of this embodiment. It can be configured to be replaceable. This history reference flag can be used in the bitstream syntax. The history reference flag is included in the syntax element and transmitted to the decryption side, and the decryption side uses this history reference flag in the syntax element You could also retrieve the bitstream it holds and make it decryptable. <Variation 2> In this embodiment, in the normal predictive motion vector mode, historical prediction is performed as shown in Figure 46. The motion vector candidate list is referenced one by one, from element 0 to element 5, in normal merge mode. As shown in Figure 45, the elements of the historical prediction motion vector candidate list are ordered from element 5 to element 0. I looked at them one by one, but the normal predictive motion vector mode and the normal merge mode are different in terms of historical predictive motion vector This is not limited to cases where the order in which the candidate list is referenced is different. For example, In motion vector mode, elements 0 to 2 are referenced, and in normal merge mode, elements 5 to 2 are referenced. As shown in Element 1, historical prediction in normal prediction motion vector mode and normal merge mode. The number of references to the motion vector candidate list may differ. In this case, the number of references to the list with more candidates will be used. It is preferable to increase the number of references to the normal merge mode. Alternatively, you could change the starting point to refer to elements 4 through 0.

[0196] By adopting the second embodiment described above, the list of candidate motion vectors for historical prediction can be generated. By using a different reference order than the normal predictive motion vector mode, This allows for the selection of the most suitable candidate for each mode. In particular, the difference motion vector is used. When the normal predictive motion vector mode is selected for encoding, the area around the block to be encoded Often, a different motion vector is needed depending on the situation. Therefore, a candidate for historical motion vector prediction is required. We search the supplementary list and look for elements that are different from the most recent ones and are considered to have a relatively low correlation, i.e., earlier. By using the oldest elements stored in the system as candidates in order, the usual predicted motion vector motion This can contribute to improving encoding efficiency by providing suitable candidates for the code.

[0197] Furthermore, in normal merge mode, the higher the correlation around the block to be encoded, the higher the encoding efficiency. To improve performance, we searched a list of candidate historical motion vectors, looking for the most recent ones with a relatively high correlation. The elements that are considered most likely to be used are those that were stored later, in that order. Therefore, the number of candidates suitable for the normal merge mode can contribute to improved encoding efficiency.

[0198] All of the embodiments described above may be combined in any way.

[0199] 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.

[0200] 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.

[0201] 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.

[0202] 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.

[0203] 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.

[0204] 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.

[0205] 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.

[0206] 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.

[0207] 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.

[0208] 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 firmware stored in memory, etc., and the software of the computer, 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.

[0209] 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]

[0210] 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. An image encoding device that encodes a moving image using inter-prediction based on inter-prediction information in block units into which each picture of the moving image is divided, thereby forming a bitstream, An encoded information storage unit that adds the interpretation prediction information used in interpretation to the historical prediction motion vector candidate list, A spatial prediction motion vector candidate derivation unit derives spatial prediction motion vector candidates from blocks adjacent to the block to be processed and adds the spatial prediction motion vector candidates to the prediction motion vector candidate list. A history prediction motion vector candidate derivation unit derives history prediction motion vector candidates from the history prediction motion vector candidate list and adds the history prediction motion vector candidates to the prediction motion vector candidate list. A spatial merge candidate derivation unit derives spatial merge candidates from blocks adjacent to the block to be processed and adds the spatial merge candidates to a merge candidate list. A history merge candidate derivation unit derives history merge candidates from the history prediction motion vector candidate list and adds the history merge candidates to the merge candidate list. An average merge candidate derivation unit derives an average merge candidate having a motion vector obtained by averaging the motion vectors of two merge candidates in the merge candidate list, and adds the average merge candidate to the merge candidate list. Equipped with, The image encoding device is characterized in that the history prediction motion vector candidate derivation unit and the history merge candidate derivation unit refer to the inter-prediction information included in the history prediction motion vector candidate list in reverse order.

2. An image encoding method for forming a bitstream by encoding a moving image using interprediction based on interprediction information in block units obtained by dividing the moving image into individual pictures, A coding information storage step involves adding the interpretation information used in interpretation to the historical prediction motion vector candidate list, A spatial prediction motion vector candidate derivation step involves deriving spatial prediction motion vector candidates from blocks adjacent to the block to be processed and adding the spatial prediction motion vector candidates to the prediction motion vector candidate list. A historical prediction motion vector candidate derivation step of deriving a historical prediction motion vector candidate from the historical prediction motion vector candidate list and adding the historical prediction motion vector candidate to the prediction motion vector candidate list, A spatial merge candidate derivation step involves deriving spatial merge candidates from blocks adjacent to the block to be processed and adding the spatial merge candidates to a merge candidate list. A history merge candidate derivation step involves deriving a history merge candidate from the history prediction motion vector candidate list and adding the history merge candidate to the merge candidate list as a merge candidate, The average merge candidate derivation step involves deriving an average merge candidate having a motion vector obtained by averaging the motion vectors of two merge candidates in the merge candidate list, and adding the average merge candidate to the merge candidate list. Equipped with, The image encoding method is characterized in that the history prediction motion vector candidate derivation step and the history merge candidate derivation step refer to the inter-prediction information included in the history prediction motion vector candidate list in reverse order.

3. An image encoding program that encodes a video using interprediction based on interprediction information in block units obtained by dividing the video into individual pictures, A coding information storage step involves adding the interpretation information used in interpretation to the historical prediction motion vector candidate list, A spatial prediction motion vector candidate derivation step involves deriving spatial prediction motion vector candidates from blocks adjacent to the block to be processed and adding the spatial prediction motion vector candidates to the prediction motion vector candidate list. A historical prediction motion vector candidate derivation step of deriving a historical prediction motion vector candidate from the historical prediction motion vector candidate list and adding the historical prediction motion vector candidate to the prediction motion vector candidate list, A spatial merge candidate derivation step involves deriving spatial merge candidates from blocks adjacent to the block to be processed and adding the spatial merge candidates to a merge candidate list. A history merge candidate derivation step involves deriving a history merge candidate from the history prediction motion vector candidate list and adding the history merge candidate to the merge candidate list as a merge candidate, The average merge candidate derivation step involves deriving an average merge candidate having a motion vector obtained by averaging the motion vectors of two merge candidates in the merge candidate list, and adding the average merge candidate to the merge candidate list. Equipped with, The image coding program is characterized in that the history prediction motion vector candidate derivation step and the history merge candidate derivation step refer to the inter-prediction information included in the history prediction motion vector candidate list in reverse order.

4. An image decoding device that decodes the bit string encoded in a video using interprediction based on interprediction information in block units obtained by dividing the video into individual pictures, An encoded information storage unit that adds the interpretation prediction information used in interpretation to the historical prediction motion vector candidate list, A spatial prediction motion vector candidate derivation unit derives spatial prediction motion vector candidates from blocks adjacent to the block to be processed and adds the spatial prediction motion vector candidates to the prediction motion vector candidate list. A history prediction motion vector candidate derivation unit derives history prediction motion vector candidates from the history prediction motion vector candidate list and adds the history prediction motion vector candidates to the prediction motion vector candidate list. A spatial merge candidate derivation unit derives spatial merge candidates from blocks adjacent to the block to be processed and adds the spatial merge candidates to a merge candidate list. A history merge candidate derivation unit derives history merge candidates from the history prediction motion vector candidate list and adds the history merge candidates to the merge candidate list. An average merge candidate derivation unit derives an average merge candidate having a motion vector obtained by averaging the motion vectors of two merge candidates in the merge candidate list, and adds the average merge candidate to the merge candidate list. Equipped with, The image decoding device is characterized in that the history prediction motion vector candidate derivation unit and the history merge candidate derivation unit refer to the inter-prediction information included in the history prediction motion vector candidate list in reverse order.

5. An image decoding method that decodes the bit string encoded in the video using interprediction based on interprediction information in block units obtained by dividing the video into individual pictures, A coding information storage step involves adding the interpretation information used in interpretation to the historical prediction motion vector candidate list, A spatial prediction motion vector candidate derivation step involves deriving spatial prediction motion vector candidates from blocks adjacent to the block to be processed and adding the spatial prediction motion vector candidates to the prediction motion vector candidate list. A historical prediction motion vector candidate derivation step of deriving a historical prediction motion vector candidate from the historical prediction motion vector candidate list and adding the historical prediction motion vector candidate to the prediction motion vector candidate list, A spatial merge candidate derivation step involves deriving spatial merge candidates from blocks adjacent to the block to be processed and adding the spatial merge candidates to a merge candidate list. A history merge candidate derivation step involves deriving a history merge candidate from the history prediction motion vector candidate list and adding the history merge candidate to the merge candidate list as a merge candidate, The average merge candidate derivation step involves deriving an average merge candidate having a motion vector obtained by averaging the motion vectors of two merge candidates in the merge candidate list, and adding the average merge candidate to the merge candidate list. Equipped with, The image decoding method is characterized in that the history prediction motion vector candidate derivation step and the history merge candidate derivation step refer to the inter-prediction information included in the history prediction motion vector candidate list in reverse order.

6. An image decoding program that decodes the bit string encoded in a video using interprediction based on interprediction information in block units obtained by dividing the video into individual pictures, A coding information storage step involves adding the interpretation information used in interpretation to the historical prediction motion vector candidate list, A spatial prediction motion vector candidate derivation step involves deriving spatial prediction motion vector candidates from blocks adjacent to the block to be processed and adding the spatial prediction motion vector candidates to the prediction motion vector candidate list. A historical prediction motion vector candidate derivation step of deriving a historical prediction motion vector candidate from the historical prediction motion vector candidate list and adding the historical prediction motion vector candidate to the prediction motion vector candidate list, A spatial merge candidate derivation step involves deriving spatial merge candidates from blocks adjacent to the block to be processed and adding the spatial merge candidates to a merge candidate list. A history merge candidate derivation step involves deriving a history merge candidate from the history prediction motion vector candidate list and adding the history merge candidate to the merge candidate list as a merge candidate, The average merge candidate derivation step involves deriving an average merge candidate having a motion vector obtained by averaging the motion vectors of two merge candidates in the merge candidate list, and adding the average merge candidate to the merge candidate list. Equipped with, The image decoding program is characterized in that the history prediction motion vector candidate derivation step and the history merge candidate derivation step refer to the inter-prediction information included in the history prediction motion vector candidate list in reverse order.

7. A storage method for storing a bitstream generated according to the image encoding method described in claim 2 into a recording medium.

8. A transmission method for transmitting a bitstream generated according to the image encoding method described in claim 2.