Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program
By introducing a new intraprediction mode selection mechanism in HEVC, the problem of intraprediction efficiency in HEVC is solved by using two intraprediction mode candidate lists and corresponding flag bits, and more efficient encoding and decoding of high-resolution images is achieved.
Patent Information
- Application Number
- JP2024083990
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-09-28
- Filing Date
- 2024-05-23
- Publication Date
- 2025-04-22
- Estimated Expiration
- 2039-09-13
AI Technical Summary
The maximum block size of intraprediction in HEVC limits the intraprediction efficiency of high-resolution images such as 4K and 8K images.
By introducing a new intraprediction mode selection mechanism in the image encoding device and the decoding device, the appropriate intraprediction mode is dynamically selected to improve encoding efficiency using two intraprediction mode candidate lists (Prediction Mode Candidate List 0 and 1) and corresponding flag bits.
The encoding efficiency of intraprediction is improved, especially in high-resolution images, by appropriately selecting the intraprediction mode to reduce the number of coded bits and improve the decoding performance.
Smart Images

Figure 0007666709000001 
Figure 0007666709000002 
Figure 0007666709000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a technique for encoding and decoding images using intra prediction. [Background technology]
[0002] There are image coding technologies such as HEVC (H.265). HEVC uses inter-prediction coding. In addition to inter-picture predictive coding, intra-picture predictive coding is also available. It is being utilized. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2016-213853 A Summary of the Invention [Problem to be solved by the invention]
[0004] In HEVC, the maximum block size for square blocks divided into tetrahedrons is 3. Intra prediction is performed on a 2x32 pixel basis. For 60 degree images, intra prediction is provided which is highly efficient with larger block sizes.
[0005] The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a method for improving intra-prediction. The present invention provides a technique for improving the coding efficiency. [Means for solving the problem]
[0006] In order to solve the above problem, the image encoding device according to one aspect of the present embodiment is The intra prediction mode of the block to be predicted is calculated based on the intra prediction mode of the block adjacent to the block. a first flag indicating whether to determine a prediction mode of the prediction target block; a second flag indicating whether the intra prediction mode is a predetermined non-angular intra prediction mode; and the second flag indicates that the predetermined non-angular intra-prediction mode is not selected. a coding unit for coding a candidate specific index when the first flag is true; In this case, the prediction is performed based on an intra prediction mode of a block adjacent to the prediction target block. determining an intra prediction mode for the current block, and if the second flag is true, a predetermined non-angular intra prediction mode as the intra prediction mode of the block to be predicted; If the second flag is false, then based on the candidate specific index, From the intra prediction mode candidate list generated so as not to include the intra prediction mode The prediction mode selection unit selects an intra prediction mode for the block to be predicted.
[0007] Another aspect of the present invention is an image decoding apparatus, the apparatus comprising: The intra-prediction mode of the block to be predicted is determined based on the intra-prediction mode of the block. a first flag indicating whether to determine whether to perform intra-prediction of the block to be predicted; a second flag indicating whether the mode is a predetermined non-angular intra prediction mode; If the second flag indicates that the prediction mode is not the predetermined non-angular intra prediction mode, a candidate identification indicator a decoding unit for decoding the prediction target block when the first flag is true; The intra prediction mode of the block to be predicted is calculated based on the intra prediction mode of the block adjacent to the block. and if the second flag is true, determining a non-angular intra-prediction mode. the prediction mode as the intra prediction mode of the block to be predicted, and is false, the predetermined intra-prediction mode is selected based on the candidate specific index. From the intra-prediction mode candidate list generated so as not to include and a prediction mode selection unit for selecting an intra-prediction mode.
[0008] Any combination of the above components and the expression of the present invention may be used as a method, an apparatus, a system, a computer, or the like. Conversions between computer programs and the like are also valid aspects of the present invention. Effect of the Invention
[0009] According to the present invention, it is possible to improve the coding efficiency in intra prediction. [Brief description of the drawings]
[0010] [Figure 1] FIG. 1 is a diagram illustrating an intra-prediction mode of HEVC. [Diagram 2] FIG. 1 is a diagram illustrating syntax related to intra prediction modes in HEVC. [Diagram 3] FIG. 1 is a diagram illustrating an image encoding device and an image decoding device according to a first embodiment of the present invention. [Figure 4] 1 is a diagram showing an example in which a partial area of an image input to an image encoding device is divided into blocks based on a block size determined by a block size determination unit. FIG. [Diagram 5] FIG. 2 is a diagram illustrating a configuration of an intra-prediction selection unit according to the first embodiment. [Figure 6] 11 is a flowchart illustrating an operation of an intra prediction selection unit according to the first embodiment. [Figure 7] FIG. 13 is a diagram for explaining derivation of a predicted value. [Figure 8] FIG. 2 is a diagram illustrating adjacent blocks of a prediction target block. [Figure 9]13 is a flowchart illustrating an operation of a generation process of a prediction mode candidate list 0. [Figure 10] 13 is a table showing the priority order of predetermined prediction modes used in the process of generating a prediction mode candidate list 0. [Figure 11] 13 is a flowchart illustrating an operation of a process for generating a prediction mode candidate list 1. [Figure 12] 1 is a table showing the priority order of predetermined prediction modes used in the process of generating a prediction mode candidate list 1. [Figure 13] FIG. 2 is a diagram illustrating syntax related to intra prediction modes in the first embodiment. [Figure 14] FIG. 13 is a diagram illustrating syntax related to intra prediction modes according to Modification 4 of the first embodiment. [Figure 15] FIG. 11 is a diagram illustrating a configuration of an intra-prediction selection unit according to a second embodiment. [Figure 16] 13 is a flowchart illustrating the operation of an intra-prediction selection unit according to the second embodiment. [Figure 17] FIG. 11 is a diagram illustrating syntax related to intra prediction modes in the second embodiment. [Figure 18] 13 is a table showing the relationship between intra_luma_merge_idx and adjacent blocks. [Figure 19] FIG. 13 is a diagram illustrating syntax related to an intra prediction mode according to Modification 2 of the second embodiment. [Figure 20] FIG. 13 is a diagram illustrating another syntax related to intra prediction modes in Modification 2 of Embodiment 2. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] First, the intra prediction of HEVC will be described. FIG. 1 is a diagram illustrating an intra-prediction mode of HEVC. 35 modes are defined as intra prediction modes, from prediction mode 0 to prediction mode 34. Prediction mode 0 is INTRA_PLANAR, and the prediction is performed based on the neighboring pixels of the block to be predicted. The prediction value is calculated by interpolating the four reference pixels generated by filtering the pixel. Mode 1 is INTRA_DC, where the horizontal width of the predicted block is twice the width of the predicted block. The prediction value is calculated by averaging the adjacent pixels in the direction and the adjacent pixels in the vertical direction that are twice the height of the prediction block. Prediction modes 2 to 34 calculate the prediction target block according to each angle. The prediction value is calculated from the reference pixels generated by filtering the neighboring pixels of the block. Here, For filtering of neighboring pixels of the prediction target block, the size of the prediction target block is It is effective when the size of the prediction target block is large, but it is difficult to affect it when the size of the prediction target block is small. A 1:2:1 3-tap filter is used for filtering.
[0012] FIG. 2 is a diagram for explaining syntax related to intra prediction modes of HEVC. rev_intra_luma_pred_flag is derived for each prediction target block. A flag indicating whether or not to use an intra-prediction mode candidate. If luma_pred_flag is 1, the intra prediction mode candidates are used, and pr If ev_intra_luma_pred_flag is 0, the intra prediction mode candidate If prev_intra_luma_pred_flag is set to 1, the complement is not used. , mpm_idx (mpm index) indicates the number of an intra-prediction mode candidate, The intra prediction mode candidate indicated by m_idx is the intra prediction mode of the block to be predicted. The intra prediction mode candidates are determined based on the intra prediction modes of the adjacent blocks for each prediction target block. Three intra prediction modes are generated from all 35 intra prediction modes based on the mpm_idx can have values 0, 1, or 2. If 0, the intra prediction mode is selected from rem_intra_luma_pred_mode. rem_intra_luma_pred_mode is the intra mode. Indicates an intra prediction mode other than the prediction mode candidates. ma_pred_mode is the intra prediction mode candidate from all 35 intra prediction modes. rem_intra_l Indicates one of the 32 intra prediction modes excluding the complement. The intra prediction mode indicated by uma_pred_mode is the intra prediction mode of the block to be predicted. As mentioned above, all 35 intra prediction modes in HEVC are Encoded in both mpm_idx and rem_intra_luma_pred_mode ( prev_intra_luma_pred_flag, m pm_idx and rem_intra_luma_pred_mode are fixed length 2 The data is then binary arithmetically coded by first binarization, then truncated Rice binarization, and finally fixed-length binarization. rem_intra_luma_pred_mode is a 5-bit fixed-length binary calculation. The smaller the value of Truncated Rice binarization, the higher the coding efficiency. do.
[0013] As mentioned above, HEVC prediction modes 2 to 34 are based on one angle. The predicted value of intra prediction is calculated. This is because the amount of coding increases when the The amount of coding is reduced by predicting the edge direction and taking the difference. When the block size is large, the edge direction is predicted from one angle within the block. Therefore, the prediction efficiency may not be improved sufficiently. The adjacent pixels are filtered.
[0014] The maximum size of a prediction block in HEVC is 32 pixels x 32 pixels (hereafter In contrast, 4K and 8K images are larger. It is known that prediction efficiency can be improved by using a larger prediction target block size. In order to improve prediction efficiency, it is important to increase the size of the block to be predicted.
[0015] Therefore, in the following embodiment, the maximum size of the prediction target block is increased. In the following, among the multiple intra prediction modes, the prediction The intra prediction mode in which the neighboring pixels used for estimation do not have angle dependency is called non-angular intra prediction. The intra prediction mode in which the neighboring pixels used for prediction have angle dependency is called the angle-dependent intra prediction mode. The angular intra prediction modes include the horizontal intra prediction mode and vertical intra prediction modes.
[0016] In HEVC, prediction mode 0 and prediction mode 1 are non-angular intra prediction modes, and prediction Mode 2 to prediction mode 34 are angular intra prediction modes. Prediction modes 2 through 17 are horizontal intra prediction modes, and prediction modes 18 through Prediction mode 34 is a vertical intra-prediction mode.
[0017] (Embodiment 1) Hereinafter, an image coding apparatus, an image coding method, and Image encoding program, image decoding device, image decoding method, and image decoding program The details will be explained.
[0018] FIG. 3 illustrates an image coding device 100 and an image decoding device 200 according to the first embodiment of the present invention. The image coding device 100 according to the first embodiment includes a block size determination unit 11. 0, an intra prediction selection unit 120, a conversion unit 130, and an encoding unit 140. An input image is input to the device 100, and the device outputs an encoded stream.
[0019] The image decoding device 200 includes a decoding unit 210, a block size acquisition unit 220, and an intra-prediction unit 2 The image decoding device 200 includes a first conversion unit 30 and an inverse conversion unit 240. Then, the decoded image is output.
[0020] The intra prediction unit 230 of the first embodiment uses the same intra prediction mode as HEVC. The image encoding device 100 and the image decoding device 200 are each implemented by a central processing unit (CPU). A data processing unit (DSM), frame memory, hard disk, etc. This is realized by hardware such as a
[0021] First, the function and operation of each unit of the image coding device 100 will be described. An input image is input to 100.
[0022] The block size determination unit 110 determines a block size to be intra-predictively coded based on an input image. The size is determined, and the determined block size and the input pixel (input value ) to the intra prediction selection unit 120. We won't go into detail here, but as used in the HEVC reference software, RDO (Rayback Oriented Optimization) is a method to select the optimal block size by comparing the evaluation values of multiple block sizes. It is sufficient to perform pre-determination based on the evaluation value or on the distortion optimization.
[0023] Here, the block size will be described. FIG. 4 shows a block size determination example of a part of an image input to the image coding device 100. 13 shows an example in which the image is divided into blocks based on the block size determined by unit 110. Block sizes are 4x4, 8x4, 4x8, 8x8, 16x8, 8x16, 32x32, , 128×64, 64×128, 128×128. The input image is Locks are split using the above block size so that they do not overlap.
[0024] The intra prediction selection unit 120 selects the intra prediction based on the block size, the input pixels, and the encoded image. Then, one intra-prediction mode is selected from the multiple intra-prediction modes, and the selected intra-prediction mode is A prediction value is derived from the encoded pixels based on the tra prediction mode, and a block size, a selection The encoding unit 130 supplies the intra prediction mode, the input value, and the predicted value to the conversion unit 130. The processed pixels are shared among the various components of the image coding device 100 and are not shown here. The intra-prediction selection unit 120 will be described in detail later.
[0025] 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 intra prediction are The prediction mode and the calculated prediction error data are supplied to the encoding unit 140.
[0026] The encoding unit 140 encodes the header and other information as necessary, and transmits the The code sequence for the supplied block size is encoded, and the intra prediction mode is set as the code sequence. The prediction error data is coded and output as a coded stream. The encoding process in the prediction mode will be described in detail later.
[0027] The image coding device 100 repeats the above process until all areas of the input image are coded. vinegar.
[0028] Here, the intra prediction selection unit 120 will be described in detail. FIG. 5 is a diagram showing a configuration of the intra-prediction selection unit 120 according to the first embodiment. The prediction mode selection unit 120 includes a mode number determination unit 121, a prediction mode candidate generation unit 122, and a prediction mode selection unit. The prediction unit 122 includes a prediction weighting unit 123, a prediction value calculation unit 124, and a prediction value weighting unit 125.
[0029] FIG. 6 is a flowchart illustrating the operation of the intra-prediction selection unit 120 according to the first embodiment. Hereinafter, the intra prediction selection unit 120 will be described in detail with reference to Figs. 5 and 6. The mode number determination unit 121 determines whether the prediction block width is equal to or larger than a predetermined threshold width and the prediction block height is equal to or larger than a predetermined In this step, a check is made to see if the predetermined threshold width and the predetermined threshold height are equal to or greater than the threshold height (S100). For example, the predetermined threshold width is 64 and the predetermined threshold height is 32. The width and the predetermined threshold height may be different values. Then, use the SPS(Sequence_parameter_set ) and stored.
[0030] Next, the mode number determination unit 121 determines whether the prediction block width is equal to or larger than a predetermined threshold width and whether the prediction block If the height is equal to or greater than the predetermined threshold height (YES in S100), the number of prediction modes is set to 2 (S10 1) If the predicted block width is equal to or larger than a predetermined threshold width and the predicted block height is equal to or larger than a predetermined threshold height, If so (NO in S100), the number of prediction modes is set to 1 (S102).
[0031] Next, if the number of prediction modes is 1, the intra-prediction selection unit 120 sets M to 0 and If the number of measurement modes is 2, M is set to 0 and 1, and steps S103 to S107 are repeated. In this case, in order to reduce the number of steps, when the number of prediction modes is 1, M is processed as 0. However, in order to simplify the circuit configuration, even if the number of prediction modes is 1, M is set to 0 and 1. Then, steps S103 to S107 may be repeated.
[0032] The prediction mode candidate generating unit 122 selects adjacent coded blocks existing around the prediction target block. A prediction mode candidate list M is generated from the block (S104). The prediction mode candidate list generating unit 124 supplies the list M to the prediction mode selecting unit 123. More on this later.
[0033] The prediction mode selection unit 123 calculates the evaluation values of the prediction modes 0 to 34. Then, based on the calculated evaluation value of each prediction mode, a prediction mode is selected from prediction mode 0 to prediction mode 34. One selected prediction mode M is selected from the prediction modes (S105), and the selected selected prediction mode M is used for predicting a predicted value. The selected prediction mode M ranges from prediction mode 0 to prediction mode 34. One of the prediction modes is selected by RDO determination.
[0034] The prediction value calculation unit 124 calculates a prediction value based on the selected prediction mode M input from the prediction mode selection unit 123. Based on the prediction, a prediction value M of the block to be predicted is calculated (S106), and the calculated prediction value M is weighted. The prediction is then fed to a prediction unit 125 where the prediction is derived from neighbouring pixels.
[0035] FIG. 7 is a diagram for explaining the derivation of a predicted value. The prediction target block in FIG. 7 is 32×32. The pixels in the prediction block are from P(0,0) to P(31,31), and the adjacent The pixels used are RH-1 to RH63 and RV0 to RV63. If the pixel size is not sufficient, it will be filled with substitute pixels as defined in HEVC. The number of prediction modes is 2, the selected prediction mode 0 is prediction mode 10, and the selected prediction mode 1 is prediction mode 3. An example where the number is 4 is shown in Figure 1.
[0036] First, the prediction value of the selected prediction mode 0 when the selected prediction mode 0 is prediction mode 10 is derived as follows: P(0,0), P(1,0), . . ., P(31,0) are the predicted values of RV0. , P(0,1), ···, P(31,1) are the predicted values of RV1, and P(0,31), ··· ·, P(31,31) uses RV31 as the predicted value. Next, the selected prediction mode 1 is the prediction mode The derivation of the predicted value of the selected prediction mode 1 in the case of 34 is explained. P(0,0) predicts RH1. P(1,0) and P(0,1) are the predicted values of RH2, and P(31,31) is the predicted value of RH The predicted value is 63. Like HEVC, the neighboring pixels of the prediction target block are filtered. In this embodiment, the reference pixels are not generated by the pixel shifter, but the adjacent pixels are used as they are. In this case, no filtering is required. The calculation of the measurement value is assumed to be the same as that of HEVC.
[0037] Following S106, it is determined whether the selected prediction mode M is not a non-angular intra-prediction mode. If the selected prediction mode M is not a non-angular intra prediction mode (S110), If the selected prediction mode M is a non-angular intra-prediction mode, the process proceeds to S107. (NO in S110), proceed to S108. Here, the non-angular intra prediction mode is INT Let RA_PLANAR and INTRA_DC. Thus, INTRA_PLA Unlike NAR and INTRA_DC, which use adjacent pixels at a specific angle, In the intra prediction mode using adjacent pixels in the opposite direction, the number of prediction modes is not allowed to be two. By setting the number of prediction modes to 1, the increase in the amount of processing can be suppressed. Prediction modes belonging to the intra prediction mode and prediction modes belonging to the angular intra prediction mode are combined. There is no matching.
[0038] Following S107, the prediction value weighting unit 125 determines whether the number of prediction modes is 1 or the selected If the prediction mode 0 is a non-angular intra prediction mode, the prediction value supplied from the prediction value calculation unit 124 The predicted value weighting unit 125 outputs the predicted value as it is. If so, the first predicted value of the selected prediction mode 0 supplied from the predicted value calculation unit 124 and the selected prediction mode The second predicted values in the observation mode 1 are averaged and output as a third predicted value (S108).
[0039] Next, the function and operation of each unit of the image decoding device 200 will be described. Decodes headers and other information from the encoded stream as needed, and retrieves information about block sizes The code sequence of the intra prediction mode, the code sequence of the intra prediction mode, and the prediction error data are extracted from the encoded stream. The code sequence relating to the decoded block size, the code sequence of the intra prediction mode, and the prediction The measurement error data is supplied to the block size acquisition unit 220. The decoding is performed based on the syntax related to the intra prediction mode described later. .
[0040] The block size acquisition unit 220 acquires the block size information provided by the decoding unit 210. The block size is obtained from the code string, and the block size, the code string of the intra prediction mode, and The prediction unit 230 supplies the prediction error data to the intra prediction unit 230.
[0041] The intra prediction unit 230 selects an intra prediction mode from the code sequence of the intra prediction mode. and deriving a prediction value from the decoded pixels based on the selected intra-prediction mode; The inverse transform unit 240 receives the decoded data, the block size, and the prediction error data. These pixels are shared by each unit in the image decoding device 200 and are not shown here.
[0042] Here, the calculation of the predicted value in the intra prediction unit 230 is performed by the intra prediction selection unit 120. The calculation of the predicted value is the same as that in the image coding device 100. The reconstructed image output by the intra prediction unit 230 and the intra prediction unit 240 are the same. Since the intra prediction selection unit 120 can have the same configuration, in this embodiment, The prediction unit 230 and the intra-prediction selection unit 120 will be described as having the same configuration.
[0043] 1 is a flow chart illustrating the operation of the intra prediction unit 230 and the operation of the intra prediction selection unit 120. The difference with the intra prediction selection unit 120 is S105, The intra prediction unit 230 performs S105D below instead of S105.
[0044] The prediction mode selection unit 123 selects one selected prediction mode based on the code string of the intra prediction mode. The prediction mode M is selected (S105D) and the selected prediction mode M is supplied to the prediction value calculation unit 124. The code string of the intra prediction mode will be described later.
[0045] The inverse transform unit 240 performs an inverse orthogonal transform on the prediction error data supplied from the intra prediction unit 230. 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 calculate the reconstructed pixel. and outputs the reconstructed pixels.
[0046] The image decoding device 200 continues to decode the above-mentioned code sequence until all the code sequences of the input coded stream are decoded. The process is repeated.
[0047] Here, the process of generating the prediction mode candidate list will be described in detail. The already-encoded adjacent blocks existing around a block will now be described. FIG. 8 is a diagram for explaining adjacent blocks of a prediction target block. In FIG. Block X is the block to be predicted, and blocks A to E are the neighboring blocks. So, the adjacent blocks are from block A to block E, but from block A to block D. Furthermore, the block to the upper left (above block A) and the block to the lower left (block C) of the prediction target block may be You can also add blocks such as the one below.
[0048] FIG. 9 is a flowchart illustrating the operation of the generation process of the prediction mode candidate list 0. A process for generating the prediction mode candidate list 0 will be described with reference to FIG. Assume that prediction mode candidate list 0 is empty and the number of candidates included in prediction mode candidate list 0 is 0. Prediction mode candidate list 0 is abbreviated as candidate list 0.
[0049] Block X is sorted in the order of block A, block B, block C, block D, and block E. 210, repeat steps S201, S202, and S203 (S200 and S204). .
[0050] It is checked whether block X uses intra prediction (S210). If intra prediction is used (YES in S210), proceed to S201. If intra prediction is not being used (NO in S210), the process proceeds to S204.
[0051] Following S210, if the same selected prediction mode 0 as the block X does not exist in the candidate list 0, If not (YES in S201), add the selected prediction mode 0 of block X to the candidate list 0 (S 202). Then, it is determined whether the number of prediction modes added to the candidate list 0 has reached a predetermined number. If the number of prediction modes added to the candidate list 0 reaches a predetermined number (S203), If the number of prediction modes added to the candidate list 0 is 1, the process ends. If the predetermined number has not been reached (NO in S203), the process proceeds to S204. Here, the predetermined number is set to 3. If the same selected prediction mode 0 as the block X exists in the candidate list 0 (NO in S201), ), proceed to S204.
[0052] Next, if the number of prediction modes added to the candidate list 0 is less than a predetermined number (Y in S205), ES), based on the priority of a given prediction mode, the same prediction mode is duplicated in candidate list 0. To avoid this, prediction mode candidates are added to candidate list 0 in ascending order of priority (S20 6) The process ends. FIG. 10 shows a table showing the priority order of the predetermined prediction modes. If the number of prediction modes added to the candidate list 0 is not less than the predetermined number (NO in S205), End processing.
[0053] FIG. 11 is a flowchart illustrating the operation of the generation process of the prediction mode candidate list 1. A process for generating the prediction mode candidate list 1 will be described with reference to FIG. The prediction mode candidate list 1 is empty, and the number of candidates included in the prediction mode candidate list 1 is 0. The prediction mode candidate list is abbreviated to candidate list.
[0054] Block X is then ordered as block A, block B, block C, block D, and block E. Repeat steps S310, S301, S302, S303, S304, and S305. (S300 and S306).
[0055] It is checked whether block X uses angular intra prediction mode (S310). If block X uses the angular intra prediction mode (YES in S310), If block X does not use angular intra prediction mode (NO in S310), Proceed to S306.
[0056] For the selected prediction mode N of block X, select prediction mode 1 and select prediction mode 0 are used in this order. Steps S302, S303, and S304 are repeated (S301 and S305).
[0057] If the same selected prediction mode N as the block X does not exist in the candidate list 1 (YES in S302), Then, the prediction mode of block X is added to the candidate list 1 (S303). It is checked whether the number of prediction modes added to the candidate list 1 reaches a predetermined number (S304). If the number of prediction modes added to the first stage has reached a predetermined number (YES in S304), the process If the number of prediction modes added to the candidate list 1 does not reach a predetermined number (S If the answer is NO in S304, proceed to S305. Here, the predetermined number is 3. If a selected prediction mode N that is the same as X exists (NO in S302), the process proceeds to S305.
[0058] Next, if the number of prediction modes added to the candidate list 1 is less than a predetermined number (Y in S307), ES), based on the priority of a given prediction mode, the same prediction mode is duplicated in candidate list 1. To avoid this, prediction mode candidates are added to the candidate list 1 in ascending order of priority (S30 8) The process ends. FIG. 12 shows a table indicating the priority order of the predetermined prediction modes. The table in FIG. 12 differs from the table in FIG. 10 in that it does not include non-angular intra-prediction modes (prediction mode 0 and prediction mode In addition, the priority order is vertical intra prediction mode and horizontal intra prediction mode. The number of prediction modes added to the candidate list is set to If the number is not less than the predetermined number (NO in S307), the process ends.
[0059] Here, the effects obtained by the first embodiment will be described. If the size is large, there is a high possibility that the predicted block contains multiple edges. In this way, when the prediction target block contains multiple edges, If a prediction target block is predicted using only the linear prediction mode, there is a high possibility that the prediction efficiency will decrease.
[0060] Therefore, as mentioned above, when the size of the prediction target block is large, When there are edges in two directions in the prediction target block, This makes it possible to improve prediction efficiency.
[0061] Next, details of intra prediction mode coding (intra prediction mode code sequence) explain. FIG. 13 is a diagram illustrating syntax related to an intra prediction mode according to the first embodiment. Figure 13 shows the syntax of the prediction block, where pbWidth is the width of the prediction block, pbHeight indicates the height of the predicted block. pbWThread indicates the given threshold width. HThread indicates a predetermined threshold height. Decoding is performed based on the syntax in FIG.
[0062] prev_intra_luma_pred_flag, mpm_idx, and rem _intra_luma_pred_mode is the syntax for selected prediction mode 0 prev_intra_luma_pred_flag is a prediction mode candidate list. This is a flag indicating whether to select the selected prediction mode 0 from the prev_intra 0. If _luma_pred_flag is 1, the selected prediction mode is selected from prediction mode candidate list 0. If mode 0 is selected and prev_intra_luma_pred_flag is 0, , the selection prediction mode 0 is selected from the intra prediction modes not included in the prediction mode candidate list 0. mpm_idx is a selection selected from the candidates included in prediction mode candidate list 0. rem_intra_luma_pred_ is an index that indicates the selected prediction mode 0. mode is a selected prediction mode selected from candidates not included in prediction mode candidate list 0 The index indicates 0.
[0063] 2nd_prev_intra_luma_pred_flag, 2nd_mpm_i dx and 2nd_rem_intra_luma_pred_mode are the selected prediction modes. This is the syntax for 2nd_prev_intra_luma_pred _flag is a flag indicating whether to select the selected prediction mode 1 from the prediction mode candidate list 1. If 2nd_prev_intra_luma_pred_flag is 1, For example, the selected prediction mode 1 is selected from the prediction mode candidate list 1, and the 2nd_prev_in If tra_luma_pred_flag is 0, the prediction mode candidate list 1 includes Selected prediction mode 1 is selected from the intra prediction modes that are not available. 2nd_mpm_idx is An indicator showing a selected prediction mode 1 selected from the candidates included in the prediction mode candidate list 1. 2nd_rem_intra_luma_pred_mode is the prediction mode. An index indicating a selected prediction mode 1 selected from candidates not included in the mode candidate list 1 It is cus.
[0064] prev_intra_luma_pred_flag, rem_intra_lum a_pred_mode, 2nd_prev_intra_luma_pred_fla g and 2nd_rem_intra_luma_pred_mode are fixed length (FL) It is binarized, and mpm_idx and 2nd_mpm_idx are truncated rice (TR ) is binarized.
[0065] (First Modification of First Embodiment) The following describes Modification 1 of the first embodiment. In calculating the predicted value of prediction mode 34), the prediction target block is selected according to each angle. Instead of calculating the prediction value from the neighboring pixels of the block, the prediction value is calculated by filtering the neighboring pixels of the prediction target block. Alternatively, a predicted value may be calculated from reference pixels generated by filtering.
[0066] In addition, when the number of prediction modes is 1, the prediction mode is generated by filtering the neighboring pixels of the prediction target block. The prediction value is calculated from the reference pixels generated by the prediction mode. If the number of prediction modes is 2, the prediction value is calculated from the neighboring pixels of the prediction target block. It is also possible to calculate a prediction value from the pixel. It is possible to equalize the amount of processing when the number of prediction modes is 1 and the amount of processing when the number of prediction modes is 2.
[0067] (Modification 2 of the First Embodiment) The following describes Modification 2 of the First Embodiment. The prediction mode candidate list 1 is generated as shown in Figure 11, which is different from the prediction mode candidate list 0. Selected prediction mode 1 from prediction mode candidate list 1, but selected prediction mode 1 from prediction mode candidate list 0 In this way, the process of generating the prediction mode candidate list 1 can be omitted. It can be reduced.
[0068] Also, the predetermined number of candidates in the prediction mode candidate list 0 can be made greater than 3. For example, the predetermined number of candidates in the prediction mode candidate list 0 may be set to 5. In this case, the selected prediction mode This increases the probability that code 1 is coded as 2nd_mpm_idx, improving coding efficiency. If the predetermined number is greater than 3, the priority of the predetermined prediction mode is also set to the predetermined number. A total of four or more modes should be prepared. In this case, the order of priority is vertical intra prediction mode and horizontal intra prediction mode. Horizontal intra prediction modes are set alternately.
[0069] (Third Modification of First Embodiment) The following describes Modification 3 of the First Embodiment. In the first embodiment, the selected prediction mode 1 One of prediction modes 0 to 34 is selected for the selected prediction mode. In this case, the 2nd_pre prediction mode 1 in FIG. v_intra_luma_pred_flag and 2nd_rem_intra_lum a_pred_mode is no longer necessary, only 2nd_mpm_idx is needed. By doing so, the coding efficiency of selected prediction mode 1 can be improved.
[0070] (Fourth Modification of the First Embodiment) The following describes the fourth modification of the first embodiment. In the fourth modification, the prediction mode 1 is generated as shown in FIG. A candidate list 1 is generated based on the selected prediction mode 0.
[0071] Here, the modes on both sides of the selected prediction mode 0 are used as prediction modes as shown in the following (Equation 1) and (Equation 2). This adds the intermediate prediction mode between two adjacent prediction modes to the candidate list. It becomes possible to generate modes. Prediction mode candidate list 1[0]=(selected prediction mode 0-1)%35 (Equation 1) Prediction mode candidate list 1[1]=(selected prediction mode 0+1)%35 (equation 2) "%" is the modulus operator, and "35" is the number of intra-prediction modes. The remainder of dividing the selected prediction mode 0-1) by 35 is added to the prediction mode candidate list 1[0]. Similarly, the remainder when (selected prediction mode 0 + 1) is divided by 35 is It is added to [1], the remainder being in the range 0 to 34. Note that the selected prediction mode 0 does not take a non-angular intra prediction mode. 0 does not take prediction mode 0 or prediction mode 1. Therefore, the selected prediction mode 0 In the case of prediction mode 2, the prediction mode candidate list 1[0] is prediction mode 1, but Mode 1 is a non-angular intra-prediction mode and is therefore invalid. is prediction mode 34, prediction mode candidate list 1[1] is prediction mode 0, Prediction mode 0 is invalid because it is a non-angular intra prediction mode.
[0072] Also, the syntax for intra prediction modes is different. FIG. 14 is a diagram for explaining syntax related to the intra prediction mode of the fourth modification example. If 2nd_intra_luma_pred_0_flag is 1, the selected prediction mode 1, select prediction mode candidate list 1[0], 2nd_intra_luma_pr If ed_0_flag is 0, the selected prediction mode 1 is selected from the prediction mode candidate list 1[1 In this way, the coding efficiency of the selected prediction mode 1 can be improved. If the selected prediction mode 0 is prediction mode 2 or prediction mode 34, the intra-frame The prediction mode is uniquely determined to be 0. Therefore, There is no need to encode or decode d_0_flag. This improves coding and processing efficiency. The rate can be further improved.
[0073] (Fifth Modification of the First Embodiment) The fifth modification of the first embodiment will be described below. 25, if the number of prediction modes is 2, the predicted value of the selected prediction mode 0 and the predicted value of the selected prediction mode 1 are In the fifth modification, the predicted value of the selected prediction mode 0 and the selected prediction mode The predicted value is calculated by taking a weighted average of the predicted values of mode 1 according to the distance.
[0074] The distance between the prediction target pixel and the adjacent pixel N0 of the selected prediction mode 0 is d0, and the prediction target pixel and the selected If the distance between the adjacent pixel N1 in prediction mode 1 is d1, the weighted average predicted value PP is calculated as (Equation 3) ) is calculated as follows. PP=(N0*d1+N1*d0) / (d0+d1) (Equation 3)
[0075] (Sixth Modification of the First Embodiment) The sixth modification of the first embodiment will be described below. In the first embodiment, the number of prediction modes is The choice of 1 or 2 is made when the width of the prediction target block is equal to or larger than a predetermined threshold width and the prediction The height of the target block is determined based on whether it is equal to or greater than a certain threshold. The prediction mode number flag indicating whether the number of prediction modes is 1 or 2 is coded (decoded) and specified. In this case, the prediction efficiency is improved because the flags can be controlled precisely.
[0076] (Embodiment 2) The second embodiment will be described below. The second embodiment differs from the first embodiment in the configuration of the intra-prediction selection unit. They work differently.
[0077] FIG. 15 is a diagram showing a configuration of the intra-prediction selection unit 120 according to the second embodiment of the present invention. The intra-prediction selection unit 120 includes a prediction mode candidate generation unit 122, a prediction mode selection unit 123, and a prediction The prediction value calculator 124 and the prediction value weighting unit 125 are included.
[0078] FIG. 16 is a flowchart illustrating the operation of the intra-prediction selection unit 120. The intra prediction selection unit 120 will be described in detail with reference to Figs. 15 and 16. The mode candidate generation unit 122 repeats S501 to S503 for the number of non-angular intra prediction modes K. Then, the evaluation value of the non-angular intra prediction mode K is calculated (S502). Calculates the evaluation value of INTRA_PLANAR, and if K is 1, calculates the evaluation value of INTRA_DC.
[0079] Next, the prediction mode candidate generating unit 122 performs a process of generating the prediction mode candidate list M from S505. The prediction mode candidate generation unit 122 repeats S508. A prediction mode candidate list M is generated from the encoded adjacent blocks (S506). The prediction mode candidate list M is supplied to the prediction mode selection unit 123. M is generated to include the horizontal intra prediction mode if M is 0, and If the prediction mode candidate list M is a vertical intra-prediction mode, the prediction mode candidate list M is generated so as to include the vertical intra-prediction mode. Non-angular intra prediction modes are never included.
[0080] In the case of prediction mode candidate list 0, the prediction mode candidate generating unit 122 Prediction mode 2 to prediction mode 17, which are the horizontal intra prediction modes included in stage 0 The prediction value and evaluation value of each of the prediction modes are calculated, and the prediction model is calculated based on the evaluation value of each prediction mode. In the step S100, one of the prediction modes 2 to 17 is selected as the selection prediction mode 0.
[0081] In the case of prediction mode candidate list 1, the prediction mode candidate generating unit 122 Prediction mode 18 to prediction mode 3, which are vertical intra prediction modes included in ST1 Calculate the prediction value and evaluation value for each of the four prediction modes, and make a prediction based on the evaluation value of each prediction mode. One selected prediction mode 1 is selected from prediction modes 18 to 34 (S507 ) As mentioned above, M=0 indicates a horizontal intra prediction mode, and M=1 indicates a horizontal intra prediction mode. For example, M indicates the vertical intra prediction mode. That is, M indicates the direction of the intra prediction mode. vinegar.
[0082] Next, the prediction mode candidate generation unit 122 calculates the predicted value of the selected prediction mode 0 and the predicted value of the selected prediction mode 1. The predicted values are weighted-averaged to calculate an evaluation value for the prediction mode number 2 (S510). The mode selection unit 123 selects prediction mode 0, prediction mode 1, and the number of prediction modes based on the evaluation value of 2. Based on this, prediction mode 0, prediction mode 1, and one intra prediction from among the two prediction modes are selected. Next, the prediction value weighting unit 125 selects the selected intra-frame mode (S511). A predicted value is output based on the prediction mode (S512).
[0083] In addition, the second embodiment differs from the first embodiment in that the syntax regarding the intra prediction mode is different. different.
[0084] FIG. 17 is a diagram illustrating syntax related to an intra prediction mode according to the second embodiment. The coding and decoding of intra prediction modes are performed according to the syntax shown in FIG. This is based on:
[0085] intra_luma_merge_flag is the number of prediction modes for the prediction target block. The number of prediction modes and the intra prediction mode of the adjacent block are used as the intra prediction mode. This is a merge flag that indicates whether
[0086] intra_luma_merge_idx is the number of prediction modes and the intra Number of prediction modes to be used as intra prediction modes and adjacent blocks having intra prediction modes Shows.
[0087] Figure 18 is a table showing the relationship between intra_luma_merge_idx and adjacent blocks. For example, if intra_luma_merge_idx is 0 and adjacent block A If the number of prediction modes is 1 and the selected prediction mode 0 is prediction mode 3, the prediction target block The number of prediction modes is 1, and the selected prediction mode 0 is prediction mode 3. In another example, ra_luma_merge_idx is 2, the number of prediction modes of adjacent block C is 2, and the selected If selected prediction mode 0 is prediction mode 3 and selected prediction mode 1 is prediction mode 20, the prediction The number of prediction modes for the target block is 2, the selected prediction mode is 0, and the selected prediction mode is 3. Mode 1 is prediction mode 20.
[0088] intra_luma_non_angular_pred_flag is the non-angular intra A flag indicating whether the prediction mode is a non-angular intra prediction mode. The flag indicating that this is a non-angular intra prediction mode (intra_luma_n on_angular_pred_flag is 1) if non_angular_idx is encoded (decoded), and the intra prediction mode indicated by non_angular_idx is selected. The non_angular_idx is the non-angular intra prediction mode. If non_angular_idx is 0, it indicates the prediction mode of the INTRA_P If it is set to LANAR, if it is set to 1, it indicates INTRA_DC. The flag indicating whether the mode is a non-angular intra prediction mode (intra_luma If _non_angular_pred_flag is 0, prev_intra_ luma_pred_h_flag, mpm_idx_h, rem_intra_lum The indexes such as a_pred_mode_h are encoded (decoded) to obtain non-angle intra An intra prediction mode other than the prediction mode is selected as the selected prediction mode.
[0089] intra_luma_pred_idc indicates the number of prediction modes and the direction of intra prediction If intra_luma_pred_idc is 0, the number of prediction modes is 1 and the horizontal direction is indicates that the intra prediction mode is 1, and intra_luma_pred_idc is 1. If the prediction mode number is 1, it indicates the vertical intra prediction mode, and intra_lu If ma_pred_idc is 2, it indicates that the number of prediction modes is two.
[0090] prev_intra_luma_pred_h_flag, mpm_idx_h, and and rem_intra_luma_pred_mode_h are the horizontal intra prediction modes. prev_intra_luma_pred_v_f lag, mpm_idx_v, and rem_intra_luma_pred_mode _v is the syntax for the vertical intra prediction mode. ntra_luma_pred_mode_h and rem_intra_luma_pre d_mode_v never includes non-angular intra prediction modes.
[0091] As in the second embodiment, the intra prediction mode of the adjacent block of the prediction target block is set to the By using the merge flag, the number of prediction modes can be reduced to 2 or the prediction mode can be reduced to 1. It is possible to improve the coding efficiency of prediction modes that are not present in the candidate list.
[0092] In addition, the intra prediction mode is divided into prediction mode 0, which is a non-angular intra prediction mode, and prediction mode The horizontal intra prediction modes are prediction modes 2 to 17, and the vertical intra prediction modes are prediction modes 1 to 17. The intra prediction modes are classified into prediction modes 18 to 34. Syntax elements for non-angular intra prediction modes, horizontal Splitting the syntax elements into one for directional prediction and one for vertical prediction In order to improve the coding efficiency when selecting a prediction mode that does not exist in the prediction mode candidate list, It is possible to do so.
[0093] In other words, intra_luma_non_angular_pred_flag is set to m_intra_luma_pred_mode_h and rem_intra_luma_ By encoding (decoding) before pred_mode_v, rem_intra_lu ma_pred_mode_h and rem_intra_luma_pred_mode_ In addition to the intra prediction mode candidates included in the prediction mode candidate list, There is no need to include the prediction mode. It can be specified by d_mode_h or rem_intra_luma_pred_mode_v. This increases the number of available intra prediction modes, improving coding efficiency. The intra prediction mode to be increased is, for example, a horizontal intra prediction mode. If we use the 10-mode prediction, we can get a new 11-mode prediction between 9 and 10, or between 10 and 11. If the prediction mode is a vertical intra prediction mode, the prediction mode can be set to 25. A new angle intra-prediction mode is added between prediction mode 26 and between prediction mode 26 and prediction mode 27. A code may be provided.
[0094] In general, non-angular intra prediction modes have a higher selection probability than angular intra prediction modes. Therefore, a separate syntax, intr a_luma_non_angular_pred_flag can be changed to mpm_idx_h or m By encoding (decoding) before pm_idx_v, prediction mode candidate list 0 and prediction mode Therefore, it is not necessary to include non-angle intra prediction modes in the selection candidate list 1. If the prediction mode is a non-angular intra prediction mode, the prediction mode candidate list 0 and the prediction mode This makes it possible to reduce the processing cost for generating the node candidate list 1.
[0095] In addition, we can increase the number of non-angular intra prediction modes beyond two, or Merge for further classification of prediction mode types and intra prediction mode angles. Classification of flags and syntax is effective in improving coding efficiency. luma_merge_idx, intra_luma_merge_idx or intr a_luma_non_angular_pred_flag, non_angular_ idx is also used in the syntax of FIG. 2 of the conventional example and in the syntax of FIG. 13 and FIG. 14 of the first embodiment. It can also be applied before _idx.
[0096] (First modification of the second embodiment) A first modification of the second embodiment will be described below. In the second embodiment, prediction mode candidates List 0 is the horizontal intra prediction mode, and prediction mode candidate list 1 is the vertical intra prediction mode. The prediction mode candidate list and the intra prediction mode are used as the syntax for the intra prediction mode. The classification of the materials is consistent with, but not limited to, the above.
[0097] The prediction mode candidate list is a non-angle-indicating prediction mode candidate list like the prediction mode candidate list in the first embodiment. Intra prediction mode, horizontal intra prediction mode, and vertical intra prediction mode are all supported. It may include.
[0098] (Modification 2 of the second embodiment) The prediction mode candidate list is divided into horizontal and vertical intra prediction modes. However, the case where the non-angular intra prediction mode is included will be described. The prediction mode candidate list does not include the prediction mode. FIG. 1 is a diagram illustrating syntax related to intra prediction modes. The coding of intra prediction mode and the decoding of intra prediction mode are based on the syntax in FIG. This is carried out.
[0099] If prev_intra_luma_pred_flag is 1, non-angle intra A selected prediction mode is selected from the prediction mode or prediction mode candidate list. When the flag indicating whether the prediction mode is a non-angular intra prediction mode is set, In this case, the non-angular intra prediction mode indicated by non_angular_idx is selected. A flag indicating whether the mode is a non-angle intra prediction mode is set to non-angle intra prediction mode. To indicate that it is not an intra prediction mode, the mpm index (mpm_idx) is The prediction mode candidate list is encoded (decoded) and the input is indicated by mpm_idx. The candidate intra prediction mode is selected as the selected prediction mode. If a_pred_flag is 0, the prediction mode is not a non-angular intra prediction mode. rem_intra_luma_pre from intra prediction modes not included in the candidate list The intra prediction mode indicated by d_mode is selected as the selected prediction mode.
[0100] FIG. 20 illustrates another syntax related to the intra prediction mode according to the second modification of the second embodiment. FIG. 1 is a diagram for explaining intra-prediction mode coding and intra-prediction The prediction mode is decoded based on the syntax in FIG.
[0101] If intra_luma_non_angular_pred_flag is 1, The non-angular intra prediction mode indicated by non_angular_idx is the selected prediction mode. It is selected as intra_luma_non_angular_pred_fla If g is 0 and prev_intra_luma_pred_flag is 1, the prediction The intra-prediction mode candidate indicated by mpm_idx included in the mode candidate list is selected. The measurement mode is selected as intra_luma_non_angular_pred. If _flag is 0 and prev_intra_luma_pred_flag is 0 is an intra prediction mode that is not a non-angular intra prediction mode and is not included in the prediction mode candidate list. The intra prediction mode is indicated by rem_intra_luma_pred_mode. The prediction mode is selected as the selected prediction mode.
[0102] In the second modification of the second embodiment, rem_intra_luma_pred_mode is Intra prediction mode candidates from all 35 intra prediction modes and non-angular intra prediction modes It is only necessary to indicate the 30 intra prediction modes excluding the 30 modes, and a new intra prediction mode can be added. By adding new intra prediction modes, the coding efficiency can be improved. For example, between prediction mode 9 and prediction mode 10, or between prediction mode 10 and prediction mode 11. between prediction mode 25 and prediction mode 26, or between prediction mode 26 and prediction mode 27 A new angular intra prediction mode may be provided. Also, in FIG. 20, a non-angular intra prediction mode is provided. The codes are intra_luma_non_angular_pred_flag and non_ Selection of non-angular intra prediction modes, since encoding (decoding) is possible with angular_idx The processing and coding efficiency is improved when the probability is relatively higher than other intra prediction modes. do.
[0103] (Third Modification of the Second Embodiment) Next, the prediction mode candidate list is expanded to include non-angular intra prediction modes INTRA_DC, HORIZONTAL_DC, The intra prediction modes for the vertical and horizontal directions are However, the case where INTRA_PLANAR is included in the prediction mode candidate list will be described. In the second embodiment, a flag indicating whether or not the prediction mode is a non-angular intra prediction mode is used. Encode the flag(intra_luma_non_angular_pred_flag)( In the third modification of the second embodiment, it is possible to indicate whether the prediction mode is a non-angular intra prediction mode. The IN prediction mode with the highest selection probability among the intra prediction modes is set to the flag. Encoding (decoding) is limited to the flag indicating whether it is TRA_PLANAR or not. If the measurement mode is INTRA_PLANAR, non_angular_idx is This improves the coding efficiency of INTRA_PLANAR. The flag indicating whether or not the planar type is NTRA_PLANAR is INTRA_PLANAR. In the case where the RGB value indicates that the RGB value is 0, INTRA_PLANAR is selected as the selected prediction mode. So, the flag that indicates whether it is INTRA_PLANAR or not is INTRA_PLANAR If it is not, mpm_idx is encoded (decoded) and An intra prediction mode other than NAR is selected as the selected prediction mode. The flag indicating whether it is TRA_PLANAR or not is not INTRA_PLANAR. If you want to indicate The indexes are encoded (decoded) and the intra prediction other than INTRA_PLANAR is performed. The prediction mode is selected as the selected prediction mode.
[0104] In the third modification of the second embodiment, rem_intra_luma_pred_mode is Intra prediction mode candidates from all 35 intra prediction modes and INTRA_PLANA It is only necessary to indicate the 31 intra prediction modes excluding R, and a new intra prediction mode can be By adding new intra prediction modes, the coding efficiency can be improved. For example, between prediction mode 9 and prediction mode 10, or between prediction mode 10 and prediction mode 11. between prediction mode 25 and prediction mode 26, or between prediction mode 26 and prediction mode 27 A new angle intra prediction mode may be provided. R is one flag of intra_luma_non_angular_pred_flag Since the prediction can be coded by only one prediction, the selection probability of INTRA_PLANAR is smaller than that of other intra prediction models. In addition, in Fig. 19, the coding efficiency and processing efficiency can be optimized when the bit rate is relatively higher than the bit rate. INTRA_PLANAR is prev_intra_luma_pred_flag and i ntra_luma_non_angular_pred_flag Therefore, the probability of selecting INTRA_PLANAR is higher than other intra prediction modes. When it is relatively high, coding efficiency and processing efficiency are improved.
[0105] The coded stream output by the image coding apparatus according to the embodiment described above is The specific data format is stored so that it can be decoded depending on the encoding method used. and an image decoding device corresponding to the image coding device has the specific data format. The encoded stream can be decoded.
[0106] In order to exchange the encoded stream between the image encoding device and the image decoding device, a wired or When a digital or wireless network is used, the encoded stream is converted to a format suitable for the transmission form of the communication channel. In that case, the coding sequence output by the image coding device may be converted to a different data format and transmitted. The stream is converted into coded data in a format suitable for the transmission mode of the communication path and transmitted over the network. and an image transmitting device that receives encoded data from a network and transmits the encoded stream. and an image receiving device which restores the image to the image decoding device.
[0107] The image transmitting device includes a memory for buffering the coded stream output by the image coding device. a packet processing unit for packetizing the encoded stream into encoded data; and a transmitting unit that transmits the encoded data via a network. A receiving unit that receives packetized coded data via a network; a packet processing unit that processes the encoded data into packets to generate an encoded stream; and a memory for buffering the encoded stream, the encoded stream in the buffer being provided to the image decoding device. will be provided.
[0108] In addition, by adding a display unit for displaying the image decoded by the image decoding device to the configuration, In this case, the display unit may display the decoded image decoded by the image decoding device. The image signal is displayed on the screen.
[0109] In addition, an imaging unit is added to the configuration, and the captured image is input to the image encoding device. In this case, the imaging unit converts the captured image signal into a block size The result is input to the determination unit 110.
[0110] The above coding and decoding processes are carried out by hardware-based transmission, storage, and reception devices. It can be realized not only by using ROM (read only memory) or flash memory, but also by using the The firmware stored in the flash memory, etc., and the software of the computer, etc. The firmware program and software program can also be used The information may be provided by recording it on a computer-readable recording medium, or may be provided via wired or wireless communication. It can also be provided from a server via the network, or via terrestrial or satellite digital broadcasting. It is also possible to provide it as data broadcasting.
[0111] 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 the present invention also includes the above-mentioned embodiments. However, the embodiments and modifications may be combined in any manner.
[0112] The embodiment may be specified by the following items.
[0113] [Item 1] A first intra prediction mode is selected from the intra prediction modes of blocks adjacent to the prediction target block. a prediction mode candidate generating unit for generating a second intra-prediction mode candidate list and a second intra-prediction mode candidate list (122) and the first intra-prediction mode candidate list and the second intra-prediction mode candidate list and a prediction mode for selecting a first intra prediction mode and a second intra prediction mode from the A code selection unit (123); The first intra-prediction mode is used to predict a block to be predicted based on the first intra-prediction mode. a first predicted value is calculated from the pixels of the second intra-prediction mode, and the predicted value is calculated based on the second intra-prediction mode. A predicted value calculation unit (12) for calculating a second predicted value from encoded pixels adjacent to the image block. 4) and a predicted value weighting unit ( 125) and An image encoding device (100) comprising: [Item 2] The predicted value weighting unit (125) calculates a simple average or 2. The image encoding method according to claim 1, wherein the third predicted value is calculated by performing a weighted average. Equipment (100). [Item 3] If the number of intra prediction modes is 2, the prediction mode candidate generation unit (122) 2 intra-prediction mode candidate list is generated, and if the number of intra-prediction modes is 1, A second intra-prediction mode candidate list is not generated; If the number of intra prediction modes is two, the prediction mode selection unit (123) select an intra prediction mode, and if the number of intra prediction modes is 1, Do not select a prediction mode, If the number of intra prediction modes is two, the prediction value calculation unit (124) calculates a second prediction value If the number of intra prediction modes is 1, the second predicted value is not calculated; If the number of intra prediction modes is two, the prediction value weighting unit (125) A third predicted value is calculated based on the predicted value and the second predicted value. If the number of intra prediction modes is 1, If the first predicted value is a predicted value, the first predicted value is used as it is. An image encoding device (100). [Item 4] The width of the prediction target block is equal to or larger than a predetermined threshold width and the height of the prediction target block is equal to or larger than a predetermined threshold width. If the threshold value is not less than the threshold value, the number of intra prediction modes is set to 2, and the width of the prediction target block is set to a predetermined value. If the width is equal to or larger than a predetermined threshold and the height of the prediction target block is not equal to or larger than a predetermined threshold, the prediction target block is The present invention further comprises a mode number determination unit (121) that sets the number of prediction modes to 1. 4. The image encoding device (100) according to claim 3. [Item 5] The mode number determination unit (121) determines whether the first intra prediction mode is a non-angular intra prediction mode. 5. The image processing method according to claim 4, wherein the number of intra prediction modes is set to 1 when the image processing mode is the prediction mode. Image encoding device (100). [Item 6] When the number of intra prediction modes is two, the information of the second intra prediction mode is a code string. Any one of items 3 to 5, further comprising an encoding unit (140) for encoding the The image encoding device (100) according to any one of claims 1 to 5. [Item 7] A plurality of intra predictions using encoded pixels adjacent to the block to be predicted. Intra prediction modes are classified into non-angular intra prediction modes and angular intra prediction modes. A syntax element of the non-angular intra prediction mode and a syntax element of the angular intra prediction mode The present invention further comprises an encoding unit (140) for dividing the input data into syntax elements and generating a code string. The image encoding device (100) according to any one of items 1 to 5. [Item 8] The first intra prediction mode and the second intra prediction mode of a block adjacent to the prediction target block The intra prediction mode of the first intra prediction mode of the prediction target block and the An encoding unit that obtains the second intra-prediction mode and encodes it into one syntax element. 5. The image code according to any one of claims 1 to 4, further comprising (140). Encoding device (100). [Item 9] A first intra prediction mode is selected from the intra prediction modes of blocks adjacent to the prediction target block. a prediction mode candidate step for generating a first intra-prediction mode candidate list and a second intra-prediction mode candidate list; P and the first intra-prediction mode candidate list and the second intra-prediction mode candidate list and a prediction mode for selecting a first intra prediction mode and a second intra prediction mode from the a step of selecting a node; The first intra-prediction mode is used to predict a block to be predicted based on the first intra-prediction mode. a first predicted value is calculated from the pixels of the second intra-prediction mode, and the predicted value is calculated based on the second intra-prediction mode. a prediction value calculation step for calculating a second prediction value from encoded pixels adjacent to the image block; and, A prediction value weighting step for calculating a third prediction value based on the first prediction value and the second prediction value. Top and 13. An image encoding method comprising the steps of: [Item 10] A first intra prediction mode is selected from the intra prediction modes of blocks adjacent to the prediction target block. a prediction mode candidate step for generating a first intra-prediction mode candidate list and a second intra-prediction mode candidate list; P and the first intra-prediction mode candidate list and the second intra-prediction mode candidate list and a prediction mode for selecting a first intra prediction mode and a second intra prediction mode from the a step of selecting a node; The first intra-prediction mode is used to predict a block to be predicted based on the first intra-prediction mode. a first predicted value is calculated from the pixels of the second intra-prediction mode, and the predicted value is calculated based on the second intra-prediction mode. a prediction value calculation step for calculating a second prediction value from encoded pixels adjacent to the image block; and, A prediction value weighting step for calculating a third prediction value based on the first prediction value and the second prediction value. Top and An image encoding program characterized by causing a computer to execute the above steps. [Item 11] Intra prediction is performed using encoded pixels adjacent to a block to be predicted. An image encoding device (100) having a plurality of measurement modes defined, The plurality of intra prediction modes are divided into non-angular intra prediction modes and angular intra prediction modes. and classifying the non-angular intra prediction mode syntax element and the angular intra prediction mode syntax element into The encoding unit (140) divides the mode into syntax elements and generates a code string. An image encoding device (100) comprising: [Item 12] Intra prediction is performed using encoded pixels adjacent to a block to be predicted. An image coding method in which a plurality of measurement modes are defined, The plurality of intra prediction modes are divided into non-angular intra prediction modes and angular intra prediction modes. and classifying the non-angular intra prediction mode syntax element and the angular intra prediction mode syntax element into The present invention is characterized in that it has an encoding step of dividing the code into syntax elements of the mode and generating a code string. An image coding method characterized by the above. [Item 13] Intra prediction is performed using encoded pixels adjacent to a block to be predicted. An image encoding program having a plurality of measurement modes defined, The plurality of intra prediction modes are divided into non-angular intra prediction modes and angular intra prediction modes. and classifying the non-angular intra prediction mode syntax element and the angular intra prediction mode syntax element into The encoding step of dividing the data into syntax elements of the mode and generating a code string is performed by a computer. 2. An image encoding program comprising: [Item 14] Intra prediction is performed using encoded pixels adjacent to a block to be predicted. An image encoding device (100) having a plurality of measurement modes defined, A first intra prediction mode and a second intra prediction mode of a block adjacent to the prediction target block The prediction mode is the first intra prediction mode and the second intra prediction mode of the prediction target block. and an encoding unit (140) that acquires the data as a syntax element and encodes it into one syntax element. An image encoding device (100) comprising: [Item 15] Intra prediction is performed using encoded pixels adjacent to the block to be predicted. An image coding method in which a plurality of measurement modes are defined, A first intra prediction mode and a second intra prediction mode of a block adjacent to the prediction target block The prediction mode is the first intra prediction mode and the second intra prediction mode of the prediction target block. The method includes a coding step of obtaining the code as a syntax element and coding the code into one syntax element. An image coding method characterized by the above. [Item 16] Intra prediction is performed using encoded pixels adjacent to the block to be predicted. An image encoding program having a plurality of measurement modes defined, A first intra prediction mode and a second intra prediction mode of a block adjacent to the prediction target block The prediction mode is the first intra prediction mode and the second intra prediction mode of the prediction target block. The encoding step of obtaining the syntax code and encoding it into one syntax element is performed by a computer. 2. An image encoding program comprising: [Item 17] A first intra prediction mode is selected from the intra prediction modes of blocks adjacent to the prediction target block. a prediction mode candidate generating unit for generating a second intra-prediction mode candidate list and a second intra-prediction mode candidate list (122) and selecting a first intra prediction mode from the code sequence of the first intra prediction mode; A prediction mode for selecting a second intra prediction mode from a code sequence of the second intra prediction mode. A selection unit (123); A decoded block adjacent to the block to be predicted based on the first intra-prediction mode A first predicted value is calculated from the pixel, and the prediction target is calculated based on the second intra-prediction mode. a prediction value calculation unit (124) for calculating a second prediction value from decoded pixels adjacent to the block; and, a predicted value weighting unit ( 125) and An image decoding device (200) comprising: [Item 18] The predicted value weighting unit (125) calculates a simple average or 18. The image decoding method according to claim 17, further comprising the steps of: calculating the third predicted value by weighted averaging; Equipment (200). [Item 19] If the number of intra prediction modes is 2, the prediction mode candidate generation unit (122) 2 intra-prediction mode candidate list is generated, and if the number of intra-prediction modes is 1, A second intra-prediction mode candidate list is not generated; If the number of intra prediction modes is two, the prediction mode selection unit (123) select an intra prediction mode, and if the number of intra prediction modes is 1, Do not select a prediction mode, If the number of intra prediction modes is two, the prediction value calculation unit (124) calculates a second prediction value If the number of intra prediction modes is 1, the second predicted value is not calculated; If the number of intra prediction modes is two, the prediction value weighting unit (125) A third predicted value is calculated based on the predicted value and the second predicted value. If the number of intra prediction modes is 1, Item 17 or 18, characterized in that if the first predicted value is not a predicted value, the first predicted value is used as a predicted value as it is. The image decoding device (200) described herein. [Item 20] The width of the prediction target block is equal to or larger than a predetermined threshold width and the height of the prediction target block is equal to or larger than a predetermined threshold width. If the threshold value is not less than the threshold value, the number of intra prediction modes is set to 2, and the width of the prediction target block is set to a predetermined value. If the width is equal to or larger than a predetermined threshold and the height of the prediction target block is not equal to or larger than a predetermined threshold, the prediction target block is The present invention further comprises a mode number determination unit (121) that sets the number of prediction modes to 1. 20. The image decoding device (200) according to claim 19. [Item 21] The mode number determination unit (121) determines whether the first intra prediction mode is a non-angular intra prediction mode. 21. The method according to claim 20, wherein the number of intra prediction modes is set to 1 when the prediction mode is set to the prediction mode. An image decoding device (200). [Item 22] When the number of intra prediction modes is two, the code string of the second intra prediction mode is decoded. 22. The method according to any one of claims 17 to 21, further comprising a decoding unit (210) for decoding the The image decoding device (200) described herein. [Item 23] A plurality of pixels for performing intra prediction using decoded pixels adjacent to the block to be predicted. The intra prediction modes are classified into non-angular intra prediction modes and angular intra prediction modes, A syntax element for the non-angular intra-prediction mode and a syntax element for the angular intra-prediction mode The method further includes a decoding unit (210) for decoding the code string generated by dividing the code string into tax elements. 22. The image decoding device (200) according to any one of items 17 to 21, [Item 24] The first intra prediction mode and the second intra prediction mode of a block adjacent to the prediction target block The intra prediction mode of the first intra prediction mode of the prediction target block and the A code string obtained as the second intra-prediction mode and encoded into one syntax element 22. Any one of items 17 to 21, further comprising a decoding unit (210) for decoding the 2. The image decoding device (200) according to claim 1. [Item 25] A first intra prediction mode is selected from the intra prediction modes of blocks adjacent to the prediction target block. a prediction mode candidate generation process for generating a first intra-prediction mode candidate list and a second intra-prediction mode candidate list; Tep and selecting a first intra prediction mode from the code sequence of the first intra prediction mode; A prediction mode for selecting a second intra prediction mode from a code sequence of the second intra prediction mode. A selection step; A decoded block adjacent to the block to be predicted based on the first intra-prediction mode A first predicted value is calculated from the pixel, and the prediction target is calculated based on the second intra-prediction mode. a prediction value calculation step of calculating a second prediction value from decoded pixels adjacent to the block; A prediction value weighting step for calculating a third prediction value based on the first prediction value and the second prediction value. Top and 13. An image decoding method comprising: [Item 26] A first intra prediction mode is selected from the intra prediction modes of blocks adjacent to the prediction target block. a prediction mode candidate generation process for generating a first intra-prediction mode candidate list and a second intra-prediction mode candidate list; Tep and selecting a first intra prediction mode from the code sequence of the first intra prediction mode; A prediction mode for selecting a second intra prediction mode from a code sequence of the second intra prediction mode. A selection step; A decoded block adjacent to the block to be predicted based on the first intra-prediction mode A first predicted value is calculated from the pixel, and the prediction target is calculated based on the second intra-prediction mode. a prediction value calculation step of calculating a second prediction value from decoded pixels adjacent to the block; A prediction value weighting step for calculating a third prediction value based on the first prediction value and the second prediction value. Top and An image decoding program characterized by causing a computer to execute the above steps. [Item 27] Intra prediction, which performs intra prediction using decoded pixels adjacent to a block to be predicted An image decoding device (200) having a plurality of modes defined therein, The plurality of intra prediction modes are divided into non-angular intra prediction modes and angular intra prediction modes. and classifying the non-angular intra prediction mode syntax element and the angular intra prediction mode syntax element into A decoding unit (210) for decoding the generated code string by dividing the code string into syntax elements of the mode. An image decoding device (200). [Item 28] Intra prediction, which performs intra prediction using decoded pixels adjacent to a block to be predicted An image decoding method in which a plurality of modes are defined, The plurality of intra prediction modes are divided into non-angular intra prediction modes and angular intra prediction modes. and classifying the non-angular intra prediction mode syntax element and the angular intra prediction mode syntax element into A decoding step of decoding a code string generated by dividing the code string into syntax elements of the mode. 2. An image decoding method comprising: [Item 29] Intra prediction, which performs intra prediction using decoded pixels adjacent to a block to be predicted An image decoding program having a plurality of modes defined therein, The plurality of intra prediction modes are divided into non-angular intra prediction modes and angular intra prediction modes. and classifying the non-angular intra prediction mode syntax element and the angular intra prediction mode syntax element into The decoding step is to decode the generated code string by dividing it into syntax elements of the mode. An image decoding program characterized by being executed by a computer. [Item 30] Intra prediction, which performs intra prediction using decoded pixels adjacent to a block to be predicted An image decoding device (200) having a plurality of modes defined therein, A first intra prediction mode and a second intra prediction mode of a block adjacent to the prediction target block The prediction mode is the first intra prediction mode and the second intra prediction mode of the prediction target block. A decoding unit (21) that decodes the code sequence encoded into one syntax element. 0). [Item 31] Intra prediction, which performs intra prediction using decoded pixels adjacent to a block to be predicted An image decoding method in which a plurality of modes are defined, A first intra prediction mode and a second intra prediction mode of a block adjacent to the prediction target block The prediction mode is the first intra prediction mode and the second intra prediction mode of the prediction target block. a decoding step of decoding the code sequence encoded in one syntax element; 13. An image decoding method comprising: [Item 32] Intra prediction, which performs intra prediction using decoded pixels adjacent to a block to be predicted An image decoding program having a plurality of modes defined therein, A first intra prediction mode and a second intra prediction mode of a block adjacent to the prediction target block The prediction mode is the first intra prediction mode and the second intra prediction mode of the prediction target block. a decoding step of decoding the code sequence encoded in one syntax element; An image decoding program characterized by causing a computer to execute the above steps. [Explanation of symbols]
[0114] 100 Image encoding device, 110 Block size determination unit, 120 Intra prediction Selection unit, 130 conversion unit, 140 encoding unit, 200 image decoding device, 210 Decoding unit, 220 block size acquisition unit, 230 intra prediction unit, 240 inverse transformation unit Exchange department.
Claims
1. Encoding a first flag indicating whether to determine an intra prediction mode of a prediction target block based on a first candidate specific index; If the first flag does not indicate that the intra prediction mode of the prediction target block is determined based on the first candidate specific index, encoding a second flag indicating whether the intra prediction mode of the prediction target block is a predetermined non-angular intra prediction mode; an encoding unit that encodes a second candidate specific index when the second flag does not indicate the predetermined non-angular intra prediction mode; If the first flag indicates that an intra prediction mode of the prediction target block is determined based on the first candidate specific index, determining an intra prediction mode of the prediction target block based on the first candidate specific index; If the second flag indicates the predetermined non-angular intra prediction mode, selecting the predetermined non-angular intra prediction mode as an intra prediction mode for the block to be predicted; a prediction mode selection unit that, when the second flag does not indicate the predetermined non-angular intra prediction mode, selects an intra prediction mode for the prediction target block from an intra prediction mode candidate list generated based on intra prediction modes of two blocks adjacent to the prediction target block so as not to include the predetermined non-angular intra prediction mode, based on the second candidate specific index; An image encoding device comprising:
2. Encoding a first flag indicating whether to determine an intra prediction mode of a prediction target block based on a first candidate specific index; If the first flag does not indicate that the intra prediction mode of the prediction target block is determined based on the first candidate specific index, encoding a second flag indicating whether the intra prediction mode of the prediction target block is a predetermined non-angular intra prediction mode; an encoding step of encoding a second candidate specific index when the second flag does not indicate the predetermined non-angular intra prediction mode; If the first flag indicates that an intra prediction mode of the prediction target block is determined based on the first candidate specific index, determining an intra prediction mode of the prediction target block based on the first candidate specific index; If the second flag indicates the predetermined non-angular intra prediction mode, selecting the predetermined non-angular intra prediction mode as an intra prediction mode for the block to be predicted; a prediction mode selection step of selecting an intra prediction mode for the block to be predicted based on the second candidate specific index from an intra prediction mode candidate list generated based on intra prediction modes of two blocks adjacent to the block to be predicted so as not to include the predetermined non-angular intra prediction mode, when the second flag does not indicate the predetermined non-angular intra prediction mode; 13. An image encoding method comprising the steps of:
3. Encoding a first flag indicating whether to determine an intra prediction mode of a prediction target block based on a first candidate specific index; If the first flag does not indicate that the intra prediction mode of the prediction target block is determined based on the first candidate specific index, encoding a second flag indicating whether the intra prediction mode of the prediction target block is a predetermined non-angular intra prediction mode; an encoding step of encoding a second candidate specific index when the second flag does not indicate the predetermined non-angular intra prediction mode; If the first flag indicates that an intra prediction mode of the prediction target block is determined based on the first candidate specific index, determining an intra prediction mode of the prediction target block based on the first candidate specific index; If the second flag indicates the predetermined non-angular intra prediction mode, selecting the predetermined non-angular intra prediction mode as an intra prediction mode for the block to be predicted; a prediction mode selection step of selecting an intra prediction mode for the block to be predicted based on the second candidate specific index from an intra prediction mode candidate list generated based on intra prediction modes of two blocks adjacent to the block to be predicted so as not to include the predetermined non-angular intra prediction mode, when the second flag does not indicate the predetermined non-angular intra prediction mode; 13. An image encoding program comprising:
4. Decode a first flag indicating whether to determine an intra prediction mode of a prediction target block based on a first candidate specific index; If the first flag does not indicate that the intra prediction mode of the prediction target block is determined based on the first candidate specific index, decode a second flag indicating whether the intra prediction mode of the prediction target block is a predetermined non-angular intra prediction mode; a decoding unit that decodes a second candidate specific index when the second flag does not indicate the predetermined non-angular intra prediction mode; If the first flag indicates that an intra prediction mode of the prediction target block is determined based on the first candidate specific index, determining an intra prediction mode of the prediction target block based on the first candidate specific index; If the second flag indicates the predetermined non-angular intra prediction mode, selecting the predetermined non-angular intra prediction mode as an intra prediction mode for the block to be predicted; a prediction mode selection unit that, when the second flag does not indicate the predetermined non-angular intra prediction mode, selects an intra prediction mode for the prediction target block from an intra prediction mode candidate list generated based on intra prediction modes of two blocks adjacent to the prediction target block so as not to include the predetermined non-angular intra prediction mode, based on the second candidate specific index; An image decoding device comprising:
5. Decode a first flag indicating whether to determine an intra prediction mode of a prediction target block based on a first candidate specific index; If the first flag does not indicate that the intra prediction mode of the prediction target block is determined based on the first candidate specific index, decode a second flag indicating whether the intra prediction mode of the prediction target block is a predetermined non-angular intra prediction mode; a decoding step of decoding a second candidate specific index if the second flag does not indicate the predetermined non-angular intra prediction mode; If the first flag indicates that an intra prediction mode of the prediction target block is determined based on the first candidate specific index, determining an intra prediction mode of the prediction target block based on the first candidate specific index; If the second flag indicates the predetermined non-angular intra prediction mode, selecting the predetermined non-angular intra prediction mode as an intra prediction mode for the block to be predicted; a prediction mode selection step of selecting an intra prediction mode for the block to be predicted based on the second candidate specific index from an intra prediction mode candidate list generated based on intra prediction modes of two blocks adjacent to the block to be predicted so as not to include the predetermined non-angular intra prediction mode, when the second flag does not indicate the predetermined non-angular intra prediction mode; 13. An image decoding method comprising the steps of:
6. Decode a first flag indicating whether to determine an intra prediction mode of a prediction target block based on a first candidate specific index; If the first flag does not indicate that the intra prediction mode of the prediction target block is determined based on the first candidate specific index, decode a second flag indicating whether the intra prediction mode of the prediction target block is a predetermined non-angular intra prediction mode; a decoding step of decoding a second candidate specific index if the second flag does not indicate the predetermined non-angular intra prediction mode; If the first flag indicates that an intra prediction mode of the prediction target block is determined based on the first candidate specific index, determining an intra prediction mode of the prediction target block based on the first candidate specific index; If the second flag indicates the predetermined non-angular intra prediction mode, selecting the predetermined non-angular intra prediction mode as an intra prediction mode for the block to be predicted; a prediction mode selection step of selecting an intra prediction mode for the block to be predicted based on the second candidate specific index from an intra prediction mode candidate list generated based on intra prediction modes of two blocks adjacent to the block to be predicted so as not to include the predetermined non-angular intra prediction mode, when the second flag does not indicate the predetermined non-angular intra prediction mode; An image decoding program comprising:
7. A method for storing, on a recording medium, an encoded stream generated according to the image encoding method according to claim 2.
8. A transmission method for transmitting an encoded stream generated according to the image encoding method according to claim 2.
Citation Information
Patent Citations
Intra-prediction mode encoding method
JP2016213853A
Method and apparatus for coding video and method and apparatus for decoding video, using intra prediction
US20140133558A1
Neighbor based signaling of intra prediction modes
US20170332084A1
Variable number of intra modes for video coding
US20180098064A1
Intra-Prediction With Multiple Reference Lines
US20180332284A1