Image processing device and image processing method
By using a fixed shift amount in matrix intra prediction, the complexity of setting shift amounts for each combination of MIP mode numbers and matrix sizes is eliminated, simplifying the processing and improving efficiency in both hardware and software implementations.
Patent Information
- Application Number
- JP2024093616
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-06-25
- Filing Date
- 2024-06-10
- Publication Date
- 2025-04-22
- Estimated Expiration
- 2040-06-08
AI Technical Summary
The complexity in setting shift amounts for matrix intra prediction (MIP) operations in image processing, which increases processing complexity and requires specific settings for each combination of MIP mode numbers and matrix sizes.
Implementing an image processing device and method that performs matrix intra prediction using a fixed shift amount, independent of the MIP mode, thereby simplifying the processing and eliminating the need for specific settings for each combination of MIP mode numbers and matrix sizes.
This approach simplifies the MIP processing by using a fixed shift amount, reducing the complexity and circuit scale in hardware implementations and improving processing speed in software implementations.
Smart Images

Figure 0007666711000001 
Figure 0007666711000002 
Figure 0007666711000003
Abstract
Description
[Technical field]
[0001] The present technology relates to an image processing device and an image processing method, and more particularly to an image processing device and an image processing method that, for example, enable processing to be simplified. [Background technology]
[0002] The Joint Video Experts Team (JVET), a joint standardization organization of ITU-T and ISO / IEC, is currently working on standardizing Versatile Video Coding (VVC), a next-generation image coding method, with the aim of further improving coding efficiency over H.265 / HEVC.
[0003] In the standardization work of VVC, it has been proposed to perform matrix-based intra prediction (MIP), which is intra prediction using a matrix operation, on a prediction block (see, for example, Non-Patent Documents 1 and 2).
[0004] In MIP, the parameters of the matrix (weight matrix) and bias (bias vector) obtained by parameter learning are specified, and calculations are performed using the matrix and bias (parameters). [Prior art documents] [Non-patent literature]
[0005] [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) [Non-Patent Document 2] JVET-00084-vl: 8-bit implementation and simplification of MIP (version 1 - date 2019-06-18) Summary of the Invention [Problem to be solved by the invention]
[0006] In MIP calculations (calculation performed in MIP), a shift is performed by a predetermined shift amount. The shift amount is changed according to MipSizeId, which indicates the matrix size of the matrix, and the MIP mode number in order to increase bit precision.
[0007] As described above, in MIP calculations, the shift amount changes depending on MipSizeId and the MIP mode number, so the shift amount must be set for each combination of MipSizeId and MIP mode number, making the processing complicated.
[0008] The present technology has been made in view of such circumstances, and is intended to simplify the processing. [Means for solving the problem]
[0009] The first image processing device of the present technology performs matrix intra prediction, which is intra prediction using a matrix operation, on a current prediction block to be encoded. a setting unit that sets identification data for identifying whether or not the matrix intra-prediction is to be performed; and when the identification data set by the setting unit indicates that the matrix intra-prediction is to be performed, the setting unit sets the matrix intra-prediction regardless of the mode of the intra-prediction using the matrix operation. an intra prediction unit that performs the matrix intra prediction using a shift amount set to a fixed value and generates a predicted image of the current prediction block; and encoding the current prediction block using the predicted image generated by the intra prediction unit. and generating a bit stream including the identification data set by the setting unit. and an encoding unit for encoding the image.
[0010] A first image processing method of the present technology performs matrix intra prediction, which is intra prediction using a matrix operation, on a current prediction block to be encoded. and when the identification data indicates that the matrix intra prediction is to be performed, regardless of the mode of intra prediction using a matrix operation.The matrix intra prediction is performed using the shift amount set to a fixed value to generate a predicted image of the current prediction block. thing and, before The current prediction block is encoded using the prediction image. and generating a bit stream including the identification data set by the setting unit. and a method for processing an image comprising the steps of:
[0011] In the first image processing device and image processing method of the present technology, a matrix intra prediction, which is an intra prediction using a matrix operation, is performed on a current prediction block to be encoded. When the identification data indicates that the matrix intra prediction is to be performed, the matrix intra prediction is performed regardless of the mode of the intra prediction using the matrix operation. The matrix intra prediction is performed using the shift amount set to a fixed value, and a predicted image of the current prediction block is generated. Then, the current prediction block is coded using the predicted image. A bit stream including the identification data is generated. .
[0012] The second image processing device of the present technology performs matrix intra prediction, which is intra prediction using a matrix operation, on a current prediction block to be decoded. a parsing unit that parses identification data from a bitstream including identification data that identifies that the matrix intra prediction is to be performed; and when the identification data parsed by the parsing unit indicates that the matrix intra prediction is to be performed, An image processing device comprising an intra prediction unit that performs the matrix intra prediction using a shift amount set to a fixed value and generates a predicted image of the current prediction block, and a decoding unit that decodes the current prediction block using the predicted image generated by the intra prediction unit.
[0013] A second image processing method of the present technology performs matrix intra prediction, which is intra prediction using a matrix operation, on a current prediction block to be decoded. parsing the identification data from a bitstream including the identification data for identifying that the matrix intra prediction is to be performed; and when the identification data indicates that the matrix intra prediction is to be performed, The matrix intra prediction is performed using the shift amount set to a fixed value to generate a predicted image of the current prediction block. thing and, before The current prediction block is decoded using the predicted image. thing and a method for processing an image comprising the steps of:
[0014] In the second image processing device and image processing method of the present technology, a matrix intra prediction, which is an intra prediction using a matrix operation, is performed on a current prediction block to be decoded. The identification data is parsed from a bitstream including the identification data for identifying that the matrix intra prediction is to be performed, and when the identification data indicates that the matrix intra prediction is to be performed, the matrix intra prediction is performed regardless of the mode of the matrix intra prediction. The matrix intra prediction is performed using the shift amount set to a fixed value to generate a predicted image of the current prediction block, and the current prediction block is decoded using the predicted image.
[0015] The image processing device may be an independent device or an internal block constituting a single device.
[0016] The image processing device can be realized by causing a computer to execute a program. The program can be provided by being recorded on a recording medium or transmitted via a transmission medium. [Brief description of the drawings]
[0017] [Figure 1] FIG. 2 is a diagram illustrating a first method for generating a predicted image of an MIP. [Diagram 2] FIG. 11 is a diagram illustrating a second method for generating a predicted image of an MIP. [Diagram 3] FIG. 13 is a diagram showing an example of a weight matrix mWeight[i][j] for (M, m)=(1, 3). [Figure 4] FIG. 13 is a diagram showing an example of a weight matrix mWeight[i][j] for (M, m)=(1, 8). [Diagram 5] FIG. 13 is a diagram illustrating an example of a bias vector vBias[j] for MipSizeId=1. [Figure 6] FIG. 11 is a diagram illustrating a third method for generating a MIP predicted image. [Figure 7] FIG. 11 is a diagram illustrating a fourth method for generating a MIP predicted image. [Figure 8] FIG. 13 is a diagram showing the shift amount sW described in document A. [Figure 9] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 0) described in document A. [Figure 10]FIG. 1 is a diagram showing a standard weight matrix mWeight[i][j] of (M, m)=(0, 1) described in document A. [Figure 11] FIG. 1 is a diagram showing a standard weight matrix mWeight[i][j] of (M, m)=(0, 2) described in document A. [Figure 12] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 3) described in document A. [Figure 13] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 4) described in document A. [Figure 14] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 5) described in document A. [Figure 15] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 6) described in document A. [Figure 16] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 7) described in document A. [Figure 17] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 8) described in document A. [Figure 18] FIG. 1 is a diagram showing a standard weight matrix mWeight[i][j] of (M, m)=(0, 9) described in document A. [Figure 19] FIG. 1 is a diagram showing a standard weight matrix mWeight[i][j] of (M, m)=(0, 10) described in document A. [Figure 20] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 11) described in document A. [Figure 21] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 12) described in document A. [Figure 22]FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 13) described in document A. [Diagram 23] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 14) described in document A. [Figure 24] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 15) described in document A. [Diagram 25] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 16) described in document A. [Figure 26] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 17) described in document A. [Figure 27] FIG. 13 is a diagram showing the standard variable fO for MipSizeId=0 described in document A. [Figure 28] FIG. 1 is a diagram showing a standard weight matrix mWeight[i][j] of (M, m)=(1, 0) described in document A. [Figure 29] FIG. 1 is a diagram showing a standard weight matrix mWeight[i][j] of (M, m)=(1, 1) described in document A. [Diagram 30] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 2) described in document A. [Diagram 31] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 3) described in document A. [Diagram 32] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 4) described in document A. [Diagram 33] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 5) described in document A. [Diagram 34]FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 6) described in document A. [Diagram 35] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 7) described in document A. [Diagram 36] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 8) described in document A. [Figure 37] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 9) described in document A. [Figure 38] FIG. 13 is a diagram showing the standard variable fO for MipSizeId=1 described in document A. [Figure 39] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(2, 0) described in document A. [Diagram 40] FIG. 1 is a diagram showing a standard weight matrix mWeight[i][j] of (M, m)=(2, 1) described in document A. [Diagram 41] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(2, 2) described in document A. [Diagram 42] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(2, 3) described in document A. [Diagram 43] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(2, 4) described in document A. [Diagram 44] FIG. 1 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(2, 5) described in document A. [Diagram 45] FIG. 13 is a diagram showing the standard variable fO for MipSizeId=2 described in document A. [Diagram 46] FIG. 13 is a diagram showing a shift amount sW used in a third generation method. [Figure 47]FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 0) used in the third generation method. [Figure 48] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 1) is used in the third generation method. [Figure 49] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 2) is used in the third generation method. [Figure 50] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 3) used in the third generation method. [Figure 51] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 4) used in the third generation method. [Figure 52] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 5) used in the third generation method. [Figure 53] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 6) used in the third generation method. [Figure 54] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 7) used in the third generation method. [Figure 55] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 8) used in the third generation method. [Figure 56] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 9) used in the third generation method. [Figure 57] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 10) used in the third generation method. [Figure 58] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 11) used in the third generation method. [Figure 59]FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 12) used in the third generation method. [Figure 60] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 13) used in the third generation method. [Figure 61] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 14) used in the third generation method. [Figure 62] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 15) used in the third generation method. [Figure 63] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 16) used in the third generation method. [Figure 64] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 17) used in the third generation method. [Figure 65] FIG. 13 is a diagram showing a fixed variable fO for MipSizeId=0 used in the third generation method. [Figure 66] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(1, 0) used in the third generation method. [Figure 67] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 1) used in the third generation method. [Figure 68] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 2) used in the third generation method. [Figure 69] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 3) used in the third generation method. [Figure 70] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 4) used in the third generation method. [Figure 71]FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(1, 5) used in the third generation method. [Figure 72] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 6) used in the third generation method. [Figure 73] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 7) used in the third generation method. [Figure 74] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(1, 8) used in the third generation method. [Figure 75] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 9) used in the third generation method. [Figure 76] FIG. 13 is a diagram showing a fixed variable fO for MipSizeId=1 used in the third generation method. [Figure 77] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 0) used in the third generation method. [Figure 78] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 1) used in the third generation method. [Figure 79] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 2) used in the third generation method. [Figure 80] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 3) used in the third generation method. [Figure 81] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 4) used in the third generation method. [Figure 82] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(2, 5) used in the third generation method. [Figure 83]FIG. 13 is a diagram showing a fixed variable fO for MipSizeId=2 used in the third generation method. [Figure 84] FIG. 13 is a diagram showing a shift amount sW used in a fourth generation method. [Figure 85] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 0) used in the fourth generation method. [Figure 86] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 1) is used in the fourth generation method. [Figure 87] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 2) used in the fourth generation method. [Figure 88] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 3) used in the fourth generation method. [Figure 89] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 4) used in the fourth generation method. [Figure 90] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 5) used in the fourth generation method. [Figure 91] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 6) used in the fourth generation method. [Figure 92] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 7) used in the fourth generation method. [Figure 93] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 8) used in the fourth generation method. [Figure 94] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 9) used in the fourth generation method. [Figure 95]FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 10) used in the fourth generation method. [Figure 96] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 11) used in the fourth generation method. [Figure 97] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 12) used in the fourth generation method. [Figure 98] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 13) used in the fourth generation method. [Figure 99] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 14) used in the fourth generation method. [Figure 100] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 15) used in the fourth generation method. [Figure 101] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 16) used in the fourth generation method. [Figure 102] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 17) used in the fourth generation method. [Figure 103] FIG. 13 is a diagram showing a fixed variable fO for MipSizeId=0 used in the fourth generation method. [Figure 104] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(1, 0) used in the fourth generation method. [Figure 105] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 1) used in the fourth generation method. [Fig. 106] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 2) used in the fourth generation method. [Figure 107]FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 3) used in the fourth generation method. [Figure 108] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 4) used in the fourth generation method. [Fig. 109] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 5) used in the fourth generation method. [Figure 110] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 6) used in the fourth generation method. [Figure 111] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 7) used in the fourth generation method. [Figure 112] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 8) used in the fourth generation method. [Figure 113] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 9) used in the fourth generation method. [Fig. 114] FIG. 13 is a diagram showing a fixed variable fO for MipSizeId=1 used in the fourth generation method. [Figure 115] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 0) used in the fourth generation method. [Fig. 116] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 1) used in the fourth generation method. [Figure 117] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 2) used in the fourth generation method. [Figure 118] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 3) used in the fourth generation method. [Figure 119]FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(2, 4) used in the fourth generation method. [Figure 120] FIG. 13 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(2, 5) used in the fourth generation method. [Figure 121] FIG. 13 is a diagram showing a fixed variable fO for MipSizeId=2 used in the fourth generation method. [Figure 122] 1 is a block diagram showing an example of the configuration of an embodiment of an image processing system to which the present technology is applied. [Figure 123] 2 is a block diagram showing an example of the configuration of an encoder 11. FIG. [Figure 124] 4 is a flowchart illustrating an example of an encoding process of the encoder 11. [Fig. 125] 2 is a block diagram showing a detailed configuration example of a decoder 51. FIG. [Fig. 126] 13 is a flowchart illustrating an example of a decoding process of a decoder 51. [Figure 127] 1 is a block diagram showing an example of the configuration of an embodiment of a computer to which the present technology is applied. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0018] <References>
[0019] The scope of disclosure in this specification is not limited to the contents of the embodiments, and the contents of the following reference documents REF1-REF7, which were publicly known at the time of filing, are also incorporated by reference into this specification. In other words, the contents described in the following reference documents REF1-REF7 are also the basis for determining the support requirements. For example, even if the Quad-Tree Block Structure, QTBT (Quad Tree Plus Binary Tree) Block Structure, and MTT (Multi-type Tree) Block Structure are not directly defined in the detailed description of the invention, they are within the scope of this disclosure and meet the support requirements of the claims. Similarly, for example, technical terms such as parsing, syntax, and semantics are also within the scope of this disclosure and meet the support requirements of the claims, even if they are not directly defined in the detailed description of the invention.
[0020] REF1: Recommendation ITU-T H.264 (04 / 2017) “Advanced video coding for generic audiovisual services”, April 2017 REF2: Recommendation ITU-T H.265 (02 / 2018) “High efficiency video coding”, February 2018 REF3: Benjamin Bross, Jianle Chen, Shan Liu, Versatile Video Coding (Draft 5), JVET-N1001-v7 (version 7 - date 2019-05-29) REF4: Jianle Chen, Yan Ye, Seung Hwan Kim, Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5), JVET- N1002-v1 REF5: JVET-N0217-v3: CE3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2) (version 7 - date 2019-01-17) REF6: JVET-M0043-v2: CE3: Affine linear weighted intra prediction (test 1.2.1, test 1.2.2) (version 2 - date 2019-01-09) REF7: JVET-O0084-vl: 8-bit implementation and simplification of MIP (version 1 - date 2019-06-18)
[0021] <Definition>
[0022] Adjacent, in terms of pixels, includes not only one pixel (one line) adjacent to the current pixel of interest, but also multiple pixels (multiple lines) adjacent. Therefore, adjacent pixels include pixels one pixel away from the current pixel, as well as pixels multiple pixels away from the current pixel. Adjacent blocks include blocks one block away from the current block of interest, as well as blocks multiple blocks away from the current block. Adjacent blocks can also include blocks located near the current block, as necessary.
[0023] The prediction block means a block (PU (Prediction Unit)) that is a processing unit when performing intra prediction, and also includes sub-blocks in the prediction block. When the prediction block, the orthogonal transform block (TU (Transform Unit)) that is a processing unit when performing orthogonal transform, and the coding block (CU (Coding Unit)) that is a processing unit when performing coding are unified into the same block, the prediction block, the orthogonal transform block, and the coding block mean the same block.
[0024] The intra-prediction mode collectively refers to variables (parameters) referenced when deriving the intra-prediction mode, such as the mode number when performing intra-prediction, the index of the mode number, the block size of the predicted block, and the size of the sub-block that is the processing unit within the predicted block.
[0025] The matrix intra-prediction mode (MIP mode) collectively refers to variables (parameters) referenced when deriving the matrix intra-prediction mode, such as the MIP mode number, the mode number index, the type of matrix used when performing the MIP calculation, and the type of matrix size of the matrix used when performing the MIP calculation.
[0026] "Modify" means to make a change based on the contents (values, arithmetic expressions, variables, etc.) described in reference documents REF3 or REF7. "Modify" can also include making a change based on the contents described in other documents that are publicly known at the time of filing, such as the document "JVET-N1001-v7_proposal_text_MIP_8Bit.docx" (hereinafter also referred to as Document A) published on the "JVET DOCUMENT MANAGEMENT SYSTEM" website (http: / / phenix.int-evry.fr / jvet / ).
[0027] For example, in reference document REF3, the shift amount sW used in the MIP calculation is a mixture of 8 and 9, but changes include changing the mixed shift amount sW from 9 to 8, changing the MIP calculation including the weight matrix mWeight (matrix calculation), changing the MIP calculation including the bias vector vBias, etc.
[0028] Also, for example, in document A (reference document REF7), the shift amount sW is a mixture of 6, 7, and 8, but the changes include changing 7 of the mixed shift amount sW to 6, changing 8 to 7, changing the MIP calculation including the weight matrix mWeight, changing the MIP calculation including the variable oW equivalent to the bias vector vBias, etc. Changes in the MIP calculation include changing the weight matrix mWeight, bias vector vBias, and variable fO used to find the variable oW used in the MIP calculation, etc.
[0029] In the present technology, identification data for identifying a plurality of patterns can be set as syntax of a bit stream obtained by encoding an image. The bit stream can include identification data for identifying various patterns.
[0030] As the identification data, for example, information regarding the shift amount sW, for example, data indicating whether the shift amount sW is a fixed value (is set to a fixed value), etc., can be adopted.
[0031] When identification data is included in a bitstream, a decoder that decodes the bitstream can perform processing more efficiently by parsing and referencing the identification data.
[0032] FIG. 1 is a diagram illustrating a first method for generating a predicted image of an MIP.
[0033] The first generation method is a method of generating a predicted image of MIP proposed in reference document REF3 (JVET-N1001-v7).
[0034] In the first generation method, (a part of) pixels (pixel values) predMip[x][y] of a predicted image of a current predicted block, which is a predicted block to be encoded / decoded, are generated according to equation (1) described as equation (8-69) in reference REF3.
[0035] predMip[ x ][ y ] = ((ΣmWeight[ i ][ y*incH*predC+x*incW ]*p[ i ] ) + ( vBias[ y * incH * predC + x * incW ] << sB ) + oW ) >> sW (1)
[0036] predMip[x][y] represents the pixel (the pixel value) at horizontal position x and vertical position y in the predicted image. A pixel in the predicted image is also called a predicted pixel.
[0037] In formula (1), summation Σ represents summation obtained while changing variable i to an integer from 0 to 2*boundarySize-1. boundarySize is set according to the block size of the current prediction block. Specifically, boundarySize is set according to Table 8-7 of reference document REF3 according to MipSizeId, which is an identifier of the matrix size of a matrix (weight matrix mWeight[i][j]) used in an operation (matrix operation) with pixels of the current prediction block in MIP. MipSizeId is set to 0, 1, and 2 when the matrix size is 4x4, 8x8, and 16x16, respectively.
[0038] mWeight[i][j] represents the component of the jth row and ith 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.
[0039] The number of values taken by the arguments i and j of the weight matrix mWeight[i][j] is equal to the number of pixels obtained by averaging in reference REF5 and the number of pixels predMip[x][y] of the predicted image, respectively.
[0040] In addition, the multiplication and accumulation operation ΣmWeight[ i ][ y*incH*predC+x*incW ]*p[ i ] performed using the weight matrix mWeight[ i ][ j ] is a matrix operation performed on the current prediction block (pixels) in MIP. That is, the multiplication and accumulation operation ΣmWeight[ i ][ y*incH*predC+x*incW ]*p[ i ] is a matrix operation that obtains the product of a matrix having the weight matrix mWeight[ i ][ j ] as a component and a vector having the pixel p[ i ] of the current prediction block as a component.
[0041] modeId is set to one of values 0 to 17 according to the intra prediction mode predModeIntra, in accordance with equation (8-64) of reference REF3.
[0042] incH and incW are set according to PredC according to equations (8-67) and (8-68) in reference REF3, respectively.
[0043] PredC is set according to Table 8-7 in REF3 depending on MipSizeId.
[0044] p[i] represents the i-th pixel (its pixel value) obtained by averaging using pixels of a reference image that is referred to when generating a predicted image of the current predicted block.
[0045] vBias[j] is a bias added to the pixel predMip[x][y] of the predicted image, and is called a bias vector. The bias vector vBias[j] is set according to sizeId and modeId. The number of values that the argument j of the bias vector vBias[j] takes is equal to the number of values that the argument j of the weight matrix mWeight[i][j] takes, that is, the number of pixels predMip[x][y] of the predicted image.
[0046] The sizeId is described in Table 8-2 of reference REF3 as taking the values 0, 1, or 2.
[0047] sB is set according to the number of bits bitdpthY representing the pixel value, in accordance with Equation (8-66) of Reference REF3.
[0048] oW is set according to sW (Weight shift), in accordance with Equation (8-65) of Reference REF3.
[0049] sW is set according to MipSizeId and modeId, in accordance with Table 8-8 of Reference REF3.
[0050] Note that A <> B respectively represent shifting A by B bits to the left and to the right.
[0051] In the first generation method, sW is the amount of shift for shifting ((ΣmWeight[ i ][ y*incH*predC+x*incW ]*p[ i ] ) + ( vBias[ y * incH * predC + x * incW ] << sB ) + oW).
[0052] According to Table 8-8 of Reference REF3, as shown in FIG. 1, the shift amount sW is set to either 8 or 9 according to MipSizeId and modeId.
[0053] Therefore, in the first generation method, 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 the MIP becomes complicated.
[0054] For example, when implementing the first generation method in hardware, a selector for switching the shift amount sW is required, and the circuit scale increases. Also, when implementing the first generation method in software, it is necessary to refer to the table defined as Table 8-8 of Reference REF3, and accordingly, the processing speed decreases.
[0055] Therefore, in the present technology, MIP is performed using a shift amount set to a fixed value. That is, for example, the calculation of Equation (1) is changed according to the shift amount sW set to a fixed value, and a predicted image of MIP is generated according to the changed calculation.
[0056] FIG. 2 is a diagram illustrating a second method for generating a predicted image of an MIP.
[0057] In the second generation method, the shift amount sW in equation (1) for generating a MIP predicted image proposed in reference document REF3 (JVET-N1001-v7) is set to a fixed value, for example, 8. In the second generation method, the calculation of equation (1) is changed according to the shift amount sW=8, which is set to the fixed value 8, and the MIP predicted image is generated according to the changed calculation.
[0058] Specifically, in the second generation method, the weight matrix mWeight[i][j] and / or the bias vector vBias[j] are changed according to a shift amount sW=8 that is set to a fixed value, and a MIP predicted image is generated according to a calculation including the changed weight matrix mWeight[i][j] and / or the bias vector vBias[j].
[0059] Here, a combination of MipSizeId and modeId is represented as (M, m), where M represents MipSizeId and m represents modeId.
[0060] In addition, the predicted pixel predMip[x][y] obtained before the shift amount sW is set to a fixed value, i.e., in Figure 2, the predicted pixel predMip[x][y] (of the MIP predicted image) obtained according to reference REF3, i.e., the predicted pixel predMip[x][y] obtained when (M,m)=(1,3) and (M,m)=(1,8) and the shift amount sW is 8, will also be referred to as the standard predicted pixel predMip[x][y].
[0061] In Table 8-8 of reference REF3, when (M,m)=(1,3) and (M,m)=(1,8), the shift amount sW is 9, and for other combinations of MipSizeId and modeId, the shift amount sW is 8. Therefore, by changing the shift amount sW for (M,m)=(1,3) and (M,m)=(1,8) from 9 to 8 in Table 8-8 of reference REF3, it is possible to fix the shift amount sW to 8 for each combination of MipSizeId and modeId.
[0062] In the second generation method, the shift amount sW of (M, m)=(1, 3) and (M, m)=(1, 8) is changed from 9 to 8, and the shift amount sW is fixed to 8 for each combination of MipSizeId and modeId. Then, the weight matrix mWeight[i][j] and bias vector vBias[j] of (M, m)=(1, 3) and (M, m)=(1, 8) are changed according to the shift amount sW=8 so that the predicted pixel obtained after setting the shift amount sW to a fixed value (hereinafter also referred to as a fixed predicted pixel), here, the predicted pixel predMip[x][y] obtained according to equation (1) when the shift amount sW of (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].
[0063] In the second generation method, a MIP predicted image is generated according to the calculation of equation (1) including the weight matrix mWeight[i][j] and the bias vector vBias[j], which are changed according to the shift amount sW=8, which is set to a fixed value as described above.
[0064] Therefore, in the second generation method, the shift amount sW is fixed regardless of the modeId, and further regardless of the combination of MipSizeId and modeId, so the MIP processing can be simplified. As a result, it becomes unnecessary to specify the table specified as Table 8-8 in the reference document REF3 in the standard, and the standard can be simplified.
[0065] Also, for example, when the second generation method is implemented by hardware, a selector for switching the shift amount sW is not required, and an increase in the circuit size can be suppressed. Furthermore, when the second generation method is implemented by software, there is no need to refer to the table defined as Table 8-8 in Reference REF3, and a decrease in processing speed can be suppressed compared to when a table is referred to.
[0066] FIG. 3 is a diagram showing an example of a weight matrix mWeight[i][j] for (M, m)=(1, 3).
[0067] Here, the weight matrix mWeight[i][j] before the shift amount sW is set to a fixed value, for example, the weight matrix mWeight[i][j] for (M,m)=(1,3) when the shift amount sW for (M,m)=(1,3) is 9 as specified in reference document REF3, is also referred to as the standard weight matrix mWeight[i][j] for (M,m)=(1,3). Also, the weight matrix mWeight[i][j] after the shift amount sW is set to a fixed value, for example, the weight matrix mWeight[i][j] obtained by changing the standard weight matrix mWeight[i][j] for (M,m)=(1,3) used in equation (1) when the shift amount sW for (M,m)=(1,3) is changed to 8, is also referred to as the fixed weight matrix mWeight[i][j] for (M,m)=(1,3).
[0068] FIG. 3A shows a standard weight matrix mWeight[i][j] for (M,m)=(1,3), and FIG. 3B shows an example of a fixed weight matrix mWeight[i][j] for (M,m)=(1,3).
[0069] In FIG. 3, the (i+1)th value from the left and the (j+1)th value from the top represents the weight matrix mWeight[i][j].
[0070] In Fig. 3, the fixed weight matrix mWeight[i][j] (Fig. 3B) for (M,m)=(1,3) is changed to about half the standard weight matrix mWeight[i][j] (Fig. 3A) for (M,m)=(1,3). This is because the shift amount sW to the right in equation (8-69) of reference REF3 is changed (fixed) from 9 to 8.
[0071] It should be noted that the fixed weight matrix mWeight[i][j] of (M,m)=(1,3) is not limited to the values shown in FIG.
[0072] The fixed weight matrix mWeight[i][j] of (M,m)=(1,3) is calculated using the shift amount sW set as a fixed value, and can be changed as appropriate within a range in which the technical effect is appropriately achieved. In addition, since the range in which the technical effect is achieved also changes depending on the approximation level set, it can be changed as appropriate within that range. For example, it can be changed within the range of 1 or 3. Furthermore, it is possible to change only some of the values, rather than changing all the values uniformly. It is also possible to change the range of values to be changed individually for existing values.
[0073] That is, for example, the fixed weight matrix mWeight[i][j] of (M, m) = (1, 3) can be appropriately changed within a range that appropriately achieves a technical effect such as ensuring a predetermined prediction accuracy or higher for the predicted image when the calculation of equation (1) is performed using a shift amount sW set to a fixed value.
[0074] The extent to which the technical effect is achieved varies depending on the degree to which the fixed predicted pixel predMip[x][y] is approximated to the standard predicted pixel predMip[x][y] (hereinafter also referred to as the approximation level). The fixed weight matrix mWeight[i][j] of (M,m)=(1,3) can be appropriately changed within the range in which the set approximation level can be maintained.
[0075] For example, the fixed weight matrix mWeight[i][j] for (M,m)=(1,3) can be changed within a range of ±1 or ±3 based on the value shown in B of Figure 3.
[0076] The fixed weight matrix mWeight[i][j] of (M,m)=(1,3) can be changed either for all of the fixed weight matrix mWeight[i][j] of (M,m)=(1,3) or for only a part of the fixed weight matrix mWeight[i][j] of (M,m)=(1,3).
[0077] Furthermore, as the range of values for changing the fixed weight matrices mWeight[i][j] of (M,m)=(1,3), a uniform range can be adopted for all of the fixed weight matrices mWeight[i][j] of (M,m)=(1,3), or individual ranges can be adopted for each of the fixed weight matrices mWeight[i][j] of (M,m)=(1,3).
[0078] For example, the range of values for changing the fixed weight matrix mWeight[i][j] of (M,m)=(1,3) can be set individually for each value of the corresponding standard weight matrix mWeight[i][j].
[0079] The same applies to the above points for 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 that is set to a fixed value, and the variable fO described below that changes according to the shift amount sW that is set to a fixed value.
[0080] FIG. 4 is a diagram showing an example of a weight matrix mWeight[i][j] where (M, m)=(1, 8).
[0081] FIG. 4A is a diagram showing a standard weight matrix mWeight[i][j] for (M, m)=(1, 8), and FIG. 4B is a diagram showing an example of a fixed weight matrix mWeight[i][j] for (M, m)=(1, 8).
[0082] In FIG. 4, similarly to FIG. 3, the (i+1)th value from the left and the (j+1)th value from the top is the weight matrix mWeight[i][j].
[0083] In Figure 4, as in Figure 3, the fixed weight matrix mWeight[i][j] for (M,m)=(1,8) (B in Figure 4) is changed to approximately half the standard weight matrix mWeight[i][j] for (M,m)=(1,8) (A in Figure 4).
[0084] FIG. 5 is a diagram illustrating an example of the bias vector vBias[j] when MipSizeId=1.
[0085] Here, the bias vector vBias[j] before the shift amount sW is set to a fixed value, for example, the bias vector vBias[j] for MipSizeId=1 when the shift amount sW for MipSizeId=1 is 9 as specified in reference document REF3, is also referred to as the standard bias vector vBias[j] for MipSizeId=1.
[0086] In addition, the bias vector vBias[j] after setting the shift amount sW to a fixed value, for example, the bias vector vBias[j] obtained by modifying the standard bias vector vBias[j] for MipSizeId=1 used in equation (1) when the shift amount sW for MipSizeId=1 is changed to 8, will also be referred to as the fixed bias vector vBias[j] for MipSizeId=1.
[0087] FIG. 5A is a diagram showing a standard bias vector vBias[j] for MipSizeId=1, and FIG. 5B is a diagram showing an example of a fixed bias vector vBias[j] for MipSizeId=1.
[0088] In FIG. 5, the j+1th value from the left and the k+1th value from the top is the bias vector vBias[j] for (M, m)=(1, k).
[0089] In Figure 5, among the fixed bias vectors vBias[j] for (M,m)=(1,0) to (1,9), the fixed bias vectors vBias[j] for (M,m)=(1,3) and (1,8) are changed to approximately half the standard bias vectors vBias[j] for (M,m)=(1,3) and (1,8), as surrounded by dotted lines, and the other fixed bias vectors vBias[j] are identical to the standard bias vector vBias[j].
[0090] FIG. 6 is a diagram illustrating a third method for generating a predicted image of an MIP.
[0091] In the third generation method, the shift amount sW of the operation for generating the MIP predicted image proposed in document A (JVET-N1001-v7_proposal_text_MIP_8Bit.docx) (and reference document REF7) is set to a fixed value, for example, 6. Then, in the third generation method, the operation for generating the MIP predicted image is changed according to the shift amount sW=6, which is set to the fixed value 6, and the MIP predicted image is generated according to the changed operation.
[0092] Here, in the generation of the predicted image proposed in Document A, (a part of) 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 Document A.
[0093] predMip[ x ][ y ] = ( ( (ΣmWeight[ i ][ y*incH*predC+x*incW ]*p[ i ] ) + oW ) >> sW ) +dcVal (2)
[0094] In formula (2), the summation Σ represents a summation taken while changing the variable i to an integer from 0 to inSize-1. inSize is set to 2*boundarySize-1 or 2*boundarySize.
[0095] The variable oW corresponds to the bias vector vBias[j] in equation (1). The variable oW is calculated according to equation (3) described in document A as equation (8-65).
[0096] oW = (1 << (sW - 1)) - fO * ( Σ p[i] ) (3)
[0097] In equation (3), summation Σ represents a summation taken while changing the variable i to an integer from 0 to inSize−1, similarly to equation (2).
[0098] The variable fO is set according to MipSizeId and modeId. The variable oW, which corresponds to the bias vector vBias[j], is calculated according to equation (3) using the variable fO, so it can be said that the variable fO also corresponds to the bias vector vBias[j], just like the variable oW.
[0099] In the generation of a predicted image proposed in Reference A, sW is the amount of shift for ((ΣmWeight[ i ][ y*incH*predC+x*incW ]*p[ i ] ) + oW ).
[0100] According to Table 8-8 of document A, the shift amount sW is set to 6, 7, or 8 depending on MipSizeId and modeId, as shown in FIG.
[0101] Therefore, in generating a predicted image as proposed in Document A, it is necessary to reset the shift amount sW for each combination of MipSizeId and modeId, which results in problems similar to those of the first generation method, such as the process of generating a MIP predicted image becoming complicated.
[0102] Therefore, in the third generation method, the shift amount sW in equation (2) for generating the MIP predicted image proposed in document A is set to a fixed value.
[0103] As the fixed value set for the shift amount sW, for example, the minimum value 6, the maximum value 8, or the median value 7 of 6 to 8 listed in Table 8-8 of Document A, or other values can be adopted. In Fig. 6, for example, the minimum value 6 of 6 to 8 listed in Table 8-8 of Document A is adopted as the fixed value set for the shift amount sW.
[0104] In the third generation method, the calculation of equation (2) is changed according to the shift amount sW=6, which is set to a fixed value of 6, and a MIP predicted image is generated according to the changed calculation.
[0105] Specifically, in the third generation method, the shift amount sW is fixed to 6 for each combination of MipSizeId and modeId.
[0106] Then, in accordance with the fixed shift amount sW=6, the standard weight matrix mWeight[i][j] and the variable fO corresponding to the bias vector vBias[j] (used to determine 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 has a value that approximates the standard predicted pixel predMip[x][y].
[0107] Here, the variable fO before the shift amount sW is set to a fixed value, here the variable fO defined in document A, is also referred to as the standard variable fO. Also, 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 referred to as the fixed variable fO.
[0108] In the third generation method, a MIP predicted image is generated according to the calculation of equation (2) (and equation (3)) including the fixed weight matrix mWeight[i][j] and the fixed variable fO obtained by changing the standard weight matrix mWeight[i][j] and the standard variable fO according to the shift amount sW=6, which is set to a fixed value as described above.
[0109] As described above, in the third generation method, MIP is performed using the shift amount sW set to a fixed value, as in the second generation method. That is, the calculation of equation (2) is changed according to the shift amount sW set to a fixed value, and a predicted image of the MIP is generated according to the changed calculation.
[0110] Therefore, in the third generation method, the shift amount sW is fixed regardless of the modeId, and further regardless of the combination of MipSizeId and modeId, so the MIP processing can be simplified. As a result, it becomes unnecessary to specify the table specified as Table 8-8 in document A in the standard, and the standard can be simplified.
[0111] Also, for example, when the third generation method is implemented in hardware, a selector for switching the shift amount sW is not required, and an increase in the circuit size can be suppressed. Furthermore, when the third generation method is implemented in software, there is no need to refer to the table specified as Table 8-8 in Document A, and a decrease in processing speed can be suppressed compared to when a table is referred to.
[0112] FIG. 7 is a diagram illustrating a fourth method for generating a MIP predicted image.
[0113] In the fourth generation method, the shift amount sW of the calculation to generate the MIP predicted image proposed in Document A is set to a fixed value according to the matrix size of the weight matrix mWeight[i][j] used in MIP.
[0114] Here, MipSizeId is an identifier of the matrix size of the weight matrix mWeight[i][j], so 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, to a fixed value for each MipSizeId.
[0115] In the fourth generation method, the calculation for generating the MIP predicted image is changed according to the shift amount sW that is set to a fixed value for each MipSizeId, and the MIP predicted image is generated according to the changed calculation.
[0116] In the fourth generation method, the fixed value for each MipSizeId set as the shift amount sW can be, for example, the minimum value, maximum value, or other value of the shift amount sW for each MipSizeId listed in Table 8-8 of Document A.
[0117] For example, the minimum value of the shift amount sW for each MipSizeId listed in Table 8-8 of document A is adopted as the fixed value set for the shift amount sW for each MipSizeId.
[0118] In document A, the shift amount sW for MipSizeId=0 can be 6 or 7, so when the minimum value of the shift amount sW for each MipSizeId listed in Table 8-8 of document A is adopted as the fixed value for each MipSizeId set to the shift amount sW, in the fourth generation method, the shift amount sW for MipSizeId=0 is fixed to 6, which is the minimum value of 6 and 7. In other words, the shift amount sW of 7 for MipSizeId=0 listed in Table 8-8 of document A is changed to 6.
[0119] In document A, the shift amount sW for MipSizeId=1 can be 7 or 8, so if the minimum value of the shift amount sW for each MipSizeId listed in Table 8-8 of document A is adopted as the fixed value for each MipSizeId set to the shift amount sW, in the fourth generation method, the shift amount sW for MipSizeId=1 is fixed to 7, which is the minimum value of 7 and 8. In other words, the shift amount sW of 8 for MipSizeId=1 listed in Table 8-8 of document A is changed to 7.
[0120] In document A, the shift amount sW for MipSizeId=2 can be 6 or 7, so if the minimum value of the shift amount sW for each MipSizeId listed in Table 8-8 of document A is adopted as the fixed value for each MipSizeId set to the shift amount sW, in the fourth generation method, the shift amount sW for MipSizeId=2 is fixed to 6, which is the minimum value of 6 and 7. In other words, the shift amount sW of 7 for MipSizeId=2 listed in Table 8-8 of document A is changed to 6.
[0121] As described above, in the fourth generation method, the calculation of equation (2) is changed according to the shift amount sW that is set to a fixed value for each MipSizeId, and a MIP predicted image is generated according to the changed calculation.
[0122] Specifically, in the fourth generation method, for MipSizeId=0 and 2, the shift amount sW is fixed to 6.
[0123] Furthermore, in accordance with 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 becomes a value that is close to the standard predicted pixel predMip[x][y].
[0124] Then, a MIP predicted image is generated according to the calculation of equation (2) including the fixed weight matrix mWeight[i][j] and the fixed variable fO obtained by changing the standard weight matrix mWeight[i][j] and the standard variable fO according to the shift amount sW=6, which is set to a fixed value.
[0125] Also, for MipSizeId=1, the shift amount sW is fixed to 7.
[0126] Furthermore, in accordance with the fixed shift amount sW=7, 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=7 has a value that is close to the standard predicted pixel predMip[x][y].
[0127] Then, a MIP predicted image is generated according to the calculation of equation (2) including the fixed weight matrix mWeight[i][j] and the fixed variable fO obtained by changing the standard weight matrix mWeight[i][j] and the standard variable fO according to the shift amount sW=7, which is set to a fixed value.
[0128] Therefore, in the fourth generation method, two equations are used, one in which the calculation of equation (2) is changed according to a shift amount sW fixed at 6, and the other in which the calculation of equation (2) is changed according to a shift amount sW fixed at 7, and these are switched according to MipSizeId.
[0129] 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 calculation 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 calculation.
[0130] Therefore, in the fourth generation method, the shift amount sW is fixed regardless of the modeId, so the MIP processing can be simplified and there is no need to specify a table for each modeId as specified as Table 8-8 in document A in the standard, thereby simplifying the standard.
[0131] Also, for example, when the fourth generation method is implemented by hardware, a selector for switching the shift amount sW is not required, and an increase in the circuit size can be suppressed. Furthermore, when the fourth generation method is implemented by software, there is no need to refer to the table specified as Table 8-8 in Document A, and a decrease in processing speed can be suppressed compared to when a table is referred to.
[0132] Below, we further explain the shift amount sW, the (standard) weight matrix mWeight[i][j], and the (standard) variable fO described in document A, as well as the shift amount sW, the (fixed) weight matrix mWeight[i][j], and the (fixed) variable fO used in the third and fourth generation methods.
[0133] FIG. 8 is a diagram showing the shift amount sW described in document A.
[0134] 8, the (m+1)th value from the left and 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.
[0135] FIG. 9 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 0) described in document A.
[0136] 9, the (i+1)th value from the left and 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.
[0137] FIG. 10 is a diagram showing a standard weight matrix mWeight[i][j] of (M, m)=(0, 1) described in document A.
[0138] FIG. 11 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 2) described in document A.
[0139] FIG. 12 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 3) described in document A.
[0140] FIG. 13 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 4) described in document A.
[0141] FIG. 14 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 5) described in document A.
[0142] FIG. 15 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 6) described in document A.
[0143] FIG. 16 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 7) described in document A.
[0144] FIG. 17 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 8) described in document A.
[0145] FIG. 18 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 9) described in document A.
[0146] FIG. 19 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 10) described in document A.
[0147] FIG. 20 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 11) described in document A.
[0148] FIG. 21 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 12) described in document A.
[0149] FIG. 22 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 13) described in document A.
[0150] FIG. 23 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 14) described in document A.
[0151] FIG. 24 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 15) described in document A.
[0152] FIG. 25 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 16) described in document A.
[0153] FIG. 26 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(0, 17) described in document A.
[0154] FIG. 27 is a diagram showing the standard variable fO for MipSizeId=0 described in document A.
[0155] In the standard variable fO of MipSizeId=0 in Fig. 27, the (m+1)th value from the left represents the standard variable fO of modeId=m. The same applies to the diagram of the variable fO described later.
[0156] FIG. 28 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 0) described in document A.
[0157] FIG. 29 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 1) described in document A.
[0158] FIG. 30 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 2) described in document A.
[0159] FIG. 31 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 3) described in document A.
[0160] FIG. 32 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 4) described in document A.
[0161] FIG. 33 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 5) described in document A.
[0162] FIG. 34 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 6) described in document A.
[0163] FIG. 35 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 7) described in document A.
[0164] FIG. 36 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 8) described in document A.
[0165] FIG. 37 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(1, 9) described in document A.
[0166] FIG. 38 is a diagram showing the standard variable fO for MipSizeId=1 described in document A.
[0167] FIG. 39 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(2, 0) described in document A.
[0168] FIG. 40 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(2, 1) described in document A.
[0169] FIG. 41 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(2, 2) described in document A.
[0170] FIG. 42 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(2, 3) described in document A.
[0171] FIG. 43 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(2, 4) described in document A.
[0172] FIG. 44 is a diagram showing the standard weight matrix mWeight[i][j] of (M, m)=(2, 5) described in document A.
[0173] FIG. 45 is a diagram showing the standard variable fO for MipSizeId=2 described in document A.
[0174] FIG. 46 is a diagram showing the shift amount sW used in the third generation method.
[0175] In the third generation method, the shift amount sW is set to a fixed value, for example, 6.
[0176] In the third generation method, a fixed weight matrix mWeight[i][j] obtained by changing the standard weight matrix mWeight[i][j] and the standard variable fO, and a fixed variable fO are used so that the fixed predicted pixel predMip[x][y] obtained after setting the shift amount sW to a fixed value of 6 is a value that approximates the standard predicted pixel predMip[x][y].
[0177] FIG. 47 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(0, 0) used in the third generation method.
[0178] FIG. 48 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 1) is used in the third generation method.
[0179] FIG. 49 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 2) is used in the third generation method.
[0180] FIG. 50 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 3) is used in the third generation method.
[0181] FIG. 51 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 4) used in the third generation method.
[0182] FIG. 52 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 5) used in the third generation method.
[0183] FIG. 53 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 6) used in the third generation method.
[0184] FIG. 54 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 7) used in the third generation method.
[0185] FIG. 55 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 8) used in the third generation method.
[0186] FIG. 56 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 9) used in the third generation method.
[0187] FIG. 57 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 10) is used in the third generation method.
[0188] FIG. 58 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 11) is used in the third generation method.
[0189] FIG. 59 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 12) is used in the third generation method.
[0190] FIG. 60 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 13) is used in the third generation method.
[0191] FIG. 61 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 14) used in the third generation method.
[0192] FIG. 62 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 15) used in the third generation method.
[0193] FIG. 63 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 16) is used in the third generation method.
[0194] FIG. 64 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 17) used in the third generation method.
[0195] FIG. 65 is a diagram showing a fixed variable fO for MipSizeId=0 used in the third generation method.
[0196] FIG. 66 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(1, 0) is used in the third generation method.
[0197] FIG. 67 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 1) used in the third generation method.
[0198] FIG. 68 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 2) used in the third generation method.
[0199] FIG. 69 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 3) used in the third generation method.
[0200] FIG. 70 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 4) used in the third generation method.
[0201] FIG. 71 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 5) used in the third generation method.
[0202] FIG. 72 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 6) used in the third generation method.
[0203] FIG. 73 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 7) used in the third generation method.
[0204] FIG. 74 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 8) used in the third generation method.
[0205] FIG. 75 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 9) used in the third generation method.
[0206] FIG. 76 is a diagram showing a fixed variable fO for MipSizeId=1 used in the third generation method.
[0207] FIG. 77 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 0) used in the third generation method.
[0208] FIG. 78 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 1) used in the third generation method.
[0209] FIG. 79 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 2) used in the third generation method.
[0210] FIG. 80 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 3) used in the third generation method.
[0211] FIG. 81 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 4) used in the third generation method.
[0212] FIG. 82 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(2, 5) used in the third generation method.
[0213] FIG. 83 is a diagram showing a fixed variable fO for MipSizeId=2 used in the third generation method.
[0214] FIG. 84 is a diagram showing the shift amount sW used in the fourth generation method.
[0215] In the fourth generation method, the shift amount sW is set to a fixed value according to the matrix size of the weight matrix mWeight[i][j] indicated by MipSizeId. That is, in the fourth generation method, the shift amount sW is set to a fixed value for each MipSizeId. Specifically, when MipSizeId=0, 1, 2, the shift amount sW is set to 6, 7, 6, respectively.
[0216] Then, in the fourth generation method, as in the third generation method, a fixed weight matrix mWeight[i][j] obtained by changing the standard weight matrix mWeight[i][j] and the standard variable fO and a fixed variable fO are used so that the fixed predicted pixel predMip[x][y] obtained after setting the shift amount sW to a fixed value approximates the standard predicted pixel predMip[x][y].
[0217] FIG. 85 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(0, 0) used in the fourth generation method.
[0218] FIG. 86 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 1) is used in the fourth generation method.
[0219] FIG. 87 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 2) is used in the fourth generation method.
[0220] FIG. 88 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 3) used in the fourth generation method.
[0221] FIG. 89 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 4) used in the fourth generation method.
[0222] FIG. 90 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 5) used in the fourth generation method.
[0223] FIG. 91 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 6) used in the fourth generation method.
[0224] FIG. 92 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 7) used in the fourth generation method.
[0225] FIG. 93 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 8) used in the fourth generation method.
[0226] FIG. 94 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 9) used in the fourth generation method.
[0227] FIG. 95 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 10) is used in the fourth generation method.
[0228] FIG. 96 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 11) is used in the fourth generation method.
[0229] FIG. 97 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 12) is used in the fourth generation method.
[0230] FIG. 98 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 13) is used in the fourth generation method.
[0231] FIG. 99 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 14) used in the fourth generation method.
[0232] FIG. 100 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 15) used in the fourth generation method.
[0233] FIG. 101 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(0, 16) is used in the fourth generation method.
[0234] FIG. 102 is a diagram showing a fixed weight matrix mWeight[i][j] with (M, m)=(0, 17) used in the fourth generation method.
[0235] FIG. 103 is a diagram showing the fixed variable fO for MipSizeId=0 used in the fourth generation method.
[0236] FIG. 104 is a diagram showing a fixed weight matrix mWeight[i][j] where (M, m)=(1, 0) is used in the fourth generation method.
[0237] FIG. 105 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 1) used in the fourth generation method.
[0238] FIG. 106 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 2) used in the fourth generation method.
[0239] FIG. 107 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 3) used in the fourth generation method.
[0240] FIG. 108 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 4) used in the fourth generation method.
[0241] FIG. 109 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(1, 5) used in the fourth generation method.
[0242] FIG. 110 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 6) used in the fourth generation method.
[0243] FIG. 111 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 7) used in the fourth generation method.
[0244] FIG. 112 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 8) used in the fourth generation method.
[0245] FIG. 113 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(1, 9) used in the fourth generation method.
[0246] FIG. 114 is a diagram showing a fixed variable fO for MipSizeId=1 used in the fourth generation method.
[0247] FIG. 115 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(2, 0) used in the fourth generation method.
[0248] FIG. 116 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 1) used in the fourth generation method.
[0249] FIG. 117 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 2) used in the fourth generation method.
[0250] FIG. 118 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 3) used in the fourth generation method.
[0251] FIG. 119 is a diagram showing a fixed weight matrix mWeight[i][j] for (M, m)=(2, 4) used in the fourth generation method.
[0252] FIG. 120 is a diagram showing a fixed weight matrix mWeight[i][j] of (M, m)=(2, 5) used in the fourth generation method.
[0253] FIG. 121 is a diagram showing a fixed variable fO for MipSizeId=2 used in the fourth generation method.
[0254] <Image processing system using this technology>
[0255] FIG. 122 is a block diagram showing an example configuration of an embodiment of an image processing system to which the present technology is applied.
[0256] The image processing system 10 includes an image processing device serving as an encoder 11 and an image processing device serving as a decoder 51 .
[0257] The encoder 11 encodes the original image to be encoded that is supplied thereto, and outputs an encoded bit stream obtained by the encoding. The encoded bit stream is supplied to a decoder 51 via a recording medium or a transmission medium (not shown).
[0258] The decoder 51 decodes the coded bit stream supplied thereto, and outputs a decoded image obtained by the decoding.
[0259] <Configuration example of Encoder 11>
[0260] FIG. 123 is a block diagram showing an example of the configuration of the encoder 11 of FIG.
[0261] In the block diagrams described below, in order to avoid the diagrams becoming too complicated, the lines that supply information (data) required for the processing of each block are omitted as appropriate.
[0262] 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 lossless encoding unit 26, and an accumulation buffer 27. The encoder 11 further 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. The encoder 11 also includes a deblocking filter 31a, an adaptive offset filter 41, and an ALF (adaptive loop filter) 42.
[0263] The A / D conversion unit 21 A / D converts the original image (target of encoding) of an analog signal into an original image of a digital signal, and supplies and stores the original image in a rearrangement buffer 22. When an original image of a digital signal is supplied to the encoder 11, the encoder 11 can be configured without providing the A / D conversion unit 21.
[0264] The reordering buffer 22 reorders the frames of the original image from display order to encoding (decoding) order according to a GOP (Group Of Picture), and supplies the reordered frames to the calculation unit 23, the intra prediction unit 34, and the motion prediction / compensation unit 35.
[0265] The calculation unit 23 subtracts a 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 sorting buffer 22, and supplies the residual (prediction residual) obtained by the subtraction to the orthogonal transformation unit 24.
[0266] The orthogonal transform unit 24 performs orthogonal transform such as discrete cosine transform or Karhunen-Loeve transform on the residuals supplied from the calculation unit 23 , and supplies the orthogonal transform coefficients obtained by the orthogonal transform to a quantization unit 25 .
[0267] The quantization unit 25 quantizes the orthogonal transform coefficients supplied from the orthogonal transform unit 24. The quantization unit 25 sets a quantization parameter based on a target value of the code amount (code amount target value) supplied from the rate control unit 37, and quantizes the orthogonal transform coefficients. The quantization unit 25 supplies encoded data, which is the quantized orthogonal transform coefficients, to the lossless encoding unit 26.
[0268] The lossless encoding unit 26 encodes the quantized orthogonal transform coefficients as encoded data from the quantization unit 25 using a predetermined lossless encoding method.
[0269] Furthermore, the lossless encoding unit 26 obtains, from each block, encoding information required for decoding by the decoding device 170, out of the encoding information related to the predictive encoding by the encoder 11.
[0270] Here, the coding information includes, for example, prediction modes such as intra prediction and inter prediction, motion information such as motion vectors, target code amount values, quantization parameters, picture types (I, P, B), and filter parameters of the deblocking filter 31a and adaptive offset filter 41.
[0271] 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.
[0272] The lossless encoding unit 26 encodes the encoded information using, for example, variable length encoding such as CAVLC (Context-Adaptive Variable Length Coding) or CABAC (Context-Adaptive Binary Arithmetic Coding) or arithmetic encoding or other lossless encoding method, generates a (multiplexed) encoded bit stream including the encoded information after encoding and the encoded data from the quantization unit 25, and supplies it to the accumulation buffer 27.
[0273] Here, the above-mentioned calculation unit 23 to lossless encoding unit 26 constitute an encoding unit that encodes an image, and the process (step) performed in the encoding unit is the encoding step.
[0274] The accumulation buffer 27 temporarily accumulates the encoded bit stream supplied from the lossless encoding unit 26. The encoded bit stream accumulated in the accumulation buffer 27 is read out and transmitted at a predetermined timing.
[0275] The encoded data, which is the orthogonal transform coefficients quantized in the quantization unit 25, is supplied to a lossless encoding unit 26 and also to an inverse quantization unit 28. The inverse quantization unit 28 inverse quantizes the quantized orthogonal transform coefficients by a method corresponding to the quantization by the quantization unit 25, and supplies the orthogonal transform coefficients obtained by the inverse quantization to an inverse orthogonal transform unit 29.
[0276] The inverse orthogonal transform unit 29 performs inverse orthogonal transform on the orthogonal transform coefficients supplied from the inverse quantization unit 28 using a method corresponding to the orthogonal transform processing by the orthogonal transform unit 24, and supplies the residual obtained as a result of the inverse orthogonal transform to the calculation unit 30.
[0277] The calculation unit 30 adds the residual supplied from the inverse orthogonal transformation unit 29 to the predicted image supplied from the intra prediction unit 34 or the motion prediction compensation unit 35 via the predicted image selection unit 36, thereby obtaining and outputting a decoded image (part of a decoded image) obtained by decoding the original image.
[0278] The decoded image output by the calculation unit 30 is supplied to a deblocking filter 31 a or a frame memory 32 .
[0279] The frame memory 32 temporarily stores the decoded image supplied from the calculation unit 30 and the decoded image (filter image) to which the deblocking filter 31a, the adaptive offset filter 41, and the ALF 42 have been applied, which is supplied from the ALF 42. The decoded image stored in the frame memory 32 is supplied to the selection unit 33 at a necessary timing as a reference image used for generating a predicted image.
[0280] The selection unit 33 selects a supply destination of the reference image supplied from the frame memory 32. When intra prediction is performed in the intra prediction unit 34, the selection unit 33 supplies the reference image supplied from the frame memory 32 to the intra prediction unit 34. When inter prediction is performed in the motion prediction compensation unit 35, the selection unit 33 supplies the reference image supplied from the frame memory 32 to the motion prediction compensation unit 35.
[0281] The intra prediction unit 34 performs intra prediction (intra-screen prediction) using the original image supplied from the rearrangement buffer 22 and the reference image supplied from the frame memory 32 via the selection unit 33. The intra prediction unit 34 selects an optimal intra prediction mode based on a predetermined cost function, and supplies a predicted image generated from the reference image in the optimal intra prediction mode to the predicted image selection unit 36. The intra prediction unit 34 also appropriately supplies the intra prediction mode selected based on the cost function to the lossless encoding unit 26 and the like.
[0282] The motion prediction compensation unit 35 performs motion prediction using the original image supplied from the rearrangement buffer 22 and the reference image supplied from the frame memory 32 via the selection unit 33. Furthermore, the motion prediction compensation unit 35 performs motion compensation according to a motion vector detected by the motion prediction, and generates a predicted image. The motion prediction compensation unit 35 performs inter prediction in a plurality of inter prediction prediction modes prepared in advance, and generates a predicted image from the reference image.
[0283] The motion prediction compensation unit 35 selects an optimal inter prediction mode from among a plurality of inter prediction modes based on a predetermined cost function. Furthermore, the motion prediction compensation unit 35 supplies a predicted image generated in the optimal inter prediction mode to the predicted image selection unit 36.
[0284] In addition, the motion prediction compensation unit 35 supplies the lossless encoding unit 26 with the optimal inter-prediction prediction mode selected based on the cost function, and motion information such as motion vectors required when decoding encoded data encoded in that inter-prediction prediction mode.
[0285] The prediction image selection unit 36 selects the source of the prediction image to be supplied to the calculation unit 23 and the calculation unit 30 from among the intra prediction unit 34 and the motion prediction compensation unit 35, and supplies the prediction image supplied from the selected source to the calculation unit 23 and the calculation unit 30.
[0286] The rate control unit 37 controls the rate of the quantization operation of the quantization unit 25 so as not to cause an overflow or underflow, based on the code amount of the encoded bit stream accumulated in the accumulation buffer 27. That is, the rate control unit 37 sets a target code amount of the encoded bit stream and supplies it to the quantization unit 25 so as not to cause an overflow or underflow of the accumulation buffer 27.
[0287] The deblocking filter 31a applies a deblocking filter to the decoded image from the calculation unit 30 as necessary, and supplies the decoded image to which the deblocking filter has been applied (filter image) or the decoded image to which the deblocking filter has not been applied to the adaptive offset filter 41.
[0288] The adaptive offset filter 41 applies an adaptive offset filter to the decoded image from the deblocking filter 31a as necessary, and supplies the decoded image to which the adaptive offset filter has been applied (filter image) or the decoded image to which the adaptive offset filter has not been applied to the ALF 42.
[0289] The ALF 42 applies the ALF to the decoded image from the adaptive offset filter 41 as necessary, and supplies 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.
[0290] <Encoding process>
[0291] FIG. 124 is a flowchart illustrating an example of the encoding process of the encoder 11 of FIG.
[0292] Note that the order of steps in the encoding process shown in Fig. 124 is for convenience of explanation, and the steps in the actual encoding process are appropriately performed in parallel in the required order. The same applies to the processes described later.
[0293] In the encoder 11, in step S11, the A / D conversion unit 21 A / D converts the original image and supplies it to the rearrangement buffer 22, and the process proceeds to step S12.
[0294] In step S12, the reordering buffer 22 stores the original images from the A / D conversion unit 21, reorders them in coding order, and outputs them, and the process proceeds to step S13.
[0295] In step S13, the intra prediction unit 34 performs intra prediction (intra prediction step), and the process proceeds to step S14. In step S14, the motion prediction compensation unit 35 performs inter prediction for performing motion prediction and motion compensation, and the process proceeds to step S15.
[0296] In the intra prediction by the intra prediction section 34 and the inter prediction by the motion prediction and compensation section 35, cost functions for various prediction modes are calculated and a predicted image is generated.
[0297] In step S15, the prediction image selection unit 36 determines an optimal 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 a prediction image of the optimal 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 the process proceeds from step S15 to step S16.
[0298] In step S16, the calculation unit 23 calculates the residual between the target image to be coded, which is the original image output by the sorting buffer 22, and the predicted image output by the predicted image selection unit 36, and supplies the residual to the orthogonal transformation unit 24, and the process proceeds to step S17.
[0299] In step S17, the orthogonal transform unit 24 performs orthogonal transform on the residuals from the calculation unit 23, and supplies the orthogonal transform coefficients obtained as a result to the quantization unit 25, and the process proceeds to step S18.
[0300] In step S18, the quantization unit 25 quantizes the orthogonal transform coefficients from the orthogonal transformation unit 24, and supplies the quantized coefficients obtained by the quantization to the lossless encoding unit 26 and the inverse quantization unit 28, and the process proceeds to step S19.
[0301] In step S19, the inverse quantization unit 28 inverse quantizes the quantized coefficients from the quantization unit 25, and supplies the orthogonal transform coefficients obtained as a result to the inverse orthogonal transform unit 29, and the process proceeds to step S20. In step S20, the inverse orthogonal transform unit 29 inversely orthogonally transforms the orthogonal transform coefficients from the inverse quantization unit 28, and supplies the residuals obtained as a result to the calculation unit 30, and the process proceeds to step S21.
[0302] In step S21, the calculation unit 30 adds the residual from the inverse orthogonal transform unit 29 and the predicted image output by the predicted image selection unit 36 to generate a decoded image corresponding to the original image that was the target of the residual calculation in the calculation unit 23. The calculation unit 30 supplies the decoded image to the deblocking filter 31a, and the process proceeds from step S21 to step S22.
[0303] In step S22, the deblocking filter 31a applies a deblocking filter to the decoded image from the calculation unit 30, and supplies the resulting filtered image to the adaptive offset filter 41, and the process proceeds to step S23.
[0304] In step S23, the adaptive offset filter 41 applies the adaptive offset filter to the filtered image from the deblocking filter 31a, and supplies the resulting filtered image to the ALF 42, and the process proceeds to step S24.
[0305] In step S24, the ALF 42 applies the ALF to the filtered image from the adaptive offset filter 41, and supplies the resulting filtered image to the frame memory 32, and the process proceeds to step S25.
[0306] In step S25, the frame memory 32 stores the filter image supplied from the ALF 42, and the process proceeds to step S26. The filter image stored in the frame memory 32 is used as a reference image from which a predicted image is generated in steps S13 and S14.
[0307] In step S26, the lossless encoding unit 26 encodes the encoded data, which is the quantized coefficients from the quantization unit 25, and generates an encoded bitstream including the encoded data. Furthermore, the lossless encoding unit 26 encodes, as necessary, encoding information such as the quantization parameters used in the quantization by the quantization unit 25, the prediction mode obtained by the intra prediction by the intra prediction unit 34, the prediction mode and motion information obtained by the inter prediction by the motion prediction compensation unit 35, and the filter parameters of the deblocking filter 31a and the adaptive offset filter 41, and includes the encoded information in the encoded bitstream.
[0308] Then, the lossless encoding unit 26 supplies the encoded bit stream to the accumulation buffer 27, and the process proceeds from step S26 to step S27.
[0309] In step S27, the accumulation buffer 27 accumulates the encoded bit stream from the lossless encoding unit 26, and the process proceeds to step S28. The encoded bit stream accumulated in the accumulation buffer 27 is appropriately read out and transmitted.
[0310] In step S28, the rate control unit 37 controls the rate of the quantization operation of the quantization unit 25 based on the amount of code (amount of generated code) of the encoded bit stream stored in the accumulation buffer 27 so as to prevent overflow or underflow, and the encoding process is then terminated.
[0311] <Configuration example of decoder 51>
[0312] FIG. 125 is a block diagram showing a detailed configuration example of the decoder 51 of FIG.
[0313] 125, the decoder 51 has an accumulation buffer 61, a lossless 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. The decoder 51 further 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. The decoder 51 also has a deblocking filter 31b, an adaptive offset filter 81, and an ALF 82.
[0314] The accumulation buffer 61 temporarily accumulates the encoded bit stream transmitted from the encoder 11, and supplies the encoded bit stream to a lossless decoding unit 62 at a predetermined timing.
[0315] The lossless decoding unit 62 receives the encoded bit stream from the accumulation buffer 61, and decodes it in a format corresponding to the encoding format of the lossless encoding unit 26 in FIG.
[0316] Then, the lossless decoding unit 62 supplies the quantization coefficients as encoded data included in the decoding result of the encoded bit stream to the inverse quantization unit 63.
[0317] The lossless decoding unit 62 also has a parsing function. The lossless decoding unit 62 parses necessary coding information included in the decoding result of the coded bit stream, and supplies the coding 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.
[0318] The inverse quantization unit 63 inverse quantizes the quantized coefficients as encoded data from the lossless decoding unit 62 using a method corresponding to the quantization method of the quantization unit 25 in Figure 123, and supplies the orthogonal transform coefficients obtained by this inverse quantization to the inverse orthogonal transform unit 64.
[0319] The inverse orthogonal transform unit 64 performs inverse orthogonal transform on the orthogonal transform coefficients supplied from the inverse quantization unit 63 using a method corresponding to the orthogonal transform method of the orthogonal transform unit 24 in FIG. 123, and supplies the resulting residual to the calculation unit 65.
[0320] The calculation unit 65 is supplied with the residual from the inverse orthogonal transformation unit 64 , and also with a predicted image from the intra prediction unit 71 or the motion prediction compensation unit 72 via a selection unit 73 .
[0321] The calculation unit 65 adds the residual from the inverse orthogonal transformation unit 64 and the predicted image from the selection unit 73 to generate a decoded image, and supplies the decoded image to the deblocking filter 31b.
[0322] Here, the lossless decoding unit 62 through the calculation unit 65 constitute a decoding unit that decodes an image, and the process (step) performed in the decoding unit is a decoding step.
[0323] The reordering buffer 67 temporarily stores the decoded image supplied from the ALF 82 , reorders the frames (pictures) of the decoded image from the encoding (decoding) order to the display order, and supplies the reordered images to the D / A conversion unit 68 .
[0324] The D / A conversion unit 68 performs D / A conversion on the decoded image supplied from the rearrangement buffer 67, and outputs and displays the image on a display (not shown). When a device connected to the decoder 51 accepts images as digital signals, the decoder 51 can be configured without providing the D / A conversion unit 68.
[0325] The frame memory 69 temporarily stores the decoded image supplied from the ALF 82. Furthermore, the frame memory 69 supplies the decoded image to the selection unit 70 as a reference image used for generating a predicted image at a predetermined timing or based on an external request from the intra prediction unit 71, the motion prediction compensation unit 72, or the like.
[0326] The selection unit 70 selects a supply destination of the reference image supplied from the frame memory 69. When decoding an image coded by intra prediction, the selection unit 70 supplies the reference image supplied from the frame memory 69 to the intra prediction unit 71. When decoding an image coded by inter prediction, the selection unit 70 supplies the reference image supplied from the frame memory 69 to the motion prediction compensation unit 72.
[0327] The intra prediction unit 71 performs intra prediction similar to that of the intra prediction unit 34 in Fig. 123 using a reference image supplied from the frame memory 69 via the selection unit 70, in accordance with a prediction mode included in the encoding information supplied from the lossless decoding unit 62. Then, the intra prediction unit 71 supplies a predicted image obtained by the intra prediction to the selection unit 73.
[0328] 123, the motion prediction compensation unit 72 performs inter prediction using a reference image supplied from the frame memory 69 via a selection unit 70 in accordance with a prediction mode included in the coding information supplied from the lossless decoding unit 62. The inter prediction is performed using motion information and the like included in the coding information supplied from the lossless decoding unit 62 as necessary.
[0329] The motion prediction compensation unit 72 supplies the prediction image obtained by inter prediction to the selection unit 73.
[0330] The selection unit 73 selects the predicted image supplied from the intra prediction unit 71 or the predicted image supplied from the motion prediction compensation unit 72 , and supplies it to the calculation unit 65 .
[0331] The deblocking filter 31b applies a deblocking filter to the decoded image from the calculation unit 65 in accordance with filter parameters included in the encoding information supplied from the lossless decoding unit 62. The deblocking filter 31b supplies, to the adaptive offset filter 81, the decoded image to which the deblocking filter has been applied (filter image) or the decoded image to which the deblocking filter has not been applied.
[0332] The adaptive offset filter 81 applies an adaptive offset filter to the decoded image from the deblocking filter 31b as necessary, in accordance with filter parameters included in the encoding information supplied from the lossless decoding unit 62. The adaptive offset filter 81 supplies, to the ALF 82, the decoded image to which the adaptive offset filter has been applied (filter image) or the decoded image to which the adaptive offset filter has not been applied.
[0333] The ALF 82 applies the ALF to the decoded image from the adaptive offset filter 81 as necessary, and supplies the decoded image to which the ALF has been applied or the decoded image to which the ALF has not been applied to the reordering buffer 67 and the frame memory 69.
[0334] <Decryption process>
[0335] FIG. 126 is a flowchart illustrating an example of the decoding process of the decoder 51 of FIG.
[0336] In the decoding process, in step S51, the accumulation buffer 61 temporarily accumulates the encoded bit stream transmitted from the encoder 11 and supplies it to the lossless decoding unit 62 as appropriate, and the process proceeds to step S52.
[0337] In step S52, the lossless decoding unit 62 receives and decodes the coded bit stream supplied from the accumulation buffer 61, and supplies the quantization coefficients as coded data included in the decoding result of the coded bit stream to the inverse quantization unit 63.
[0338] The lossless decoding unit 62 also parses the coding information included in the decoding result of the coded bit stream, and supplies the necessary coding 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.
[0339] Then, the process proceeds from step S52 to step S53, where the intra prediction unit 71 or the motion prediction compensation unit 72 performs intra prediction or inter prediction to generate a predicted image according to the reference image supplied from the frame memory 69 via the selection unit 70 and the coding information supplied from the lossless decoding unit 62 (intra prediction step or inter prediction step). Then, the intra prediction unit 71 or the motion prediction compensation unit 72 supplies the predicted image obtained by the intra prediction or inter prediction to the selection unit 73, and the process proceeds from step S53 to step S54.
[0340] In step S54, the selection unit 73 selects the predicted image supplied from the intra prediction unit 71 or the motion prediction and compensation unit 72, and supplies it to the calculation unit 65, and the process proceeds to step S55.
[0341] In step S55, the inverse quantization unit 63 inverse quantizes the quantized coefficients from the lossless decoding unit 62, and supplies the orthogonal transform coefficients obtained as a result to the inverse orthogonal transform unit 64, and the process proceeds to step S56.
[0342] In step S56, the inverse orthogonal transform unit 64 performs 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 the process proceeds to step S57.
[0343] In step S57, the calculation unit 65 generates a decoded image by adding the residual from the inverse orthogonal transform unit 64 and the predicted image from the selection unit 73. Then, the calculation unit 65 supplies the decoded image to the deblocking filter 31b, and the process proceeds from step S57 to step S58.
[0344] In step S58, the deblocking filter 31b applies a deblocking filter to the decoded image from the calculation unit 65, in accordance with filter parameters included in the encoding information supplied from the lossless decoding unit 62. The deblocking filter 31b supplies a filter image obtained as a result of application of the deblocking filter to the adaptive offset filter 81, and the process proceeds from step S58 to step S59.
[0345] In step S59, the adaptive offset filter 81 applies an adaptive offset filter to the filter image from the deblocking filter 31b in accordance with the filter parameters included in the encoding information supplied from the lossless decoding unit 62. The adaptive offset filter 81 supplies the filter image obtained as a result of the application of the adaptive offset filter to the ALF 82, and the process proceeds from step S59 to step S60.
[0346] The ALF 82 applies the ALF to the filtered image from the adaptive offset filter 81, and supplies the resulting filtered image to the reordering buffer 67 and the frame memory 69, and the process proceeds to step S61.
[0347] In step S61, the frame memory 69 temporarily stores the filter image supplied from the ALF 82, and the process proceeds to step S62. The filter image (decoded image) stored in the frame memory 69 is used as a reference image from which a predicted image is generated in the intra prediction or inter prediction in step S53.
[0348] In step S62, the sorting buffer 67 sorts the filtered images supplied from the ALF 82 in display order and supplies the sorted images to the D / A conversion unit 68, and the process proceeds to step S63.
[0349] In step S63, the D / A conversion unit 68 D / A converts the filter image from the rearrangement buffer 67, and the decoding process ends. The filter image after the D / A conversion (decoded image) is output to a display (not shown) and displayed.
[0350] The intra prediction performed by the intra prediction unit 34 in Fig. 123 and the intra prediction unit 71 in Fig. 125 includes MIP. In the intra prediction units 34 and 71, generation of an MIP predicted image is performed using any one of the second to fourth generation methods.
[0351] <Other>
[0352] This technology can be applied to any image encoding / decoding method. In other words, as long as it does not conflict with the above-mentioned technology, the specifications of various processes related to image encoding / decoding, such as transform (inverse transform), quantization (inverse quantization), encoding (decoding), and prediction, are arbitrary and are not limited to the above-mentioned examples. In addition, as long as it does not conflict with the above-mentioned technology, some of these processes may be omitted.
[0353] In addition, in this specification, a "block" (not a block indicating a processing unit) used in the description as a partial region or processing unit of an image (picture) indicates any partial region in a picture unless otherwise specified, and its size, shape, characteristics, etc. are not limited. For example, a "block" includes any partial region (processing unit) such as a TB (Transform Block), TU (Transform Unit), PB (Prediction Block), PU (Prediction Unit), SCU (Smallest Coding Unit), CU (Coding Unit), LCU (Largest Coding Unit), CTB (Coding Tree Block), CTU (Coding Tree Unit), transform block, sub-block, macroblock, tile, or slice described in reference documents REF1 to REF3.
[0354] The data units in which the various information described above is set and the data units targeted by the various processes are each arbitrary and are not limited to the above examples. For example, these pieces of information and processes may be set for each TU (Transform Unit), TB (Transform Block), PU (Prediction Unit), PB (Prediction Block), CU (Coding Unit), LCU (Largest Coding Unit), sub-block, block, tile, slice, picture, sequence, or component, or may target data of these data units. Of course, this data unit may be set for each piece of information or process, and the data units of all pieces of information and processes do not need to be unified. The storage location of these pieces of information is arbitrary, and may be stored in the header or parameter set of the above-mentioned data unit. Also, they may be stored in multiple locations.
[0355] Control information related to the present technology described above may be transmitted from the encoding side to the decoding side. For example, control information (e.g., enabled_flag) that controls whether or not to permit (or prohibit) application of the present technology described above may be transmitted. In addition, for example, control information indicating a target to which the present technology described above is applied (or a target to which it is not applied) may be transmitted. For example, control information that specifies a block size (upper or lower limit, or both), frame, component, or layer to which the present technology is applied (or permitted or prohibited to be applied) may be transmitted.
[0356] When specifying the size of the block to which the present technology is applied, the block size may be specified indirectly as well as directly. For example, the block size may be specified using identification data for identifying the size. Also, for example, the block size may be specified by a ratio or difference with respect to the size of a reference block (for example, LCU, SCU, etc.). For example, when transmitting information specifying a block size as a syntax element, the information indirectly specifying the size as described above may be used as the information. In this way, the amount of information can be reduced, and the encoding efficiency may be improved. Also, the specification of the block size includes specification of a range of block sizes (for example, specification of a range of allowable block sizes, etc.).
[0357] In this specification, "identification data" refers to information for identifying multiple states, and includes "flags" and other names. In addition, "identification data" includes not only information used to identify two states, true (1) or false (0), but also information capable of identifying three or more states. Therefore, the value that this "identification data" can take may be, for example, a binary value of 1 / 0, or may be three or more values. In other words, the number of bits constituting this "identification data" is arbitrary, and may be one bit or multiple bits. In addition, it is assumed that the identification data is not only included in the bit stream, but also that difference information of the identification data with respect to certain reference information is included in the bit stream. Therefore, in this specification, "identification data" includes not only the information, but also the difference information with respect to the reference information.
[0358] In addition, various information (metadata, etc.) related to the encoded data (bit stream) may be transmitted or recorded in any form as long as it is associated with the encoded data. Here, the term "associate" means, for example, that one piece of data can be used (linked) when processing the other piece of data. In other words, data associated with each other may be combined into one piece of data, or each piece of data may be made into separate data. For example, information associated with encoded data (image) may be transmitted on a transmission path different from that of the encoded data (image). Also, for example, information associated with encoded data (image) may be recorded on a recording medium different from that of the encoded data (image) (or on a different recording area of the same recording medium). Note that this "association" may be a part of the data, not the entire data. For example, an image and information corresponding to the image may be associated with each other in any unit, such as multiple frames, one frame, or a part of a frame.
[0359] In this specification, the terms "combine," "multiplex," "append," "integrate," "include," "store," "embed," "insert," and the like refer to combining multiple items into one, such as combining encoded data and metadata into one piece of data, and refer to one method of "associating" as described above.
[0360] The present technology can also be implemented as any configuration constituting an apparatus or system, for example, a processor as a system LSI (Large Scale Integration), a module using multiple processors, a unit using multiple modules, a set in which other functions are added to a unit, and the like (i.e., a configuration of a part of an apparatus).
[0361] <Description of the computer to which this technology is applied>
[0362] Next, all or part of the above-mentioned series of processes can be performed by hardware or software. When all or part of the series of processes is performed by software, a program constituting the software is installed in a general-purpose computer or the like.
[0363] FIG. 127 is a block diagram showing an example of the configuration of an embodiment of a computer in which a program for executing all or part of the series of processes described above is installed.
[0364] The program can be recorded in advance on the hard disk 905 or ROM 903 as a recording medium built into the computer.
[0365] Alternatively, the program can be stored (recorded) in a removable recording medium 911 driven by the drive 909. Such a removable recording medium 911 can be provided as a so-called package software. Here, examples of the removable recording medium 911 include a flexible disk, a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto Optical) disk, a DVD (Digital Versatile Disc), a magnetic disk, and a semiconductor memory.
[0366] The program can be installed in the computer from the removable recording medium 911 as described above, or can be downloaded to the computer via a communication network or a broadcasting network and installed in the built-in hard disk 905. That is, the program can be transferred to the computer wirelessly from a download site via an artificial satellite for digital satellite broadcasting, or transferred to the computer by wire via a network such as a LAN (Local Area Network) or the Internet.
[0367] The computer includes a CPU (Central Processing Unit) 902 , to which an input / output interface 910 is connected via a bus 901 .
[0368] When a user inputs a command by operating an input unit 907 via an input / output interface 910, the CPU 902 executes a program stored in a read only memory (ROM) 903 in accordance with the command. Alternatively, the CPU 902 loads a program stored in a hard disk 905 into a random access memory (RAM) 904 and executes the program.
[0369] As a result, the CPU 902 performs processing according to the above-mentioned flowchart or processing performed by the configuration of the above-mentioned block diagram. Then, the CPU 902 outputs the processing result from the output unit 906 via the input / output interface 910, or transmits it from the communication unit 908, or further records it on the hard disk 905, as necessary.
[0370] The input unit 907 is composed of a keyboard, a mouse, a microphone, etc. The output unit 906 is composed of an LCD (Liquid Crystal Display), a speaker, etc.
[0371] Here, in this specification, the processing performed by a computer according to a program does not necessarily have to be performed in chronological order according to the order described in the flowchart. In other words, the processing performed by a computer according to a program also includes processing executed in parallel or individually (for example, parallel processing or processing by objects).
[0372] The program may be processed by one computer (processor), or may be distributed among multiple computers. Furthermore, the program may be transferred to a remote computer for execution.
[0373] Furthermore, in this specification, a system refers to a collection of multiple components (devices, modules (parts), etc.), regardless of whether all the components are in the same housing. Therefore, multiple devices housed in separate housings and connected via a network, and a single device in which multiple modules are housed in a single housing, are both systems.
[0374] The embodiments of the present technology are not limited to the above-described embodiments, and various modifications are possible without departing from the gist of the present technology.
[0375] For example, the present technology can be configured as cloud computing, in which a single function is shared and processed collaboratively by multiple devices via a network.
[0376] Furthermore, each step described in the above flow chart can be executed by one device, or can be shared and executed by a plurality of devices.
[0377] Furthermore, when a single step includes multiple processes, the multiple processes included in the single step can be executed by a single device, or can be shared and executed by multiple devices.
[0378] Furthermore, the effects described in this specification are merely examples and are not limiting, and other effects may also be obtained. [Explanation of symbols]
[0379] 10 image processing system, 11 encoder, 21 A / D converter, 22 reordering buffer, 22, 23 calculation unit, 24 orthogonal transform unit, 25 quantization unit, 26 lossless encoding unit, 27 accumulation buffer, 28 inverse quantization unit, 29 inverse orthogonal transform unit, 30 calculation unit, 31a, 31b deblocking filter, 32 frame memory, 33 selection unit, 34 intra prediction unit, 35 motion prediction compensation unit, 36 predicted image selection unit, 37 rate control unit, 41 adaptive offset filter, 42 ALF, 51 decoder, 61 accumulation buffer, 62 lossless decoding unit, 63 inverse quantization unit, 64 inverse orthogonal transform unit, 65 calculation unit, 67 reordering buffer, 68 D / A converter, 69 frame memory, 70 selection unit, 71 intra prediction unit, 72 motion prediction compensation unit, 73 selection unit, 81 adaptive offset filter, 82 ALF, 901 bus, 902 CPU, 903 ROM, 904 RAM, 905 hard disk, 906 output unit, 907 input unit, 908 communication unit, 909 drive, 910 input / output interface, 911 removable recording medium
Claims
1. A setting unit that sets identification data for identifying that a matrix intra prediction, which is an intra prediction using a matrix operation, is to be performed on a current prediction block to be encoded; an intra prediction unit that, when the identification data set by the setting unit indicates that the matrix intra prediction is to be performed, performs the matrix intra prediction using a shift amount that is set to a fixed value that is fixed regardless of a mode of intra prediction using a matrix operation, and generates a predicted image of the current prediction block; an encoding unit that encodes the current prediction block using the prediction image generated by the intra prediction unit to generate a bit stream including the identification data set by the setting unit; An image processing device comprising:
2. The intra prediction unit performs the matrix intra prediction according to a calculation that is changed according to a shift amount that is set to a fixed value. The image processing device according to claim 1 .
3. The intra prediction unit performs the matrix intra prediction according to a calculation including a weight matrix changed according to a shift amount set to a fixed value. The image processing device according to claim 2 .
4. The fixed value is 6. The image processing device according to claim 3 .
5. Setting identification data for identifying whether or not a matrix intra prediction, which is an intra prediction using a matrix operation, is to be performed on a current prediction block to be encoded; When the identification data indicates that the matrix intra prediction is to be performed, the matrix intra prediction is performed using a shift amount that is set to a fixed value regardless of a mode of intra prediction using a matrix operation, and a predicted image of the current prediction block is generated; encoding the current prediction block using the prediction image to generate a bitstream including the identification data; An image processing method comprising:
6. A parsing unit that parses identification data from a bit stream including the identification data that identifies that a current prediction block to be decoded is to be subjected to intra-matrix prediction, which is intra-matrix prediction using a matrix operation; an intra prediction unit that, when the identification data parsed by the parsing unit indicates that the matrix intra prediction is to be performed, performs the matrix intra prediction using a shift amount that is set to a fixed value that is fixed regardless of a mode of intra prediction using a matrix operation, and generates a predicted image of the current prediction block; a decoding unit that decodes the current prediction block by using the prediction image generated by the intra prediction unit; An image processing device comprising:
7. The intra prediction unit performs the matrix intra prediction according to an operation that is changed according to a shift amount that is set to a fixed value. The image processing device according to claim 6.
8. The intra prediction unit performs the matrix intra prediction according to an operation including a weight matrix changed according to a shift amount set to a fixed value. The image processing device according to claim 7.
9. The fixed value is 6. The image processing device according to claim 8.
10. Parsing identification data from a bitstream including the identification data for identifying that a current prediction block to be decoded is to be subjected to intra-matrix prediction, which is intra-matrix prediction using a matrix operation; When the identification data indicates that the matrix intra prediction is to be performed, the matrix intra prediction is performed using a shift amount that is set to a fixed value regardless of a mode of intra prediction using a matrix operation, and a predicted image of the current prediction block is generated; decoding the current prediction block using the predicted image; An image processing method comprising:
Citation Information
Patent Citations
Intra predictions using linear or affine transforms with neighbouring sample reduction
WO2020127811A2