Image processing apparatus and image processing method
By using a fixed value shift amount in matrix intra prediction, the processing complexity problem in the prior art due to the need to be set according to multiple parameters is solved, and the processing flow is simplified and efficiency is improved.
Patent Information
- Application Number
- CN202080042945.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-06-25
- Filing Date
- 2020-06-08
- Publication Date
- 2025-06-17
- Estimated Expiration
- 2040-06-08
AI Technical Summary
In matrix intra prediction (MIP) operation, the shift amount needs to be changed according to MipSizeId and MIP mode numbers, resulting in complicated processing.
The matrix intra prediction using a fixed value shift amount simplifies the processing flow and no longer needs to set different shift amounts for each MipSizeId and MIP mode number.
By using a fixed value shift amount, the processing process of MIP is simplified, and the circuit scale implemented by hardware and the processing speed of software implementation is reduced.
Smart Images

Figure CN114051733B_ABST
Abstract
Description
Technical Field
[0001] The present technology relates to an image processing apparatus and an image processing method, and more particularly, to an image processing apparatus and an image processing method capable of simplifying processing, for example. Background Art
[0002] Joint standardization organizations such as ITU-T and ISO / IEC, the Joint Video Experts Team (JVET), aim to further improve the coding efficiency compared to H.265 / HEVC and are working on the standardization of Versatile Video Coding (VVC) as a next-generation image coding method.
[0003] In the standardization operation of VVC, matrix-based intra prediction (MIP) for a prediction block has been proposed, which is an intra prediction using matrix operations (for example, refer to Non-Patent Document 1 and Non-Patent Document 2).
[0004] In MIP, parameters of a matrix (weight matrix) and a bias (bias vector) obtained by parameter learning are defined, and operations using the matrix and the bias (parameters) are performed.
[0005] Citation List
[0006] Non-Patent Documents
[0007] Non-Patent Document 1: JVET-N0217-v3: CE3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2) (version 7 - date 2019-01-17)
[0008] Non-Patent Document 2: JVET-00084-vl: 8-bit implementation and simplification of MIP (version 1 - date 2019-06-18) Summary of the Invention
[0009] Problems to be Solved by the Invention
[0010] In MIP operations (operations performed by MIP), shifting is performed by a predetermined shift amount. The shift amount is changed according to the MipSizeId indicating the matrix size of the matrix and the mode number of MIP to improve the bit precision.
[0011] As described above, in MIP operations, since the shift amount is changed according to the MipSizeId and the MIP mode number, it is necessary to set the shift amount for each combination of the MipSizeId and the MIP mode number, and the processing becomes complicated.
[0012] This technology is made in view of such a situation and enables simplified processing.
[0013] Solution to the problem
[0014] The image processing apparatus according to the first aspect of the present technology includes: an intra prediction unit configured to perform matrix intra prediction as an intra prediction using matrix operations on a current prediction block to be encoded, and perform the matrix intra prediction using a shift amount set to a fixed value to generate a predicted image of the current prediction block; and an encoding unit configured to encode the current prediction block using the predicted image generated by the intra prediction unit.
[0015] The image processing method according to the first aspect of the present technology includes: an intra prediction process of performing matrix intra prediction as an intra prediction using matrix operations on a current prediction block to be encoded, and performing the matrix intra prediction using a shift amount set to a fixed value to generate a predicted image of the current prediction block; and an encoding process of encoding the current prediction block using the predicted image generated in the intra prediction process.
[0016] In the image processing apparatus and the image processing method according to the first aspect of the present technology, when performing matrix intra prediction as an intra prediction using matrix operations on a current prediction block to be encoded, the matrix intra prediction is performed using a shift amount set to a fixed value to generate a predicted image of the current prediction block. Then, the current prediction block is encoded using the predicted image.
[0017] The image processing apparatus according to the second aspect of the present technology includes: an intra prediction unit configured to perform matrix intra prediction as an intra prediction using matrix operations on a current prediction block to be decoded, and perform the matrix intra prediction using a shift amount set to a fixed value to generate a predicted image of the current prediction block; and a decoding unit configured to decode the current prediction block using the predicted image generated by the intra prediction unit.
[0018] The image processing method according to the second aspect of the present technology includes: an intra prediction process of performing matrix intra prediction as an intra prediction using matrix operations on a current prediction block to be decoded, and performing the matrix intra prediction using a shift amount set to a fixed value to generate a predicted image of the current prediction block; and a decoding process of decoding the current prediction block using the predicted image generated in the intra prediction process.
[0019] In the image processing apparatus and the image processing method according to the second aspect of the present technology, when performing matrix intra prediction, which is an intra prediction using matrix operations, on a current prediction block to be decoded, matrix intra prediction is performed by using a shift amount set to a fixed value to generate a prediction image of the current prediction block. Then, the current prediction block is decoded using the prediction image.
[0020] Note that the image processing apparatus may be an independent apparatus or an internal block constituting an apparatus.
[0021] In addition, the image processing apparatus can be implemented by causing a computer to execute a program. The program can be provided by being recorded on a recording medium or by being transmitted via a transmission medium. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] Figure 1 It is a diagram for describing a first generation method of a prediction image for MIP.
[0023] Figure 2 It is a diagram for describing a second generation method of a prediction image for MIP.
[0024] Figure 3 It is a diagram showing an example of the weight matrix mWeight[i][j] where (M, m) = (1, 3).
[0025] Figure 4 It is a diagram showing an example of the weight matrix mWeight[i][j] where (M, m) = (1, 8).
[0026] Figure 5 It is a diagram showing an example of the bias vector vBias[j] in the case where MipSizeId = 1.
[0027] Figure 6 It is a diagram for describing a third generation method of a prediction image for MIP.
[0028] Figure 7 It is a diagram for describing a fourth generation method of a prediction image for MIP.
[0029] Figure 8 It is a diagram showing the shift amount sW described in Reference A.
[0030] Figure 9 It is a diagram showing the standard weight matrix mWeight[i][j] where (M, m) = (0, 0) described in Reference A.
[0031] Figure 10 It is a diagram showing the standard weight matrix mWeight[i][j] where (M, m) = (0, 1) described in Reference A.
[0032] Figure 11 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 2) described in Reference A.
[0033] Figure 12 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 3) described in Reference A.
[0034] Figure 13 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 4) described in Reference A.
[0035] Figure 14 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 5) described in Reference A.
[0036] Figure 15 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 6) described in Reference A.
[0037] Figure 16 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 7) described in Reference A.
[0038] Figure 17 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 8) described in Reference A.
[0039] Figure 18 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 9) described in Reference A.
[0040] Figure 19 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 10) described in Reference A.
[0041] Figure 20 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 11) described in Reference A.
[0042] Figure 21 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 12) described in Reference A.
[0043] Figure 22It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 13) described in Reference A.
[0044] Figure 23 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 14) described in Reference A.
[0045] Figure 24 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 15) described in Reference A.
[0046] Figure 25 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 16) described in Reference A.
[0047] Figure 26 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 17) described in Reference A.
[0048] Figure 27 It is a diagram showing the standard variable fO with MipSizeId = 0 described in Reference A.
[0049] Figure 28 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (1, 0) described in Reference A.
[0050] Figure 29 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (1, 1) described in Reference A.
[0051] Figure 30 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (1, 2) described in Reference A.
[0052] Figure 31 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (1, 3) described in Reference A.
[0053] Figure 32 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (1, 4) described in Reference A.
[0054] Figure 33 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (1, 5) described in Reference A.
[0055] Figure 34 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (1, 6) described in Reference A.
[0056] Figure 35 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (1, 7) described in Reference A.
[0057] Figure 36 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (1, 8) described in Reference A.
[0058] Figure 37 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (1, 9) described in Reference A.
[0059] Figure 38 It is a diagram showing the standard variable fO with MipSizeId = 1 described in Reference A.
[0060] Figure 39 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (2, 0) described in Reference A.
[0061] Figure 40 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (2, 1) described in Reference A.
[0062] Figure 41 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (2, 2) described in Reference A.
[0063] Figure 42 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (2, 3) described in Reference A.
[0064] Figure 43 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (2, 4) described in Reference A.
[0065] Figure 44 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (2, 5) described in Reference A.
[0066] Figure 45 It is a diagram showing the standard variable fO with MipSizeId = 2 described in Reference A.
[0067] Figure 46 It is a diagram showing the shift amount sW used in the third generation method.
[0068] Figure 47 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 0) used in the third generation method.
[0069] Figure 48 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 1) used in the third generation method.
[0070] Figure 49 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 2) used in the third generation method.
[0071] Figure 50 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 3) used in the third generation method.
[0072] Figure 51 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 4) used in the third generation method.
[0073] Figure 52 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 5) used in the third generation method.
[0074] Figure 53 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 6) used in the third generation method.
[0075] Figure 54 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 7) used in the third generation method.
[0076] Figure 55 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 8) used in the third generation method.
[0077] Figure 56 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 9) used in the third generation method.
[0078] Figure 57 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 10) used in the third generation method.
[0079] Figure 58 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 11) used in the third generation method.
[0080] Figure 59 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 12) used in the third generation method.
[0081] Figure 60 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 13) used in the third generation method.
[0082] Figure 61 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 14) used in the third generation method.
[0083] Figure 62 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 15) used in the third generation method.
[0084] Figure 63 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 16) used in the third generation method.
[0085] Figure 64 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 17) used in the third generation method.
[0086] Figure 65 It is a diagram showing the fixed variable fO with MipSizeId = 0 used in the third generation method.
[0087] Figure 66 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 0) used in the third generation method.
[0088] Figure 67 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 1) used in the third generation method.
[0089] Figure 68 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 2) used in the third generation method.
[0090] Figure 69It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 3) used in the third generation method.
[0091] Figure 70 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 4) used in the third generation method.
[0092] Figure 71 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 5) used in the third generation method.
[0093] Figure 72 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 6) used in the third generation method.
[0094] Figure 73 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 7) used in the third generation method.
[0095] Figure 74 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 8) used in the third generation method.
[0096] Figure 75 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 9) used in the third generation method.
[0097] Figure 76 It is a diagram showing the fixed variable fO with MipSizeId = 1 used in the third generation method.
[0098] Figure 77 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 0) used in the third generation method.
[0099] Figure 78 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 1) used in the third generation method.
[0100] Figure 79 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 2) used in the third generation method.
[0101] Figure 80 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 3) used in the third generation method.
[0102] Figure 81 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 4) used in the third generation method.
[0103] Figure 82 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 5) used in the third generation method.
[0104] Figure 83 It is a diagram showing the fixed variable fO with MipSizeId = 2 used in the third generation method.
[0105] Figure 84 It is a diagram showing the shift amount sW used in the fourth generation method.
[0106] Figure 85 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 0) used in the fourth generation method.
[0107] Figure 86 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 1) used in the fourth generation method.
[0108] Figure 87 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 2) used in the fourth generation method.
[0109] Figure 88 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 3) used in the fourth generation method.
[0110] Figure 89 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 4) used in the fourth generation method.
[0111] Figure 90 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 5) used in the fourth generation method.
[0112] Figure 91 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 6) used in the fourth generation method.
[0113] Figure 92 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 7) used in the fourth generation method.
[0114] Figure 93 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 8) used in the fourth generation method.
[0115] Figure 94 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 9) used in the fourth generation method.
[0116] Figure 95 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 10) used in the fourth generation method.
[0117] Figure 96 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 11) used in the fourth generation method.
[0118] Figure 97 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 12) used in the fourth generation method.
[0119] Figure 98 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 13) used in the fourth generation method.
[0120] Figure 99 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 14) used in the fourth generation method.
[0121] Figure 100 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 15) used in the fourth generation method.
[0122] Figure 101 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 16) used in the fourth generation method.
[0123] Figure 102 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 17) used in the fourth generation method.
[0124] Figure 103 It is a diagram showing the fixed variable fO with MipSizeId = 0 used in the fourth generation method.
[0125] Figure 104It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 0) used in the fourth generation method.
[0126] Figure 105 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 1) used in the fourth generation method.
[0127] Figure 106 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 2) used in the fourth generation method.
[0128] Figure 107 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 3) used in the fourth generation method.
[0129] Figure 108 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 4) used in the fourth generation method.
[0130] Figure 109 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 5) used in the fourth generation method.
[0131] Figure 110 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 6) used in the fourth generation method.
[0132] Figure 111 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 7) used in the fourth generation method.
[0133] Figure 112 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 8) used in the fourth generation method.
[0134] Figure 113 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 9) used in the fourth generation method.
[0135] Figure 114 It is a diagram showing the fixed variable fO with MipSizeId = 1 used in the fourth generation method.
[0136] Figure 115 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 0) used in the fourth generation method.
[0137] Figure 116 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 1) used in the fourth generation method.
[0138] Figure 117 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 2) used in the fourth generation method.
[0139] Figure 118 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 3) used in the fourth generation method.
[0140] Figure 119 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 4) used in the fourth generation method.
[0141] Figure 120 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 5) used in the fourth generation method.
[0142] Figure 121 It is a diagram showing the fixed variable fO with MipSizeId = 2 used in the fourth generation method.
[0143] Figure 122 It is a block diagram showing a configuration example of an embodiment of an image processing system to which the present technology is applied.
[0144] Figure 123 It is a block diagram showing a configuration example of the encoder 11.
[0145] Figure 124 It is a flowchart showing an example of the encoding process of the encoder 11.
[0146] Figure 125 It is a block diagram showing a detailed configuration example of the decoder 51.
[0147] Figure 126 It is a flowchart showing an example of the decoding process of the decoder 51.
[0148] Figure 127 It is a block diagram showing a configuration example of an embodiment of a computer to which the present technology is applied. Detailed Embodiments
[0149] <References>
[0150] The scope disclosed in this document is not limited to the content of the embodiments, and the content of the following references REF1 to REF7, which were known at the time of filing, is also incorporated herein by reference. In other words, the content described in the following references REF1 to REF7 is also the basis for judging the support conditions. For example, even if the quadtree block structure, quadtree plus binary tree (QTBT) block structure, and multi-type tree (MTT) block structure are not directly defined in the detailed description of the present invention, they are within the scope of the present disclosure and should meet the support conditions of the claims. Additionally, for example, even when technical terms such as parsing, syntax, and semantics are not directly defined in the detailed description of the present invention, similarly, they are within the scope of the present disclosure and should meet the support conditions of the claims.
[0151] REF1: Recommendation ITU-T H.264(04 / 2017) “Advanced video coding for generic audiovisual services”, April 2017
[0152] REF2: Recommendation ITU-T H.265(02 / 2018) “High efficiency video coding”, February 2018
[0153] REF3: Benjamin Bross, Jianle Chen, Shan Liu, Versatile Video Coding(Draft 5), JVET-N1001-v7(version 7 - date 2019 - 05 - 29)
[0154] REF4: Jianle Chen, Yan Ye, Seung Hwan Kim, Algorithm description for Versatile Video Coding and Test Model 5(VTM 5), JVET-N1002-v1
[0155] REF5: JVET-N0217-v3:CE3:Affine linear weighted intra prediction(CE3 - 4.1, CE3 - 4.2)(version 7 - date 2019 - 01 - 17)
[0156] REF6: JVET-M0043-v2: CE3: Affine linear weighted intra prediction (test1.2.1, test 1.2.2) (version 2 - date 2019-01-09)
[0157] REF 7: JVET-O0084-vl: 8-bit implementation and simplification of MIP (version 1 - date 2019-06-18)
[0158] <Definition>
[0159] For pixels, adjacent includes not only the case where one pixel (one row) is adjacent to the current pixel of interest, but also the case where multiple pixels (multiple rows) are adjacent. Therefore, adjacent pixels include not only the pixels at the position of one pixel directly adjacent to the current pixel, but also the pixels at the positions of multiple pixels continuously adjacent to the current pixel. In addition, adjacent blocks include not only the blocks within the range of one block directly adjacent to the current block of interest, but also the blocks within the range of multiple blocks continuously adjacent to the current block. In addition, as needed, adjacent blocks may also include blocks located near the current block.
[0160] A prediction block refers to a block (prediction unit (PU)) that is a processing unit when performing intra prediction, and also includes sub-blocks within the prediction block. When the prediction block, the orthogonal transform block (transformation unit (TU)) that is a processing unit for performing orthogonal transform, and the coding block (coding unit (CU)) that is a processing unit for coding are unified into the same block, the prediction block, the orthogonal transform block, and the coding block refer to the same block.
[0161] The intra prediction mode comprehensively refers to the variables (parameters) referred to when obtaining the intra prediction mode, such as the mode number when performing intra prediction, the index of the mode number, the block size of the prediction block, and the size of the sub-block that is the processing unit within the prediction block.
[0162] The matrix intra prediction mode (MIP mode) comprehensively refers to the variables (parameters) referred to when obtaining the matrix intra prediction mode, such as the mode number of MIP, the index of the mode number, the type of matrix used when performing MIP operations, the type of matrix size of the matrix used when performing MIP operations, etc.
[0163] The change means a change based on the content (value, arithmetic expression, variable, etc.) described in Reference REF 3 or REF 7. The change may include a change based on the content described in the document "JVET-N1001-v7_proposal_text_MIP_8Bit.docx" (hereinafter, also referred to as Reference A), which is published on the website of other documents known at the time of submission, such as the web site of "JVET DOCUMENT MANAGEMENT SYSTEM" (http: / / phenix.int-evry.fr / jvet / ).
[0164] For example, in Reference REF 3, 8 and 9 are mixed as the shift amount sW used in the MIP operation, but the change includes changing 9 of the mixed shift amount sW to 8, changing the MIP operation (matrix operation) including the weight matrix mWeight, changing the MIP operation including the bias vector vBias, etc.
[0165] In addition, for example, in Reference A (Reference REF 7), 6, 7, and 8 are mixed as the shift amount sW, but the change includes changing 7 of the mixed shift amount sW to 6, changing from 8 to 7, changing the MIP operation including the weight matrix mWeight, changing the MIP operation including the variable oW corresponding to the bias vector vBias, etc. The change of the MIP operation includes the weight matrix mWeight, the bias vector vBias, the variable fO for obtaining the variable oW, etc. used in the MIP operation.
[0166] In this technology, the identification data for identifying multiple patterns can be set as the bitstream syntax obtained by encoding an image. The bitstream may include the identification data for identifying various patterns.
[0167] As the identification data, for example, information related to the shift amount sW, such as data indicating whether the shift amount sW is a fixed value (set to a fixed value), can be adopted.
[0168] When the identification data is included in the bitstream, the decoder for decoding the bitstream can perform processing more efficiently by parsing and referring to the identification data.
[0169] Figure 1 It is a diagram for describing the first generation method of the predicted image of MIP.
[0170] The first generation method is a method for generating the predicted image of MIP proposed in Reference REF 3 (JVET-N1001-v7).
[0171] In the first generation method, according to Equation (1) described as Equation (8-69) in Reference REF 3, the predMip[x][y] (pixel value) of (some) pixels of the predicted image of the current predicted block, which is the predicted block to be encoded / decoded, is generated.
[0172] predMip[x][y] = ((∑mWeight[i][y*incH*predC+x*incW]*p[i])+(vBias[y*incH*predC+x*incW] << sB)+oW) >> sW …(1)
[0173] predMip[x][y] represents the pixel (pixel value) at the horizontal position x and the vertical position y of the predicted image. The pixels of the predicted image are also referred to as predicted pixels.
[0174] In Equation (1), the sum ∑ represents the sum obtained when the variable i is changed to an integer from 0 to 2*boundarySize - 1. boundarySize is set to correspond to the block size of the current predicted block. Specifically, according to MipSizeId, boundarySize is set according to Table 8-7 of Reference REF 3, and MipSizeId is an identifier for the matrix size of the matrix (weight matrix mWeight[i][j]) used for the operation (matrix operation) of the pixels of the current predicted block in MIP. When the matrix size is 4×4, 8×8, and 16×16, MipSizeId is set to 0, 1, and 2, respectively.
[0175] mWeight[i][j] represents the component of the j-th row and the i-th column of the matrix used in MIP, and is called the weight matrix. The weight matrix mWeight[i][j] is set according to MipSizeId and modeId.
[0176] The number of values taken by the independent variables i and j of the weight matrix mWeight[i][j] is equal to the number of pixels obtained by averaging in Reference REF 5 and the number of pixels predMip[x][y] of the predicted image, respectively.
[0177] In addition, the sum-of-products operation ∑mWeight[i][y*incH*predC+x*incW]*p[i] performed using the weight matrix mWeight[i][j] is a matrix operation on the current prediction block (pixels) in the MIP. That is, the sum-of-products operation ΣmWeight[i][y*incH*predC+x*incW]*p[i] is a matrix operation for obtaining the product of a matrix whose components are the weight matrix mWeight[i][j] and a vector whose components are the pixels p[i] of the current prediction block.
[0178] According to the intra prediction mode predModeIntra, according to Equation (8-64) of Reference REF 3, modeId is set to any value from 0 to 17.
[0179] According to predC, incH and incW are set according to Equations (8-67) and (8-68) of Reference REF 3, respectively.
[0180] According to MipSizeId, predC is set according to Table 8-7 of Reference REF 3.
[0181] p[i] represents the pixel value of the i-th pixel obtained by averaging the pixels of the reference image referred to when generating the prediction image of the current prediction block.
[0182] vBias[j] is the bias added to the pixel predMip[x][y] of the prediction image and is called the bias vector. The bias vector vBias[j] is set according to sizeId and modeId. The number of values taken by the independent variable j of the bias vector vBias[j] is equal to the number of values taken by the independent variable j of the weight matrix mWeight[i][j], that is, the number of pixels predMip[x][y] of the prediction image.
[0183] It is recorded that in Table 8-2 of Reference REF 3, sizeId takes 0, 1, or 2.
[0184] According to Equation (8-66) of Reference REF 3, sB is set according to the number of bits bitdpthY representing the pixel value.
[0185] According to Equation (8-65) in Reference REF 3, oW is set according to sW (weight shift).
[0186] According to Table 8-8 of Reference REF 3, sW is set according to MipSizeId and modeId.
[0187] Note that A<>B indicate that A is shifted left and right by B bits, respectively.
[0188] In the first generation method, sW is the shift amount for shifting ((ΣmWeight[i][y*incH*predC+x*incW]*p[i])+(vBias[y*incH*predC+x*incW] << sB)+oW).
[0189] According to Table 8-8 of Reference REF 3, the shift amount sW is set to one of 8 and 9 according to the MipSizeId and modeId as shown Figure 1 therein.
[0190] Therefore, in the first generation method, it is necessary to reset the shift amount sW for each combination of MipSizeId and modeId, which complicates the process of generating the predicted image of the MIP.
[0191] For example, when implementing the first generation method by hardware, a selector for switching the shift amount sW is required, which increases the circuit scale. In addition, when implementing the first generation method by software, it is necessary to refer to the table specified in Table 8-8 of Reference REF 3, and the processing speed is reduced by that amount.
[0192] Therefore, in the present technology, the MIP is executed using a shift amount set to a fixed value. That is, for example, the operation of Equation (1) is changed according to the shift amount sW set to a fixed value, and the predicted image of the MIP is generated according to the changed operation.
[0193] Figure 2 is a diagram for describing the second generation method of the predicted image of the MIP.
[0194] In the second generation method, the shift amount sW of Equation (1) for generating the predicted image of the MIP proposed in Reference REF 3 (JVET-N1001-v7) is set to a fixed value, for example, 8. Then, in the second generation method, the operation of Equation (1) is changed according to the shift amount sW = 8 set to a fixed value, and the predicted image of the MIP is generated according to the changed operation.
[0195] Specifically, in the second generation method, the weight matrix mWeight[i][j] and / or the bias vector vBias[j] are changed according to the shift amount sW = 8 set to a fixed value, and the predicted image of the MIP is generated according to the operation including the changed weight matrix mWeight[i][j] and / or bias vector vBias[j].
[0196] Here, the combination of MipSizeId and modeId is represented as (M, m). M represents MipSizeId and m represents modeId.
[0197] In addition, the predicted pixel predMip[x][y] obtained before setting the shift amount sW to a fixed value is the predicted pixel predMip[x][y] obtained when obtaining the predicted pixel predMip[x][y] (of the predicted image of MIP) according to Reference REF 3 - that is, the predicted pixel predMip[x][y] obtained when the shift amounts sW for (M, m) = (1, 3) and (M, m) = (1, 8) are 8 - and is also referred to as the standard predicted pixel predMip[x][y]. Figure 2 In Table 8-8 of Reference REF 3, when (M, m) = (1, 3) and (M, m) = (1, 8), the shift amount sW is 9, and in other combinations of MipSizeId and modeId, the shift amount sW is 8. Therefore, in Table 8-8 of Reference REF 3, the shift amount sW for (M, m) = (1, 3) and (M, m) = (1, 8) is changed from 9 to 8, and thus, for each combination of MipSizeId and modeId, the shift amount sW can be fixed to 8.
[0198] In the second generation method, the shift amount sW for (M, m) = (1, 3) and (M, m) = (1, 8) is changed from 9 to 8, and for each combination of MipSizeId and modeId, the shift amount sW is fixed to 8. Then, the weight matrix mWeight[i][j] and the bias vector vBias[j] for (M, m) = (1, 3) and (M, m) = (1, 8) are changed according to the shift amount sW = 8 such that the predicted pixel (hereinafter also referred to as the fixed predicted pixel) obtained after setting the shift amount sW to a fixed value - here, the predicted pixel predMip[x][y] obtained according to Equation (1) when the shift amount sW for (M, m) = (1, 3) and (M, m) = (1, 8) is changed to 8 - becomes a value approximate to the standard predicted pixel predMip[x][y].
[0199] In the second generation method, the predicted image of MIP is generated according to the operation of Equation (1) including the weight matrix mWeight[i][j] and the bias vector vBias[j] changed according to the shift amount sW = 8 set to a fixed value as described above.
[0200] Therefore, in the second generation method, since the shift amount sW is fixed regardless of modeId and the combination of MipSizeId and modeId, the processing of MIP can be simplified. Thus, it is not necessary to specify a table as specified in Table 8-8 of Reference REF 3 in the standard, and the standard can be simplified.
[0201]
[0202] In addition, for example, when the second generation method is implemented by hardware, a selector for switching the shift amount sW is not required, which can suppress an increase in the circuit scale. Further, when the second generation method is implemented by software, it is not necessary to refer to the table specified in Table 8-8 of Reference REF 3, and a decrease in the processing speed can be suppressed as compared with the case of referring to the table.
[0203] Figure 3 FIG. is a diagram showing an example of the weight matrix mWeight[i][j] where (M, m) = (1, 3).
[0204] Here, the weight matrix mWeight[i][j] before setting the shift amount sW to a fixed value, for example, when the shift amount sW for (M, m) = (1, 3) specified in Reference REF 3 is 9, the weight matrix mWeight[i][j] for (M, m) = (1, 3) is referred to as the standard weight matrix mWeight[i][j] for (M, m) = (1, 3). Further, the weight matrix mWeight[i][j] after setting the shift amount sW to a fixed value, for example, when the shift amount sW for (M, m) = (1, 3) is changed to 8, the weight matrix mWeight[i][j] as a modification of the standard weight matrix mWeight[i][j] for (M, m) = (1, 3) used in Equation (1) is referred to as the fixed weight matrix mWeight[i][j] for (M, m) = (1, 3).
[0205] Figure 3 FIG. A shows the standard weight matrix mWeight[i][j] for (M, m) = (1, 3), and Figure 3 FIG. B shows an example of the fixed weight matrix mWeight[i][j] for (M, m) = (1, 3).
[0206] In Figure 3 , at the (i + 1)-th value from the left, the (j + 1)-th value from the top represents the weight matrix mWeight[i][j].
[0207] In Figure 3 , the fixed weight matrix mWeight[i][j] for (M, m) = (1, 3) ( Figure 3 FIG. B) is changed to almost 1 / 2 times the standard weight matrix mWeight[i][j] for (M, m) = (1, 3) ( Figure 3 FIG. A). This is because the shift amount sW executed to the right in Equation (8-69) of Reference REF 3 has been changed (fixed) from 9 to 8.
[0208] Note that the fixed weight matrix mWeight[i][j] with (M, m) = (1, 3) is not limited to Figure 3 the values shown in
[0209] For the fixed weight matrix mWeight[i][j] with (M, m) = (1, 3), the operation is performed using the shift amount sW set to a fixed value, and it can be appropriately changed within the range where the technical effect can be properly exerted. In addition, since the range where the technical effect is exerted changes according to the approximation level to be set, as long as the shift amount falls within these ranges, it can be appropriately changed. For example, it can be changed within the range of ±1, and it can be changed within the range of ±3. In addition, not only can all values be uniformly changed, but some values can also be changed only. The range of values to be changed can also be set individually with respect to the existing values.
[0210] That is, for example, when performing the operation of Equation (1) using the shift amount sW set to a fixed value, the fixed weight matrix mWeight[i][j] with (M, m) = (1, 3) can be appropriately changed within the range where technical effects such as ensuring a predetermined prediction accuracy or higher prediction accuracy can be obtained for the predicted image.
[0211] In addition, depending on the degree to which the set fixed prediction pixel predMip[x][y] approximates the standard prediction pixel predMip[x][y] (hereinafter, also referred to as the approximation level), the range (degree) where the technical effect is exerted is changed. The fixed weight matrix mWeight[i][j] with (M, m) = (1, 3) can be appropriately changed within the range where the set approximation level can be maintained.
[0212] For example, based on Figure 3 the values shown in B of
[0213] the change to the fixed weight matrix mWeight[i][j] with (M, m) = (1, 3) can be made over all of the fixed weight matrix mWeight[i][j] with (M, m) = (1, 3), but can also be made only on a part of the fixed weight matrix mWeight[i][j] with (M, m) = (1, 3).
[0214] In addition, as the range of values of the fixed weight matrix mWeight[i][j] where (M, m) = (1, 3) is changed, it is also possible to use a unified range for all of the fixed weight matrix mWeight[i][j] where (M, m) = (1, 3), and to use individual ranges for each fixed weight matrix mWeight[i][j] where (M, m) = (1, 3).
[0215] For example, the range of values of the fixed weight matrix mWeight[i][j] where (M, m) = (1, 3) can be set individually for each value of the corresponding standard weight matrix mWeight[i][j].
[0216] This also applies to the fixed weight matrix mWeight[i][j] other than (M, m) = (1, 3), the bias vector vBias[j] that changes according to the shift amount sW set to a fixed value, and the variable fO described later that changes according to the shift amount sW set to a fixed value.
[0217] Figure 4 is a diagram showing an example of the weight matrix mWeight[i][j] where (M, m) = (1, 8).
[0218] Figure 4 A of is a diagram showing the standard weight matrix mWeight[i][j] where (M, m) = (1, 8), and Figure 4 B of is a diagram showing an example of the fixed weight matrix mWeight[i][j] where (M, m) = (1, 8).
[0219] In Figure 4 similar to Figure 3 at the (i + 1)-th value from the left, the (j + 1)-th value from the top is the weight matrix mWeight[i][j].
[0220] In Figure 4 similar to Figure 3 the fixed weight matrix mWeight[i][j] where (M, m) = (1, 8)( Figure 4 B of Figure 4 is changed to almost 1 / 2 times the standard weight matrix mWeight[i][j] where (M, m) = (1, 8)(
[0221] Figure 5 is a diagram showing an example of the bias vector vBias[j] where MipSizeId = 1.
[0222] Here, the bias vector vBias[j] before setting the shift amount sW to a fixed value, for example, the bias vector vBias[j] of MipSizeId = 1 when the shift amount sW specified in Reference REF3 for MipSizeId = 1 is 9, is also referred to as the standard bias vector vBias[j] of MipSizeId = 1.
[0223] In addition, the bias vector vBias[j] after setting the shift amount sW to a fixed value, for example, the bias vector vBias[j] of MipSizeId = 1 when the standard bias vector vBias[j] of MipSizeId = 1 used in Equation (1) has its shift amount sW changed to 8, is called the fixed bias vector vBias[j] of MipSizeId = 1.
[0224] Figure 5 A is a diagram showing the standard bias vector vBias[j] of MipSizeId = 1, and Figure 5 B is a diagram showing an example of the fixed bias vector vBias[j] of MipSizeId = 1.
[0225] In Figure 5 at the (j + 1)-th value from the left, the (k + 1)-th value from the top is the bias vector vBias[j] where (M, m) = (1, k).
[0226] In Figure 5 among the fixed bias vectors vBias[j] where (M, m) = (1, 0) to (1, 9), the fixed bias vectors vBias[j] where (M, m) = (1, 3) and (1, 8) change to approximately 1 / 2 times the standard bias vectors vBias[j] where (M, m) = (1, 3) and (1, 8), surrounded by a dashed line, and the other fixed bias vectors vBias[j] are the same as the standard bias vectors vBias[j].
[0227] Figure 6 is a diagram for describing the third generation method of the predicted image of MIP.
[0228] In the third generation method, the shift amount sW of the operation for generating the predicted image of MIP proposed in Reference A (JVET-N1001-v7_proposal_textMIP_8Bit.docx) (and Reference REF 7) is set to a fixed value, for example, 6. Then, in the third generation method, the operation for generating the predicted image of MIP is changed according to the shift amount sW = 6 set to a fixed value, and the predicted image of MIP is generated according to the changed budget.
[0229] Here, in the generation of the predicted image proposed in Reference A, (some) pixels predMip[x][y] of the predicted image of the current prediction block are generated according to Equation (2) described as Equation (8-69) in Reference A.
[0230] predMip[x][y] = (((∑mWeight[i][y*incH*predC+x*incW]*p[i]) + oW) >> sW) + dcVal...(2)
[0231] In Equation (2), ∑ represents the sum obtained when the variable i is changed to an integer from 0 to inSize - 1. inSize is set to 2*boundarySize - 1 or 2*boundarySize.
[0232] The variable oW corresponds to the bias vector vBias[j] in Equation (1). The variable oW is calculated according to Equation (3) described as Equation (8-65) in Reference A.
[0233] oW = (1 << (sW - 1)) - f0*(∑p[i])...(3)
[0234] Similar to Equation (2), in Equation (3), ∑ represents the sum obtained when the variable i is changed to an integer from 0 to inSize - 1.
[0235] The variable fO is set according to MipSizeId and modeId. Since the variable oW corresponding to the bias vector vBias[j] is calculated according to Equation (3) using the variable fO, similar to the variable oW, the variable fO can also correspond to the bias vector vBias[j].
[0236] In the generation of the predicted image proposed in Reference A, sW is the shift amount for shifting ((∑mWeight[i][y*incH*predC+x*incW]*p[i]) + oW).
[0237] According to Table 8-8 of Reference A, as Figure 6 shown, the shift amount sW is set to 6, 7, or 8 according to MipSizeId and modeId.
[0238] Therefore, in the generation of the predicted image proposed in Reference A, there are similar problems to the first generation method, that is, it is necessary to reset the shift amount sW for each combination of MipSizeId and modeId, and the process of generating the predicted image of MIP becomes complicated, etc.
[0239] Therefore, in the third generation method, the shift amount sW of Equation (2) for generating the predicted image of MIP proposed in Reference A is set to a fixed value.
[0240] As the fixed value set for the shift amount sW, for example, the minimum value 6, the maximum value 8, or the intermediate value 7 described in Table 8-8 of Reference A is used, or other values can be adopted. In Figure 6 For example, the minimum value 6 among 6 to 8 described in Table 8-8 of Reference A is adopted as the fixed value set for the shift amount sW.
[0241] Then, in the third generation method, the operation of Equation (2) is changed according to the shift amount sW = 6 set to a fixed value, and the predicted image of MIP is generated according to the changed operation.
[0242] Specifically, in the third generation method, for each combination of MipSizeId and modeId, the shift amount sW is fixed at 6.
[0243] Then, according to the fixed shift amount sW = 6, the standard weight matrix mWeight[i][j] and the variable fO corresponding to the bias vector vBias[j] (for obtaining the variable oW) are changed so that the fixed predicted pixel predMip[x][y] obtained according to Equation (2) using the shift amount sW = 6 is approximately the value of the standard predicted pixel predMip[x][y].
[0244] Here, the variable fO before the shift amount sW is set to a fixed value, that is, the variable fO specified in Reference A here, is also called the standard variable fO. In addition, the variable fO after the shift amount sW is set to a fixed value, here the variable fO obtained by changing the standard variable fO according to the fixed shift amount sW = 6, is also called the fixed variable fO.
[0245] In the third generation method, the predicted image of MIP is generated according to the operation of Equation (2) (and Equation (3)) including the fixed weight matrix mWeight[i][j] and the fixed variable fO. The fixed weight matrix mWeight[i][j] and the fixed variable fO are obtained by changing the standard weight matrix mWeight[i][j] and the standard variable fO according to the shift amount sW = 6 set to a fixed value as described above.
[0246] As described above, similar to the second generation method, in the third generation method, MIP is performed using the shift amount sW set to a fixed value. That is, the operation of Equation (2) is changed according to the shift amount sW set to a fixed value, and the predicted image of MIP is generated according to the changed operation.
[0247] Therefore, in the third generation method, since the shift amount sW is fixed regardless of the modeId and the combination of MipSizeId and modeId, the processing of MIP can be simplified. Therefore, it is not necessary to specify the table as specified in Table 8-8 of Reference A in the standard, and the standard can be simplified.
[0248] In addition, for example, when the third generation method is implemented by hardware, a selector for switching the shift amount sW is not required, which can suppress an increase in the circuit scale. Furthermore, when the third generation method is implemented by software, it is not necessary to refer to the table specified in Table 8-8 of Reference A, and a decrease in the processing speed can be suppressed compared to the case of referring to this table.
[0249] Figure 7 It is a diagram for describing a fourth generation method of a predicted image of MIP.
[0250] In the fourth generation method, according to the matrix size of the weight matrix mWeight[i][j] used in MIP, the shift amount sW of the operation for generating the predicted image of MIP proposed in Reference A is set to a fixed value.
[0251] Here, since MipSizeId is an identifier of the matrix size of the weight matrix mWeight[i][j], setting the shift amount sW to a fixed value according to the matrix size is equivalent to setting the shift amount sW to a fixed value according to MipSizeId. For example, the shift amount sW is set to a fixed value for each MipSizeId, etc.
[0252] In the fourth generation method, the operation for generating the predicted image of MIP is changed according to the shift amount sW set to a fixed value for each MipSizeId, and the predicted image of MIP is generated according to the changed operation.
[0253] In the fourth generation method, as the fixed value for each MipSizeId set in the movement amount sW, for example, the minimum value or the maximum value of the movement amount sW for each MipSizeId described in Table 8-8 of Reference A, or other values can be adopted.
[0254] For example, as the fixed value for each MipSizeId set in the shift amount sW, the minimum value of the shift amount sW for each MipSizeId described in Table 8-8 of Reference A is adopted.
[0255] In Reference A, since the shift amount sW for MipSizeId = 0 can be 6 or 7, when the minimum value of the shift amount sW for each MipSizeId described in Table 8-8 of Reference A is used as the fixed value for each MipSizeId set in the shift amount sW, in the fourth generation method, the shift amount sW for MipSizeId = 0 is fixed to the minimum value 6 of 6 and 7. That is, the shift amount sW of 7 for MipSizeId = 0 described in Table 8-8 of Reference A is changed to 6.
[0256] In Reference A, since the movement amount sW for MipSizeId = 1 can be 7 or 8, when the minimum value of the shift amount sW for each MipSizeId described in Table 8-8 of Reference A is used as the fixed value for each MipSizeId set in the shift amount sW, in the fourth generation method, the shift amount sW for MipSizeId = 1 is fixed to the minimum value 7 of 7 and 8. That is, the movement amount sW of 8 for MipSizeId = 1 described in Table 8-8 of Reference A is changed to 7.
[0257] In Reference A, since the shift amount sW for MipSizeId = 2 can be 6 or 7, when the minimum value of the shift amount sW for each MipSizeId described in Table 8-8 of Reference A is used as the fixed value for each MipSizeId set in the shift amount sW, in the fourth generation method, the shift amount sW for MipSizeId = 2 is fixed to the minimum value 6 of 6 and 7. That is, the shift amount sW of 7 for MipSizeId = 2 described in Table 8-8 of Reference A is changed to 6.
[0258] In the fourth generation method, as described above, the operation of Equation (2) is changed according to the shift amount sW set to a fixed value for each MipSizeId, and a predicted image of MIP is generated according to the changed operation.
[0259] Specifically, in the fourth generation method, for MipSizeId = 0 and 2, the shift amount sW is fixed to 6.
[0260] In addition, for the fixed shift amount sW = 6, the standard weight matrix mWeight[i][j] and the standard variable fO are changed so that the fixed predicted pixel predMip[x][y] obtained according to Equation (2) using the shift amount sW = 6 is approximately the value of the standard predicted pixel predMip[x][y].
[0261] Then, a predicted image of MIP is generated according to the operation of Equation (2) including a fixed weight matrix mWeight[i][j] and a fixed variable fO. The fixed weight matrix mWeight[i][j] and the fixed variable fO are obtained by changing a standard weight matrix mWeight[i][j] and a standard variable fO according to a shift amount sW = 6 set to a fixed value.
[0262] In addition, for MipSizeId = 1, the shift amount sW is fixed to 7.
[0263] Furthermore, for the fixed shift amount sW = 7, the standard weight matrix mWeight[i][j] and the standard variable fO are changed such that the fixed predicted pixel predMip[x][y] obtained according to Equation (2) using the shift amount sW = 7 is an approximate value of the standard predicted pixel predMip[x][y].
[0264] Then, a predicted image of MIP is generated according to the operation of Equation (2) including a fixed weight matrix mWeight[i][j] and a fixed variable fO. The fixed weight matrix mWeight[i][j] and the fixed variable fO are obtained by changing a standard weight matrix mWeight[i][j] and a standard variable fO according to a shift amount sW = 7 set to a fixed value.
[0265] Therefore, in the fourth generation method, two equations are used: an equation in which the operation of Equation (2) is changed according to the shift amount sW fixed to 6, and an equation in which the operation of Equation (2) is changed according to the shift amount sW fixed to 7, for switching according to MipSizeId.
[0266] As described above, in the fourth generation method, MIP is performed using a shift amount set to a fixed value for each MipSizeId. That is, the operation of Equation (2) is changed according to the shift amount sW set to a fixed value for each MiPSizeId, and a predicted image of MIP is generated according to the changed operation.
[0267] Therefore, in the fourth generation method, the shift amount sW is fixed regardless of modeId, enabling simplification of the MIP process, and there is no table for each modeId specified in Table 8-8 of Reference A defined in the standard, and the standard can be simplified.
[0268] In addition, for example, when the fourth generation method is implemented by hardware, a selector for switching the shift amount sW is not required, which can suppress an increase in the circuit scale. Further, when the fourth generation method is implemented by software, it is not necessary to refer to the table specified in Table 8-8 of Reference A, and a decrease in the processing speed can be suppressed compared to the case of referring to the table.
[0269] Hereinafter, the shift amount sW, the (standard) weight matrix mWeight[i][j], the (standard) variable fO, the shift amount sW used in the third and fourth generation methods, the (fixed) weight matrix mWeight[i][j], and the (fixed) variable fO described in Reference A will be further described.
[0270] Figure 8 is a diagram showing the shift amount sW described in Reference A.
[0271] In Figure 8 , at the (m + 1)-th value from the left, the (M + 1)-th value from the top represents the shift amount sW of (M, m). The same applies to the diagram of the shift amount sW described later.
[0272] Figure 9 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (0, 0) described in Reference A.
[0273] In Figure 9 , at the (i + 1)-th value from the left, the (j + 1)-th value from the top represents the standard weight matrix mWeight[i][j]. The same applies to the diagram of the weight matrix mWeight[i][j] described later.
[0274] Figure 10 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (0, 1) described in Reference A.
[0275] Figure 11 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (0, 2) described in Reference A.
[0276] Figure 12 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (0, 3) described in Reference A.
[0277] Figure 13 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (0, 4) described in Reference A.
[0278] Figure 14It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 5) described in Reference A.
[0279] Figure 15 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 6) described in Reference A.
[0280] Figure 16 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 7) described in Reference A.
[0281] Figure 17 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 8) described in Reference A.
[0282] Figure 18 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 9) described in Reference A.
[0283] Figure 19 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 10) described in Reference A.
[0284] Figure 20 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 11) described in Reference A.
[0285] Figure 21 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 12) described in Reference A.
[0286] Figure 22 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 13) described in Reference A.
[0287] Figure 23 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 14) described in Reference A.
[0288] Figure 24 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 15) described in Reference A.
[0289] Figure 25 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (0, 16) described in Reference A.
[0290] Figure 26 It is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (0, 17) described in Reference A.
[0291] Figure 27 It is a diagram showing the standard variable fO of MipSizeId = 0 described in Reference A.
[0292] In Figure 27 the standard variable fO of MipSizeId = 0, the (m + 1)-th value from the left represents the standard variable fO of modeId = m. The same applies to the diagrams of the variable fO described later.
[0293] Figure 28 It is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (1, 0) described in Reference A.
[0294] Figure 29 It is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (1, 1) described in Reference A.
[0295] Figure 30 It is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (1, 2) described in Reference A.
[0296] Figure 31 It is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (1, 3) described in Reference A.
[0297] Figure 32 It is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (1, 4) described in Reference A.
[0298] Figure 33 It is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (1, 5) described in Reference A.
[0299] Figure 34 It is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (1, 6) described in Reference A.
[0300] Figure 35 It is a diagram showing the standard weight matrix mWeight[i][j] of (M, m) = (1, 7) described in Reference A.
[0301] Figure 36It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (1, 8) described in Reference A.
[0302] Figure 37 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (1, 9) described in Reference A.
[0303] Figure 38 It is a diagram showing the standard variable fO with MipSizeId = 1 described in Reference A.
[0304] Figure 39 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (2, 0) described in Reference A.
[0305] Figure 40 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (2, 1) described in Reference A.
[0306] Figure 41 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (2, 2) described in Reference A.
[0307] Figure 42 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (2, 3) described in Reference A.
[0308] Figure 43 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (2, 4) described in Reference A.
[0309] Figure 44 It is a diagram showing the standard weight matrix mWeight[i][j] with (M, m) = (2, 5) described in Reference A.
[0310] Figure 45 It is a diagram showing the standard variable fO with MipSizeId = 2 described in Reference A.
[0311] Figure 46 It is a diagram showing the shift amount sW used in the third generation method.
[0312] In the third generation method, the shift amount sW is set to a fixed value, such as 6.
[0313] Then, in the third generation method, using the standard weight matrix mWeight[i][j], the fixed weight matrix mWeight[i][j] obtained by changing the standard variable fO, and the fixed variable fO, the fixed predicted pixel predMip[x][y] obtained after setting the shift amount sW to a fixed value of 6 is an approximate value of the standard predicted pixel predMip[x][y].
[0314] Figure 47 FIG. is a diagram showing the fixed weight matrix mWeight[i][j] of (M, m) = (0, 0) used in the third generation method.
[0315] Figure 48 FIG. is a diagram showing the fixed weight matrix mWeight[i][j] of (M, m) = (0, 1) used in the third generation method.
[0316] Figure 49 FIG. is a diagram showing the fixed weight matrix mWeight[i][j] of (M, m) = (0, 2) used in the third generation method.
[0317] Figure 50 FIG. is a diagram showing the fixed weight matrix mWeight[i][j] of (M, m) = (0, 3) used in the third generation method.
[0318] Figure 51 FIG. is a diagram showing the fixed weight matrix mWeight[i][j] of (M, m) = (0, 4) used in the third generation method.
[0319] Figure 52 FIG. is a diagram showing the fixed weight matrix mWeight[i][j] of (M, m) = (0, 5) used in the third generation method.
[0320] Figure 53 FIG. is a diagram showing the fixed weight matrix mWeight[i][j] of (M, m) = (0, 6) used in the third generation method.
[0321] Figure 54 FIG. is a diagram showing the fixed weight matrix mWeight[i][j] of (M, m) = (0, 7) used in the third generation method.
[0322] Figure 55 FIG. is a diagram showing the fixed weight matrix mWeight[i][j] of (M, m) = (0, 8) used in the third generation method.
[0323] Figure 56It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 9) used in the third generation method.
[0324] Figure 57 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 10) used in the third generation method.
[0325] Figure 58 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 11) used in the third generation method.
[0326] Figure 59 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 12) used in the third generation method.
[0327] Figure 60 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 13) used in the third generation method.
[0328] Figure 61 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 14) used in the third generation method.
[0329] Figure 62 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 15) used in the third generation method.
[0330] Figure 63 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 16) used in the third generation method.
[0331] Figure 64 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 17) used in the third generation method.
[0332] Figure 65 It is a diagram showing the fixed variable fO with MipSizeId = 0 used in the third generation method.
[0333] Figure 66 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 0) used in the third generation method.
[0334] Figure 67 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 1) used in the third generation method.
[0335] Figure 68 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 2) used in the third generation method.
[0336] Figure 69 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 3) used in the third generation method.
[0337] Figure 70 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 4) used in the third generation method.
[0338] Figure 71 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 5) used in the third generation method.
[0339] Figure 72 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 6) used in the third generation method.
[0340] Figure 73 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 7) used in the third generation method.
[0341] Figure 74 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 8) used in the third generation method.
[0342] Figure 75 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 9) used in the third generation method.
[0343] Figure 76 It is a diagram showing the fixed variable fO with MipSizeId = 1 used in the third generation method.
[0344] Figure 77 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 0) used in the third generation method.
[0345] Figure 78 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 1) used in the third generation method.
[0346] Figure 79It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 2) used in the third generation method.
[0347] Figure 80 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 3) used in the third generation method.
[0348] Figure 81 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 4) used in the third generation method.
[0349] Figure 82 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 5) used in the third generation method.
[0350] Figure 83 It is a diagram showing the fixed variable fO with MipSizeId = 2 used in the third generation method.
[0351] Figure 84 It is a diagram showing the shift amount sW used in the fourth generation method.
[0352] In the fourth generation method, according to the matrix size of the weight matrix mWeight[i][j] indicated by MipSizeId, the shift amount sW is set to a fixed value. That is, in the fourth generation method, for each MipSizeId, the shift amount sW is set to a fixed value. Specifically, when MipSizeId = 0, 1, and 2, the shift amounts sW are set to 6, 7, and 6 respectively.
[0353] Then, similar to the third generation method, in the fourth generation method, the standard weight matrix mWeight[i][j], the fixed weight matrix mWeight[i][j] obtained by changing the standard variable fO, and the fixed variable fO are used such that the fixed predicted pixel predMip[x][y] obtained after setting the shift amount sW to a fixed value is approximately the value of the standard predicted pixel predMip[x][y].
[0354] Figure 85 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 0) used in the fourth generation method.
[0355] Figure 86 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 1) used in the fourth generation method.
[0356] Figure 87It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 2) used in the fourth generation method.
[0357] Figure 88 It is a diagram illustrating the fixed weight matrix mWeight[i][j] with (M, m) = (0, 3) used in the fourth generation method.
[0358] Figure 89 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 4) used in the fourth generation method.
[0359] Figure 90 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 5) used in the fourth generation method.
[0360] Figure 91 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 6) used in the fourth generation method.
[0361] Figure 92 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 7) used in the fourth generation method.
[0362] Figure 93 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 8) used in the fourth generation method.
[0363] Figure 94 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 9) used in the fourth generation method.
[0364] Figure 95 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 10) used in the fourth generation method.
[0365] Figure 96 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 11) used in the fourth generation method.
[0366] Figure 97 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 12) used in the fourth generation method.
[0367] Figure 98It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 13) used in the fourth generation method.
[0368] Figure 99 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 14) used in the fourth generation method.
[0369] Figure 100 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 15) used in the fourth generation method.
[0370] Figure 101 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 16) used in the fourth generation method.
[0371] Figure 102 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (0, 17) used in the fourth generation method.
[0372] Figure 103 It is a diagram showing the fixed variable fO with MipSizeId = 0 used in the fourth generation method.
[0373] Figure 104 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 0) used in the fourth generation method.
[0374] Figure 105 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 1) used in the fourth generation method.
[0375] Figure 106 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 2) used in the fourth generation method.
[0376] Figure 107 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 3) used in the fourth generation method.
[0377] Figure 108 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 4) used in the fourth generation method.
[0378] Figure 109 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 5) used in the fourth generation method.
[0379] Figure 110 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 6) used in the fourth generation method.
[0380] Figure 111 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 7) used in the fourth generation method.
[0381] Figure 112
[0382] Figure 113 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (1, 9) used in the fourth generation method.
[0383] Figure 114 It is a diagram showing the fixed variable fO with MipSizeId = 1 used in the fourth generation method.
[0384] Figure 115 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 0) used in the fourth generation method.
[0385] Figure 116 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 1) used in the fourth generation method.
[0386] Figure 117 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 2) used in the fourth generation method.
[0387] Figure 118 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 3) used in the fourth generation method.
[0388] Figure 119 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 4) used in the fourth generation method.
[0389] Figure 120 It is a diagram showing the fixed weight matrix mWeight[i][j] with (M, m) = (2, 5) used in the fourth generation method.
[0390] Figure 121 This is a diagram showing the fixed variable fO with MipSizeId = 2 used in the fourth generation method.
[0391] <Image processing system applying the present technology>
[0392] Figure 122 This is a block diagram showing a configuration example of an embodiment of an image processing system applying the present technology.
[0393] The image processing system 10 includes an image processing device as an encoder 11 and an image processing device as a decoder 51.
[0394] The encoder 11 encodes the original image to be encoded provided to the encoder 11 and outputs an encoded bitstream obtained by the encoding. The encoded bitstream is provided to the decoder 51 via a recording medium or a transmission medium (not shown).
[0395] The decoder 51 decodes the encoded bitstream provided to it and outputs a decoded image obtained by the decoding.
[0396] <Configuration example of the encoder 11>
[0397] Figure 123 This is a diagram showing Figure 122 the configuration example of the encoder 11.
[0398] Note that in the block diagrams described below, for the purpose of avoiding complication of the diagrams, the description of the lines of the information (data) required for the processing provided to each block is appropriately omitted.
[0399] In Figure 123 the encoder 11 includes an A / D conversion unit 21, a rearrangement buffer 22, a calculation unit 23, an orthogonal transformation unit 24, a quantization unit 25, a reversible coding unit 26, and an accumulation buffer 27. In addition, the encoder 11 includes an inverse quantization unit 28, an inverse orthogonal transformation unit 29, a calculation unit 30, a frame memory 32, a selection unit 33, an intra prediction unit 34, a motion prediction / compensation unit 35, a predicted image selection unit 36, and a rate control unit 37. In addition, the encoder 11 has a deblocking filter 31a, an adaptive offset filter 41, and an adaptive loop filter (ALF) 42.
[0400] The A / D conversion unit 21 A / D converts the original image (encoding target) of an analog signal into a digital signal original image and provides the A / D converted original image to the rearrangement buffer 22 and stores it in the rearrangement buffer 22. Note that when the original image of a digital signal is provided to the encoder 11, the encoder 11 can be configured without providing the A / D conversion unit 21.
[0401] The rearrangement buffer 22 rearranges the frames of the original image from the display order to the encoding (decoding) order according to the group of pictures (GOP), and supplies the frames to the calculation unit 23, the intra prediction unit 34, and the motion prediction / compensation unit 35.
[0402] The calculation unit 23 subtracts the predicted image supplied from the intra prediction unit 34 or the motion prediction / compensation unit 35 via the predicted image selection unit 36 from the original image from the rearrangement buffer 22, and supplies the residual (prediction residual) obtained by the subtraction to the orthogonal transformation unit 24.
[0403] The orthogonal transformation unit 24 performs an orthogonal transformation such as a discrete cosine transformation or a Karhunen-Loève transformation on the residual supplied from the calculation unit 23, and supplies the orthogonal transformation coefficients obtained by the orthogonal transformation to the quantization unit 25.
[0404] The quantization unit 25 quantizes the orthogonal transformation coefficients supplied from the orthogonal transformation unit 24. The quantization unit 25 sets quantization parameters based on the target value of the code amount (code amount target value) supplied from the rate control unit 37, and performs quantization of the orthogonal transformation coefficients. The quantization unit 25 supplies the encoded data, which is the quantized orthogonal transformation coefficients, to the reversible encoding unit 26.
[0405] The reversible encoding unit 26 encodes the quantized orthogonal transformation coefficients, which are the encoded data from the quantization unit 25, by a predetermined reversible encoding method.
[0406] In addition, the reversible encoding unit 26 acquires the encoding information required for decoding by the decoding device 170 from each block among the encoding information related to the predictive encoding in the encoder 11.
[0407] Here, as the encoding information, for example, there are prediction modes of intra prediction or inter prediction, motion information such as motion vectors, code amount target values, quantization parameters, picture types (I, P, B), filter parameters such as the deblocking filter 31a and the adaptive offset filter 41, and the like.
[0408] The prediction mode can be obtained from the intra prediction unit 34 or the motion prediction / compensation unit 35. The motion information can be obtained from the motion prediction / compensation unit 35. The filter parameters of the deblocking filter 31a and the adaptive offset filter 41 can be obtained from the deblocking filter 31a and the adaptive offset filter 41, respectively.
[0409] The reversible coding unit 26 encodes the encoded information by, for example, variable length coding or arithmetic coding (such as context adaptive variable length coding (CAVLC) or context adaptive binary arithmetic coding (CABAC)) or other reversible coding methods, generates an encoded bit stream including (multiplexing) the encoded encoded information and the encoded data from the quantization unit 25, and provides the generated encoded bit stream to the accumulation buffer 27.
[0410] Here, the above calculation unit 23 or the reversible coding unit 26 constitutes a coding unit for coding an image, and the process (procedure) performed by the coding unit is a coding process.
[0411] The accumulation buffer 27 temporarily accumulates the encoded bit stream provided from the reversible coding unit 26. The encoded bit stream stored in the accumulation buffer 27 is read and transmitted at a predetermined timing.
[0412] The encoded data - the orthogonal transform coefficients quantized in the quantization unit 25 - is provided not only to the reversible coding unit 26 but also to the inverse quantization unit 28. The inverse quantization unit 28 inverse-quantizes the quantized orthogonal transform coefficients by a method corresponding to the quantization of the quantization unit 25, and provides the orthogonal transform coefficients obtained by the inverse quantization to the inverse orthogonal transform unit 29.
[0413] The inverse orthogonal transform unit 29 inverse-orthogonally transforms the orthogonal transform coefficients provided from the inverse quantization unit 28 by a method corresponding to the orthogonal transform process of the orthogonal transform unit 24, and provides the residual obtained as a result of the inverse orthogonal transform to the calculation unit 30.
[0414] The calculation unit 30 adds the predicted image provided from the intra prediction unit 34 or the motion prediction / compensation unit 35 via the predicted image selection unit 36 to the residual provided from the inverse orthogonal transform unit 29, thereby obtaining and outputting a decoded image (a part of it) from which the original image is decoded.
[0415] The decoded image output by the calculation unit 30 is provided to the deblocking filter 31a or the frame memory 32.
[0416] The frame memory 32 temporarily stores the decoded image provided from the calculation unit 30 and the decoded image (filtered image) provided from the ALF 42 and to which the deblocking filter 31a, the adaptive offset filter 41, and the ALF 42 are applied. The decoded image stored in the frame memory 32 is provided to the selection unit 33 as a reference image for generating a predicted image at a desired timing.
[0417] The selection unit 33 selects the destination for providing the reference image provided from the frame memory 32. When intra-frame prediction is performed in the intra-frame prediction unit 34, the selection unit 33 provides the reference image provided from the frame memory 32 to the intra-frame prediction unit 34. When inter-frame prediction is performed in the motion prediction / compensation unit 35, the selection unit 33 provides the reference image provided from the frame memory 32 to the motion prediction / compensation unit 35.
[0418] The intra-frame prediction unit 34 performs intra-frame prediction (intra-picture prediction) using the original image provided from the rearrangement buffer 22 and the reference image provided from the frame memory 32 via the selection unit 33. The intra-frame prediction unit 34 selects the prediction mode of the best intra-frame prediction based on a predetermined cost function, and provides the prediction image generated from the reference image in the prediction mode of the best intra-frame prediction to the prediction image selection unit 36. In addition, the intra-frame prediction unit 34 appropriately provides the prediction mode of the intra-frame prediction selected based on the cost function to the reversible coding unit 26 and the like.
[0419] The motion prediction / compensation unit 35 performs motion prediction using the original image provided from the rearrangement buffer 22 and the reference image provided from the frame memory 32 via the selection unit 33. In addition, the motion prediction / compensation unit 35 performs motion compensation according to the motion vector detected by the motion prediction, and generates a prediction image. The motion prediction / compensation unit 35 performs inter-frame prediction in a plurality of pre-prepared prediction modes of inter-frame prediction, and generates a prediction image from the reference image.
[0420] The motion prediction / compensation unit 35 selects the prediction mode of the best inter-frame prediction from a plurality of prediction modes of inter-frame prediction based on a predetermined cost function. In addition, the motion prediction / compensation unit 35 provides the prediction image generated in the prediction mode of the best inter-frame prediction to the prediction image selection unit 36.
[0421] In addition, the motion prediction / compensation unit 35 provides the prediction mode of the best inter-frame prediction selected based on the cost function or motion information to the reversible coding unit 26, where the motion information is a motion vector required for decoding the encoded data encoded in the prediction mode of inter-frame prediction.
[0422] The prediction image selection unit 36 selects the source for providing the prediction image to be provided to the calculation unit 23 and the calculation unit 30 from the intra-frame prediction unit 34 and the motion prediction / compensation unit 35, and selects the prediction image provided from the selected source to the calculation unit 23 and the calculation unit 30.
[0423] The rate control unit 37 controls the rate of the quantization operation of the quantization unit 25 based on the amount of code of the encoded bitstream accumulated in the accumulation buffer 27 so that neither overflow nor underflow occurs. That is, the rate control unit 37 sets the target amount of code of the encoded bitstream and provides the set target amount of code to the quantization unit 25 so that neither overflow nor underflow of the accumulation buffer 27 occurs.
[0424] The deblocking filter 31a applies a deblocking filter to the decoded image from the calculation unit 30 as needed and provides the decoded image (filtered image) to which the deblocking filter has been applied or the decoded image to which the deblocking filter has not been applied to the adaptive offset filter 41.
[0425] The adaptive offset filter 41 applies an adaptive offset filter to the decoded image from the deblocking filter 31a as needed and provides the decoded image (filtered image) to which the adaptive offset filter has been applied or the decoded image to which the adaptive offset filter has not been applied to the ALF 42.
[0426] The ALF 42 applies the ALF to the decoded image from the adaptive offset filter 41 as needed and provides the decoded image to which the ALF has been applied or the decoded image to which the ALF has not been applied to the frame memory 32.
[0427] <Encoding process>
[0428] Figure is a flowchart showing an example of the encoding process of the encoder 11.
[0429] The order of each step of the encoding process shown in is for illustrative purposes, and each step of the actual encoding process is appropriately executed in parallel in a necessary order. This also applies to the processes described later.
[0430] In step S11, in the encoder 11, the A / D conversion unit 21 performs A / D conversion on the original image and provides the A / D converted original image to the rearrangement buffer 22, and then the process proceeds to step S12.
[0431] In step S12, the rearrangement buffer 22 stores the original image from the A / D conversion unit 21, rearranges the original image in the encoding order, and outputs the rearranged original image, and then the process proceeds to step S13.
[0432] In step S13, the intra prediction unit 34 performs intra prediction (intra prediction process), and the process proceeds to step S14. In step S14, the motion prediction / compensation unit 35 performs inter prediction for motion prediction or motion compensation, and then the process proceeds to step S15.
[0433] In the intra prediction of the intra prediction unit 34 and the inter prediction of the motion prediction / compensation unit 35, cost functions for various prediction modes are calculated, and a prediction image is generated.
[0434] In step S15, the prediction image selection unit 36 determines the best prediction mode based on each cost function obtained by the intra prediction unit 34 and the motion prediction / compensation unit 35. Then, the prediction image selection unit 36 selects and outputs the prediction image of the best prediction mode from the prediction image generated by the intra prediction unit 34 and the prediction image generated by the motion prediction / compensation unit 35, and then the process proceeds from step S15 to step S16.
[0435] In step S16, the calculation unit 23 calculates the residual between the target image to be encoded, which is the original image output from the rearrangement buffer 22, and the prediction image output from the prediction image selection unit 36, and supplies the calculated residual to the orthogonal transformation unit 24, and then the process proceeds to step S17.
[0436] In step S17, the orthogonal transformation unit 24 performs orthogonal transformation on the residual from the calculation unit 23, and supplies the obtained orthogonal transformation coefficients to the quantization unit 25, and then the process proceeds to step S18.
[0437] In step S18, the quantization unit 25 quantizes the orthogonal transformation coefficients from the orthogonal transformation unit 24, and supplies the quantization coefficients obtained by quantization to the reversible coding unit 26 and the inverse quantization unit 28, and then the process proceeds to step S19.
[0438] In step S19, the inverse quantization unit 28 inverse quantizes the quantization coefficients from the quantization unit 25, and supplies the obtained orthogonal transformation coefficients to the inverse orthogonal transformation unit 29, and then the process proceeds to step S20. In step S20, the inverse orthogonal transformation unit 29 performs inverse orthogonal transformation on the orthogonal transformation coefficients from the inverse quantization unit 28, and supplies the obtained residual to the calculation unit 30, and then the process proceeds to step S21.
[0439] In step S21, the calculation unit 30 adds the residual from the inverse orthogonal transformation unit 29 to the prediction image output from the prediction image selection unit 36, and generates a decoded image corresponding to the original image, which is the target for calculating the residual by the calculation unit 23. The calculation unit 30 supplies the decoded image to the deblocking filter 31a, and then the process proceeds from step S21 to step S22.
[0440] In step S22, the deblocking filter 31a applies the deblocking filter to the decoded image from the computing unit 30, and provides the resulting filtered image to the adaptive offset filter 41, and then the process proceeds to step S23.
[0441] In step S23, the adaptive offset filter 41 applies the adaptive offset filter to the filtered image from the deblocking filter 31a, and provides the resulting filtered image to the ALF 42, and then the process proceeds to step S24.
[0442] In step S24, the ALF 42 applies the ALF to the filtered image from the adaptive offset filter 41, and provides the resulting filtered image to the frame memory 32, and then the process proceeds to step S25.
[0443] In step S25, the frame memory 32 stores the filtered image provided from the ALF 42, and then the process proceeds to step S26. The filtered image stored in the frame memory 32 is used as a reference image, and a prediction image is generated from the reference image in step S13 or S14.
[0444] In step S26, the reversible coding unit 26 encodes the coded data that is the quantization coefficients from the quantization unit 25, and generates a coded bitstream including the coded data. Further, the reversible coding unit 26 encodes coding information (for example, quantization parameters for quantization in the quantization unit 25, prediction modes obtained by intra prediction in the intra prediction unit 34, prediction modes or motion information obtained by inter prediction in the motion prediction / compensation unit 35, or filter parameters of the deblocking filter 31a and the adaptive offset filter 41) as needed, and includes the encoded information in the coded bitstream.
[0445] Then, the reversible coding unit 26 provides the coded bitstream to the accumulation buffer 27, and then the process proceeds from step S26 to step S27.
[0446] In step S27, the accumulation buffer 27 accumulates the coded bitstream from the reversible coding unit 26, and then the process proceeds to step S28. The coded bitstream accumulated in the accumulation buffer 27 is appropriately read and transmitted.
[0447] In step S28, the rate control unit 37 controls the quantization operation of the quantization unit 25 based on the amount of code (generated amount of code) of the coded bitstream accumulated in the accumulation buffer 27 so that no overflow or underflow occurs, and then the encoding process ends.
[0448] <Configuration example of decoder 51>
[0449] shows Block diagram of a configuration example of the decoder 51.
[0450] In the decoder 51 has an accumulation buffer 61, a reversible decoding unit 62, an inverse quantization unit 63, an inverse orthogonal transformation unit 64, a calculation unit 65, a rearrangement buffer 67, and a D / A conversion unit 68. Further, the decoder 51 has a frame memory 69, a selection unit 70, an intra prediction unit 71, a motion prediction / compensation unit 72, and a selection unit 73. Further, the decoder 51 has a deblocking filter 31b, an adaptive offset filter 81, and an ALF 82.
[0451] The accumulation buffer 61 temporarily accumulates the encoded bitstream transmitted from the encoder 11, and supplies the encoded bitstream to the reversible decoding unit 62 at a predetermined timing.
[0452] The reversible decoding unit 62 receives the encoded bitstream from the accumulation buffer 61, and decodes the received encoded bitstream by a method corresponding to the encoding method of the reversible encoding unit 26 in .
[0453] Then, the reversible decoding unit 62 supplies the quantization coefficients, which are the encoded data included in the decoding result of the encoded bitstream, to the inverse quantization unit 63.
[0454] In addition, the reversible decoding unit 62 has a function of performing parsing. The reversible decoding unit 62 parses the necessary encoded information included in the decoding result of the encoded bitstream, and supplies the encoded information to the intra prediction unit 71, the motion prediction / compensation unit 72, the deblocking filter 31b, the adaptive offset filter 81, and other necessary blocks.
[0455] The inverse quantization unit 63 inverse-quantizes the quantization coefficients, which are the encoded data from the reversible decoding unit 62, by a method corresponding to the quantization method of the quantization unit 25 in , and supplies the orthogonal transformation coefficients obtained by the inverse quantization to the inverse orthogonal transformation unit 64.
[0456] The inverse orthogonal transformation unit 64 inverse-orthogonally transforms the orthogonal transformation coefficients supplied from the inverse quantization unit 63 by a method corresponding to the orthogonal transformation method of the orthogonal transformation unit 24 in , and supplies the resulting residuals to the calculation unit 65.
[0457] In addition to supplying the residuals from the inverse orthogonal transformation unit 64 to the calculation unit 65, a predicted image is also supplied from the intra prediction unit 71 or the motion prediction / compensation unit 72 via the selection unit 73.
[0458] The calculation unit 65 adds the residual from the inverse orthogonal transform unit 64 and the predicted image from the selection unit 73 to generate a decoded image, and supplies the generated decoded image to the deblocking filter 31b.
[0459] Here, the above reversible decoding unit 62 to the calculation unit 65 constitute a decoding unit for decoding an image, and the processing (procedure) performed by the decoding unit is a decoding process.
[0460] The rearrangement buffer 67 temporarily stores the decoded image supplied from the ALF 82, rearranges the arrangement of the frames (pictures) of the decoded image from the encoding (decoding) order to the display order, and supplies the rearranged frames to the D / A conversion unit 68.
[0461] The D / A conversion unit 68 performs D / A conversion on the decoded image supplied from the rearrangement buffer 67, and outputs the D / A converted decoded image to a display (not shown) for display. Note that when the device connected to the decoder 51 accepts an image of a digital signal, the decoder 51 can be configured without providing the D / A conversion unit 68.
[0462] The frame memory 69 temporarily stores the decoded image supplied from the ALF 82. In addition, the frame memory 69 supplies the decoded image to the selection unit 70 as a reference image for generating a predicted image at a predetermined timing or based on an external request such as the intra prediction unit 71 or the motion prediction / compensation unit 72.
[0463] The selection unit 70 selects the destination for supplying the reference image supplied from the frame memory 69. When decoding an image encoded by intra prediction, the selection unit 70 supplies the reference image supplied from the frame memory 69 to the intra prediction unit 71. In addition, when decoding an image encoded by inter prediction, the selection unit 70 supplies the reference image supplied from the frame memory 69 to the motion prediction / compensation unit 72.
[0464] The intra prediction unit 71 performs intra prediction similar to that of the intra prediction unit 34 of using the reference image supplied from the frame memory 69 via the selection unit 70 according to the prediction mode included in the encoded information supplied from the reversible decoding unit 62. Then, the intra prediction unit 71 supplies the predicted image obtained by intra prediction to the selection unit 73.
[0465] with Similar to the motion prediction / compensation unit 35, the motion prediction / compensation unit 72 performs inter-frame prediction according to the prediction mode included in the coded information provided from the reversible decoding unit 62, using the reference image provided from the frame memory 69 via the selection unit 70. When necessary, inter-frame prediction is performed by using the motion information etc. included in the coded information provided from the reversible decoding unit 62.
[0466] The motion prediction / compensation unit 72 provides the prediction image obtained by inter-frame prediction to the selection unit 73.
[0467] The selection unit 73 selects the prediction image provided from the intra-frame prediction unit 71 or the prediction image provided from the motion prediction / compensation unit 72, and provides the prediction image to the calculation unit 65.
[0468] The deblocking filter 31b applies the deblocking filter to the decoded image from the calculation unit 65 according to the filter parameters included in the coded information provided from the reversible decoding unit 62. The deblocking filter 31b provides the decoded image (filtered image) to which the deblocking filter has been applied or the decoded image to which the deblocking filter has not been applied to the adaptive offset filter 81.
[0469] The adaptive offset filter 81 applies the adaptive offset filter to the decoded image from the deblocking filter 31b as needed according to the filter parameters included in the coded information provided from the reversible decoding unit 62. The adaptive offset filter 81 provides the decoded image (filtered image) to which the adaptive offset filter has been applied or the decoded image to which the adaptive offset filter has not been applied to the ALF 82.
[0470] The ALF 82 applies the ALF to the decoded image from the adaptive offset filter 81 as needed, and provides the decoded image to which the ALF has been applied or the decoded image to which the ALF has not been applied to the rearrangement buffer 67 and the frame memory 69.
[0471] <Decoding process>
[0472] is a flowchart showing an example of the decoding process of the decoder 51.
[0473] In step S51, in the decoding process, the accumulation buffer 61 temporarily stores the coded bitstream transmitted from the encoder 11, and provides the stored coded bitstream to the reversible decoding unit 62 when appropriate, and then the process proceeds to step S52.
[0474] In step S52, the reversible decoding unit 62 receives and decodes the coded bitstream provided from the accumulation buffer 61, and provides the quantization coefficient as the coded data included in the decoding result of the coded bitstream to the inverse quantization unit 63.
[0475] In addition, the reversible decoding unit 62 analyzes the coded information included in the decoding result of the coded bitstream. Then, the reversible decoding unit 62 supplies the necessary coded information to the intra prediction unit 71, the motion prediction / compensation unit 72, the deblocking filter 31b, the adaptive offset filter 81, and other necessary blocks.
[0476] Then, the process proceeds from step S52 to step S53, and the intra prediction unit 71 or the motion prediction / compensation unit 72 performs intra prediction or inter prediction (intra prediction process or inter prediction process) to generate a prediction image based on the reference image supplied from the frame memory 69 via the selection unit 70 and the coded information supplied from the reversible decoding unit 62. Then, the intra prediction unit 71 or the motion prediction / compensation unit 72 supplies the prediction image obtained by the intra prediction or the inter prediction to the selection unit 73, and then the process proceeds from step S53 to step S54.
[0477] In step S54, the selection unit 73 selects the prediction image supplied from the intra prediction unit 71 or the motion prediction / compensation unit 72, and supplies the selected prediction image to the calculation unit 65, and then the process proceeds to step S55.
[0478] In step S55, the inverse quantization unit 63 inverse quantizes the quantization coefficients from the reversible decoding unit 62, and supplies the resulting orthogonal transform coefficients to the inverse orthogonal transform unit 64, and then the process proceeds to step S56.
[0479] In step S56, the inverse orthogonal transform unit 64 performs an inverse orthogonal transform on the orthogonal transform coefficients from the inverse quantization unit 63, and supplies the resulting residual to the calculation unit 65, and then the process proceeds to step S57.
[0480] In step S57, the calculation unit 65 generates a decoded image by adding the residual from the inverse orthogonal transform unit 64 to the prediction image from the selection unit 73. Then, the calculation unit 65 supplies the decoded image to the deblocking filter 31b, and then the process proceeds from step S57 to step S58.
[0481] In step S58, the deblocking filter 31b applies the deblocking filter to the decoded image from the calculation unit 65 according to the filter parameters included in the coded information supplied from the reversible decoding unit 62. The deblocking filter 31b supplies the filtered image obtained as a result of applying the deblocking filter to the adaptive offset filter 81, and then the process proceeds from step S58 to step S59.
[0482] In step S59, the adaptive offset filter 81 applies the adaptive offset filter to the filtered image from the deblocking filter 31b according to the filter parameters included in the encoded information provided from the reversible decoding unit 62. The adaptive offset filter 81 provides the filtered image obtained as a result of applying the adaptive offset filter to the ALF 82, and then the process proceeds from step S59 to step S60.
[0483] The ALF 82 applies the ALF to the filtered image from the adaptive offset filter 81, and provides the resulting filtered image to the rearrangement buffer 67 and the frame memory 69, and then the process proceeds to step S61.
[0484] In step S61, the frame memory 69 temporarily stores the filtered image provided from the ALF 82, and then the process proceeds to step S62. The filtered image (decoded image) stored in the frame memory 69 is used as a reference image, and a predicted image is generated based on this reference image by intra prediction or inter prediction in step S53.
[0485] In step S62, the rearrangement buffer 67 rearranges the filtered image provided from the ALF 82 in the display order, and provides the rearranged filtered image to the D / A conversion unit 68, and then the process proceeds to step S63.
[0486] In step S63, the D / A conversion unit 68 performs D / A conversion on the filtered image from the rearrangement buffer 67, and then the process ends the decoding process. The D / A converted filtered image (decoded image) is output and displayed on a display (not shown).
[0487] By the intra prediction unit 34 and the intra prediction unit 71 of
[0488] (Other)
[0489] This technology can be applied to any image encoding / decoding method. That is, as long as it does not conflict with the above-mentioned technology of the present application, the specifications of various processes related to image encoding / decoding, such as transformation (inverse transformation), quantization (inverse quantization), encoding (decoding), and prediction, are arbitrary, so the present technology is not limited to this example. In addition, some of these processes can be omitted as long as they do not conflict with the above-mentioned technology of the present application.
[0490] In addition, in this specification, unless otherwise specified, a "block" (not the block indicating a processing unit) that is a partial area or a processing unit used as an image (picture) indicates any partial area in the picture, and the size, shape, and characteristics of the block are not limited. For example, a "block" includes any partial area (processing unit), such as a transform block (TB), a transform unit (TU), a prediction block (PB), a prediction unit (PU), a minimum coding unit (SCU), a coding unit (CU), a maximum coding unit (LCU), a coding tree block (CTB), a coding tree unit (CTU), a transform block, a sub-block, a macro-block, a tile, or a slice, which are described in References REF 1 to REF 3, etc.
[0491] The data unit in which the above various types of information are set and the data unit for various types of processing are arbitrary and are not limited to the above examples. For example, these types of information or processing can be set for each transform unit (TU), transform block (TB), prediction unit (PU), prediction block (PB), coding unit (CU), maximum coding unit (LCU), sub-block, block, tile, slice, picture, sequence, or component, or the data in these data units can be targeted. Of course, the data unit can be set for each piece of information or processing, and it is not necessary to unify the data units for all information or processing. Note that the storage location of this information is arbitrary, and this information can be stored in the header of the above data unit, the parameter set, etc. In addition, this information can be stored in multiple locations.
[0492] The control information related to the above-mentioned present technology can also be sent from the encoding side to the decoding side. For example, control information (e.g., enabled_flag) can be sent, which controls whether the application of the above-mentioned present technology is allowed (or prohibited). In addition, for example, control information indicating the target of applying the present technology (or the target of not applying the present technology) can be sent. For example, control information specifying the block size (upper limit and lower limit, or both), frame, component, layer, etc. for applying (or allowing or prohibiting) the present technology can be sent.
[0493] In addition, when specifying the size of such a block to which the present technology is applied, not only can the block size be directly specified, but the block size can also be indirectly specified. For example, the block size can be specified using identification data for identifying the size. In addition, for example, the block size can be specified by the ratio or difference from the size of a reference block (e.g., LCU, SCU, etc.). For example, when sending information for specifying the block size as a syntax element or the like, the information for indirectly specifying the size as described above can be used as this information. By doing so, the amount of information can be reduced, and the coding efficiency can be improved. In addition, the specification of the block size also includes the specification of the range of the block size (e.g., the specification of the allowable range of the block size, etc.).
[0494] Note that in this specification, "identification data" is information for identifying multiple states, and includes "flags" and identification data with other names. In addition, "identification data" includes not only information for identifying two states of true (1) or false (0), but also information capable of identifying three or more states. Therefore, the values that the "identification data" can take can be, for example, 2 values of 1 / 0, or 3 values or more. That is, the number of bits constituting the "identification data" is arbitrary and can be 1 bit or multiple bits. In addition, since it is assumed that the identification data includes not only the identification data in the bit stream, but also the difference information of the identification data that becomes the specific reference information in the bit stream, in this specification, the "identification data" includes not only this information, but also the difference information that becomes the reference information.
[0495] In addition, various types of information (such as metadata) about the encoded data (bit stream) can be sent or recorded in any form as long as the information is associated with the encoded data. Here, the term "associated" means, for example, making other data available (linkable) when processing one data. That is, the data associated with each other can be combined into one data or can be separate data. For example, the information associated with the encoded data (image) can be transmitted on a transmission path different from that of the encoded data (image). In addition, for example, the information associated with the encoded data (image) can also be recorded on a recording medium different from the encoded data (image) (or another recording area of the same recording medium). Note that this "association" can be a part of the data, rather than the entire data. For example, an image and the information corresponding to the image can be associated with each other in any unit, such as multiple frames, one frame, or a part within a frame.
[0496] In addition, in this specification, terms such as "synthesis", "multiplexing", "addition", "integration", "including", "storage", "pushing", "putting", and "inserting" mean combining multiple things into one. For example, combining encoded data and metadata into one data, and represent a method of the above-mentioned "association".
[0497] This technology can be implemented in any configuration constituting a device or system. For example, as a processor of a system large-scale integration (LSI), etc., a module using multiple processors, etc., a unit using multiple modules, etc., and a collection with other functions further added to the unit, etc. (that is, a part of the configuration of the device).
[0498] <Description of the computer applying this technology>
[0499] Next, some or all of the above series of processes can be executed by hardware or software. When some or all of the series of processes are executed by software, the program constituting the software is installed on a general-purpose computer or the like.
[0500] It is a block diagram showing a configuration example of an embodiment of a computer on which a program for executing some or all of the above-described series of processes is installed.
[0501] The program can be pre-recorded on a hard disk 905 or a ROM 903 which is a recording medium built in the computer.
[0502] Alternatively, the program can be stored (recorded) in a removable recording medium 911 driven by a drive 909. Such a removable recording medium 911 can be provided as so-called packaged software. Here, examples of the removable recording medium 911 include a floppy disk, a compact disk read-only memory (CD-ROM), a magneto-optical (MO) disk, a digital versatile disk (DVD), a magnetic disk, a semiconductor memory, and the like.
[0503] Note that the program can be not only installed on the computer from the removable recording medium 911 as described above, but also downloaded to the computer via a communication network or a broadcast network and installed on the built-in hard disk 905. That is, for example, the program can be wirelessly transmitted from a download site to the computer via an artificial satellite for digital satellite broadcasting, or can be wiredly transmitted to the computer via a network such as a local area network (LAN) or the Internet.
[0504] The computer has a built-in central processing unit (CPU) 902, and an input / output interface 910 is connected to the CPU 902 via a bus 901.
[0505] When a user inputs a command via the input / output interface 910 by operating an input unit 907 or the like, the CPU 902 executes the program stored in a read-only memory (ROM) 903 accordingly. Alternatively, the CPU 902 loads the program stored in the hard disk 905 into a random access memory (RAM) 904, and executes the loaded program.
[0506] As a result, the CPU 902 executes the processing according to the above-described flowchart or the processing executed according to the configuration of the above-described block diagram. Then, the CPU 902 outputs the processing result from an output unit 906 from a communication unit 908, or sends the processing result from the communication unit 908 via, for example, the input / output interface 910 as needed, and also records the processing result on the hard disk 905.
[0507] Note that the input unit 907 is composed of a keyboard, a mouse, a microphone, and the like. In addition, the output unit 906 is composed of a liquid crystal display (LCD), a speaker, and the like.
[0508] Here, in this specification, the processing performed by a computer according to a program does not necessarily need to be executed in chronological order as described in the flowchart. That is, the processing performed by a computer according to a program also includes processing that is executed in parallel or individually (e.g., parallel processing or processing by an object).
[0509] In addition, a program can be processed by one computer (processor), or can be distributed and processed by multiple computers. In addition, a program can be sent to a remote computer and executed.
[0510] In addition, in this specification, a system refers to a collection of multiple components (devices, modules (parts), etc.), and it does not matter whether all components are in the same housing. Therefore, any one of multiple devices housed in separate housings and connected via a network and one device in which multiple modules are housed in one housing is a system.
[0511] Note that the embodiments of the present technology are not limited to the above embodiments, and various changes can be made without departing from the gist of the present technology.
[0512] For example, the present technology can be configured as cloud computing, in which one function is shared by multiple devices via a network and processed jointly.
[0513] In addition, each step described in the above flowchart can also be not executed by one device, but can also be shared and executed by multiple devices.
[0514] In addition, when one step includes multiple processes, the multiple processes included in one step can be executed by one device, or can be shared and executed by multiple devices.
[0515] In addition, the effects described in this specification are merely examples and are not limited, and other effects can be obtained.
[0516] List of reference numerals
[0517] 10 Image processing system
[0518] 11 Encoder
[0519] 21 A / D conversion unit
[0520] 22 Rearrangement buffer
[0521] 23 Calculation unit
[0522] 24 Orthogonal transformation unit
[0523] 25 Quantization unit
[0524] 26 Reversible coding unit
[0525] 27 Cumulative buffer
[0526] 28 Inverse quantization unit
[0527] 29 Inverse orthogonal transform unit
[0528] 30 Calculation unit
[0529] 31a, 31b Deblocking filter
[0530] 32 Frame memory
[0531] 33 Selection unit
[0532] 34 Intra prediction unit
[0533] 35 Motion prediction / compensation unit
[0534] 36 Predicted image selection unit
[0535] 37 Rate control unit
[0536] 41 Adaptive offset filter
[0537] 42 ALF
[0538] 51 Decoder
[0539] 61 Cumulative buffer
[0540] 62 Reversible decoding unit
[0541] 63 Inverse quantization unit
[0542] 64 Inverse orthogonal transform unit
[0543] 65 Calculation unit
[0544] 67 Rearrangement buffer
[0545] 68 D / A conversion unit
[0546] 69 Frame memory
[0547] 70 Selection unit
[0548] 71 Intra prediction unit
[0549] 72 Motion prediction / compensation unit
[0550] 73 Selection unit
[0551] 81 Adaptive offset filter
[0552] 82 ALF
[0553] 901 Bus
[0554] 902 CPU
[0555] 903 ROM
[0556] 904 RAM
[0557] 905 Hard disk
[0558] 906 Output unit
[0559] 907 Input unit
[0560] 908 Communication unit
[0561] 909 Driver
[0562] 910 Input / Output interface
[0563] 911 Removable recording medium
Claims
1. An image processing apparatus, comprising: An intra prediction unit configured to perform matrix intra prediction, which is an intra prediction using matrix operations, on a current prediction block to be encoded, using a shift amount set to a fixed value to perform the matrix intra prediction to generate a predicted image of the current prediction block, where the fixed value is a fixed value independent of the mode of the matrix intra prediction; And An encoding unit configured to encode the current prediction block using the predicted image generated by the intra prediction unit.
2. The image processing apparatus according to claim 1, wherein, The intra prediction unit performs the matrix intra prediction based on an operation that changes according to the shift amount set to the fixed value.
3. The image processing apparatus according to claim 2, wherein, The intra prediction unit performs the matrix intra prediction based on an operation including a weight matrix that changes according to the shift amount set to the fixed value.
4. The image processing apparatus according to claim 3, wherein, The intra prediction unit performs the matrix intra prediction based on an operation including a bias vector or a variable fO that changes according to the shift amount set to the fixed value.
5. The image processing apparatus according to claim 2, wherein, The fixed value is a value set according to the matrix size used in the matrix intra prediction.
6. The image processing apparatus according to claim 5, wherein, The fixed value is a fixed value set for each identifier of the matrix size used in the matrix intra prediction.
7. The image processing apparatus according to claim 6, wherein, When the value of the identifier of the matrix size is 0, the fixed value is 6.
8. The image processing apparatus according to claim 6, wherein, When the value of the identifier of the matrix size is 1, the fixed value is 7.
9. The image processing apparatus according to claim 6, wherein, When the value of the identifier of the matrix size is 2, the fixed value is 6.
10. The image processing apparatus according to claim 2, wherein, The fixed value is 6.
11. The image processing apparatus according to claim 2, wherein, The fixed value is 8.
12. An image processing method, comprising: Intra prediction processing: When performing matrix intra prediction, which is an intra prediction using matrix operations, on a current prediction block to be encoded, use a shift amount set to a fixed value to perform the matrix intra prediction to generate a predicted image of the current prediction block, where the fixed value is a fixed value independent of the mode of the matrix intra prediction; and Encoding processing: Encode the current prediction block using the predicted image generated in the intra prediction processing.
13. An image processing apparatus, comprising: An intra prediction unit configured to perform matrix intra prediction, which is an intra prediction using matrix operations, on a current prediction block to be decoded, using a shift amount set to a fixed value to perform the matrix intra prediction to generate a predicted image of the current prediction block, where the fixed value is a fixed value independent of the mode of the matrix intra prediction; And A decoding unit configured to decode the current prediction block using the predicted image generated by the intra prediction unit.
14. An image processing method, comprising: Intra prediction processing: When performing matrix intra prediction, which is an intra prediction using matrix operations, on a current prediction block to be decoded, use a shift amount set to a fixed value to perform the matrix intra prediction to generate a predicted image of the current prediction block, where the fixed value is a fixed value independent of the mode of the matrix intra prediction; And Decoding processing: Decode the current prediction block using the predicted image generated in the intra prediction processing.