Image decoding device, image decoding method, and image decoding program
Patent Information
- Application Number
- JP2024029843
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-12-13
- Filing Date
- 2024-02-29
- Publication Date
- 2025-03-05
- Estimated Expiration
- 2039-09-20
AI Technical Summary
【0008】 本発明によれば、より高効率となる新たなインター予測モードを提供するできることが できる。
Smart Images

Figure 0007639957000002 
Figure 0007639957000003 
Figure 0007639957000004
Abstract
Description
[Technical field]
[0001] The present invention relates to an image decoding technique. [Background technology]
[0002] There are image coding technologies such as HEVC (H.265). HEVC uses inter-prediction mode. Merge mode is used as the mode. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 10-276439 Summary of the Invention [Problem to be solved by the invention]
[0004] In HEVC, there are two inter prediction modes: merge mode and differential motion vector mode. However, there is room for improving coding efficiency by correcting the motion vectors in merge mode. In particular, the inventors have come to realize that.
[0005] The present invention has been made in view of the above circumstances, and its object is to Providing a new inter prediction mode with higher efficiency by correcting vectors The point is... [Means for solving the problem]
[0006] In order to solve the above problem, an image decoding device according to one aspect of the present invention is provided for a prediction target block. The motion information of the adjacent blocks and the decoded image at the same position as the prediction target block The motion information including the motion vector derived by scaling the motion vector of the block is A merge candidate list generation unit that generates a merge candidate list including the merge candidates; a merge candidate selection unit for selecting a merge candidate from the merge candidate list as a merge candidate; A merge correction flag indicating whether to decode the code string from the encoded stream and correct the merge candidates is set. a code string decoding unit for deriving a correction vector and a merge correction flag for correcting a merge candidate; When the selected merge candidate indicates that the first prediction reference picture or the selected merging candidate is to be one or both of the reference pictures of the second prediction of the candidate are long-term reference pictures; A reference picture of the first prediction of the selected merge candidate and a reference picture of the second prediction of the selected merge candidate If the block is in the opposite direction to the picture to be decoded that contains the block to be predicted, The correction vector is not scaled to the motion vector of the first prediction of the selected merge candidate. The correction vector is added as it is, and the motion vector of the second prediction of the selected merge candidate is shifted to the correction vector. Merge candidate correction that derives bi-predictive correction merge candidates by subtracting without scaling and if the merge correction flag indicates that the merge candidate is to be corrected, The number of selectable merge candidates is smaller than when the correction is not indicated. stomach.
[0007] Any combination of the above components and the expression of the present invention may be used as a method, an apparatus, a system, a recording medium, Conversions between the body, computer program, etc. are also valid aspects of the present invention. be. Effect of the Invention
[0008] According to the present invention, it is possible to provide a new inter prediction mode with higher efficiency. can. [Brief description of the drawings]
[0009] [Figure 1] FIG. 1(a) is a diagram illustrating a configuration of an image encoding device 100 according to the first embodiment, and FIG. 1(b) is a diagram illustrating a configuration of an image decoding device 200 according to the first embodiment. [Diagram 2] FIG. 13 is a diagram showing an example in which an input image is divided into blocks based on a block size. [Diagram 3] FIG. 2 is a diagram illustrating a configuration of an inter-prediction unit of the image encoding device in FIG. [Figure 4] 11 is a flowchart illustrating an operation in a merge mode according to the first embodiment. [Diagram 5] 2 is a diagram illustrating a configuration of a merge candidate list generation unit of the image encoding device in FIG. [Figure 6] FIG. 2 is a diagram illustrating blocks adjacent to a processing target block. [Figure 7] 1 is a diagram illustrating blocks in a decoded image that are located at the same position as a processing target block and in its periphery. FIG. [Figure 8] FIG. 13 is a diagram illustrating a part of the syntax of a block in a merge mode according to the first embodiment. [Figure 9] FIG. 4 is a diagram illustrating the syntax of a differential motion vector according to the first embodiment. [Figure 10] FIG. 13 is a diagram illustrating the syntax of a differential motion vector according to a modified example of the first embodiment. [Figure 11] FIG. 13 is a diagram illustrating a part of the syntax of a block in a merge mode according to another modified example of the first embodiment. [Figure 12] FIG. 13 is a diagram illustrating a part of the syntax of a block in a merge mode according to yet another modified example of the first embodiment. [Figure 13] 13 is a flowchart illustrating an operation in a merge mode according to the second embodiment. [Figure 14] FIG. 13 illustrates a portion of the syntax of a block in a merge mode according to the second embodiment. [Figure 15]FIG. 11 is a diagram illustrating the syntax of a differential motion vector according to the second embodiment. [Figure 16] FIG. 13 is a diagram illustrating the effect of the eighth modified example of the first embodiment. [Figure 17] FIG. 13 is a diagram illustrating the effect of the eighth modification of the first embodiment when picture intervals are not equal. [Figure 18] FIG. 2 is a diagram illustrating an example of a hardware configuration of a coding / decoding device according to a first embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] [First embodiment] Hereinafter, an image coding apparatus and an image coding method according to a first embodiment of the present invention will be described with reference to the drawings. and image encoding program, as well as image decoding device, image decoding method, and image decoding program The details of the RAM will be explained.
[0011] FIG. 1(a) is a diagram illustrating a configuration of an image coding device 100 according to a first embodiment. FIG. 1B is a diagram for explaining the configuration of an image decoding device 200 according to the first embodiment. do.
[0012] The image coding device 100 of this embodiment includes a block size determination unit 110, an inter prediction A frame memory unit 120, a conversion unit 130, a code string generation unit 140, a local decoding unit 150, and a frame memory The image encoding device 100 receives an input image and performs intra prediction and intra coding. Then, it performs center prediction and outputs the encoded stream. Hereafter, the terms image and picture have the same meaning. Use.
[0013] The image decoding device 200 includes a code string decoding unit 210, an inter prediction unit 220, and an inverse transform unit 230. and a frame memory 240. The encoded stream output from the decoder is input, intra prediction and inter prediction are performed, and the decoder Output the image.
[0014] The image encoding device 100 and the image decoding device 200 each include a central processing unit (CPU). The system is implemented by hardware such as an information processing unit (ISU) equipped with a memory, etc. It will be revealed.
[0015] First, the function and operation of each unit of the image encoding device 100 will be described. It is assumed that inter prediction is performed in the same manner as in HEVC, and inter prediction will be described below.
[0016] The block size determination unit 110 determines a block size for inter prediction based on an input image. Then, the determined block size, block position and input image corresponding to the block size are The block size is determined by the inter prediction unit 120. For example, the RDO (rate distortion optimization) method used in the HEVC reference software Use.
[0017] Here, the block size will be described. A part of the image to be processed is divided into blocks based on the block size determined by the block size determination unit 110. The following shows an example of a block divided into blocks. The block sizes are 4x4, 8x4, 4x8, 8×8, 16×8, 8×16, 32×32, ..., 128×64, 64×128, 12 The input image is one of the above so that each block does not overlap. It is divided by block size.
[0018] The inter prediction unit 120 performs a process based on the information input from the block size determination unit 110 and the frame The inter prediction is performed by using a reference picture input from the memory 160. The inter prediction unit 120 determines the prediction parameters based on the inter prediction parameters. Inter prediction is performed to derive the predicted value, and the block size, block position, input value, and inter The prediction parameters and the predicted values are supplied to the conversion unit 130. The method is based on the RDO (rate distortion optimization) method used in the HEVC reference software. The inter prediction parameters and the operation of the inter prediction unit 120 will be described in detail later. do.
[0019] The conversion unit 130 calculates a difference value by subtracting the predicted value from the input value, and performs an orthogonal conversion on the calculated difference value. Transformation and quantization are performed to calculate the prediction error data, and the block size and block The position, inter-prediction parameters, and prediction error data are locally decoded by the code stream generator 140. The signal is supplied to the section 150.
[0020] The code string generation unit 140 generates an SPS (Sequence Parameter Set) as necessary. Set), PPS (Picture Parameter Set) and other information The code sequence for determining the block size supplied from the conversion unit 130 is encoded. The inter prediction parameters are encoded as a code string, and the prediction error data is encoded as a code string. For details on inter prediction parameter coding, see More details will be provided later.
[0021] The local decoding unit 150 performs processes such as inverse orthogonal transform and inverse quantization on the prediction error data to obtain a difference The decoded image is generated by restoring the value, adding the difference value and the predicted value, and the decoded image and the inter prediction parameters are The meter is provided to a frame memory 160 .
[0022] The frame memory 160 stores the decoded images and the inter-prediction parameters for a plurality of images. The decoded image and the inter prediction parameters are supplied to the inter prediction unit 120 .
[0023] Next, the function and operation of each unit of the image decoding device 200 will be described. It is assumed that inter prediction is performed in the same manner as EVC, and inter prediction will be described below.
[0024] The code string decoding unit 210 extracts SPS, PPS headers, and other information from the coded stream as necessary. and other information such as block size, block position, inter prediction parameters, and The prediction error data is decoded from the encoded stream, and the block size, block position, and The inter prediction unit 220 supplies the inter prediction parameters and the prediction error data to the inter prediction unit 220.
[0025] The inter prediction unit 220 receives the information input from the code stream decoding unit 210 and the frame memory 2 Using the reference picture input from 40, inter prediction is performed to derive a predicted value. The inter-prediction unit 220 determines the block size, the block position, the inter-prediction parameters, and the prediction The error data and the predicted value are supplied to an inverse transform unit 230 .
[0026] The inverse transform unit 230 performs an inverse orthogonal transform on the prediction error data provided by the inter prediction unit 220. The difference value is calculated by performing processes such as inverse quantization and dequantization, and the difference value and the predicted value are added to generate a decoded image. The decoded image and the inter-prediction parameters are supplied to the frame memory 240, and the decoded image is Output.
[0027] The frame memory 240 stores the decoded images and the inter-prediction parameters for a plurality of images. The decoded image and the inter prediction parameters are supplied to the inter prediction unit 220 .
[0028] Note that the inter prediction performed by the inter prediction unit 120 and the inter prediction unit 220 is the same. The decoded image and the image stored in the frame memory 160 and the frame memory 240 are The center prediction parameters are also the same.
[0029] Next, the inter prediction parameters will be described. page flag, merge index, valid flag of predicted LX, motion vector of predicted LX, The reference picture index of the measured LX, the merge correction flag, and the differential motion vector of the predicted LX. LX is L0 and L1. The merge flag is marked as inter prediction mode. A flag indicating whether the markup mode or the differential motion vector mode is to be used. If the merge flag is 1, the merge mode is used, if the merge flag is 0, the differential motion vector is used. The merge index is the position of the selected merge candidate in the merge candidate list. The validity flag of the predicted LX is a flag indicating whether the predicted LX is valid or invalid. If both L0 and L1 predictions are enabled, it is bi-predictive; if L0 predictions are enabled and L1 predictions are enabled, it is bi-predictive. If L1 prediction is enabled and L0 prediction is disabled, L1 prediction is used. The motion correction flag is a flag indicating whether or not to correct the motion information of the merge candidate. If the correction flag is 1, the merge candidate is corrected. If the correction flag is 0, the merge candidate is Here, the bitstream generator 140 adds the validity flag of the prediction LX to the coded stream. In addition, the code string decoding unit 210 does not encode the valid flag of the prediction LX. The reference picture index is not decoded as a code string from the encoded stream. It is an index for identifying a decoded image in the L0 prediction. L1 prediction enable flag, L0 prediction motion vector, L1 prediction motion vector, L0 prediction combination of the predicted reference picture index and the L1 predicted reference picture index The motion information is calculated as the number of pixels.
[0030] Note that if the block is in intra-coding mode or outside the image area, L0 The prediction valid flag and the L1 prediction valid flag are both invalid.
[0031] Hereafter, the picture types are L0 unidirectional prediction, L1 unidirectional prediction and bidirectional prediction. In this example, all the prediction methods are available for a B picture, but the picture type only supports unidirectional prediction. The inter prediction parameters for P pictures are L Only L0 prediction is considered, and L1 prediction is treated as non-existent. To improve coding efficiency in a 3D decoder, the reference picture for L0 prediction is a picture that is earlier than the picture to be predicted. The reference picture for L1 prediction is a picture in the future than the picture to be predicted. This is because the reference picture for L0 prediction and the reference picture for L1 prediction are the same as the prediction target picture. This is because the coding efficiency is improved by using interpolation prediction when the L0 prediction is performed in the opposite direction from the L0 prediction. Whether the reference picture for L1 prediction and the reference picture for L2 prediction are in the opposite direction from the picture to be predicted The method is to compare the POC (Picture Order Count) of the reference picture. From now on, the reference picture for L0 prediction and the reference picture for L1 prediction will be used as the prediction target. The block will be described as being in the reverse temporal direction with respect to a picture to be predicted.
[0032] Next, the inter prediction unit 120 will be described in detail. The inter prediction unit 120 of the image encoding device 100 and the inter prediction unit 220 of the image decoding device 200 are The structure and operation are identical.
[0033] FIG. 3 is a diagram illustrating the configuration of the inter prediction unit 120. A merge mode determination unit 121, a merge candidate list generation unit 122, a merge candidate selection unit 123, A merge candidate correction determination unit 124, a merge candidate correction unit 125, and a differential motion vector mode implementation unit 1 26, and a predicted value derivation unit 127.
[0034] The inter prediction unit 120 selects a merge mode as an inter prediction mode and a differential motion vector The differential motion vector mode is switched for each block. The merged motion vector mode is assumed to be implemented in the same way as HEVC. This section explains the
[0035] The merge mode determination unit 121 determines the merge mode as the inter prediction mode for each block. If the merge flag is 1, the merge mode is used, and the merge flag is If the lag is 0, the differential motion vector mode is used.
[0036] In the inter prediction unit 120, the determination of whether to set the merge flag to 1 is made based on the HEVC The RDO (rate-distortion optimization) method used in the reference software is used. In the prediction unit 220, the code string decoding unit 210 extracts the code from the coded stream based on the syntax. Obtain the decoded merge flag. The syntax will be explained later in detail.
[0037] If the merge flag is 0, the differential motion vector mode implementation unit 126 The inter prediction parameters of the differential motion vector mode are It is supplied to 127.
[0038] If the merge flag is 1, the merge candidate list generator 122 and the merge candidate selector 12 3. The merge mode is performed by the merge candidate correction determination unit 124 and the merge candidate correction unit 125. The inter prediction parameters of the merge mode are supplied to the prediction value derivation unit 127.
[0039] The process when the merge flag is 1 will be described in detail below.
[0040] FIG. 4 is a flowchart for explaining the operation in the merge mode. Hereinafter, FIG. 3 and FIG. 4 will be used. The merge mode will be explained in detail later.
[0041] First, the merge candidate list generation unit 122 calculates the motion of blocks adjacent to the target block. A merge candidate list is generated from the block information and the motion information of the decoded image (S100). The merge candidate list thus generated is supplied to the merge candidate selection unit 123. The terms and the prediction target block are used interchangeably.
[0042] Here, the generation of the merge candidate list will be described. FIG. 5 shows the merge candidate list generation unit 1 is a diagram illustrating a configuration of the merge candidate list generation unit 122. The merge candidate list generation unit 122 generates a spatial merge candidate list. The merge candidate generation unit 201 , the temporal merge candidate generation unit 202 , and the merge candidate supplementation unit 203 .
[0043] FIG. 6 is a diagram for explaining blocks adjacent to a processing target block. The blocks adjacent to the image block are Block A, Block B, Block C, Block D, Block E, Block F, Block G, Block H, Block I ... Blocks E, F, and G are adjacent to the target block. If a lock is used, the present invention is not limited to this.
[0044] FIG. 7 illustrates blocks in the decoded image that are in the same position as the processing target block and its surroundings. In this figure, the decoded image at the same position as the processing target block and its periphery is The blocks are CO1, CO2, and CO3. This can be limited by using multiple blocks in the decoded image that are in the same position as the block and in its surroundings. There is no. After that, blocks CO1, CO2, and CO3 are the same position blocks, and the same position blocks are A decoded picture containing the same is called a co-located picture.
[0045] Hereinafter, the generation of the merge candidate list will be described in detail with reference to FIGS.
[0046] First, the spatial merge candidate generation unit 201 generates a spatial merge candidate for each block A, B, C, and D. Blocks D, E, F, and G are checked in order and the valid flag of L0 prediction is If either or both of the L1 prediction enable flags are enabled, the motion information of the block is The spatial merge candidate generator 201 sequentially adds the candidate to the merge candidate list as a merge candidate. We call such merge candidates spatial merge candidates.
[0047] Next, the temporal merge candidate generation unit 202 selects blocks C01, C02, and C03. O3 is checked sequentially and first either the L0 prediction valid flag or the L1 prediction valid flag is checked. The motion information of blocks where both are valid or both are valid is scaled and selected as merge candidates. The merge candidates generated by the temporal merge candidate generator 202 are added to the merge candidate list in sequence. We call them temporal merge candidates.
[0048] Here, the scaling of the temporal merge candidates is described. The motion vectors of temporal merge candidates are the same as those of co-located blocks. The distance vector between the co-located picture and the reference picture that the co-located block refers to is calculated as Based on this, the distance between the picture containing the prediction target block and the picture referenced by the temporal merge candidate is calculated. It is derived by scaling with distance.
[0049] Note that the pictures referenced by the temporal merge candidates are reference pictures for both L0 prediction and L1 prediction. The L0 reference picture has a channel index of 0. Whether the co-located block of prediction or the co-located block of L1 prediction is used depends on the co-location. The position derivation flag is coded (decoded) and judged. The motion vector of either the L0 prediction or the L1 prediction of the position block is used as the L0 prediction and the L1 prediction. Calculate the motion vectors of the L0 prediction and the L1 prediction by scaling the prediction. The motion vectors of the L0 prediction and the L1 prediction of the image candidate are used.
[0050] Next, if the merge candidate list contains multiple identical motion records, we use one motion record as the merge candidate list. The remaining movement information is deleted.
[0051] Next, the number of merge candidates in the merge candidate list is less than the maximum number of merge candidates. In this case, the merging candidate supplementation unit 203 selects the merging candidate list with the smallest number of merging candidates. Add supplementary merge candidates to the merge candidate list until the maximum number of merge candidates is reached. Let the number of merge candidates in the complement list be the maximum number of merge candidates. A candidate is a frame whose motion vectors for L0 prediction and L1 prediction are both (0,0) and whose L0 prediction and L1 prediction are both (0,0). The reference picture indexes of both are 0.
[0052] Here, the maximum number of merge candidates is six, but it may be one or more.
[0053] Next, the merging candidate selection unit 123 selects one merging candidate from the merging candidate list. (S101), a selected merge candidate (called a “selected merge candidate”) and a merge index The merge candidate correction determination unit 124 receives the selected merge candidate as the motion information of the block to be processed. In the inter prediction unit 120 of the image encoding device 100, the HEVC reference software The merge candidate list is included using the RDO (rate distortion optimization) method used in the Select one merge candidate from the merge candidates and determine the merge index. In the inter prediction unit 220 of the device 200, the code stream decoding unit 210 decodes the coded stream. The merge index is obtained and the merge candidate list is created based on the merge index. Select one merge candidate from the included merge candidates as the selected merge candidate.
[0054] Next, the merge candidate correction determination unit 124 determines whether the width of the processing target block is equal to or larger than a predetermined width and whether the processing target block is larger than a predetermined width. The height of the processing target block is equal to or greater than a certain height, and both the L0 prediction and the L1 prediction of the selected merge candidate are Or, at least one of them is checked to see if it is valid (S102). The width is greater than or equal to a certain value, the height of the block to be processed is greater than or equal to a certain value, and the L0 prediction of the selected merge candidate is made. If the condition that both or at least one of the L1 predictions are valid is not met (S1 02 NO), without correcting the selected merge candidate as the motion information of the processing target block, The process proceeds to step S111. Here, the merge candidate list always includes at least L0 prediction and L1 prediction. Since at least one of the merge candidates is valid, the L0 prediction and the L1 prediction of the selected merge candidate are It is obvious that both or at least one of the measures is valid. "Are both or at least one of the L0 and L1 predictions of the merge candidate valid?" omitted Then, in step S102, the width of the processing target block is equal to or larger than the predetermined width and the height of the processing target block is equal to or larger than the predetermined width. It may also be possible to check whether the height is equal to or greater than the threshold.
[0055] The width of the processing target block is equal to or greater than a predetermined width, and the height of the processing target block is equal to or greater than a predetermined height, and If both or at least one of the L0 and L1 predictions of the selected merge candidates are valid (S 102 (YES), and the merge candidate correction determination unit 124 sets the merge correction flag (S10 3) The merge correction flag is supplied to the merge candidate correction unit 125. In the inter prediction unit 120, a prediction error when performing inter prediction using a merge candidate is calculated based on a predetermined prediction error. If the error is greater than or equal to the error, the merge correction flag is set to 1 and inter prediction is performed using the selected merge candidate. If the prediction error in the case is not equal to or greater than the predetermined prediction error, the merge correction flag is set to 0. In the inter prediction unit 220 of the image decoding device 200, the code string decoding unit 210 performs The merge correction flag is obtained by decoded from the coded stream based on the above.
[0056] Next, the merge candidate correction unit 125 checks whether the merge correction flag is 1 (S10 4) If the merge correction flag is not 1 (NO in S104), the selected merge candidate is processed. The process proceeds to step S111 without correcting the motion information of the block.
[0057] If the merge correction flag is 1 (YES in S104), the L0 prediction of the selected merge candidate is valid. If the L0 prediction of the selected merge candidate is not valid (S105), If the L0 prediction of the selected merge candidate is valid (NO in S15), proceed to step S108. 05 YES), and the L0 prediction differential motion vector is determined (S106). If the merge correction flag is 1, the motion information of the selected merge candidate is corrected, and the merge correction flag If is 0, the motion information of the selected merge candidate is not corrected.
[0058] In the inter prediction unit 120 of the image encoding device 100, the difference motion vector of the L0 prediction is The motion vector is calculated by vector search. Here, the search range of the motion vector is horizontal and vertical. Both are ±16, but any multiple of 2, such as ±64, may be used. In the prediction unit 220, the code string decoding unit 210 extracts the bit stream based on the syntax. The L0 prediction differential motion vector decoded from the L1 prediction is obtained.
[0059] Next, the merge candidate correction unit 125 calculates a corrected motion vector for the L0 prediction, The predicted correction motion vector is set as the L0 predicted motion vector of the motion information of the block to be processed. (S107).
[0060] Here, the corrected motion vector of the L0 prediction (mvL0), the motion vector of the L0 prediction of the selected merge candidate, Explain the relationship between the L0 prediction differential motion vector (mvdL0) and the L0 prediction differential motion vector (mmvL0). The correction motion vector of the L0 prediction (mvL0) is the motion vector of the L0 prediction of the selected merge candidate. The L0 prediction differential motion vector (mvdL0) is added to the L1 prediction differential motion vector (mmvL0). The formula is as follows. Note that [0] is the horizontal component of the motion vector, and [1] is the 4 shows the vertical component of the torque.
[0061] mvL0[0] = mmvL0[0] + mvdL0[0] mvL0[1] = mmvL0[1] + mvdL0[1] Next, it is checked whether the L1 prediction of the selected merge candidate is valid (S108). If the L1 prediction of the page candidate is not valid (NO in S108), the process proceeds to step S111. If the L1 prediction of the selected merge candidate is valid (YES in S108), the differential motion vector of the L1 prediction is The torque is determined (S109).
[0062] In the inter prediction unit 120 of the image encoding device 100, the difference motion vector of the L1 prediction is The motion vector is calculated by vector search. Here, the search range of the motion vector is horizontal and vertical. Both are ±16, but are powers of 2 such as ±64. In the measurement unit 220, the code string decoding unit 210 decodes the encoded stream based on the syntax. The differential motion vector of the coded L1 prediction is obtained.
[0063] Next, the merging candidate correction unit 125 calculates a corrected motion vector for the L1 prediction, The predicted correction motion vector is set as the L1 predicted motion vector of the motion information of the target block. (S110).
[0064] Here, the corrected motion vector of the L1 prediction (mvL1), the motion vector of the L1 prediction of the selected merge candidate, Explain the relationship between the L1 prediction differential motion vector (mvdL1) and the L2 prediction differential motion vector (mmvL1). The corrected motion vector of the L1 prediction (mvL1) is the motion vector of the L1 prediction of the selected merge candidate. The L1 prediction differential motion vector (mvdL1) is added to the L2 prediction differential motion vector (mmvL1). The formula is as follows. Note that [0] is the horizontal component of the motion vector, and [1] is the 4 shows the vertical component of the torque.
[0065] mvL1[0] = mmvL1[0] + mvdL1[0] mvL1[1] = mmvL1[1] + mvdL1[1] Next, the prediction value derivation unit 127 performs L0 prediction, Either L1 prediction or bi-prediction is performed to derive a predicted value (S111). As described above, if the merge correction flag is 1, the motion vector of the selected merge candidate is corrected. On the other hand, if the merge correction flag is 0, the motion vector of the selected merge candidate is not corrected.
[0066] The coding of inter-prediction parameters will now be described in detail. Table 1 shows a part of the syntax of the block to be coded. The relationship between the cbWidth and cbH in Fig. 8 is the width of the block to be processed. eight is the height of the block to be processed. The specified width and the specified height are both 8. By setting a certain height, the merge candidate correction is not performed on a small block basis. This can reduce the amount of processing. Here, cu_skip_flag is the flag for whether a block is skipped. It is 1 if the device is in skip mode, and 0 if the device is not in skip mode. The syntax is the same as for merge mode. merge_idx is the name of the merge candidate. This is the merge index that selects the selected merge candidate from the list.
[0067] Merge_idx is encoded (decoded) before merge_mod_flag. After the page index is finalized, the merge_mod_flag is encoded (decoded). By determining that, merge_idx is used as the merge index for the merge mode, To improve coding efficiency while suppressing the complexity of syntax and the increase in context.
[0068] [Table 1]
[0069] FIG. 9 is a diagram showing the syntax of the differential motion vector. g(N) has the same syntax as that used in the differential motion vector mode. where N can be 0 or 1. N=0 indicates L0 prediction, and N=1 indicates L1 prediction.
[0070] The syntax of the differential motion vector includes whether the components of the differential motion vector are greater than 0. abs_mvd_greater0_flag[d] is a flag indicating the difference motion vector. abs_mvd_greater1 is a flag indicating whether the torque component is greater than 1. _flag[d], mvd_sign_fl indicates the sign (±) of the differential motion vector component ag[d], abs_m indicates the absolute value of the vector obtained by subtracting 2 from the differential motion vector component vd_minus2[d] is included, where d is either 0 or 1. d=0 is horizontal directional component, and d=1 indicates the vertical component.
[0071] In HEVC, there are two inter prediction modes: merge mode and differential motion vector mode. In merge mode, motion information can be restored with a single merge flag, resulting in very efficient coding. However, the motion information in merge mode depends on the blocks that have already been processed. Therefore, the cases where the prediction efficiency is high are limited, and there is a need to improve the utilization efficiency. Ta.
[0072] On the other hand, the differential motion vector mode provides separate syntax for L0 prediction and L1 prediction. Then, the prediction type (L0 prediction, L1 prediction, or bi-prediction) and the L0 prediction and L1 prediction, respectively For Therefore, the differential motion vector mode has better coding efficiency than the merge mode. However, the merge mode cannot derive motions between spatially adjacent blocks or between temporally adjacent blocks. The prediction efficiency is high and stable for sudden movements that have little correlation with the movements of adjacent blocks. It was a mode where
[0073] In this embodiment, the prediction type and reference picture index of the merge mode are fixed. By enabling the correction of the merge mode motion vectors as is, the coding efficiency is improved by using the differential motion vectors. This improves the utilization efficiency more than the merge mode.
[0074] In addition, by making the difference between the motion vector of the selected merge candidate and the motion vector of the selected merge candidate, The magnitude of the motion vector can be suppressed to be small, and the coding efficiency can be improved. .
[0075] Also, the syntax of the differential motion vector in merge mode is changed to the differential motion vector in differential motion vector mode. By making the syntax the same as that of the differential motion vector, the differential motion vector can be used in the merge mode. Even if it is added, the change in configuration can be kept small.
[0076] In addition, a predetermined width and a predetermined height are defined, and the predicted block width is equal to or larger than the predetermined width and the predicted block height is equal to or larger than the predetermined width. is greater than or equal to a certain value, and both or at least one of the L0 prediction and L1 prediction of the selected merge candidate is If the condition that the merge mode is effective is not satisfied, the process of correcting the motion vector of the merge mode is performed. By eliminating the processing, the amount of processing required to correct the motion vectors in the merge mode can be reduced. In addition, when it is not necessary to suppress the amount of processing for correcting the motion vector, There is no need to limit the correction of the motion vectors by the length.
[0077] Below, variations of this embodiment will be described. Unless otherwise specified, the variations are not combined with each other. It can be combined. [Variation 1] In this embodiment, the differential motion vector is used as the syntax for a block in merge mode. In this modification, the differential motion vector is encoded (or coded) as a differential unit motion vector. A differential unit motion vector is defined as a motion vector that is the minimum picture interval. In HEVC, the minimum picture interval is the length of the coded stream. The data is encoded as a code string in the data stream.
[0078] The difference unit motion vector is calculated according to the interval between the coding target picture and the reference picture in the merge mode. The POC( Picture Order Count) in POC(Cur) and L0 Pre-Merge Mode The POC of the predicted reference picture is POC(L0), and the POC of the reference picture for L1 prediction in merge mode is POC(L1). If POC is POC(L1), the motion vector is calculated as follows: umvdL 0 is the differential unit motion vector of L0 prediction, and umvdL1 is the differential unit motion vector of L1 prediction. Indicates the rule.
[0079] mvL0[0] = mmvL0[0] + umvdL0[0]*(POC(Cur )-POC(L0)) mvL0[1] = mmvL0[1] + umvdL0[1]*(POC(Cur )-POC(L0)) mvL1[0] = mmvL1[0] + umvdL1[0]*(POC(Cur )-POC(L1)) mvL1[1] = mmvL1[1] + umvdL1[1]*(POC(Cur )-POC(L1)) As described above, in this modified example, the differential unit motion vector is used as the differential motion vector. By doing so, the amount of code for the differential motion vector is reduced, thereby improving the coding efficiency. In addition, when the difference motion vector is large and the distance between the prediction target picture and the reference picture is small, In particular, the coding efficiency can be improved when the picture to be processed is large. Even when the distance between the image and the reference picture is proportional to the speed of the object moving on the screen, the prediction efficiency is improved. This can improve the coding efficiency.
[0080] In addition, there is no need to derive the temporal merge candidates by scaling them based on the inter-picture distance. In the decoding device, scaling can be performed using only multipliers, so a divider is not required, and the circuit size and processing This can reduce the amount of processing required. [Variation 2] In this embodiment, 0 can be coded (or decoded) as a component of the differential motion vector. For example, only the L0 prediction can be changed. It is assumed that 0 cannot be encoded (or decoded) as a component of .
[0081] FIG. 10 is a diagram showing the syntax of the differential motion vector in the second modification. The syntax of this function includes a flag that indicates whether the component of the differential motion vector is greater than 1. abs_mvd_greater1_flag[d], the component of the differential motion vector is 2 abs_mvd_greater2_flag[d ], abs_mvd_m indicates the absolute value of the vector obtained by subtracting 3 from the components of the differential motion vector inus3[d], mvd_sign_fl indicating the sign (±) of the differential motion vector component ag[d] is included.
[0082] As mentioned above, 0 cannot be coded (or decoded) as a component of the differential motion vector. By setting the difference motion vector component to 1 or more, the coding efficiency can be improved. This can be done. [Variation 3] In this embodiment, the components of the differential motion vector are integers, and in the second modification, they are integers other than 0. In this modification, the components of the differential motion vector excluding the ± sign are limited to powers of two.
[0083] Instead of the syntax abs_mvd_minus2[d] in this embodiment, bs_mvd_pow_plus1[d] is used. The differential motion vector mvd[d] is m From vd_sign_flag[d] and abs_mvd_pow_plus1[d], It is calculated as follows.
[0084] mvd[d]=mvd_sign_flag[d]*2^(abs_mvd_po w_plus1[d]+1) Also, instead of the syntax abs_mvd_minus3[d] in variant 2, abs_mvd_pow_plus2[d] is used. The differential motion vector mvd[d] is Below mvd_sign_flag[d] and abs_mvd_pow_plus2[d] It is calculated as follows:
[0085] mvd[d]=mvd_sign_flag[d]*2^(abs_mvd_po w_plus2[d]+2) By limiting the components of the differential motion vector to powers of 2, the processing load of the encoding device is greatly reduced. While reducing the number of frames, it is possible to improve prediction efficiency in the case of large motion vectors. [Variation 4] In this embodiment, mvd_coding(N) includes a differential motion vector. However, in this modification, mvd_coding(N) includes a motion vector magnification.
[0086] In the syntax of mvd_coding(N) in this modification, abs_mvd_gre ater0_flag[d], abs_mvd_greater1_flag[d], m vd_sign_flag[d] does not exist, instead abs_mvr_plus It shall be structured to include 2[d] and mvr_sign_flag[d].
[0087] The corrected motion vector of the LN prediction (mvLN) is the motion vector of the LN prediction of the selected merge candidate. The motion vector magnification (mvrLN) is multiplied by the motion vector magnification (mmvLN) in the following formula: It is calculated.
[0088] mvLN[d] = mmvLN[d] * mvrLN[d] By limiting the components of the differential motion vector to powers of 2, the processing load of the encoding device is greatly reduced. While reducing the number of frames, it is possible to improve prediction efficiency in the case of large motion vectors.
[0089] This modification cannot be combined with modification 1, modification 2, modification 3, and modification 6. I can't do that. [Variation 5] In the syntax of FIG. 8 of this embodiment, cu_skip_flag is 1 (skip merge_mod_flag may be present if the However, if you are in skip mode, merge_mod_flag does not exist. You may do so.
[0090] In this way, by omitting merge_mod_flag, the skip mode code This improves the coding efficiency and simplifies the skip mode determination. [Variation 6] In this embodiment, the LN prediction (N=0 or 1) of the selected merge candidate is checked to see if it is valid. However, if the LN prediction of the selected merge candidate is not valid, the differential motion vector is not valid. However, the LN prediction of the selected merge candidate is not checked to see if it is valid. The differential motion vector may be valid regardless of whether the prediction is valid or not. If the LN prediction of the selected merge candidate is invalid, the motion vector of the LN prediction of the selected merge candidate is The reference picture index of the selected merge candidate is (0,0), and the reference picture index of the LN prediction of the selected merge candidate is 0.
[0091] In this manner, in this modified example, regardless of whether the LN prediction of the selected merge candidate is valid or not, By enabling differential motion vectors, the opportunities to use bidirectional prediction are increased, and coding Efficiency can be improved. [Variation 7] In this embodiment, the L0 prediction and the L1 prediction of the selected merge candidate are individually determined to be valid or not. The decision was made to control whether to encode (or decode) the differential motion vector, but the selective merge If both L0 and L1 predictions of a candidate are valid, the differential motion vector is coded (or If both L0 and L1 predictions of the selected merge candidate are not valid, the differential motion vector is decoded. It is also possible to avoid encoding (or decoding) the vector. Step S102 is as follows:
[0092] The merge candidate correction determination unit 124 determines whether the width of the processing target block is equal to or larger than a predetermined width and whether the processing target block is The lock height is equal to or greater than a certain height, and both the L0 prediction and the L1 prediction of the selected merge candidate are valid. It is checked whether it exists (S102).
[0093] Moreover, steps S105 and S108 are unnecessary in this modified example.
[0094] FIG. 11 is a diagram showing a part of the syntax of a block in the merge mode of the seventh modification. The syntax for steps S102, S105, and S108 is different.
[0095] In this manner, in this modification, both the L0 prediction and the L1 prediction of the selected merge candidate are valid. By enabling the differential motion vector in the case of By correcting the complementary motion vector, prediction efficiency can be improved efficiently. [Variation 8] In this embodiment, the syntax of the block in the merge mode is the difference of L0 prediction. Two differential motion vectors were used: the motion vector and the differential motion vector of L1 prediction. In the example, only one differential motion vector is coded (or decoded) to obtain the corrective motion vector for the L0 prediction. A single differential motion vector is used as the correction motion vector for the L1 prediction and the vector, and the following formula is used: The motion vectors of the selected merge candidates mmvLN (N=0,1) and the differential motion vector m A motion vector mvLN (N=0, 1) of the corrected merge candidate is calculated from vd.
[0096] If the L0 prediction of the selected merge candidate is valid, the motion vector of the L0 prediction is calculated using the following formula: Calculate.
[0097] mvL0[0] = mmvL0[0] + mvd[0] mvL0[1] = mmvL0[1] + mvd[1] If the L1 prediction of the selected merge candidate is valid, the motion vector of the L1 prediction is calculated using the following formula: The L1 prediction of the selected merge candidate is calculated by adding the differential motion vector in the opposite direction to the L0 prediction. The differential motion vector may be subtracted from the measured motion vector.
[0098] mvL1[0] = mmvL1[0] + mvd[0]*-1 mvL1[1] = mmvL1[1] + mvd[1]*-1 FIG. 12 is a diagram showing a part of the syntax of a block in the merge mode of the eighth modified example. The validity of L0 prediction and the validity of L1 prediction have been deleted, and mvd_ The difference from this embodiment is that there is no coding(1). It corresponds to one differential motion vector.
[0099] In this manner, in this modification, only one differential motion vector is used for L0 prediction and L1 prediction. By defining By sharing it with 1 prediction, the coding efficiency can be improved while suppressing the decrease in prediction efficiency. can be done.
[0100] In addition, the reference picture referred to by the L0 prediction of the selected merge candidate and the reference picture referred to by the L1 prediction If the picture is in the opposite direction (not in the same direction) to the picture to be predicted, By adding the vector in the opposite direction, we can improve the coding efficiency for motion in a certain direction. It is possible.
[0101] The effects of this modification will be described in detail. FIG. 16 is a diagram for explaining the effects of modification 8. Figure 16 shows a sphere (diagonal) moving horizontally within a moving rectangular area (area surrounded by a dashed line). In this case, the movement of the sphere relative to the screen The motion of the rectangular area is the sum of the motion of the sphere moving horizontally. Picture B is the predicted motion. Picture A is the reference picture for L0 prediction, and Picture C is the reference picture for L1 prediction. Picture A and picture C are in the opposite direction from the prediction target picture. is a reference picture located at
[0102] If the sphere moves in a certain direction at a certain speed, then picture A, picture B, and picture C are the same. If they are equally spaced, the amount of movement of the sphere that cannot be obtained from the adjacent blocks is added to the L0 prediction. By subtracting this from the L1 prediction, we can accurately reproduce the motion of the sphere.
[0103] If the sphere moves in a constant direction with a non-constant speed, then we have picture A, picture B, picture C, picture D, picture E, picture F, picture G, picture H, picture I ... Although the distances between the C and C are not equal, the distances between the rectangular areas of the sphere are equal. The amount of movement of the sphere that cannot be obtained from the adjacent blocks is added to the L0 prediction and subtracted from the L1 prediction. This allows the movement of the sphere to be accurately reproduced.
[0104] Also, if the sphere moves at a constant speed in a constant direction for a certain period of time, Picture A, Picture B , and picture C are not equally spaced, but the amount of movement corresponding to the rectangular area of the sphere is equally spaced. FIG. 17 illustrates the effect of the eighth modification in the case where the picture intervals are not equal. This example will be described in detail with reference to FIG. 17. Pictures F0 and F1 in FIG. , , and F8 indicate pictures at fixed intervals. Assume that the sphere is stationary and moves at a constant speed in a constant direction from picture F5 onwards. Pictures F0 and F6 are reference pictures, and picture F5 is the picture to be predicted. In this case, pictures F0, F5, and F6 are not equally spaced, but are on the same side of the sphere. The amount of movement corresponding to the rectangular area is equal. When picture F5 is the picture to be predicted, In general, picture F4, which is close to the camera, is selected as the reference picture. The reason for selecting picture F0 as the reference picture instead of picture F4 is that picture F0 is In this case, the reference picture is a high-quality picture with less distortion than the reference picture. The image is managed using the rst-in first-out (rst-in first-out) method, but it is high quality with little distortion. There is a long-term reference picture as a mechanism for using a reference picture. Applies when either L0 prediction or L1 prediction or both are long-term reference pictures This makes it possible to improve prediction efficiency and coding efficiency. Applies when either prediction or L1 prediction or both are intra pictures. This makes it possible to improve prediction efficiency and coding efficiency.
[0105] In addition, we scale the differential motion vectors based on the inter-picture distance as temporal merge candidates. By not processing the differential motion vector, the circuit size and power consumption can be reduced. When scaling vectors, if a time merge candidate is selected as the selection merge candidate, Both scaling of the temporal merge candidates and scaling of the differential motion vectors are required. The scaling of the temporal merge candidates and the scaling of the differential motion vectors are the scaling criteria. Since the motion vectors to be scaled are different, both scalings cannot be performed together and are performed separately. It is necessary to carry out the above steps.
[0106] Furthermore, when the merge candidate list includes a temporal merge candidate as in this embodiment, The temporal merge candidates are scaled and have a differential motion vector that is smaller than the motion vector of the temporal merge candidates. If the difference vector is small, the coding efficiency can be improved without scaling the difference motion vector. In addition, when the difference motion vector is large, the difference motion vector motion can be By selecting the mode, it is possible to suppress a decrease in coding efficiency. [Variation 9] In this embodiment, the maximum number of merge candidates is the same when the merge correction flag is 0 and when it is 1. In this modification, the maximum number of merge candidates when the merge correction flag is 1 is set as the merge correction flag. The number of merge candidates is set to be less than the maximum number when the positive flag is 0. For example, the merge correction flag The maximum number of merge candidates when the merge correction flag is 1 is 2. The maximum number of merge candidates when the merge index is the maximum correction number of merge candidates. If the number of correction merge candidates is smaller than the number of correction merge candidates, the merge correction flag is encoded (decoded) and the merge candidate is If the index is equal to or greater than the maximum number of correction merge candidates, the merge correction flag is coded (decoded). Here, the maximum number of merge candidates when the merge correction flag is 0 is The maximum number of correction merge candidates may be a predetermined value or may be a value in the encoded stream. It may also be obtained by encoding (decoding) into SPS or PPS.
[0107] In this manner, in this modified example, the maximum number of merge candidates when the merge correction flag is 1 is By reducing the number of merge candidates from the maximum number when the page correction flag is 0, the selection probability is increased. Only for merging candidates with high quality, the coding device determines whether to correct the merging candidates. It is possible to reduce the processing of the merge index while suppressing the decrease in coding efficiency. If the number of merge correction candidates is equal to or greater than the maximum number of merge correction candidates, the merge correction flag is encoded (decoded). This eliminates the need for multiplexing, thereby improving coding efficiency. [Second embodiment] The configurations of the image encoding device 100 and the image decoding device 200 in the second embodiment are the same as those in the first embodiment. The image encoding device 100 and the image decoding device 200 are the same as those in the first embodiment. The operation and syntax of the merge mode differ from that of the first embodiment. The differences from the first embodiment will be described.
[0108] FIG. 13 is a flowchart illustrating the operation of the merge mode according to the second embodiment. FIG. 14 shows a part of the syntax of a block in the merge mode of the second embodiment. FIG. 15 is a diagram showing the syntax of a differential motion vector according to the second embodiment. do.
[0109] Hereinafter, differences from the first embodiment will be described with reference to FIGS. 13, 14, and 15. FIG. 13 is a diagram showing the steps S205 to S207 and the steps S209 to S209 in FIG. Step S211 is different.
[0110] If the merge correction flag is 1 (YES in S104), the L0 prediction of the selected merge candidate is invalid. If the L0 prediction of the selected merge candidate is not invalid (S205), If the L0 prediction of the selected merge candidate is invalid (NO in S2 05 YES), a corrected motion vector for L0 prediction is determined (S206).
[0111] In the inter prediction unit 120 of the image encoding device 100, the corrected motion vector for L0 prediction is The motion vector is calculated by vector search. Here, the search range of the motion vector is horizontal and vertical. In the inter prediction unit 220 of the image decoding device 200, the correction motion of the L0 prediction is The vector is obtained from the encoded stream.
[0112] Next, a reference picture index for L0 prediction is determined (S207). , the reference picture index for L0 prediction is set to 0.
[0113] Next, check whether the slice type is B and the L1 prediction of the selected merge candidate is disabled. (S208). If the slice type is not B or the L1 prediction of the selected merge candidate is invalid, If not (NO in S208), proceed to S111. If the complementary L1 prediction is invalid (YES in S208), a correction motion vector for the L1 prediction is determined. (S209).
[0114] In the inter prediction unit 120 of the image encoding device 100, the corrected motion vector for L1 prediction is The motion vector is calculated by vector search. Here, the search range of the motion vector is horizontal and vertical. In the inter prediction unit 220 of the image decoding device 200, the correction motion of the L1 prediction is The vector is obtained from the encoded stream.
[0115] Next, a reference picture index for L1 prediction is determined (S110). , the reference picture index for L1 prediction is set to 0.
[0116] As described above, in this embodiment, the slice type is a slice type that allows bi-prediction. For slice type B, the merge candidates of L0 prediction or L1 prediction are bi-predicted. By making it a bi-prediction merge candidate, the filtering effect is reduced. This is expected to improve prediction efficiency. By doing so, the search range for the motion vector can be minimized. [Variations] In this embodiment, the reference picture indexes in steps S207 and S210 In this modification, when the L0 prediction of the selected merge candidate is invalid, the reference of the L0 prediction is The reference picture index of the selected merge candidate is set as the reference picture index of L1 prediction. If L1 prediction is disabled, the reference picture index of L1 prediction is set to the reference picture index of L0 prediction. The index is Cha.
[0117] In this way, the predicted value based on the motion vector of the L0 prediction or L1 prediction of the selected merge candidate is By filtering with a small shift, it is possible to reproduce small movements, improving prediction efficiency. can be improved.
[0118] In all the embodiments described above, the encoded bitstream output by the image encoding device is The stream is specified so that it can be decoded according to the encoding method used in the embodiment. The encoded bit stream is stored on HDD, SSD, flash memory, and other storage devices. Provided by recording it on a computer-readable recording medium such as a flash memory or optical disk. Alternatively, the information may be provided from a server via a wired or wireless network. Therefore, the image decoding device corresponding to this image coding device can reproduce this specific data regardless of the providing means. The present invention is capable of decoding encoded bitstreams in the data format.
[0119] In order to exchange encoded bitstreams between an image encoding device and an image decoding device, When a wired or wireless network is used, the data format appropriate for the transmission mode of the communication path In this case, the image coding device may convert the output bit stream into The encoded bit stream is converted into encoded data in a data format suitable for the transmission mode of the communication channel. a transmitting device that converts the encoded data into a digital signal and transmits it to a network; A receiving device is provided for restoring the encoded bit stream to an image decoding device. The receiving device includes a memory for buffering the coded bit stream output by the image coding device, A packet processing unit that packetizes the encoded bit stream and transmits the packets via a network. and a transmitting unit for transmitting the coded data. a receiving unit for receiving packetized coded data and a buffer for buffering the received coded data; The memory for storing the encoded data is a memory for processing packets to generate an encoded bit stream and for displaying the image. and a packet processing unit for providing the packet to an image decoding device.
[0120] In order to exchange encoded bitstreams between an image encoding device and an image decoding device, When a wired or wireless network is used, in addition to a transmitting device and a receiving device, Even if a relay device is provided to receive the encoded data transmitted by the transmitting device and supply it to the receiving device, The relay device includes a receiving section for receiving packetized encoded data transmitted from the transmitting device. a memory for buffering the received coded data; and a transmitting unit for transmitting the packetized coded data to the network. a reception packet processing unit that processes the received data into packets to generate an encoded bit stream; A recording medium for storing the encoded bit stream and a transmission device for packetizing the encoded bit stream. The communication packet processing unit may include a communication packet processing unit.
[0121] In addition, by adding a display unit for displaying the image decoded by the image decoding device to the configuration, Also, an imaging unit may be added to the configuration, and the captured image may be input to the image encoding device. By doing so, it may also be used as an imaging device.
[0122] FIG. 18 shows an example of a hardware configuration of the encoding / decoding device of the present application. The present invention includes the configurations of an image encoding device and an image decoding device according to the embodiments of the present invention. The encoding / decoding device 9000 includes a CPU 9001, a codec IC 9002, an I / O interface interface 9003, memory 9004, optical disk drive 9005, network interface A video interface 9009 and a computer interface 9006 are connected to each other via a bus 9010. are connected by.
[0123] The image encoding unit 9007 and the image decoding unit 9008 are typically a codec IC 9002 and The image encoding process of the image encoding device according to the embodiment of the present invention is implemented as an image encoding The image decoding process is executed by the decoding unit 9007 in the image decoding device according to the embodiment of the present invention. The image encoding process is performed by the image encoding unit 9007. The I / O interface 9003 For example, a USB interface can be used to connect an external keyboard 9104 and mouse 9 105, etc. The CPU 9001 receives input via the I / O interface 9003. The encoding / decoding device 9 is controlled to execute an operation desired by the user based on the user's operation. 000. As a user's operation using the keyboard 9104, mouse 9105, etc. allows you to select whether to perform encoding or decoding functions, set the encoding quality, and There are input / output destinations for frames, and input / output destinations for images, etc.
[0124] When the user desires to play back the images recorded on the disk recording medium 9100 The optical disk drive 9005 reads the encoded video from the inserted disk recording medium 9100. The read encoded stream is then transmitted to the decoder 9010 via the bus 9010. The image decoding unit 9008 of the block IC 9002 receives the encoded image data and sends it to the image decoding unit 9008 of the block IC 9002. The image decoding process in the image decoding device according to the embodiment of the present invention is performed on the data stream. The decoded image is then displayed on an external monitor 9103 via a video interface 9009. The encoding / decoding device 9000 also includes a network interface 9006. 9101, the system is connected to an external distribution server 9106 and a mobile terminal 9107 via a network 9101. The user can change the image recorded on the disk recording medium 9100 to a distribution service. When it is desired to play back images recorded on the server 9106 or the mobile terminal 9107, The network interface 9006 receives the code from the input disk recording medium 9100. Instead of reading the encoded bitstream, the network 9101 receives the encoded stream. Also, when the user desires to play back the image recorded in the memory 9004, In this case, the embodiment of the present invention is applied to the coded stream recorded in the memory 9004. The image decoding device according to the present invention performs image decoding processing.
[0125] The user captures an image using an external camera 9102, encodes the image, and records it in memory 9004. When an operation is desired, the video interface 9009 receives an image from the camera 9102. The image data is inputted and sent to the image encoding unit 9007 of the codec IC 9002 via the bus 9010. The image encoding unit 9007 performs the following on the image input via the video interface 9009: The image encoding process is performed in the image encoding device according to the embodiment of the present invention, The encoded bit stream is then sent to the memory via bus 9010. The user changes the memory 9004 and codes the data on the disk recording medium 9100. If it is desired to record the encrypted stream, the optical disk drive 9005 may be The encoded stream is written onto the inserted disk recording medium 9100 .
[0126] A hardware configuration that has an image encoding device but does not have an image decoding device, or a hardware configuration that has an image decoding device It is also possible to realize a hardware configuration that does not include an image coding device. The hardware configuration is, for example, a codec IC 9002, an image encoding unit 9007, or This is realized by replacing the image decoding unit 9008 with the image decoding unit 9009.
[0127] The above encoding and decoding processes are carried out by a transmission device using hardware such as ASIC, It can be realized as a storage device, a receiving device, and also as a ROM (read-only memory). Firmware stored in the internal memory (internal memory) or flash memory, and the CPU and SoC This can also be achieved by computer software such as System on a chip. The firmware and software programs can be used to The information may be provided by recording it on a computer-readable recording medium or by distributing it over a wired or wireless network. It can also be provided from a server via the network, and can also be used as terrestrial or satellite digital broadcast data. It can also be provided as a broadcast.
[0128] The present invention has been described above based on the embodiments. The embodiments are merely examples, and each of the structures The fact that various modifications are possible in the combination of components and each treatment process, and that such modifications It will be understood by those skilled in the art that such modifications are also within the scope of the present invention. [Explanation of symbols]
[0129] 100 Image encoding device, 110 Block size determination unit, 120 Inter prediction 121 merge mode determination unit, 122 merge candidate list generation unit, 123 merge 124 merge candidate correction determination unit; 125 merge candidate correction unit; 26 differential motion vector mode implementation unit, 127 predicted value derivation unit, 130 conversion unit, 140 code string generation unit, 150 local decoding unit, 160 frame memory, 200 Image decoding device, 201 spatial merge candidate generation unit, 202 temporal merge candidate generation unit, 203 merge candidate supplementation unit, 210 code string decoding unit, 220 inter prediction unit, 2 30 inverse transform units, 240 frame memories.
Claims
1. a merge candidate list generation unit that generates a merge candidate list including, as merge candidates, motion information including motion vectors derived by scaling motion information of a plurality of blocks adjacent to a block to be predicted and a motion vector of a block in an encoded image that is at the same position as the block to be predicted; and a merge candidate supplementation unit that adds a supplementary merge candidate having a motion vector of (0, 0) to the merge candidate list; a merging candidate selection unit for selecting a merging candidate from the merging candidate list as a selected merging candidate; a merge candidate correction unit that, when one or both of a first prediction reference picture of the selected merge candidate and a second prediction reference picture of the selected merge candidate are long-term reference pictures and the first prediction reference picture of the selected merge candidate and the second prediction reference picture of the selected merge candidate are in opposite directions with respect to a prediction target picture including the prediction target block, adds a correction vector to a motion vector of the first prediction of the selected merge candidate without scaling it and subtracts the correction vector from a motion vector of the second prediction of the selected merge candidate without scaling it, thereby deriving a bi-predictive corrected merge candidate; a code string encoding unit that encodes the correction vector into a coded stream; An image encoding device comprising:
2. a merging candidate list generating step of generating a merging candidate list including, as merging candidates, motion information including motion vectors derived by scaling motion information of a plurality of blocks adjacent to the block to be predicted and a motion vector of a block in an encoded image that is at the same position as the block to be predicted; a merge candidate supplementation step of adding a supplementary merge candidate having a motion vector (0, 0) to the merge candidate list; selecting a merge candidate from the merge candidate list as a selected merge candidate; a merge candidate correction step of adding a correction vector to a motion vector of the first prediction of the selected merge candidate without scaling and subtracting the correction vector from a motion vector of the second prediction of the selected merge candidate without scaling, when either one or both of a reference picture of a first prediction of the selected merge candidate and a reference picture of a second prediction of the selected merge candidate are long-term reference pictures, and the reference picture of the first prediction of the selected merge candidate and the reference picture of the second prediction of the selected merge candidate are in opposite directions with respect to a prediction target picture including the prediction target block; a code string encoding step of encoding the correction vector into a code stream; 13. An image encoding method comprising the steps of:
3. a merging candidate list generating step of generating a merging candidate list including, as merging candidates, motion information including motion vectors derived by scaling motion information of a plurality of blocks adjacent to the block to be predicted and a motion vector of a block in an encoded image that is at the same position as the block to be predicted; a merge candidate supplementation step of adding a supplementary merge candidate having a motion vector (0, 0) to the merge candidate list; selecting a merge candidate from the merge candidate list as a selected merge candidate; a merge candidate correction step of adding a correction vector to a motion vector of the first prediction of the selected merge candidate without scaling and subtracting the correction vector from a motion vector of the second prediction of the selected merge candidate without scaling, when either one or both of a reference picture of a first prediction of the selected merge candidate and a reference picture of a second prediction of the selected merge candidate are long-term reference pictures, and the reference picture of the first prediction of the selected merge candidate and the reference picture of the second prediction of the selected merge candidate are in opposite directions with respect to a prediction target picture including the prediction target block; a code string encoding step of encoding the correction vector into a code stream; An image encoding program characterized by causing a computer to execute the above steps.
4. a merge candidate list generating unit configured to generate a merge candidate list including, as merge candidates, motion information including motion vectors derived by scaling motion information of a plurality of blocks adjacent to a block to be predicted and a motion vector of a block in a decoded image that is located at the same position as the block to be predicted; a merge candidate supplementation unit that adds a supplementary merge candidate having a motion vector of (0, 0) to the merge candidate list; a merging candidate selection unit for selecting a merging candidate from the merging candidate list as a selected merging candidate; a code string decoding unit that decodes a code string from the encoded stream and derives a correction vector; a merge candidate correction unit that, when one or both of a first prediction reference picture of the selected merge candidate and a second prediction reference picture of the selected merge candidate are long-term reference pictures and the first prediction reference picture of the selected merge candidate and the second prediction reference picture of the selected merge candidate are in opposite directions with respect to a prediction target picture including the prediction target block, adds the correction vector to a motion vector of the first prediction of the selected merge candidate without scaling it and subtracts the correction vector from a motion vector of the second prediction of the selected merge candidate without scaling it, thereby deriving a bi-predictive corrected merge candidate; An image decoding device comprising:
5. a merging candidate list generating step of generating a merging candidate list including, as merging candidates, motion information including motion vectors derived by scaling motion information of a plurality of blocks adjacent to the prediction target block and a motion vector of a block in a decoded image that is at the same position as the prediction target block; a merge candidate supplementation unit that adds a supplementary merge candidate having a motion vector of (0, 0) to the merge candidate list; selecting a merge candidate from the merge candidate list as a selected merge candidate; a code string decoding step of decoding a code string from the encoded stream to derive a correction vector; a merge candidate correction step of adding the correction vector to a motion vector of the first prediction of the selected merge candidate without scaling and subtracting the correction vector from a motion vector of the second prediction of the selected merge candidate without scaling, when either one or both of the reference picture of the first prediction of the selected merge candidate and the reference picture of the second prediction of the selected merge candidate are long-term reference pictures, and the reference picture of the first prediction of the selected merge candidate and the reference picture of the second prediction of the selected merge candidate are in opposite directions with respect to a prediction target picture including the prediction target block; 13. An image decoding method comprising the steps of:
6. a merging candidate list generating step of generating a merging candidate list including, as merging candidates, motion information including motion vectors derived by scaling motion information of a plurality of blocks adjacent to the prediction target block and a motion vector of a block in a decoded image that is at the same position as the prediction target block; a merge candidate supplementation unit that adds a supplementary merge candidate having a motion vector of (0, 0) to the merge candidate list; selecting a merge candidate from the merge candidate list as a selected merge candidate; a code string decoding step of decoding a code string from the encoded stream to derive a correction vector; a merge candidate correction step of adding the correction vector to a motion vector of the first prediction of the selected merge candidate without scaling and subtracting the correction vector from a motion vector of the second prediction of the selected merge candidate without scaling, when either one or both of the reference picture of the first prediction of the selected merge candidate and the reference picture of the second prediction of the selected merge candidate are long-term reference pictures, and the reference picture of the first prediction of the selected merge candidate and the reference picture of the second prediction of the selected merge candidate are in opposite directions with respect to a prediction target picture including the prediction target block; An image decoding program characterized by causing a computer to execute the above steps.
7. A method for storing a bit stream generated according to the image coding method according to claim 2 on a recording medium.
8. A transmission method for transmitting a bit stream generated according to the image coding method according to claim 2.
Citation Information
Patent Citations
Moving image encoding and decoding device using motion compensation inter-frame prediction system capable of area integration
JP1998276439A
Image encoder, image encoding method and image encoding program
JP2013016934A
Image decoder, image decoding method and image decoding program
JP2013016935A
Image encoder, image encoding method and image encoding program
JP2013034186A
Video decoder, video decoding method, video decoding program, receiver, reception method and reception program
JP2013236367A