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 capable of simplifying processing, for example.
Joint standardization organization of ITU-T and ISO/IEC, Joint Video Experts Team (JVET) aims to further improve encoding efficiency compared to H.265/HEVC, and is working on standardization of versatile video coding (VVC), which is the next-generation image encoding method.
In the standardization operation 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 (for example, see Non-Patent Documents 1 and 2).
In MIP, parameters of a matrix (weight matrix) and a bias (bias vector) obtained by parameter learning are defined, and an operation using the matrix and the bias (parameters) is performed.
Non-Patent Document 1: JVET-N0217-v3: CE3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2) (version 7—date Jan 17, 2019)
Non-Patent Document 2: JVET-00084-v1: 8-bit implementation and simplification of MIP (version 1—date Jun. 18, 2019)
In the MIP operation (operation performed by the MIP), a shift is performed by a predetermined shift amount The shift amount is changed according to MipSizeld indicating a matrix size of the matrix and a mode number of the MIP in order to improve bit accuracy.
As described above, in the MIP operation, since the shift amount is changed according to the MipSizeld and the MIP mode number, the shift amount needs to be set for each combination of the MipSizeld and the mode number of the MIP and the processing is complicated.
The present technology has been made in view of such a situation, and makes it possible to simplify processing.
An image processing device of a first aspect of the present technology includes an intra prediction unit configured to perform matrix intra prediction using a shift amount set to a fixed value when performing the matrix intra prediction, which is intra prediction, on a current prediction block to be encoded, using a matrix operation to generate a predicted image of the current prediction block, and an encoding unit configured to encode the current prediction block using the predicted image generated by the intra prediction unit.
An image processing method of a first aspect of the present technology includes an intra prediction process of performing matrix intra prediction using a shift amount set to a fixed value when performing the matrix intra prediction, which is intra prediction, on a current prediction block to be encoded, using a matrix operation to generate a predicted image of the current prediction block, and an encoding process of encoding the current prediction block using the predicted image generated in the intra prediction process.
In the image processing device and the image processing method according to the first aspect of the present technology, when the matrix intra prediction which is the intra prediction using the matrix operation is performed on the current prediction block to be encoded, the matrix intra prediction is performed by using the shift amount set to the fixed value to generate the predicted image of the current prediction block. Then, the current prediction block is encoded using the predicted image.
An image processing device of a second aspect of the present technology includes an intra prediction unit configured to perform matrix intra prediction using a shift amount set to a fixed value when performing the matrix intra prediction, which is intra prediction, on a current prediction block to be decoded, using a matrix operation to generate a predicted image of the current prediction block, and a decoding unit configured to decode the current prediction block using the predicted image generated by the intra prediction unit.
An image processing method of a second aspect of the present technology includes an intra prediction process of performing matrix intra prediction using a shift amount set to a fixed value when performing the matrix intra prediction, which is intra prediction, on a current prediction block to be decoded, using a matrix operation to generate a predicted image of the current prediction block, and a decoding process of decoding the current prediction block using the predicted image generated in the intra prediction process.
In the image processing device and the image processing method according to the second aspect of the present technology, when the matrix intra prediction which is the intra prediction using the matrix operation is performed on the current prediction block to be decoded, the matrix intra prediction is performed by using the shift amount set to the fixed value to generate the predicted image of the current prediction block. Then, the current prediction block is decoded using the predicted image.
Note that the image processing device may be an independent device or an internal block constituting one device.
In addition, 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 by being transmitted through a transmission medium
5
<References>
The scope disclosed herein is not limited to the contents of embodiments, and the contents of the following references REF 1 to REF 7, which are known at the time of filing, are also incorporated herein by reference. In other words, the contents described in the following references REF 1 to REF 7 are also the basis for judging the support requirements. For example, even when a quad-tree block structure, a quad tree plus binary tree (QTBT) block structure, and a multi-type tree (MTT) block structure are not directly defined in the detailed description of invention, they are within the scope of the present disclosure and shall meet the support requirements of the claims. In addition, for example, even when technical terms such as parsing, syntax, and semantics are not directly defined in the detailed description of the invention, similarly, they are within the scope of the present disclosure and shall meet the support requirements of the claims.
REF 1: Recommendation ITU-T H.264 (04/2017) “Advanced video coding for generic audiovisual services”, April 2017
REF 2: Recommendation ITU-T H.265 (02/2018) “High efficiency video coding”, February 2018
REF 3: Benjamin Bross, Jianle Chen, Shan Liu, Versatile Video Coding (Draft 5), JVET-N1001-v7 (version 7—date May 29, 2019)
REF 4: Jianle Chen, Yan Ye, Seung Hwan Kim, Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5), JVET-N1002-v1
REF 5: JVET-N0217-v3: CE3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2) (version 7—date Jan. 17, 2019)
REF 6: JVET-M0043-v2: CE3: Affine linear weighted intra prediction (test 1.2.1, test 1.2.2) (version 2—date Jan. 9, 2019)
REF 7: JVET-OOO84-v1: 8-bit implementation and simplification of MIP (version 1—date Jan. 18, 2019)
<Definition>
Speaking of pixels, the adjacent includes not only a case in which one pixel (one line) is adjacent to a current pixel of interest, but also a case in which a plurality of pixels (a plurality of lines) are adjacent. Therefore, the adjacent pixel includes not only a pixel at a position of one pixel directly adjacent to a current pixel, but also pixels at positions of a plurality of pixels continuously adjacent to the current pixel. Further, the adjacent block includes not only a block in a range of one block directly adjacent to the current block of interest, but also a block in a range of a plurality of blocks continuously adjacent to the current block. Further, the adjacent block can also include a block located in the vicinity of the current block, as necessary.
The prediction block means a block (prediction unit (PU)) that is a processing unit upon performing intra prediction, and also includes sub-blocks in the prediction block. When the prediction block, an orthogonal transform block (transform unit (TU)), which is a processing unit for performing orthogonal transform, and an encoding block (coding unit (CU)), which is a processing unit for encoding, are unified into the same block, the prediction block, the orthogonal transform block, and the encoding block mean the same block.
The intra prediction mode comprehensively means variables (parameters) referenced when deriving the intra prediction mode, such as a mode number when performing the intra prediction, an index of the mode number, a block size of the prediction block, and a size of a sub-block which is the processing unit in the prediction block.
A matrix intra prediction mode (MIP mode) comprehensively refers to variables (parameters) referenced when deriving the matrix intra prediction mode, such as a mode number of the MIP, an index of the mode number, a type of matrix used when performing MIP operation, a type of matrix size of the matrix used when performing the MIP operation, and the like.
Changing means changing based on the contents (values, arithmetic expressions, variables, or the like) described in references REF 3 or REF 7. The changing can include changing based on the contents described in the document “JVET-N1001-v7_proposal_text_MIP_8Bit.docx” (hereinafter, also referred to as Reference A) that is published in other documents that are known at the time of filing, for example, a web site (http://phenix.int-evry.fr/jvet/) of “JVET DOCUMENT MANAGEMENT SYSTEM”.
For example, in reference REF 3, 8 and 9 are mixed as the shift amount sW used in the MIP operation, but the changing includes changing 9 of the mixed shift amount sW to 8, changing the MIP operation (matrix operation) including a weight matrix mWeight, changing the MIP operation including a bias vector vBias, or the like.
Further, for example, in Reference A (Reference REF 7), 6, 7, and 8 are mixed as the shift amount sW, but the changing includes changing 7 of the mixed shift amount sW to 6, changing from 8 to 7, changing the MIP operation including the weight matrix mWeight, changing the MIP operation including a variable oW corresponding to the bias vector vBias, or the like. The changing of the MIP operation includes the weight matrix mWeight used for the MIP operation, the bias vector vBias, a variable fO used to obtain the variable oW, or the like.
In the present technology, identification data that identifies a plurality of patterns can be set as a bitstream syntax obtained by encoding an image. The bitstream can include the identification data that identifies various patterns.
As the identification data, for example, the information on the shift amount sW, for example, data indicating whether or not the shift amount sW is the fixed value (set to a fixed value) can be adopted.
When the identification data is included in the bitstream, the decoder that decodes the bitstream can perform processing more efficiently by parsing and referencing the identification data.
The first generation method is a method for generating a predicted image of MIP proposed in Reference REF 3 (JVET-N1001-v7).
In the first generation method, according to Equation (1) described as Equation (8-69) in Reference REF 3, predMip [x] [y] (pixel values) of (some) pixels of the predicted image of the current prediction block which is the prediction block to be encoded/decoded) is generated.
predMip[x] [y]=((ΣmWeight[i][y*incH*predC+x*incW]*p[i])+(vBias[y*incH* predC+x*incW]<<sB)+oW)>>sW (1)
predMip [x] [y] represents pixels (pixel values) in which a horizontal position of the predicted image is x and a vertical position thereof is y. The pixel of the predicted image is also referred to as a predicted pixel.
In Equation (1), a summation Σ represents a summation taken while changing variable i to an integer from 0 to 2*boundarySize-1. The boundarySize is set corresponding to the block size of the current prediction block. Specifically, the boundarySize is set according to Table 8-7 of Reference REF 3 according to MipSizeld which is an identifier of the matrix size of the matrix (weight matrix mWeight [i] [j]) used for the operation (matrix operation) with the pixel of the current prediction block in the MIP. The MipSizeld is set to 0, 1, and 2, respectively, when the matrix size is 4×4, 8×8, and 16×16.
mWeight [i] [j] represents components of a j-th row and an i-th column of the matrix used in the MIP, and is referred to as a weight matrix. The weight matrix mWeight [i] [j] is set according to the MipSizeld and the modeld.
The number of values taken by arguments i and j of the weight matrix mWeight [i] [j] is equal to the number of pixels obtained by averaging in reference REF 5 and the number of pixels predMip [x] [y] of the predicted image, respectively.
In addition, a sum-of-product arithmetic mWeight [i] [y*incH * predC+x*incW]*p [i] performed using the weight matrix mWeight [i] [j] is the matrix operation performed on (pixels of) the current prediction block in the MIP. That is, the sum-of-product mWeight [i] [y* incH*predC+x*incW]*p [i] is a matrix operation to obtain a product of a matrix whose component is the weight matrix mWeight [i] [j] and a vector whose component is a pixel p[i] of the current prediction block.
The modeld is set to any value from 0 to 17 according to Equation (8-64) of reference REF 3 according to the intra prediction mode predModeIntra.
incH and incW are set according to Equations (8-67) and (8-68) of Reference REF 3, respectively, according to PredC.
The PredC is set according to Table 8-7 of reference REF 3 according to the MipSizeld.
p[i] represents (the pixel value of) the i-th pixel obtained by averaging using the pixels of the reference image referenced when generating the predicted image of the current prediction block.
vBias [j] is the bias added to the pixels predMip [x] [y] of the predicted image, and is referred to as the bias vector. The bias vector vBias [j] is set according to the sizeId and the modeld. The number of values taken by the argument j of the bias vector vBias [j] is equal to the number of values taken by the argument j of the weight matrix mWeight [i] [j], that is, the number of pixels predMip [x] [y] of the predicted image.
It is stated that the sizeId takes 0, 1, or 2 in Table 8-2 of reference REF 3.
sB is set according to the number of bits bitdpthY represents the pixel value according to Equation (8-66) of the Reference REF 3
oW is set according to sW (Weight shift) according to Equation (8-65) in Reference REF 3.
sW is set according to the MipSizeld and the modeld according to Table 8-8 of reference REF 3.
Note that A<<B and A>>B indicate that A is shifted left and right by a B bit, respectively.
In the first generation method, sW is a shift amount that shifts ((ΣmWeight [i] [y*incH*predC+x* incW]*p [i])+(vBias [y*incH*predC+x*incW]<<sB)+oW).
According to Table 8-8 of reference REF 3, the shift amount sW is set to one of 8 and 9 according to the MipSizeld and the modeld as illustrated in
Therefore, in the first generation method, it is necessary to reset the shift amount sW for each combination of the MipSizeld and the modeld, which complicates the processing of generating the predicted image of the MIP.
For example, when the first generation method is implemented by hardware, a selector for switching the shift amount sW is required, which increases the circuit scale. Further, when the first generation method is implemented by software, it is necessary to reference the table specified as Table 8-8 in Reference REF 3, and the processing speed is reduced by that amount.
Therefore, in the present technology, the MIP is performed using a shift amount set to a fixed value. That is, for example, the operation of Equation (1) is changed according to the shift amount sW set to the fixed value, and the predicted image of the MIP is generated according to the changed operation.
In the second generation method, the shift amount sW of Equation (1) for generating the predicted image of MIP proposed in reference REF 3 (JVET-N1001-v7) is set to a fixed value, for example, 8. Then, in the second generation method, the operation of Equation (1) is changed according to the shift amount sW=8 set to the fixed value of 8, and the predicted image of the MIP is generated according to the changed operation.
Specifically, in the second generation method, the weight matrix mWeight [i] [j] and/or the bias vector vBias [j] is changed according to the shift amount sW=8 set to a fixed value, and the predicted image of the MIP is generated according to the operation including the changed weight matrix mWeight [i] [j] and/or the bias vector vBias [j].
Here, the combination of the MipSizeld and the modeld is represented as (M, m). M represents the MipSizeld and m represents the modeld.
In addition, the predicted pixel predMip [x] [y] obtained before setting the shift amount sW to the fixed value, in
In Table 8-8 of Reference REF 3, when (M, m)=(1, 3) and (M, m)=(1, 8), the shift amount sW is 9, and in other combinations of the MipSizeld and the modeld, the shift amount sW is 8. Therefore, in Table 8-8 of reference REF 3, the shift amount sW of (M, m)=(1, 3) and (M, m)=(1, 8) is changed from 9 to 8, and therefore, the shift amount sW can be fixed to 8 for each combination of the MipSizeld and the modeld.
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 for each combination of MipSizeld and the modeld, the shift amount sW is fixed to 8. Then, the weight matrix mWeight [i] [j] and the 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 (hereinafter, also referred to as a fixed predicted pixel) obtained after setting the shift amount sW to the fixed value), 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 the standard predicted pixel predMip[x] [y].
In the second generation method, the predicted image of the MIP is generated according to the operation of Equation (1) including the weight matrix mWeight [i] [j] changed according to the shift amount sW=8 set to the fixed value as described above and the bias vector vBias [j].
Therefore, in the second generation method, the shift amount sW is fixed regardless of the modeld and the combination of the MipSizeld and the modeld, so the processing of the MIP can be simplified. As a result, it is not necessary to specify the table specified as Table 8-8 in Reference REF 3 in the standard, and the standard can be simplified.
In addition, for example, when the second generation method is implemented by hardware, the selector for switching the shift amount sW is not required, which can suppress the increases in the circuit scale. Furthermore, when the second generation method is implemented by software, it is not necessary to reference the table specified as Table 8-8 in Reference REF 3, and it is possible to suppress the decrease in the processing speed compared to the case of referencing the table.
Here, when the weight matrix mWeight [i] [j] before setting the shift amount sW to the fixed value, for example, the shift amount sW of (M, m)=(1, 3) specified in Reference REF 3 is 9, the weight matrix mWeight [i] [j] of (M, m)=(1, 3) is referred to as the standard weight matrix mWeight [i] [j] of (M, m)=(1, 3). Also, when the weight matrix mWeight [i] [j] after setting the shift amount sW to the fixed value, for example, the shift amount sW of (M, m)=(1, 3) is changed to 8, the weight matrix mWeight [i] [j] in which the standard weight matrix mWeight[i] [j] of (M, m)=(1, 3) used in Equation (1) is referred to as the fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3).
A of
In
In
Note that the fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3) is not limited to the value illustrated in
For the fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3), the shift amount sW set to the fixed value is used to perform the operation, and can be changed as appropriate within the range in which the technical effect is appropriately exhibited. Further, since the range in which the technical effect is exhibited changes depending on the approximate level to be set, it can be appropriately changed as long as it falls within those ranges. For example, it can be changed within the range of ±1 and can be changed within the range of ±3. Furthermore, it is possible not only to change all values uniformly, but also to change only some values. It is also possible to set the range of values to be changed individually with respect to the existing values.
That is, for example, when the operation of Equation (1) was performed using the shift amount sW set to the fixed value, the fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3) can be appropriately changed within the range in which the technical effects such as ensuring a predetermined prediction accuracy or higher can be obtained for the predicted image.
In addition, the range (degree) at which the technical effect is exhibited is changed depending on how much the degree to which the fixed prediction pixel predMip [x] [y] approximates the standard prediction pixel predMip [x] [y] (hereinafter, also referred to as the approximation level) is set. The fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3) can be changed as appropriate within the range in which the set approximation level can be maintained.
For example, the fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3) can be changed within the range of ±1 based on the value illustrated in B of
The change of the fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3) can be made on all of the fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3), but can be made only on a part of the fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3).
In addition, as the range of values in which the fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3) is changed, it is also possible to adopt a uniform range for all of the fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3) and adopt a separate range for each fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3).
For example, the range of values in which the fixed weight matrix mWeight [i] [j] of (M, m)=(1, 3) is changed can be set individually for each value of the corresponding standard weight matrix mWeight [i] [j].
The same also applies to the fixed weight matrix mWeight [i] [j] other than (M, m)=(1, 3), the bias vector vBias [j] changed according to the shift amount sW set to the fixed value, and the variable fO described later, which is changed according to the shift amount sW set to the fixed value.
A of
In
In
Here, the bias vector vBias [j] before setting the shift amount sW to the fixed value, for example, the bias vector vBias[j] of MipSizeld=1 when the shift amount sW of MipSizeld=1 specified in Reference REF 3 is 9 is also referred to as the standard bias vector vBias [j] of MipSizeld=1.
In addition, the bias vector vBias [j] after setting the shift amount sW to the fixed value, for example, the bias vector vBias[j] in which the standard bias vector vBias [j] of MipSizeld=1 used in Equation (1) when the shift amount sW of MipSizeld=1 is changed to 8 is referred to as the fixed bias vector vBias[j] of MipSizeld=1.
A of
In
In
In the third generation method, the shift amount sW of the operation for generating the predicted image of the MIP proposed in Reference A (JVET-N1001-v7_proposal_text_MIP_8Bit.docx) (and Reference REF 7) is set to the fixed value, for example, 6. Then, in the third generation method, the operation to generate the predicted image of MIP is changed according to the shift amount sW=6 set to the fixed value of 6, and the predicted image of the MIP is generated according to the changed operation.
Here, in the generation of the predicted image proposed in Reference A, (some) pixels predMip [x] [y] of the predicted image of the current prediction block is generated according to Equation (2) described as Equation (8-69) in Reference A.
predMip[x] [y]=(((ΣmWeight[i ][y*incH*predC+x*incW]*p[i])+oW)>>sW)+dcVal (2)
In Equation (2), a summation Σ represents a summation taken while changing variable i to an integer from 0 to inSize-1. The inSize is set to 2* boundarySize-1 or 2*boundarySize.
The variable oW corresponds to the bias vector vBias [j] in Equation (1). The variable oW is calculated according to Equation (3) described as Equation (8-65) in reference A.
oW=(1<<(sW−1))−fO*(Σp[i]) (3)
Similar to Equation (2), in Equation (3), a summation Σ represents a summation taken while changing variable i to an integer from 0 to inSize-1.
The variable fO is set according to the MipSizeld and the modeld. Since the variable oW corresponding to the bias vector vBias [j] is calculated according to Equation (3) using the variable fO, similar to the variable oW, the variable fO can also correspond to the bias vector vBias [j].
In the generation of the predicted image proposed in Reference A, sW is the shift amount that shifts ((ΣmWeight [i] [y*incH*predC+x*incW]*p[i])+oW).
According to Table 8-8 of reference A, the shift amount sW is set to 6, 7, or 8 according to the MipSizeld and the modeld as illustrated in
Therefore, in the generation of the predicted image proposed in Reference A, there is a similar problem to the first generation method in that it is necessary to reset the shift amount sW for each combination of the MipSizeld and the modeld, the processing of generating the predicted image of the MIP becomes complicated, or the like.
Therefore, in the third generation method, the shift amount sW of Equation (2) for generating the predicted image of the MIP proposed in Reference A is set to the fixed value.
As the fixed value set in the shift amount sW, for example, among 6 to 8 described in Table 8-8 of Reference A, the minimum value of 6, the maximum value of 8, or the median value of 7 is used, or other values can be adopted. In
Then, in the third generation method, the operation of Equation (2) is changed according to the shift amount sW=6 set to the fixed value of 6, and the predicted image of the MIP is generated according to the changed operation.
Specifically, in the third generation method, the shift amount sW is fixed to 6 for each combination of the MipSizeld and the modeld.
Then, according to the fixed shift amount sW=6, the standard weight matrix mWeight [i] [j] and the variable fO (used to obtain the variable oW) corresponding to the bias vector vBias [j] are changed so that the fixed predicted pixel predMip [x] [y] obtained according to Equation (2) using the shift amount sW=6 is a value approximating the standard predicted pixel predMip [x] [y].
Here, the variable fO before setting the shift amount sW to the fixed value, here, the variable fO specified in Reference A is also referred to as the standard variable fO. Further, the variable fO after setting the shift amount sW to the 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.
In the third generation method, the predicted image of the MIP is generated according to the operation of Equation (2) (and Equation (3)) including the fixed weight matrix mWeight [i] [j] and the fixed variable fO obtained by changing the standard weight matrix mWeight [i] [j] and the standard variable fO according to the shift amount sW=6 set to the fixed value as described above.
As described above, similar to the second generation method, in the third generation method, the MIP is performed using the shift amount sW set to the fixed value. That is, the operation of Equation (2) is changed according to the shift amount sW set to the fixed value, and the predicted image of the MIP is generated according to the changed operation.
Therefore, in the third generation method, the shift amount sW is fixed regardless of the modeld and the combination of the MipSizeld and the modeld, so the processing of the MIP can be simplified. As a result, it is not necessary to specify the table specified as Table 8-8 in Reference A in the standard, and the standard can be simplified.
In addition, for example, when the third generation method is implemented by hardware, the selector for switching the shift amount sW is not required, which can suppress the increases in the circuit scale. Furthermore, when the third generation method is implemented by software, it is not necessary to reference the table specified as Table 8-8 in Reference A, and it is possible to suppress the decrease in the processing speed compared to the case of referencing the table.
In the fourth generation method, the shift amount sW of the operation for generating the predicted image of the MIP proposed in Reference A is set to the fixed value according to the matrix size of the weight matrix mWeight [i] [j] used in the MIP.
Here, since the MipSizeld is an identifier of the matrix size of the weight matrix mWeight [i] [j], setting the shift amount sW to the fixed value according to the matrix size is equivalent to setting the shift amount sW to the fixed value according to the MipSizeld, for example, setting the shift amount sW to the fixed value for each MipSizeld, or the like.
In the fourth generation method, the operation to generate the predicted image of the MIP is changed according to the shift amount sW set to the fixed value for each MipSizeld, and the predicted image of the MIP is generated according to the changed operation.
In the fourth generation method, as the fixed value for each MipSizeld set in the shift amount sW, for example, the minimum value or the maximum value of the shift amount sW for each MipSizeld described in Table 8-8 of Reference A or other values can be adopted.
For example, as the fixed value for each MipSizeld set in the shift amount sW, the minimum value of the shift amount sW for each MipSizeld described in Table 8-8 of Reference A is adopted.
In Reference A, since the shift amount sW of MipSizeld=0 can be 6 or 7, when the minimum value of the shift amount sW for each MipSizeld described in Table 8-8 of Reference A is adopted as the fixed value for each MipSizeld set in the shift amount sW, in the fourth generation method, the shift amount sW of MipSizeld=0 is fixed to 6 which is the minimum value of 6 and 7. That is, the shift amount sW which is 7 of MipSizeld=0 described in Table 8-8 of Reference A is changed to 6.
In Reference A, since the shift amount sW of MipSizeld=1 can be 7 or 8, when the minimum value of the shift amount sW for each MipSizeld described in Table 8-8 of Reference A is adopted as the fixed value for each MipSizeld set in the shift amount sW, in the fourth generation method, the shift amount sW of MipSizeld=1 is fixed to 7 which is the minimum value of 7 and 8. That is, the shift amount sW which is 8 of MipSizeld=1 described in Table 8-8 of Reference A is changed to 7.
In Reference A, since the shift amount sW of MipSizeld=2 can be 6 or 7, when the minimum value of the shift amount sW for each MipSizeld described in Table 8-8 of Reference A is adopted as the fixed value for each MipSizeld set in the shift amount sW, in the fourth generation method, the shift amount sW of MipSizeld=2 is fixed to 6 which is the minimum value of 6 and 7. That is, the shift amount sW which is 7 of MipSizeld=2 described in Table 8-8 of Reference A is changed to 6.
In the fourth generation method, as described above, the operation of Equation (2) is changed according to the shift amount sW set to the fixed value for each MipSizeld, and the predicted image of the MIP is generated according to the changed operation.
Specifically, in the fourth generation method, the shift amount sW is fixed to 6 for MipSizeld=0 and 2.
Further, for the fixed shift amount sW=6, the standard weight matrix mWeight [i] [j] and the standard variable fO are changed so that the fixed prediction pixel predMip [x] [y] obtained according to Equation (2) using the shift amount sW=6 is the value approximating the standard prediction pixel predMip [x] [y].
Then, the predicted image of the MIP is generated according to the operation 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 set to the fixed value.
In addition, for MipSizeld=1, the shift amount sW is fixed to 7.
Furthermore, for the fixed shift amount sW=7, the standard weight matrix mWeight [i] [j] and the standard variable fO are changed so that the fixed prediction pixel predMip [x] [y] obtained according to Equation (2) using the shift amount sW=7 is the value approximating the standard prediction pixel predMip [x] [y].
Then, the predicted image of the MIP is generated according to the operation 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 set to the fixed value.
Therefore, in the fourth generation method, two equations of the equation of the operation in which the operation of Equation (2) is changed according to the shift amount sW fixed to 6, and the equation of the operation in which the operation of Equation (2) is changed according to the shift amount sW fixed to 7 are used to be switched according to the MipSizeld.
As described above, in the fourth generation method, the MIP is performed using the shift amount set to the fixed value for each MipSizeld. That is, the operation of Equation (2) is changed according to the shift amount sW set to the fixed value for each MiPSizeId, and the predicted image of the MIP is generated according to the changed operation.
Therefore, in the fourth generation method, the shift amount sW is fixed regardless of the modeld, so the MIP processing can be simplified, and the table for each modeld specified as Table 8-8 in Reference A is not defined in the standard, and the standard can be simplified.
In addition, for example, when the fourth generation method is implemented by hardware, the selector for switching the shift amount sW is not required, which can suppress the increases in the circuit scale. Furthermore, when the fourth generation method is implemented by software, it is not necessary to reference the table specified as Table 8-8 in Reference A, and it is possible to suppress the decrease in the processing speed compared to the case of referencing the table.
Hereinafter, the shift amount sW described in Reference A, the (standard) weight matrix mWeight [i] [j], the (standard) variable fO, the shift amount sW used in the third generation method and the fourth generation method, the (fixed) weight matrix mWeight [i] [j], and the (fixed) variable fO will be further described.
In
In
In the standard variable fO of MipSizeld=0 in
In the third generation method, the shift amount sW is set to the fixed value, for example, 6.
Then, in the third generation method, the standard weight matrix mWeight [i] [j], the fixed weight matrix mWeight [i] [j] obtained by changing the standard variable fO, and the fixed variable fO are used so that the fixed predicted pixel predMip [x] [y] obtained after setting the shift amount sW to the fixed value of 6 is a value approximating the standard predicted pixel predMip [x] [y].
In the fourth generation method, the shift amount sW is set to the fixed value according to the matrix size of the weight matrix mWeight [i] [j] indicated by the MipSizeld. That is, in the fourth generation method, the shift amount sW is set to the fixed value for each MipSizeld. Specifically, the shift amount sW is set to 6, 7, and 6 when MipSizeld=0, 1, and 2, respectively.
Then, similar to the third generation method, in the fourth generation method, the standard weight matrix mWeight [i] [j], the fixed weight matrix mWeight [i] [j] obtained by changing the standard variable fO, and the fixed variable fO are used so that the fixed predicted pixel predMip [x] [y] obtained after setting the shift amount sW to the fixed value is a value approximating the standard predicted pixel predMip [x] [y].
<Image Processing System to which the Present Technology is Applied>
The image processing system 10 has an image processing device as an encoder 11 and an image processing device as a decoder 51.
The encoder 11 encodes the original image to be encoded supplied to the encoder 11 and outputs an encoded bitstream obtained by the encoding. The encoded bitstream is supplied to the decoder 51 via a recording medium or a transmission medium (not illustrated).
The decoder 51 decodes the encoded bitstream supplied thereto and outputs the decoded image obtained by the decoding.
<Configuration Example of Encoder 11>
Note that in the block diagram described below, the description of the line that supplies the information (data) required for the processing of each block is omitted as appropriate in order to avoid complicating the diagram.
In
The A/D conversion unit 21 A/D-converts the original image (encoding target) of the analog signal into an original image of a digital signal, and supplies and stores the A/D converted original image to and in the rearrangement buffer 22. Note that when the original image of the digital signal is supplied to the encoder 11, the encoder 11 can be configured without providing the A/D conversion unit 21.
The rearrangement buffer 22 rearranges the frame of the original image from the display order to the encoding (decoding) order according to a group of picture (GOP), and supplies the frame to the calculation unit 23, the intra prediction unit 34, and the motion prediction/compensation unit 35.
The calculation unit 23 subtracts the predicted image supplied from the intra prediction unit 34 or the motion prediction/compensation unit 35 via the prediction image selection unit 36 from the original image from the rearrangement buffer 22, and supplies the residual (predicted residual) obtained by the subtraction to the orthogonal transform unit 24.
The orthogonal transform unit 24 performs an orthogonal transform such as a discrete cosine transform or a Karhunen-Loève transform on the residual supplied from the calculation unit 23, and supplies the orthogonal transform coefficient obtained by the orthogonal transform to the quantization unit 25.
The quantization unit 25 quantizes the orthogonal transform coefficient supplied from the orthogonal transform unit 24. The quantization unit 25 sets a quantization parameter based on a target value of a code amount (code amount target value) supplied from the rate control unit 37, and performs the quantization of the orthogonal transform coefficient. The quantization unit 25 supplies encoded data, which is the quantized orthogonal transform coefficient, to the reversible encoding unit 26.
The reversible encoding unit 26 encodes the quantized orthogonal transform coefficient as the encoded data from the quantization unit 25 by a predetermined reversible encoding method.
Further, the reversible encoding unit 26 acquires encoding information required for decoding by the decoding device 170 from each block among encoding information related to the predictive encoding in the encoder 11.
Here, as the encoding information, for example, there are a prediction mode of intra prediction or inter prediction, motion information such as motion vector, a code amount target value, a quantization parameter, picture types (I, P, B), filter parameters such as deblocking filter 31a and the adaptive offset filter 41, and the like.
The prediction mode can be obtained from the intra prediction unit 34 or the motion prediction/compensation unit 35. The motion information can be acquired from the motion prediction/compensation unit 35. The filter parameters of the deblocking filter 31a and the adaptive offset filter 41 can be acquired from the deblocking filter 31a and the adaptive offset filter 41, respectively.
The reversible encoding unit 26 encodes the coding information by, for example, variable length coding or arithmetic coding such as context-adaptive variable length coding (CAVLC) or context-adaptive binary arithmetic coding (CABAC), or other reversible coding methods, generates the encoded bitstream including (multiplexed) the encoded information after encoding, the encoded data from the quantization unit 25 and supplied the generated encoded bitstream to the accumulation buffer 27.
Here, the above calculation unit 23 or the reversible encoding unit 26 constitutes an encoding unit that encodes an image, and the processing (process) performed by the encoding unit is the encoding process.
The accumulation buffer 27 temporarily accumulates the encoded bitstream supplied from the reversible encoding unit 26. The encoded bitstream stored in the accumulation buffer 27 is read and transmitted at a predetermined timing.
The encoded data, which is the orthogonal transform coefficient quantized in the quantization unit 25, is not only supplied to the reversible encoding unit 26, but also to the inverse quantization unit 28. The inverse quantization unit 28 inversely quantizes the quantized orthogonal transform coefficient by a method corresponding to the quantization by the quantization unit 25, and supplies the orthogonal transform coefficient obtained by the inverse quantization is transmitted to the inverse orthogonal transform unit 29.
The inverse orthogonal transform unit 29 inversely orthogonal transforms the orthogonal transform coefficient supplied from the inverse quantization unit 28 by a method corresponding to the orthogonal transform processing by the orthogonal transform unit 24, and supplies the residuals obtained as a result of the inverse orthogonal transform to the calculation unit 30.
The calculation unit 30 adds the predicted image supplied from the intra prediction unit 34 or the motion prediction/compensation unit 35 via the prediction image selection unit 36 to the residual supplied from the inverse orthogonal transform unit 29, thereby obtaining and output (a part of) the decoded image from which the original image is decoded.
The decoded image output by the calculation unit 30 is supplied to the deblocking filter 31a or the frame memory 32.
The frame memory 32 temporarily stores the decoded image supplied from the calculation unit 30, and the decoded image (filter image) supplied from the ALF 42 and to which the deblocking filter 31a, the adaptive offset filter 41, and the ALF 42 are applied. The decoded image stored in the frame memory 32 is supplied to the selection unit 33 as the reference image used for generating the predicted image at a required timing.
The selection unit 33 selects the supply destination of the reference image supplied from the frame memory 32. When the 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 the 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.
The intra prediction unit 34 performs the intra prediction (in-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 the prediction mode of the optimum intra prediction based on a predetermined cost function, and supplies the predicted image generated from the reference image in the prediction mode of the optimum intra prediction to the prediction image selection unit 36. Further, the intra prediction unit 34 appropriately supplies the prediction mode of the intra prediction selected based on the cost function to the reversible encoding unit 26 and the like.
The motion prediction/compensation unit 35 performs the 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. Further, the motion prediction/compensation unit 35 performs motion compensation according to the motion vector detected by the motion prediction and generates the predicted image. The motion prediction/compensation unit 35 performs inter prediction in a prediction mode of a plurality of inter predictions prepared in advance, and generates the predicted image from the reference image.
The motion prediction/compensation unit 35 selects the prediction mode of the optimum inter prediction from the prediction mode of the plurality of inter predictions based on a predetermined cost function. Furthermore, the motion prediction/compensation unit 35 supplies the predicted image generated in the prediction mode of the optimum inter prediction to the prediction image selection unit 36.
In addition, the motion prediction/compensation unit 35 supplies the prediction mode of the optimum inter prediction selected based on the cost function or motion information such as a motion vector required to decode the encoded data encoded in the prediction mode of the inter prediction to the reversible encoding unit 26.
The prediction image selection unit 36 selects a supply source of the predicted image to be supplied to the calculation unit 23 and the calculation unit 30 from the intra prediction unit 34 and the motion prediction/compensation unit 35, and selects the predicted image supplied from the selected supply source to the calculation unit 23 and the calculation unit 30.
The rate control unit 37 controls the rate of the quantization operation of the quantization unit 25 based on the code amount of the encoded bitstream accumulated in the accumulation buffer 27 so that overflow or underflow does not occur. That is, the rate control unit 37 sets the target code amount of the encoded bitstream and supplies the set target code amount to the quantization unit 25 so that the overflow and underflow of the accumulation buffer 27 does not occur.
The deblocking filter 31a applies the deblocking filter to the decoded image from the calculation unit 30 as necessary, and supplies the decoded image (filtered image) to which the deblocking filter is applied, or the decoded image to which the deblocking filter is not applied to the adaptive offset filter 41.
The adaptive offset filter 41 applies the adaptive offset filter to the decoded image from the deblocking filter 31a as necessary, and supplies the decoded image (filter image) to which the adaptive offset filter is applied or the decoded image to which the adaptive offset filter is not applied is applied to the ALF 42.
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 is applied or the decoded image to which ALF is not applied to the frame memory 32.
<Encoding Processing>
The order of each step of encoding processing illustrated in
In step S11, in the encoder 11, the A/D conversion unit 21 A/D-converts an original image and supplies the A/D-converted original image to the rearrangement buffer 22, and the process proceeds to step S12.
In step S12, the rearrangement buffer 22 stores the original images from the A/D conversion unit 21, rearranges the original images in the encoding order, and outputs the rearranged original images, and the process proceeds to step S13.
In step S13, the intra prediction unit 34 performs the intra prediction (intra prediction process), and the process proceeds to step S14. In step S14, the motion prediction/compensation unit 35 performs inter prediction for motion prediction or motion compensation, and the process proceeds to step S15.
In the intra prediction of the intra prediction unit 34 and the inter prediction of the motion prediction/compensation unit 35, the cost functions of various prediction modes are calculated and the predicted image is generated.
In step S15, the prediction image selection unit 36 determines the optimum prediction mode based on each cost function obtained by the intra prediction unit 34 and the motion prediction/compensation unit 35. Then, the prediction image selection unit 36 selects and outputs the predicted image of the optimum prediction mode from the predicted image generated by the intra prediction unit 34 and the predicted image generated by the motion prediction/compensation unit 35, and the process proceeds from step S15 to step S16.
In step S16, the calculation unit 23 calculates the residual between the target image to be encoded, which is the original image output by the rearrangement buffer 22, and the predicted image output by the prediction image selection unit 36, and supplies the calculated residual to the orthogonal transform unit 24, and the process proceeds to step S17.
In step S17, the orthogonal transform unit 24 orthogonal transforms the residual from the calculation unit 23 and supplies the resulting orthogonal transform coefficient to the quantization unit 25, and the process proceeds to step S18.
In step S18, the quantization unit 25 quantizes the orthogonal transform coefficient from the orthogonal transform unit 24 and supplies the quantization coefficient obtained by the quantization to the reversible encoding unit 26 and the inverse quantization unit 28, and the process proceeds to step S19.
In step S19, the inverse quantization unit 28 inversely quantizes the quantization coefficient from the quantization unit 25 and supplies the resulting orthogonal transform coefficient to the inverse orthogonal transform unit 29, and the process proceeds to step S20. In step S20, the inverse orthogonal transform unit 29 inversely orthogonal transforms the orthogonal transform coefficient from the inverse quantization unit 28 and supplies the resulting residual to the calculation unit 30, and the process proceeds to step S21.
In step S21, the calculation unit 30 adds the residual from the inverse orthogonal transform unit 29 and the predicted image output by the prediction image selection unit 36, and generates the decoded image corresponding to the original image that becomes the target of the calculation of the residuals by 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.
In step S22, the deblocking filter 31a applies the 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.
In step S23, the adaptive offset filter 41 applies the adaptive offset filter to the filter image from the deblocking filter 31a and supplies the resulting filter image to ALF42, and the process proceeds to step S24.
In step S24, the ALF42 applies ALF to the filter image from the adaptive offset filter 41 and supplies the resulting filter image to the frame memory 32, and the process proceeds to step S25.
In step S25, the frame memory 32 stores the filter image supplied from the ALF42, and the process proceeds to step S26. The filtered image stored in the frame memory 32 is used as a reference image from which the predicted image is generated in steps S13 or S14.
In step S26, the reversible encoding unit 26 encodes the encoded data, which is the quantization coefficient from the quantization unit 25, and generates the encoded bitstream including the encoded data. Furthermore, the reversible encoding unit 26 encodes the encoding information, such as the quantization parameter used for the quantization in the quantization unit 25, the prediction mode obtained by the intra prediction in the intra prediction unit 34, the prediction mode or motion information obtained by the inter prediction in the motion prediction/compensation unit 35, or the filter parameters of the deblocking filter 31a and the adaptive offset filter 41, as necessary, and includes the encoded information in the encoded bitstream.
Then, the reversible encoding unit 26 supplies the encoded bitstream to the accumulation buffer 27, and the process proceeds from step S26 to step S27.
In step S27, the accumulation buffer 27 accumulates the encoded bitstream from the reversible encoding unit 26, and the process proceeds to step S28. The encoded bitstream accumulated in the accumulation buffer 27 is appropriately read and transmitted.
In step S28, the rate control unit 37 controls the quantization operation of the quantization unit 25 based on the code amount (generated code amount) of the encoded bitstream accumulated in the accumulation buffer 27 so that overflow or underflow does not occur, and the encoding processing ends.
<Configuration Example of Decoder 51>
In
The accumulation buffer 61 temporarily accumulates the encoded bitstream transmitted from the encoder 11 and supplies the encoded bitstream to the reversible decoding unit 62 at a predetermined timing.
The reversible decoding unit 62 receives the encoded bitstream from the accumulation buffer 61 and decodes the received encoded bitstream by a method corresponding to the encoding method of the reversible encoding unit 26 in
Then, the reversible decoding unit 62 supplies the quantization coefficient as the encoded data included in the decoding result of the encoded bitstream to the inverse quantization unit 63.
Further, the reversible decoding unit 62 has a function of performing parsing. The reversible decoding unit 62 parses the necessary encoding information included in the decoding result of the encoded bitstream and supplies the encoding 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.
The inverse quantization unit 63 inversely quantizes the quantization coefficient as the encoded data from the reversible decoding unit 62 by the method corresponding to the quantization method of the quantization unit 25 in
The inverse orthogonal transform unit 64 inversely orthogonal transforms the orthogonal transform coefficient supplied from the inverse quantization unit 63 by the method corresponding to the orthogonal transform method of the orthogonal transform unit 24 in
In addition to the residual being supplied from the inverse orthogonal transform unit 64 to the calculation unit 65, the predicted image is supplied from the intra prediction unit 71 or the motion prediction/compensation unit 72 via the selection unit 73.
The calculation unit 65 adds the residual from the inverse orthogonal transform unit 64 and the predicted image from the selection unit 73, generates the decoded image, and supplies the generated decoded image to the deblocking filter 31b.
Here, the above reversible decoding unit 62 to calculation unit 65 constitute a decoding unit that decodes an image, and the processing (process) performed by the decoding unit is the decoding process.
The rearrangement buffer 67 temporarily stores the decoded image supplied from the ALF 82, rearranges the arrangement of the frames (pictures) of the decoded image from the encoding (decoding) order to the display order, and supplies the rearranged frame to the D/A conversion unit 68.
The D/A conversion unit 68 D/A-converts the decoded image supplied from the rearrangement buffer 67 and outputs the D/A-converted decoded image to a display (not illustrated) for display. Note that when the device connected to the decoder 51 accepts an image of a digital signal, the decoder 51 can be configured without providing the D/A conversion unit 68.
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 for generating the predicted image at a predetermined timing or based on an external request such as the intra prediction unit 71 or the motion prediction/compensation unit 72.
The selection unit 70 selects the supply destination of the reference image supplied from the frame memory 69. When decoding the image encoded by the intra prediction, the selection unit 70 supplies the reference image supplied from the frame memory 69 to the intra prediction unit 71. In addition, when decoding the image encoded by the inter prediction, the selection unit 70 supplies the reference image supplied from the frame memory 69 to the motion prediction/compensation unit 72.
The intra prediction unit 71 performs the intra prediction similar to the intra prediction unit 34 of
Similar to the motion prediction/compensation unit 35 of
The motion prediction/compensation unit 72 supplies the predicted image obtained by the inter prediction to the selection unit 73.
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 the predicted image to the calculation unit 65.
The deblocking filter 31b applies the deblocking filter to the decoded image from the calculation unit 65 according to the filter parameter included in the encoding information supplied from the reversible decoding unit 62. The deblocking filter 31b supplies the decoded image (filtered image) to which the deblocking filter is applied or the decoded image to which the deblocking filter is not applied to the adaptive offset filter 81.
The adaptive offset filter 81 applies the adaptive offset filter to the decoded image from the deblocking filter 31b as necessary according to the filter parameter included in the encoding information supplied from the reversible decoding unit 62. The adaptive offset filter 81 supplies the decoded image (filtered image) to which the adaptive offset filter is applied or the decoded image to which the adaptive offset filter is not applied to the ALF 82.
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 is applied or the decoded image to which ALF is not applied to the rearrangement buffer 67 and the frame memory 69.
<Decoding Processing>
I step S51, in decoding processing, the accumulation buffer 61 temporarily stores the encoded bitstream transmitted from the encoder 11 and supplies the stored encoded bitstream to the reversible decoding unit 62 as appropriate, and the process proceeds to step S52.
In step S52, the reversible decoding unit 62 receives and decodes the encoded bitstream supplied from the accumulation buffer 61, and supplies the quantization coefficient as the encoded data included in the decoding result of the encoded bitstream to the inverse quantization unit 63.
Further, the reversible decoding unit 62 parses the encoding information included in the decoding result of the encoded bitstream. Then, the reversible decoding unit 62 supplies the necessary encoding 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.
Then, the process proceeds from step S52 to step S53, and the intra prediction unit 71 or the motion prediction/compensation unit 72 performs the intra prediction or the inter prediction (intra prediction process or inter prediction process) generating the predicted image, according to the reference image supplied from the frame memory 69 via the selection unit 70 and the encoding information supplied from the reversible decoding unit 62. Then, the intra prediction unit 71 or the motion prediction/compensation unit 72 supplies the predicted image obtained by the intra prediction or the inter prediction to the selection unit 73, and the process proceeds from step S53 to step S54.
In step S54, the selection unit 73 selects the predicted image supplied from the intra prediction unit 71 or the motion prediction/compensation unit 72 and supplies the selected predicted image to the calculation unit 65, and the process proceeds to step S55.
In step S55, the inverse quantization unit 63 inversely quantizes the quantization coefficient from the reversible decoding unit 62 and supplies the resulting orthogonal transform coefficient to the inverse orthogonal transform unit 64, and the process proceeds to step S56.
In step S56, the inverse orthogonal transform unit 64 inversely orthogonal transforms the orthogonal transform coefficient from the inverse quantization unit 63 and supplies the resulting residual to the calculation unit 65, and the process proceeds to step S57.
In step S57, the calculation unit 65 generates the 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.
In step S58, the deblocking filter 31b applies the deblocking filter to the decoded image from the calculation unit 65 according to the filter parameter included in the encoding information supplied from the reversible decoding unit 62. The deblocking filter 31b supplies the filtered image obtained as a result of applying the deblocking filter to the adaptive offset filter 81, and the process proceeds from step S58 to step S59.
In step S59, the adaptive offset filter 81 applies the adaptive offset filter to the filtered image from the deblocking filter 31b according to the filter parameter included in the encoding information supplied from the reversible decoding unit 62. The adaptive offset filter 81 supplies the filtered image obtained as a result of applying the adaptive offset filter to the ALF 82, and the process proceeds from step S59 to step S60.
The ALF 82 applies ALF to the filter image from the adaptive offset filter 81 and supplies the resulting filter image to the rearrangement buffer 67 and the frame memory 69, and the process proceeds to step S61.
In step S61, the frame memory 69 temporally stores the filtered image supplied from the ALF 82, and the process proceeds to step S62. The filtered image (decoded image) stored in the frame memory 69 is used as the reference image from which the predicted image is generated by the intra prediction or the inter prediction in step S53.
In step S62, the rearrangement buffer 67 rearranges the filtered images supplied from ALF 82 in the display order and supplies the rearranged filtered images to the D/A conversion unit 68, and the process proceeds to step S63.
In step S63, the D/A conversion unit 68 D/A-converts the filtered image from the rearrangement buffer 67, and the process ends the decoding processing. The filter image (decoded image) after D/A conversion is output and displayed on a display (not illustrated).
The intra prediction performed by the intra prediction unit 34 of
(Others)
The present technology can be applied to any image coding/decoding method. That is, as long as it does not contradict the above-described present technology, the specifications of various processes related to image encoding/decoding such as conversion (inverse transformation), quantization (inverse quantization), encoding (decoding), and prediction are arbitrary, and therefore the present technique is not limited to the example. In addition, some of these processes may be omitted as long as they do not contradict the present technology described above.
In addition, in the present specification, unless otherwise specified, a “block” (not a block indicating a processing unit) used as a partial area or a processing unit of an image (picture) indicates an arbitrary partial area in the picture, and a size, a shape, and characteristics of the block are not limited. For example, the “block” includes any partial area (processing unit) such as a transform block (TB), a transform unit (TU), a prediction block (PB), a prediction unit (PU), a smallest coding unit (SCU), a coding unit (CU), a largest coding unit (LCU), a coding tree block (CTB), a coding tree unit (CTU), a conversion block, a sub-block, a macroblock, a tile, or a slice, which are described in references REF 1 to REF 3 or the like.
A data unit in which various pieces of information described above is set and a data unit targeted by various types of processing are each arbitrary and are not limited to the above-described examples. For example, these pieces of information or processing may be set for each transform unit (TU), transform block (TB), prediction unit (PU), prediction block (PB), coding unit (CU), largest coding unit (LCU), sub-block, block, tile, slice, picture, sequence, or component, or may target the data in those data units. Of course, this data unit can be set for each information or processing, and it is not necessary that the data unit of all the information or processing is unified. Note that a storage location of these pieces of information is arbitrary, and these pieces of information may be stored in a header, a parameter set, or the like of the above-described data unit. Further, these pieces of information may be stored in a plurality of locations.
The control information related to the present technology described above may also be transmitted from the encoding side to the decoding side. For example, control information (for example, enabled flag) that controls whether or not the application of the present technology described above is permitted (or prohibited) may be transmitted. Further, for example, the control information indicating a target (or a target to which the present technology is not applied) to which the present technology is applied may be transmitted. For example, the control information that specifies the block size (upper and lower limits, or both) to which the present technology is applied (or permitted or prohibited), frames, components, layers, or the like may be transmitted.
Further, when specifying a size of such a block to which the present technology is applied, not only the block size may be directly specified, but also the block size may be indirectly specified. For example, the block size may be specified using identification data for identifying the size. Further, for example, the block size may be specified by a ratio or a difference with a size of a reference block (for example, LCU, SCU, or the like). For example, when transmitting information for specifying the block size as a syntax element or the like, information for indirectly specifying the size as described above may be used as the information. By doing so, the amount of the information can be reduced, and the encoding efficiency may be improved. In addition, the specification of the block size also includes the specification of the range of the block size (for example, a specification or the like of a range of an allowable block size).
Note that in the present specification, the “identification data” is information for identifying a plurality of states, and includes “flags” and those of other names. Further, the “identification data” includes not only information used for identifying two states of 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, 2 values of 1/0, or 3 or more values. That is, the number of bits constituting the “identification data” is arbitrary, and may be 1 bit or a plurality of bits. Further, since the identification data is assumed to include not only the identification data in the bitstream but also difference information of the identification data which becomes a certain reference information in the bitstream, in the present specification, the “identification data” include not only the information but also the difference information which becomes the reference information.
Further, various types of information (metadata, or the like) on encoded data (bitstream) may be transmitted or recorded in any form as long as the information is associated with the encoded data. Here, the term “associating” means, for example, to make other data available (linkable) when processing one data. That is, the data associated with each other may be combined as one data or may be individual data. For example, the information associated with the encoded data (image) may be transmitted on a transmission path different from that encoded data (image). Further, for example, the information associated with the encoded data (image) may also be recorded on a recording medium (or another recording area of the same recording medium) different from the encoded data (image). Note that this “association” may be a part of data, not the entire data. For example, an image and information corresponding to the image may be associated with each other in arbitrary units such as a plurality of frames, one frame, or a part within a frame.
In addition, in this specification, the terms such as “synthesize”, “multiplex”, “add”, “integrate”, “include”, “store”, “push into”, “put in”, and “insert” mean combining a plurality of things into one, for example, combining encoded data and metadata into one data, and means one method of “associating” described above.
The present technology can be implemented as any configuration that constitutes a device or a system, for example, a processor as system large scale integration (LSI) or the like, a module that uses a plurality of processors or the like, a unit that uses a plurality of modules or the like, and a set with other functions further added to the unit, or the like (that is, a part of the configuration of the device).
<Description of Computer to which the Present Technology is Applied>
Next, some or all of the above-described series of processing can be performed by hardware or software. When some or all of a series of processes is performed by software, the programs constituting the software are installed on a general-purpose computer or the like.
The program can be recorded in advance on a hard disk 905 or a ROM 903 as a recording medium built in the computer.
Alternatively, the program can be stored (recorded) in a removable recording medium 911 driven by a drive 909. Such a removable recording medium 911 can be provided as so-called package software. Here, examples of the removable recording medium 911 include a flexible disc, a compact disc read only memory (CD-ROM), a magneto optical (MO) disc, a digital versatile disc (DVD), a magnetic disc, a semiconductor memory, and the like.
Note that the program can be not only installed on the computer from the removable recording medium 911 as described above, but can also be downloaded to the computer via a communication network or a broadcasting network and installed on the built-in hard disk 905. That is, for example, the program can be transmitted wirelessly from a download site to a computer via an artificial satellite for digital satellite broadcasting, or can be transmitted to a computer by wire via a network such as a local area network (LAN) or the Internet.
The computer has a built-in central processing unit (CPU) 902, and the input/output interface 910 is connected to the CPU 902 via the bus 901.
When a command is input by a user via the input/output interface 910 by operating the input unit 907 or the like, the CPU 902 executes the program stored in the read only memory (ROM) 903 accordingly. Alternatively, the CPU 902 loads the program stored in the hard disk 905 into a random access memory (RAM) 904 and executes the loaded program.
As a result, the CPU 902 performs processing according to the above-described flowchart or processing performed according to the configuration of the above-described block diagram. Then, the CPU 902 outputs the processing result from the output unit 906 from the communication unit 908, or transmits the processing result from the communication unit 908 via, for example, the input/output interface 910, as necessary, and furthermore records the processing result on the hard disk 905.
Note that the input unit 907 is constituted by a keyboard, a mouse, a microphone, and the like. In addition, the output unit 906 is constituted by a liquid crystal display (LCD), a speaker, or the like.
Here, in the present specification, the processing performed by the computer according to the program does not necessarily have to be performed in a time sequence according to the order described as the flowchart. That is, the processing performed by the computer according to the program also includes processing (for example, parallel processing or processing by an object) executed in parallel or individually.
Further, the program may be processed by one computer (processor) or may be distributed and processed by a plurality of computers. Furthermore, the program may be transmitted to a distant computer and executed.
Further, in the present specification, the system means a set of a plurality of components (devices, modules (parts), etc.), and it does not matter whether or not all the components are in the same housing. Therefore, any of a plurality of devices housed in separate housings and connected via a network and one device in which a plurality of modules are housed in one housing are systems.
Note that the embodiment of the present technology is not limited to the above-described embodiment, and various changes can be made without departing from the gist of the present technology.
For example, the present technology can be configured as cloud computing in which one function is shared by a plurality of devices via a network and processed jointly.
Further, each step described in the above-described flowchart can be not also executed by one device, but can also be shared and executed by a plurality of devices.
Furthermore, when one step includes a plurality of processes, the plurality of processes included in the one step can be executed by one device or shared and executed by a plurality of devices.
In addition, the effects described in the present specification are merely examples and are not limited, and other effects may be obtained.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2020/022485 | 6/8/2020 | WO |
Number | Date | Country | |
---|---|---|---|
62863664 | Jun 2019 | US | |
62866281 | Jun 2019 | US |