Predicted value determination method, encoder, decoder, and computer storage medium
By determining predictive values through reconstruction and filtering processes, the method addresses the accuracy and efficiency issues in MIP-based video encoding, enhancing predictive accuracy and encoding efficiency.
Patent Information
- Application Number
- JP2024188240
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-10-25
- Publication Date
- 2025-01-28
- Estimated Expiration
- 2039-09-24
AI Technical Summary
The conventional video encoding and decoding methods using Matrix-Based Intra Prediction (MIP) face challenges in accurately determining predictive values due to limitations in the range of the right shift parameter, leading to reduced predictive accuracy and efficiency.
A method to determine predictive values by obtaining the reconstruction values of adjacent samples, filtering, and calculating predictive input values based on bit depth and reference values, using mapping tables to adjust parameters for improved accuracy and efficiency.
This approach enhances predictive accuracy and encoding efficiency by reducing the dynamic range of predictive input values, allowing more accurate representation of data within the same bit count, thereby improving the overall video encoding process.
Smart Images

Figure 2025013982000001_ABST
Abstract
Description
[Technical field]
[0001] The embodiments of the present application relate to a matrix-based intra prediction (MIP) technique in intra prediction in the field of video coding, and more particularly to a method for determining a predicted value, an encoder, a decoder, and a computer storage medium. [Background technology]
[0002] Currently, in video encoding and decoding, when MIP is adopted to determine a predicted value, there are three related values, which are MIP matrix, weighting parameter and bit right shift parameter, respectively. The three values need to be obtained when calculating a predicted value. In the conventional predicted value determination method, in order to ensure the complete representation of the numerical range, the value of the bit right shift parameter cannot be too large. As a result, when determining a predicted value, the value range of the predicted input value is too large, which affects the prediction accuracy of the predicted value and further affects the efficiency of encoding and decoding. Therefore, in the conventional video encoding and decoding, the prediction accuracy of the prediction method is low. Summary of the Invention
[0003] The embodiments of the present application provide a method for determining a predicted value, an encoder, a decoder, and a computer storage medium, which can improve the prediction accuracy of a prediction method in video encoding and decoding, and improve the efficiency of encoding and decoding.
[0004] The technical solutions of the embodiments of the present application can be realized through the following operations or configurations.
[0005] In a first aspect, an embodiment of the present application provides a method for determining a predicted value applied to an encoder, the method for determining a predicted value includes: obtaining reconstructed values of samples adjacent to a current block; performing a filtering process on the reconstructed values of the adjacent samples to obtain a reference value set of the current block; calculating a first constant value according to a bit depth value of a luma component of a sample in the current block when a size of the current block is smaller than a preset threshold; determining that a first predicted input value of the predicted input value set is a difference between the first constant value and a first reference value of the reference value set; determining other predicted input values in the predicted input value set than the first predicted input value according to the reference value set; calculating a predicted value of a sample at a specific position of the current block according to the predicted input value set; and performing a filtering process on the predicted value of the sample at the specific position to obtain predicted values of all samples in the current block.
[0006] In a second aspect, an embodiment of the present application provides a method for determining a predicted value applied to a decoder, the method for determining a predicted value includes: analyzing a bitstream to obtain a size of a current block and a coding mode of the current block; if the coding mode of the current block is a matrix-based intra prediction (MIP) mode, obtaining a reconstructed value of a sample adjacent to the current block, and performing a filtering process on the reconstructed value of the adjacent sample to obtain a reference value set of the current block; if the size of the current block is smaller than a preset threshold, calculating a second constant value according to a bit depth value of a luminance component of a sample in the current block; determining that a first predicted input value of the predicted input value set is a difference between the second constant value and a first reference value of the reference value set; determining other predicted input values other than the first predicted input value in the predicted input value set according to the reference value set; calculating a predicted value of a sample at a specific position of the current block according to the predicted input value set; and performing an interpolation filtering process on the predicted value of the sample at the specific position to obtain a predicted value of a sample at a specific position other than the sample at the specific position of the current block.
[0007] In a third aspect, an embodiment of the present application provides an encoder. The encoder includes a first acquisition module, a first processing module, a first calculation module, a first determination module, a second calculation module, a third calculation module, and a second processing module. The first acquisition module is used to obtain reconstructed values of samples adjacent to a current block. The first processing module is used to perform a filtering process on the reconstructed values of the adjacent samples to obtain a reference value set of the current block. The first calculation module is used to calculate a first constant value based on a bit depth value of a luminance component of a sample in the current block when the size of the current block is smaller than a preset threshold. The first determination module is used to determine that a first predicted input value of the predicted input value set is a difference between the first constant value and a first reference value of the reference value set. The second calculation module is used to determine other predicted input values other than the first predicted input value in the predicted input value set based on the reference value set. The third calculation module is used to calculate a predicted value of a sample at a specific position of the current block based on the predicted input value set. The second processing module is used to perform a filtering process on the predicted value of the sample at the specific position to obtain predicted values of all samples in the current block.
[0008] In a fourth aspect, an embodiment of the present application provides a decoder. The decoder includes a second acquisition module, a third processing module, a fourth calculation module, a second determination module, a fifth calculation module, a sixth calculation module, and a fourth processing module. The second acquisition module is used to analyze the bitstream to obtain a size of a current block and a coding mode of the current block. The third processing module is used to obtain reconstructed values of samples adjacent to the current block and perform a filtering process on the reconstructed values of the adjacent samples to obtain a reference value set of the current block when the coding mode of the current block is a matrix-based intra prediction (MIP) mode. The fourth calculation module is used to calculate a second constant value based on a bit depth value of a luminance component of a sample in the current block when the size of the current block is smaller than a preset threshold. The second determination module is used to determine that a first predicted input value of the predicted input value set is a difference between the second constant value and a first reference value of the reference value set. The fifth calculation module is used to determine other predicted input values than the first predicted input value in the predicted input value set based on the reference value set. The sixth calculation module is used to calculate a predicted value of the sample at the specific position of the current block based on the set of predicted input values, and the fourth processing module is used to perform an interpolation filtering process on the predicted value of the sample at the specific position to obtain a predicted value of the sample at another position in the current block other than the sample at the specific position.
[0009] In a fifth aspect, an embodiment of the present application provides an encoder, the encoder comprising: a processor; and a storage medium storing instructions executable by the processor, the storage medium being operable by the processor via a communication bus, the instructions, when executed by the processor, performing a method for determining a predicted value according to one or more of the embodiments described above.
[0010] In a sixth aspect, an embodiment of the present application provides a decoder, the decoder comprising a processor and a storage medium storing instructions executable by the processor, the storage medium being operable by the processor via a communication bus, the instructions, when executed by the processor, performing a method for determining a predicted value according to one or more of the embodiments described above.
[0011] In a seventh aspect, an embodiment of the present application provides a computer-readable storage medium having executable instructions stored thereon, which, when executed by one or more processors, cause the processors to perform a method for determining a predicted value according to one or more embodiments described above.
[0012] The embodiment of the present application provides a method for determining a predicted value, an encoder, a decoder, and a computer storage medium, in which the method for determining a predicted value includes: an encoder obtains reconstructed values of samples adjacent to a current block, performs a filtering process on the reconstructed values of the adjacent samples to obtain a reference value set of the current block; when the size of the current block is smaller than a preset threshold, calculates a first constant value according to a bit depth value of a luminance component of a sample in the current block, determines a first predicted input value of the predicted input value set as a difference between the first constant value and a first reference value of the reference value set, determines other predicted input values in the predicted input value set than the first predicted input value according to the reference value set, calculates a predicted value of a sample at a specific position of the current block according to the predicted input value set, and performs a filtering process on the predicted value of the sample at the specific position to obtain predicted values of all samples in the current block. In other words, in the embodiment of the present application, a first constant value is calculated, and the difference between the first constant value and the first reference value of the reference value set is determined as the first predicted input value of the predicted input value set, and the predicted value of the current block is calculated according to the predicted input value set, so that the dynamic value range of the predicted input value when predicting in MIP mode can be effectively reduced. Therefore, compared with the conventional technology, when the predicted input value set and the MIP matrix are represented with the same number of bits, the dynamic range data can be represented more accurately, and the accuracy during the calculation of the predicted value in MIP mode is increased, and the coding efficiency is improved. [Brief description of the drawings]
[0013] [Figure 1] FIG. 1 is a schematic structural diagram of a video encoding system. [Diagram 2] FIG. 2 is a schematic structural diagram of a video decoding system. [Diagram 3] FIG. 3 is a schematic diagram illustrating the process of encoding a sample in MIP mode. [Figure 4] FIG. 4 is a schematic diagram showing the process of encoding in MIP mode. [Diagram 5]FIG. 5 is a flowchart of a method for determining a predicted value according to an embodiment of the present application. [Figure 6] FIG. 6 is a flowchart of a method for determining a predicted value according to another embodiment of the present application. [Figure 7] FIG. 7 is a schematic diagram showing the structure of an encoder according to an embodiment of the present application. [Figure 8] FIG. 8 is a schematic diagram showing the structure of a decoder according to an embodiment of the present application. [Figure 9] FIG. 9 is a schematic diagram showing the structure of an encoder according to another embodiment of the present application. [Figure 10] FIG. 10 is a schematic diagram showing the structure of a decoder according to another embodiment of the present application. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] Hereinafter, the technical solutions of the embodiments of the present application will be described clearly and completely with reference to the drawings of the embodiments of the present application. It is understood that the specific embodiments described in this specification are used to describe the related applications, and do not limit the present application. For ease of description, only the parts related to the related applications are shown in the drawings.
[0015] In the field of video encoding, the latest versatile video coding (VVC) adopts the affine linear weighted intra prediction proposed by HHI in JVET (joint video experts team)-N0217 and renames it MIP technology. In MIP technology, different quantities of MIP modes are added in the intra-luma prediction process based on different sizes of intra-luma coding blocks (abbreviated as "luma blocks").
[0016] In the MIP technique, luma blocks are classified into three types according to the size of the luma block. If the size of the luma block is W*H, the luma blocks can be classified into three types according to the size of the luma block. The luma blocks with a size of 4×4 belong to the first class of luma blocks, the luma blocks with a size of 8×4, 4×8, 8×8 belong to the second class of luma blocks, and the luma blocks with other sizes belong to the third class of luma blocks. For these three types of intra-luma blocks, the MIP technique adds M types of MIP modes based on 67 types of traditional intra prediction modes.
[0017] Fig. 1 is a schematic structural diagram of a video encoding system. As shown in Fig. 1, the video encoding system 100 includes a transform and quantization module 101, an intra estimation module 102, an intra prediction module 103, a motion compensation module 104, a motion estimation module 105, an inverse transform and inverse quantization module 106, a filter control analysis module 107, a deblocking (DBK) filtering and sample adaptive offset (SAO) filtering module 108, a header information coding and context-based adaptive binary arithmetic coding (CABAC) coding module 109, a decoded image cache module 110, etc.
[0018] Fig. 2 is a schematic structural diagram of a video decoding system. As shown in Fig. 2, the video decoding system 200 includes a header information decoding and CABAC decoding module 201, an inverse transform and inverse quantization module 202, an intra prediction module 203, a motion compensation module 204, a DBK filtering and SAO filtering module 205, a decoded image cache module 206, etc. After the video image is processed by the transform and quantization module 101, the intra estimation module 102, the intra prediction module 103, the motion compensation module 104, the motion estimation module 105, the DBK filtering and SAO filtering module 108, and the header information coding and CABAC coding module 109, etc. of the video encoding system 100, the video encoding system 100 outputs a bitstream of the video image. The bitstream is input to a video decoding system 200, and is processed by a header information decoding and CABAC decoding module 201, an inverse transform and inverse quantization module 202, an intra prediction module 203, a motion compensation module 204, etc. of the video decoding system 200, and finally restored to the original video image.
[0019] When encoding and decoding using the MIP mode provided by the embodiment of the present application, the method of determining the predicted value is mainly applied to the intra prediction module 103 of the video encoding system and the intra prediction module 203 of the video decoding system, and is applied to both the encoding side and the decoding side.
[0020] For luma blocks of the first class, M=35, for luma blocks of the second class, M=19, and for luma blocks of the third class, M=11.
[0021] Specifically, the MIP technique is only applied to intra luminance prediction. Similar to the conventional mode, the input of MIP prediction is the data of the top row and left column of the current block (corresponding to the image block to be coded below), and the output is the predicted value of the current block. The specific prediction process includes three steps: averaging, matrix vector multiplication, and interpolation. That is, the above three operations are performed on the reconstructed luminance values of the samples adjacent to the top row and left column of the input current block to obtain the luminance predicted value of the current block.
[0022] 3 is a schematic diagram showing a process of encoding a sample in MIP mode. As shown in FIG. 3, the process includes the following steps:
[0023] Step 1: Perform an average operation on the upper neighboring reference points of the current luma block to obtain a vector redT containing N values. Perform an average operation on the left neighboring reference points of the current luma block to obtain a vector redL containing N values. If the luma block belongs to the first class of luma blocks, N=2, and if the luma block belongs to the second class of luma blocks or the third class of luma blocks, N=4. The vectors redT and redL constitute a new vector pTemp that is used for subsequent operations.
[0024] Step 2: Obtain the matrix mWeight, the weighting parameter fO and the bit right shift parameter sW. Obtain the partial predicted value of the current block identified by the cross line in FIG.
number
[0025] If MipSizeId=0 or 1, the calculation is performed according to the following formula.
number
[0026] If MipSizeId=2, the calculation is made according to the following formula:
number
[0027] predMip[x,y] represents the predicted value of the sample at position (x,y). pTemp[i] represents the i-th reference value of the reference value set of the current block when predicting in MIP mode. p[x] represents the i-th predicted input value when predicting in MIP mode. inSize is determined based on MipSizeId, which is the serial number of MIP, and if MipSizeId=0, inSize=4; if MipSizeId=1, inSize=8; if MipSizeId=2, inSize=7. The value of MipSizeId is determined according to the size of the current block. If the size of the current block is 4x4, MipSizeId=0; if the size of the current block is 4x8, 8x4, or 8x8, MipSizeId=1; if the size of the current block is larger than 8x8, MipSizeId=2. BitDepth represents the bit depth of the luma component (i.e., the number of binary bits used to represent the sample value of the luma component). mWeight represents a MIP matrix. predC, incH, and incW are used to determine the parameters of the matrix element corresponding to the sample position (x, y). ">>" is a bitwise right shift operator. oW represents a shift offset used in the bitwise right shift operation. sW represents the bit of right shift. fO represents a weighting parameter. sW and fO may be determined based on at least the size of the current block or the value of MipSizeId. For example, a mapping table associated with the value of MipSizeId may be used to determine the values of sW and fO. The mapping table records at least the values of sW and fO corresponding to different values of MipSizeId.
[0028] Step 3: The remaining predicted values in the current block can be obtained by linear interpolation, that is, the partial predicted values in the current block identified by the dots in FIG.
[0029] Three values related to the MIP technique, mWeight, fO, and sW, need to be obtained when determining the predicted value. The value of mWeight is related to both the prediction mode and the sample space position, while the values of fO and sW are related only to the prediction mode. p[i] is obtained by calculating equations (3), (4), and (5). The values of mWeight and fO are all stored as unsigned 7-digit binary numbers. sW represents the offset corresponding to the prediction mode. Depending on the prediction mode (shown in Table 1 below), it can take one of the values 5, 6, or 7 and can be obtained by referring to Table 1. The sample value of the sample can be obtained by calculating the matrix-vector product, and the overall memory requirement is 4.5395 kilobytes. [Table 1]
[0030] When predicting in MIP mode, first determine the index of the prediction mode for the current block. Based on the index of the prediction mode, look up the table to obtain the fixed sW value of the current block and obtain mWeight-fO. Right shift by sW bits to obtain the original floating-point number matrix used to calculate the predicted value. Figure 4 is a schematic diagram showing the process of encoding in MIP mode.
[0031] As shown in Figure 4, first, obtain the index number of the MIP mode. Then, obtain the machine-trained mWeight and fO from the mapping table based on the index number of the MIP mode, and obtain sW from the mapping table based on the index number of the MIP mode. Finally, for prediction,
number
[0032] That is, in the existing VVC MIP technology, the primitive floating-point number mWeightf[x][y] for all values of mWeight is represented as a fixed-point value with an offset starting from the minimum value (often a negative value, represented as fO).
number
[0033] Since mWeight[x][y] is stored as an unsigned 7-digit binary number, the representation accuracy is reduced. Here, the larger sW, the higher the accuracy, but the value of sW cannot be too large to fully represent the range of values. Since the same sW value is used indiscriminately throughout the matrix, parameters with a small value range require further reduction in representation accuracy to accommodate the common value change range of all parameters throughout the matrix. The parameter variation range of the original matrix is also related to the acquisition method of p[i] data. The calculation method of p[i] in the related art causes the expansion of the parameter variation range, reducing the accuracy of the data in the weight matrix, increasing the prediction difference of the MIP mode, and therefore reducing the coding efficiency.
[0034] In order to improve the prediction accuracy of MIP mode and improve the coding efficiency, an embodiment of the present application provides a method for determining a predicted value. Figure 5 is a flow chart of a method for determining a predicted value according to an embodiment of the present application. As shown in Figure 5, the method can be applied to an encoder. The method includes the following contents:
[0035] Block S501 obtains the reconstructed values of the samples adjacent to the current block.
[0036] Specifically, in the process of encoding, the encoder needs to first obtain the reconstructed values of samples adjacent to the current block to determine the predicted value of the current block, where the samples adjacent to the current block include the top row and left column samples of the current block.
[0037] Block S502 performs a filtering process on the reconstructed values of the neighboring samples to obtain a set of reference values for the current block.
[0038] After obtaining the reconstructed values of the adjacent samples, for example, the reconstructed value of the sample in the top row of the current block obtained is redT (containing N values), and the reconstructed value of the sample in the left column of the current block obtained is redL (containing N values), and redT and redL constitute a new vector pTemp, which is the reference value set of the current block.
[0039] To perform the filtering process to obtain the reference value set of the current block, in an optional embodiment, the operation of block S502 includes: dividing the reconstructed values of adjacent samples into N groups, calculating the average value of the reconstructed values of each group, and taking the average value as the reference value of the reference value set, where N is a positive integer.
[0040] N is set to a positive integer value corresponding to the preset size of the current block. In other words, performing a filtering process on the reconstructed values of adjacent samples in block S502 specifically means dividing redT and redL into N groups, calculating the average value of the reconstructed values of each group to obtain N average values, and taking the N average values as the reference values of the reference value set.
[0041] For example, if the size of the current block is 4x4, then inSize=4; if the size of the current block is 4x8, 8x4 or 8x8, then inSize=8; if the size of the current block is greater than 8x8, then inSize=7.
[0042] Block S503: if the size of the current block is smaller than the preset threshold, calculate a first constant value according to the bit depth value of the luminance component of the samples in the current block.
[0043] In practice, the size of the current block can be represented by MipSizeId. If MipSizeId is a number smaller than 2, i.e., MipSizeId is equal to 0 or 1, a first constant value is calculated based on the bit depth value of the luma component of the samples in the current block.
[0044] To calculate the first constant value, in one alternative embodiment, the operations of block S503 include: setting the first constant value to a value obtained by performing a binary bit left shift operation on the numeric value 1, where the number of left shift bits used in the binary bit left shift operation is equal to the bit depth value minus 1.
[0045] Specifically, the first constant value is a value obtained by performing a bit left shift operation on the numeric value 1, and the number of left shift bits is equal to the bit depth minus 1.
[0046] Block S504 determines a first predicted input value of the set of predicted input values as a difference between a first constant value and a first reference value of the set of reference values.
[0047] The predicted input value set is used to calculate a predicted value of the current block based on MIP. After obtaining the first constant value, in S504, the difference between the first constant value and the first reference value of the reference value set can be determined as a first predicted input value. The first predicted input value p[0] can be calculated and obtained according to the following formula:
number
[0048] Block S505 determines other predicted input values in the set of predicted input values other than the first predicted input value based on the reference value set.
[0049] The other predicted input value p[i] includes a predicted input value other than the first predicted input value when the size of the current block is smaller than a preset threshold. The other predicted input value p[i] may further include a predicted input value when the size of the current block is equal to or larger than a preset threshold. The other predicted input value p[i] may be obtained by calculating the following formula:
number
[0050] Block S506 calculates a prediction value for a sample at a particular position of the current block based on the set of predicted input values.
[0051] Specifically, after all predicted input values are determined, a set of predicted input values can be obtained. Prediction can be performed based on the set of predicted input values to obtain a predicted value of a sample at a specific position of the current block, for example, a predicted value of a sample at a position identified by a crosshair in FIG. 3.
[0052] To determine the predicted value of the sample at a specific position of the current block, in an optional embodiment, the operation of block S506 includes: determining the MIP matrix of the current block, the bit right shift parameter of the current block, and the weighting parameter of the current block from one or more mapping tables stored in advance; calculating the predicted value of the sample at the specific position of the current block based on the predicted input value set, the MIP matrix of the current block, the bit right shift parameter of the current block, and the weighting parameter of the current block.
[0053] In other words, one or more mapping tables are pre-stored in the encoder, which can determine the MIP matrix (mWeit) of the current block, the bit right shift parameter (sW) of the current block, and the weighting parameter (fO) of the current block.
[0054] sW and fO can be determined based on at least the size of the current block or the value of MipSizeId. For example, the value of sW and the value of fO can be determined by a mapping table associated with the value of MipSizeId. The mapping table records at least the values of sW and fO corresponding to different values of MipSizeId.
[0055] The values of the mapping table above are constants. That is, the values of the mapping table are not updated during the calculation of the MIP predicted value. The values of the constants of the mapping table can be obtained using an offline training method based on the above formula (7). Alternatively, the values of the constants of the mapping table can be derived from a mapping table corresponding to a different method of calculating p[0] based on the above formula (7). In particular, in the embodiment of the present application, the mapping table derived from the MIP mapping table of the VVC Committee Draft (CD) is as follows:
[0056] If MipSizeId=0 and modeId=0, mWeight[x][y]= { {31,59,77,28},{36,92,85,25},{37,69,100,24},{35,36,106,29},{44,49,104,48},{44,21,94,59},{39,0,80,72},{33,2,66,84},{36,13,35,99},{29,11,34,103},{23,21,34,106},{17,24,40,105},{18,28,43,101},{12,32,49,101},{7,31,53,102},{7,32,54,100} },
[0057] When MipSizeId=0 and modeId=1, mWeight[x][y]= {{22,14,70,0},{24,17,53,5},{28,70,32,12},{40,82,11,19},{20,17,63,52},{22,17,46,63},{25,21,29,71},{30,25,16,74},{20,19,16,85},{21,19,17,85},{20,18,20,83},{20,18,23,82},{20,19,22,80},{20,18,22,80},{20,20,22,80},{21,21,22,80}},
[0058] When MipSizeId=0 and modeId=2, mWeight[x][y]= {{6,7,62,10},{7,0,33,9},{7,12,2,6},{7,63,3,6},{7,7,73,6},{7,8,71,9},{7,1,50,9},{7,9,14,7},{6,7,55,22},{7,7,72,5},{7,9,74,7},{7,3,62,9},{8,6,2,77},{7,6,33,45},{7,7,62,14},{7,8,70,8}},
[0059] When MipSizeId=0 and modeId=3, mWeight[x][y]= {{32,32,54,34},{32,38,34,34},{32,94,38,30},{34,110,40,28},{32,30,80,32},{32,52,56,30},{34,106,48,30},{44,104,38,40},{32,30,56,72},{48,64,38,80},{68,90,20,86},{76,78,8,90},{50,32,0,122},{76,68,4,106},{86,74,8,96},{82,74,8,94}},
[0060] When MipSizeId=0 and modeId=4, mWeight[x][y]= {{27,19,44,22},{27,35,23,27},{26,88,29,28},{28,91,27,27},{32,21,87,25},{35,22,46,20},{32,69,26,20},{29,87,29,23},{32,23,40,81},{44,16,46,66},{53,17,17,50},{46,37,3,40},{31,25,21,92},{36,24,24,91},{43,16,23,88},{52,11,0,81}},
[0061] When MipSizeId=0 and modeId=5, mWeight[x][y]= {{24,24,82,26},{24,22,76,26},{24,32,66,24},{24,58,56,24},{24,26,88,22},{24,28,88,26},{26,26,88,26},{24,26,86,28},{24,26,72,40},{24,26,84,24},{22,28,86,22},{26,34,82,24},{26,24,0,110},{26,24,14,98},{42,26,44,62},{80,38,76,8}},
[0062] When MipSizeId=0 and modeId=6, mWeight[x][y]= {{20,22,48,19},{22,20,43,18},{21,35,35,19},{30,62,25,17},{21,22,47,29},{22,21,48,27},{23,31,45,24},{55,44,24,8},{21,21,25,48},{18,23,25,51},{39,19,23,38},{76,27,22,0},{22,21,20,53},{23,19,18,54},{60,5,12,35},{77,25,19,3}},
[0063] When MipSizeId=0 and modeId=7, mWeight[x][y]= {{13,10,73,12},{13,3,54,15},{13,0,29,14},{13,22,13,13},{13,13,80,10},{14,14,86,7},{15,11,84,8},{14,3,68,11},{13,12,30,59},{14,10,45,43},{15,11,63,26},{17,11,75,15},{16,10,6,83},{18,9,6,83},{19,8,9,78},{24,5,21,63}},
[0064] When MipSizeId=0 and modeId=8, mWeight[x][y]= {{24,22,74,30},{24,20,22,44},{26,68,6,32},{26,90,20,28},{24,26,46,66},{24,20,36,74},{24,44,10,58},{38,82,6,30},{24,24,34,76},{24,24,40,74},{24,26,32,78},{86,42,10,32},{26,22,38,74},{22,26,38,74},{40,16,36,72},{118,0,34,32}},
[0065] When MipSizeId=0 and modeId=9, mWeight[x][y]= {{14,39,85,0},{15,49,42,39},{17,30,22,66},{17,18,19,74},{18,19,24,73},{17,11,13,83},{17,12,18,78},{17,15,19,75},{16,15,14,78},{16,16,19,75},{17,17,18,75},{18,17,18,75},{16,16,19,75},{17,16,18,76},{17,16,18,76},{18,16,19,75}},
[0066] When MipSizeId=0 and modeId=10, mWeight[x][y]= {{26,24,57,22},{30,14,30,24},{28,61,25,25},{26,100,29,27},{29,27,92,30},{31,19,72,25},{40,15,37,21},{46,70,24,18},{29,26,30,89},{30,26,34,87},{41,14,27,81},{67,12,0,65},{29,26,24,92},{29,27,24,92},{28,29,27,93},{36,22,25,89}},
[0067] When MipSizeId=0 and modeId=11, mWeight[x][y]= {{21,19,60,7},{26,12,35,9},{26,14,27,11},{22,50,24,13},{24,18,75,38},{29,16,60,39},{38,6,30,41},{41,0,3,45},{22,19,21,84},{23,19,21,85},{25,20,22,84},{28,18,16,83},{20,20,20,83},{20,21,21,82},{19,21,21,83},{19,22,22,82}},
[0068] When MipSizeId=0 and modeId=12, mWeight[x][y]= {{16,14,75,3},{16,43,57,16},{18,63,20,43},{14,46,0,65},{15,20,54,52},{15,22,23,76},{13,17,15,83},{10,17,17,82},{14,17,11,84},{12,18,14,83},{11,20,16,81},{9,21,16,81},{12,18,18,80},{10,19,17,81},{9,20,16,82},{8,20,16,82}},
[0069] When MipSizeId=0 and modeId=13, mWeight[x][y]= {{7,6,82,0},{7,4,83,0},{7,2,83,0},{7,3,80,0},{7,8,59,16},{7,8,58,17},{7,8,58,17},{7,7,57,18},{7,7,7,7,70},{7,7,7,7,71},{7,7,6,71},{7,8,7,70},{6,7,8,71},{6,7,8,70},{6,7,8,70},{6,7,9,69}},
[0070] When MipSizeId=0 and modeId=14, mWeight[x][y]= {{21,16,39,18},{19,35,27,17},{19,56,17,28},{30,46,8,40},{17,26,47,25},{21,40,24,40},{41,31,9,46},{57,13,10,41},{22,25,15,55},{49,14,12,46},{65,3,18,36},{63,4,19,35},{49,8,13,46},{65,0,19,33},{63,1,19,35},{61,3,18,36}},
[0071] When MipSizeId=0 and modeId=15, mWeight[x][y]= {{23,43,54,26},{23,56,50,24},{22,57,49,25},{23,61,47,24},{24,51,57,20},{21,55,51,27},{23,56,52,24},{24,59,51,23},{23,43,60,24},{27,55,58,12},{23,58,52,23},{24,59,52,23},{64,26,13,80},{89,48,51,0},{43,57,59,7},{24,57,54,22}},
[0072] When MipSizeId=0 and modeId=16, mWeight[x][y]= {{20,20,51,22},{21,22,51,22},{21,29,50,22},{21,32,48,22},{21,23,53,22},{21,24,53,22},{21,23,53,22},{21,24,53,22},{18,24,47,28},{18,24,48,27},{19,25,48,26},{20,25,48,26},{30,16,0,71},{35,14,1,67},{38,14,2,64},{38,13,4,63}},
[0073] When MipSizeId=0 and modeId=17, mWeight[x][y]= {{25,21,34,25},{27,34,3,39},{30,55,24,23},{26,41,40,18},{28,22,13,48},{44,38,6,29},{35,44,43,10},{25,30,45,21},{35,29,12,44},{56,34,31,2},{33,30,47,14},{24,28,44,25},{39,37,33,19},{48,29,40,0},{31,25,44,19},{25,28,44,24}},
[0074] When MipSizeId=1 and modeId=0, mWeight[x][y]= {{18,22,18,20,72,43,9,19},{18,8,22,26,56,58,5,20},{19,21,10,35,35,72,3,20},{21,21,21,29,18,78,7,18},{19,16,16,19,3,70,46,8},{21,18,15,20,4,58,61,4},{25,16,18,18,8,42,73,3},{28,14,20,18,13,30,76,6},{ 20,18,17,17,19,4,69,40},{24,18,17,16,19,3,55,51},{30,14,18,15,17,5,39,63,{31,14,18,16,16,8,28,70},{22,15,18,16,16,20,2,92},{26,14,18,15,15,19,0,91},{29,15,18,16,14,19,3,88},{29,16,17,17,15,17,7,84}},
[0075] When MipSizeId=1 and modeId=1, mWeight[x][y]= {{20,35,18,20,58,35,18,20},{20,75,26,19,32,31,20,20},{21,6,93,22,20,25,21,20},{24,25,0,99,18,21,21,18},{20,28,20,20,8,78,30,19},{20,67,22,20,10,59,27,19},{22,7,93,18,15,30,25,20},{26,25,1,97,20,18,22,18}, {20,28,19,20,15,14,81,25},{20,59,20,20,12,22,65,23},{23,7,93,16,14,24,34,22},{30,24,3,95,19,20,20,18},{20,29,20,20,14,23,8,90},{20,51,19,21,14,19,15,77},{24,7,88,16,14,20,21,43},{33,22,6,91,19,18,20,21}},
[0076] When MipSizeId=1 and modeId=2, mWeight[x][y]= {{10,19,10,12,81,14,10,11},{10,26,15,10,79,6,12,11},{11,16,31,12,69,2,14,10},{11,13,8,44,54,3,14,10},{11,11,12,11,1,83,13,9},{11,12,12,12,11,83,4,12},{11,15,11,13,24,77,0,12},{11,14,13,16,38,63,2,12} ,{11,12,11,11,14,2,82,12},{11,13,12,12,10,14,79,5},{11,12,12,13,6,29,70,3},{11,12,11,16,3,45,55,4},{11,12,11,12,10,12,1,84},{11,13,11,12,12,8,13,76},{11,12,12,13,14,3,29,64},{11,13,10,17,15,0,45,49}},
[0077] When MipSizeId=1 and modeId=3, mWeight[x][y]= {{21,50,24,20,19,38,22,24},{22,53,41,23,14,22,27,27},{22,22,66,37,19,17,25,28},{27,19,12,92,19,18,21,28},{21,51,25,20,19,23,48,27},{21,41,48,24,17,11,36,37},{24,17,58,43,14,17,23,39},{39,22,4,91,15,20,16,33},{20,44,27,21,16,20,35,54},{22,31,53,24,13,19,21,55},{30,14,47,50,10,20,16,48},{57,28,0,82,19,14,18,30},{22,34,30,21,15,22,21,70,{24,22,52,26,12,24,16,61},{38,17,33,56,14,18,16,49},{66,32,0,75,26,4,22,30}},
[0078] When MipSizeId=1 and modeId=4, mWeight[x][y]= {{18,32,15,16,60,34,10,19},{18,68,28,13,31,37,11,,17},{19,8,73,23,15,30,22,14},{19,18,0,85,11,17,33,15},{18,18,19,17,9,56,56,9},{19,19,20,16,13,30,73,12},{19,20,20,18,13,13,71,28},{18,18,16,26,12,8,54,47},{ 17,16,17,17,17,17,10,54,51},{16,17,16,18,16,15,28,73},{16,18,15,18,16,20,14,83},{15,19,17,18,15,21,14,82},{16,17,16,18,17,18,7,90},{15,18,16,19,16,17,11,87},{14,18,16,20,17,15,15,84},{13,19,16,22,17,15,18,81}},
[0079] When MipSizeId=1 and modeId=5, mWeight[x][y]= {{11,6,13,11,75,6,12,11},{12,3,8,13,48,2,13,10},{12,45,1,13,19,9,12,10},{12,42,37,8,10,12,11,10},{11,11,10,12,18,74,6,11},{11,12,10,12,53,47,2,12},{12,6,10,12,71,16,9,11},{12,15,6,13,53,5,13,10} ,{12,12,10,11,9,17,77,5},{12,11,9,12,3,51,50,2},{12,11,9,12,11,72,18,8},{12,11,9,12,36,57,7,10},{12,10,10,11,10,10,16,71},{13,11,10,11,14,0,56,39},{13,11,9,12,12,8,76,13},{13,12,9,12,8,35,57,7}},
[0080] When MipSizeId=1 and modeId=6, mWeight[x][y]= {{23,21,23,23,101,30,19,25},{24,13,23,24,101,29,19,25},{24,24,14,23,101,29,18,24},{24,23,25,17,98,29,18,24},{23,24,23,23,0,97,36,17},{24,25,24,22,1,97,35,17},{24,22,25,23,1,96,36,17},{24,22,23,24,3,94,36,17},{24,23,23,22,31,0,93,34},{24,23,24,23,31,2,93,33},{24,22,24,23,31,1,92,34},{24,22,23,23,30,3,90,35},{23,24,23,23,19,31,2,102},{23,23,23,24,19,30,3,101},{23,23,24,24,19,30,3,101},{23,23,23,24,19,31,4,100}}
[0081] When MipSizeId=1 and modeId=7, mWeight[x][y]= {{10,5,10,10,56,4,11,9},{11,22,6,10,13,9,10,10},{11,67,22,6,10,10,10,10,10},{11,6,68,18,11,9,11,9},{10,10,10,10,40,53,3,11},{11,6,10,9,61,9,10,9},{11,17,6,10,23,7,9,10},{11,56,15,8,10,11,9,10}, {10,9,11,9,4,42,54,3},{11,10,11,9,22,67,8,8},{10,7,11,9,57,23,7,10},{11,11,10,10,36,8,10,9},{10,10,11,9,13,0,41,50},{11,9,11,9,8,24,64,8},{10,10,11,9,15,63,18,10},{11,10,11,10,44,33,10,11}},
[0082] When MipSizeId=1 and modeId=8, mWeight[x][y]= {{21,44,37,20,24,68,10,23},{21,1,55,39,14,39,41,18},{21,25,0,68,18,18,42,39},{22,24,19,36,19,14,25,72},{21,11,28,30,18,23,80,19},{22,25,8,38,21,13,45,62},{22,22,18,25,19,18,16,90},{23,21,21,24,19,21,12,91},{ 21,22,15,28,21,20,23,82},{22,21,19,24,20,22,9,95},{23,21,21,22,20,21,13,92},{23,22,21,22,19,21,15,90},{22,21,20,22,21,22,15,90},{22,21,21,22,20,21,16,89},{23,21,20,23,19,22,15,89},{24,21,20,23,19,23,15,87}},
[0083] When MipSizeId=1 and modeId=9, mWeight[x][y]= {{8,15,18,15,51,68,39,23},{7,4,10,20,22,76,51,27},{7,16,1,17,13,78,55,29},{7,13,24,0,12,76,55,27},{7,8,10,14,10,66,72,25},{6,12,8,14,12,59,75,27},{5,13,9,12,13,58,75,28},{4,14,8,13,14,60,71,29},{ 7,10,11,12,12,42,79,41},{4,14,8,14,13,45,79,39},{3,14,8,14,12,44,81,38},{2,15,10,14,13,45,78,36},{7,11,12,13,13,24,73,62},{4,15,8,13,15,28,89,43},{1,14,10,14,16,29,85,45},{1,16,9,15,17,33,78,46}},
[0084] When MipSizeId=2 and modeId=0, mWeight[x][y]= {{46,7,14,92,23,20,10},{32,22,17,52,50,25,12},{1,36,21,27,61,30,14},{0,30,27,17,61,32,17},{13,12,37,13,59,35,18},{14,13,38,11,56,38,18},{10,27,29,9,55,39,17},{10,27,32,7,53,38,17},{8,17,14,15,92,27,13},{2,16,18,8,84,38,15},{4,12,22,7,76,44,17},{8,8,25,7,72,46,18},{8,8,26,8,69,46,19},{10,11,23,9,68,47,17},{10,11,23,8,67,47,18},{10,12,26,9,64,43,20},{7,10,16,11,86,37,17},{7,9,18,9,73,47,20},{8,8,21,9,67,50,22},{7,9,22,9,66,50,22},{7,9,23,8,67,48,22},{8,9,24,8,67,48,21},{8,9,26,8,66,49,20},{9,8,29,8,64,48,20},{8,8,16,8,69,56,19},{6,9,17,8,64,55,25},{7,8,19,8,62,53,27},{7,8,21,8,61,52,28},{7,9,22,7,62,52,25},{7,9,23,6,62,53,24},{8,7,26,6,62,52,23},{8,8,28,6,61,51,22},{7,9,14,7,49,74,23},{7,7,17,7,51,65,30},{7,8,18,6,53,57,33},{7,8,20,5,56,57,31},{7,8,22,6,56,57,29},{8,8,23,5,57,57,27},{8,7,26,5,57,56,26},{8,6,27,5,57,55,25},{7,8,14,6,36,65,47},{7,7,18,5,44,59,44},{7,7,19,5,47,59,40},{7,7,20,5,50,59,35},{8,6,22,5,51,58,33},{8,5,25,5,51,59,30},{7,6,26,5,51,59,29},{9,6,27,5,50,59,28},{7,8,14,6,27,44,76},{6,8,16,5,38,57,53},{6,7,19,4,44,63,40},{7,6,21,4,47,62,37},{8,6,22,4,47,62,35},{8,6,24,5,46,64,32},{8,6,26,5,46,63,31},{8,6,28,6,45,62,30},{8,7 ,15,6,22,43,81},{6,8,16,5,32,64,51},{8,8,19,5,37,66,41},{9,5,21,4,41,67,36},{8,7,22,5,42,65,35},{8,6,25,6,42,64,34},{9,5,27,7,43,63,32},{9,5,29,8,40,60,34}},
[0085] When MipSizeId=2 and modeId=1, mWeight[x][y]= {{50,47,46,61,50,45,46},{59,49,47,57,51,45,46},{64,52,48,55,51,46,46},{58,61,50,53,51,46,46},{52,66,53,52,51,46,46},{48,62,62,50,51,46,46},{47,49,76,49,51,46,46},{45,33,92,49,52,46,46},{50,48,46,57,63,45,46},{55,52,48,55,63,45,46},{57,56,50,53,63,45,46},{55,60,53,51,63,46,46},{51,60,59,51,63,46,46},{48,55,69,49,63,46,46},{46,42,84,48,62,46,46},{43,28,99,48,61,47,46},{49,49,47,48,73,47,46},{52,52,49,47,73,48,46},{52,55,53,47,72,48,46},{51,56,58,46,72,48,46},{48,54,65,46,71,48,46},{46,47,76,45,71,49,46},{44,34,91,44,70,49,46},{41,23,04,45,68,50,46},{48,48,48,44,68,59,45},{50,51,51,43,69,58,45},{49,52,56,43,68,58,45},{48,52,62,42,68,58,45},{45,48,71,42,68,58,45},{43,38,84,41,68,59,45},{41,27,98,41,67,59,45},{38,19,109,42,66,59,45},{47,47,49,44,52,74,45},{48,48,53,43,54,74,45},{47,48,60,43,55,73,45},{45,46,68,43,55,73,45},{43,40,78,42,56,72,45},{41,30,91,42,57,72,45},{38,20,105,41,57,71,45},{36,13,114,41,57,70,46},{46,47,50,45,43,77,51},{46,46,56,44,44,78,51},{45,43,64,43,45,77,51},{43,39 ,73,43,45,77,51},{40,31,85,42,46,77,51},{38,22,98,42,46,77,51},{35,12,111,42,47,76,51},{33,7,19,41,48,75,52},{46,46,51,45,44,57,71},{45,43,59,44,44,58,70},{43,37,68,43,45,58,70},{40,31,80,43,45,58,70},{38,22,92,43,46,58,70},{36,13,105,43,4 6,58,70},{33,5,117,42,47,58,70},{31,2,123,42,48,57,71},{45,41,55,45,51,24,96},{44,36,64,44,52,23,97},{42,29,75,43,53,23,97},{39,22,86,43,52,24,97},{37,14,98,43,53,24,97},{34,7,109,42,53,25,97},{32,1,118,41,53,25,97},{30,0,123,41,53,26,96}},
[0086] When MipSizeId=2 and modeId=2, mWeight[x][y]= {{20,16,16,76,9,8,16},{37,15,16,71,11,17,16},{65,13,17,67,12,17,16},{63,30,15,63,14,17,16},{30,62,13,57,16,17,16},{14,62,28,52,18,16,16},{21,22,64,46,21,15,16},{26,0,81,40,24,15,17},{23,16,16,69,48,8,18},{28,18,16,66,50,8,17},{36,17,17,61,54,7,18},{40,20,17,56,57,7,18},{34,29,18,50,61,6,18},{27,34,22,44,64,5,18},{25,22,37,37,67,5,18},{26,9,51,31,68,6,18},{18,17,17,17,87,9,17},{19,17,17,15,88,9,17},{20,18,17,14,88,10,17},{22,17,18,12,87,12,17},{23,18,19,11,85,15,16},{23,20,19,11,83,18,16},{22,19,22,10,79,22,16},{22,16,28,11,74,26,15},{16,17,16,7,58,50,10},{17,17,16,8,53,55,10},{18,17,17,10,47,60,9},{18,16,17,11,43,64,9},{19,16,17,12,38,68,9},{20,17,18,13,35,72,9},{20,17,19,14,31,74,9},{20,16,21,13,29,74,11},{17,16,16,16,15,86,11},{18,15,17,16,13,86,13},{18,16,16,16,13,84,15},{18,15,17,16,12,82,18},{19,16,17,16,12,79,21},{18,16,17,16,12,76,24},{18,16,17,15,12,73,28},{19,16,19,15,14,68,31},{17,17,16,17,10,59,43},{17,16,16,17,10,54,47},{18,16,16,17,11,48,52},{18,16,16,16,12,44,56},{17,17, 16,16,13,40,59},{17,17,16,16,13,37,62},{17,17,17,15,14,34,65},{18,16,18,16,14,32,66},{17,16,16,15,16,17,79},{17,16,16,16,16,15,81},{18,16,16,16,16,14,82},{18,16,16,15,16,13,83},{17,18,16,15,16,13,83},{17,17,17,15,16,13,84}, {17,17,17,15,16,13,84},{17,16,18,15,16,13,83},{16,16,16,16,17,3,92},{17,16,16,15,17,4,91},{18,17,17,14,18,4,90},{18,17,16,14,18,4,91},{17,18,16,15,18,4,91},{17,18,17,15,18,4,90},{17,17,18,14,18,4,90},{18,16,19,15,18,5,89}},
[0087] When MipSizeId=2 and modeId=3, mWeight[x][y]= {{13,9,10,43,11,12,9},{43,2,11,22,15,12,10},{73,2,11,16,16,12,9},{52,38,5,13,16,12,10},{11,71,6,12,14,13,10},{3,50,35,10,14,13,9},{11,12,68,11,13,13,10},{13,3,74,12,11,15,10},{20,9,10,51,29,11,10},{41,5,10,37,26,13,10},{58,9,10,23,27,14,9},{41,36,6,15,24,16,10},{14,57,11,11,21,18,9},{7,39,37,9,18,19,9},{12,9,63,10,15,20,9},{15,2,68,11,12,21,10},{16,11,11,19,60,11,11},{27,11,11,20,50,16,10},{35,15,11,17,42,20,10},{29,29,11,12,35,23,10},{17,37,18,8,29,26,9},{13,26,35,6,24,27,9},{15,8,53,7,19,27,10},{16,4,57,9,14,28,11},{12,11,11,5,51,36,8},{15,13,12,8,45,36,9},{19,16,14,9,38,38,9},{19,21,16,8,32,39,10},{18,22,21,7,27,39,10},{18,16,31,7,22,39,11},{18,9,41,6,18,39,11},{19,7,44,7,15,37,13},{11,12,11,9,18,64,10},{11,12,13,10,18,61,11},{13,13,15,10,17,58,12},{15,14,17,10,16,56,13},{17,14,20,9,14,55,13},{18,11,26,9,13,52,14},{19,9,31,8,11,50,15},{19,9,33,8,10,46,17},{10,11,12,11,4,59,28},{11,10,13,11,4,60,26},{12,10,15,11,5,59,25},{14,10,16,11,5,58,24},{15,10,18,11,4,57,24},{17,9,21,11,4,56,2 4},{19,9,23,10,4,53,24},{19,9,26,10,5,49,25},{10,10,12,11,5,27,60},{11,8,14,11,3,34,54},{13,8,15,12,2,38,50},{13,8,15,13,1,41,47},{15,8,17,13,0,42,45},{16,8,18,13,0,44,43},{18,8,19,12,0,44,41},{19,9,21,12,1,43,39},{11,8,12,11,6,9,77},{13,7,13,12,4,16,72},{15,6,14,13,2,21,67},{15,6,14,13,1,25,63},{15,7,15,14,0,27,61},{16,8,15,14,0,29,58},{17,8,17,14,0,29,56},{18,8,18,14,1,30,53}},
[0088] When MipSizeId=2 and modeId=4, mWeight[x][y]= {{15,13,13,55,12,13,13},{21,13,13,34,14,13,13},{39,12,13,22,14,13,13},{55,18,12,18,14,14,13},{48,37,11,16,14,14,13},{23,62,13,14,14,13,13},{11,53,35,14,14,13,12},{15,13,72,14,14,13,12},{16,13,13,63,27,12,13},{17,13,13,58,19,13,13},{22,13,13,43,18,13,13},{33,14,12,31,17,14,13},{45,18,12,24,16,14,12},{44,32,12,19,15,14,13},{29,49,15,17,14,14,12},{18,44,33,16,15,13,12},{15,13,13,32,60,10,13},{16,13,13,45,44,12,13},{17,14,13,49,32,13,12},{21,14,13,44,25,14,12},{30,14,13,37,21,14,12},{39,16,13,30,18,14,12},{39,27,13,24,17,14,12},{31,38,16,21,17,13,12},{13,13,13,13,64,27,11},{14,13,13,23,61,19,12},{15,14,13,34,51,16,12},{17,14,13,40,42,15,12},{20,14,13,40,34,14,12},{27,14,13,37,29,14,12},{33,16,13,32,25,13,12},{33,24,14,27,23,13,12},{13,13,13,13,33,61,9},{13,13,13,15,47,44,10},{14,13,13,20,54,31,11},{15,13,13,27,53,23,11},{16,14,13,32,49,18,12},{19,14,13,34,43,15,12},{24,14,13,34,37,14,12},{28,17,13,31,32,14,12},{13,14,13,15,10,71,20},{13,13,13,15,22,66,13},{14,13,13,15,37,53,11},{14,13,13, 18,47,40,11},{14,13,13,23,52,29,11},{15,14,13,27,51,23,11},{18,14,13,30,47,19,11},{22,15,13,30,42,17,12},{13,13,13,14,12,34,57},{13,13,13,15,14,50,38},{13,13,13,15,21,58,23},{14,13,13,16,32,54,16},{13,13,13,18,41,45,13},{13,14,13,21,47, 36,12},{14,14,13,24,49,28,12},{17,14,13,26,46,24,12},{13,13,13,13,19,0,85},{13,13,13,13,20,12,72},{13,13,13,15,20,30,53},{13,13,13,16,23,44,35},{13,14,12,17,29,47,24},{13,14,13,18,36,44,18},{13,14,13,20,41,38,16},{15,14,14,22,42,33,15}},
[0089] When MipSizeId=2 and modeId=5, mWeight[x][y]= {{24,9,10,52,13,10,12},{53,9,10,25,26,6,13},{48,30,9,11,30,7,13},{15,59,12,6,25,13,11},{5,48,34,7,18,19,10},{10,15,62,8,12,20,13},{13,2,70,8,9,19,19},{13,3,62,9,6,16,30},{25,14,10,40,51,0,14},{20,28,11,16,55,5,13},{8,38,18,6,41,20,11},{5,28,34,6,23,31,12},{9,12,48,8,12,33,18},{12,2,53,9,6,30,28},{14,1,50,9,4,23,40},{14,5,42,8,4,15,51},{8,20,12,5,72,12,12},{2,24,19,5,46,35,9},{5,16,29,9,21,48,13},{9,6,36,10,9,45,25},{12,3,37,11,5,36,38},{13,4,34,11,4,25,51},{13,6,29,10,4,16,61},{13,9,26,10,6,11,66},{6,14,15,6,31,60,6},{7,10,22,11,12,64,15},{10,6,26,13,6,50,32},{11,4,27,12,5,33,49},{12,5,25,11,6,20,62},{12,7,22,11,7,13,69},{12,9,19,11,7,8,74},{12,10,19,10,8,7,74},{10,9,16,12,6,67,20},{11,6,20,13,5,46,41},{11,5,21,12,7,26,59},{11,7,19,12,9,14,70},{11,8,18,11,10,8,75},{11,9,16,11,10,5,78},{12,10,15,11,10,4,80},{11,10,15,10,10,4,78},{11,9,15,12,8,34,54},{11,7,17,11,10,16,69},{11,7,17,11,11,7,76},{11,8,16,11,11,4,80},{10,10,14,11,11,3,81},{11,10,13,11,12,2,82},{11,10,13,11,12,2,82},{11,11,13,10,12,3,80},{11,9,14,11,11,8,77},{11,8,14,11,12,3,81},{11,9,14,11,12,1,83},{10,10,13,11,12,2,83},{10,11,12,11,12,2,82},{10,11,12,11,12,3,82},{11,11,11,11,12,3,81},{11,11,11,11,13,5, 79},{11,10,13,11,13,2,82},{11,9,13,11,13,1,83},{11,10,12,11,13,2,82},{10,11,12,11,12,3,81},{10,11,12,11,12,4,80},{10,11,11,11,12,5,80},{11,11,11,11,13,5,79},{11,11,11,11,12,6,77}}.,
[0090] After obtaining the above parameters (i.e., mWeight, sW, and fO) from the mapping table, the above parameters and the set of predicted input values can be input into equations (1) and (2) to calculate and obtain the predicted value of the sample at a specific position of the current block.
[0091] In an alternative embodiment, determining the MIP matrix of the current block, the bit right shift parameter of the current block, and the weighting parameter of the current block from one or more mapping tables pre-stored to obtain the MIP matrix of the current block, the bit right shift parameter of the current block, and the weighting parameter of the current block includes: The method includes determining an MIP matrix of the current block, a bit right shift parameter of the current block, and a weighting parameter of the current block from one or more pre-stored mapping tables based on a size of the current block.
[0092] In other words, according to the size of the current block, obtain the MIP matrix of the current block corresponding to the size of the current block, the bit right shift parameter of the current block and the weight parameter of the current block from the mapping table. For example, if the size of the current block is 4x4, MipSizeId=0, if the size of the current block is 4x8, 8x4 or 8x8, MipSizeId=1, if the size of the current block is larger than 8x8, MipSizeId=2. According to the value of MipSizeId, the MIP matrix of the current block corresponding to the size of the current block, the bit right shift parameter of the current block can be found from the mapping table.
[0093] Block S507 performs a filtering process on the predicted value of the sample at the specific position to obtain predicted values of all samples in the current block.
[0094] After the predicted value of the sample at the particular position is determined in block S506, a filtering process can be performed on the predicted value of the sample at the particular position to obtain predicted values of all samples in the current block.
[0095] In order to obtain the predicted values of all samples in the current block, in one optional embodiment, block S507 may include the following: Perform an interpolation filtering process on the predicted values of the samples at the specific positions to obtain the predicted values of the samples at other positions in the current block other than the samples at the specific positions.
[0096] Here, by performing an interpolation filtering process mainly on the predicted value of the sample located at a specific position, the predicted values of the samples located at positions other than the sample located at the specific position can be obtained, and the predicted values of all the samples in the current block can be obtained.
[0097] In other words, the prediction method based on the MIP technique performed by the encoder according to the embodiment of the present application is different from the conventional prediction method of equations (1) to (5), in that the calculation of p[0] in equation (7) and the calculation sign in equation (3) are reversed. Therefore, all p[x] values in equations (3) and (7) have a more unified effect in form. That is, pTemp[0] is subtracted in both equations (3) and (7), and the average compensation in equation (1) directly uses pTemp[0], so that in the calculation formula of predMip[x][y], the pTemp[0] coefficient is unified as follows:
number
[0098] The coefficients of the conventional prediction method are as follows: If y=0:
number
number
[0099] JPEG2025013982000013.jpg48161
[0100] On this basis, the parameter values of the first column of the MIP matrix mWeightf obtained by training are the values obtained by inverting the parameter values of the first column of the original MIP matrix mWeightf. In this way, the range of parameter values of the entire MIP matrix mWeightf is smaller than the range of parameter values of the original MIP matrix mWeightf, which helps to improve the accuracy of the representation and therefore the accuracy of prediction.
[0101] Regarding the change in the value range after the first column of data in the original MIP matrix mWeightf is inverted, for example, for the 28 primitive floating-point matrices with MipSizeId of 0 and 1 shown in Table 1, the value range obtained by inverting the first column is either unchanged or reduced. As shown in Table 2 below, in the 28 matrices, the value range of 11 matrices is reduced, and the value range of the remaining 17 matrices is unchanged. In the 11 matrices with the reduced value range, there are 4 matrices that can improve the weighted representation accuracy obtained by the current known training. [Table 2]
[0102] As can be seen, Table 2 shows the matrix IDs for matrices with MipSizeId=0 and 1 that have a reduced value range after inversion, and matrices that have a reduced value range and larger sW values after inversion.
[0103] Tables 3 to 5 below are concrete examples. Each table is divided into two parts (left and right). In Tables 3 and 5, the left part is mWeightf and the right part is mWeightf'. In Table 4, the left part is mWeightf'' and the right part is mWeight. In Tables 3 and 5, the first column represents the value of mWeightf[x][0] and the first column on the right represents the value after mWeightf[x][0] is inverted.
[0104] Tables 3 and 4 show the changes after adopting this technique in the same MIP mode. The range of values after inverting mWeightf[x][0] becomes smaller, and the original sW value is changed from 5 to 6. Each value of mWeight[x][y] obtained by formula (6) is less than or equal to 127, which is within the valid display range of 7 bits. Table 5 shows an example where the range of values after inverting mWeightf[x][0] is unchanged. [Table 3]
[0105] Table 3 shows an example where the first column of a primitive floating-point matrix with MipSizeId=0 and modeId=3 is reversed (the left part shows the original values, the right part shows the reversed values). [Table 4]
[0106] Table 4 shows a matrix where MipSizeId=0 and modeId=3. Here, by adopting the technical solution of this application, right The shift bits are sW=6, which does not exceed the 7-bit display range. [Table 5]
[0107] Table 5 shows an example where the first column of a primitive floating-point matrix with MipSizeId=0 and modeId=16 is reversed (the left part shows the original values, the right part shows the reversed values).
[0108] As can be seen from the examples in Tables 3 to 5, the method of determining predicted values according to the embodiments of the present application can reduce the value range of the floating-point matrix obtained by MIP training and improve the accuracy of fixed-point processing, thereby improving prediction accuracy and ultimately increasing encoding efficiency.
[0109] An embodiment of the present application provides a method for determining a predicted value. This method is applied to an encoder. In the embodiment of the present application, a first constant value is calculated, and the difference between the first constant value and a first reference value of a reference value set is determined to be a first predicted input value of a predicted input value set, and the predicted input value set is used to calculate a predicted value of a current block, so that the dynamic value range of the predicted input value when predicting in MIP mode can be effectively reduced. Therefore, compared with the conventional technology, when the predicted input value set and the MIP matrix are represented with the same number of bits, the dynamic range data can be represented more accurately, and the accuracy during the calculation of the predicted value in MIP mode is increased, and the encoding efficiency is improved.
[0110] In order to improve the prediction accuracy of MIP mode and improve the coding efficiency, an embodiment of the present application provides a method for determining a predicted value. Figure 6 is a flow chart of a method for determining a predicted value according to another embodiment of the present application. As shown in Figure 6, this method can be applied to a decoder. The method includes the following contents:
[0111] Block S601 parses the bitstream to obtain the size of the current block and the coding mode of the current block.
[0112] Specifically, when the decoder receives a bitstream, it first analyzes the bitstream to obtain the size of the current block and the coding mode of the current block. The coding mode can be one of the conventional intra-prediction modes and can also be one of the MIP modes. Here, the coding mode mainly refers to one of the MIP modes.
[0113] Block S602: if the coding mode of the current block is an MIP mode, the reconstructed values of the neighboring samples of the current block are obtained, and a filtering process is performed on the reconstructed values of the neighboring samples to obtain a set of reference values of the current block.
[0114] For example, the size of the current block may be 4x4, 4x8, 8x4, or 8x8. If the size of the current block is 4x4, the coding mode is one of M=35 coding modes. If the size of the current block is 4x8, 8x4, or 8x8, the coding mode is one of M=19 coding modes. If the current block is any other size, the coding mode is one of M=11 coding modes.
[0115] In other words, if the coding mode of the current block is a MIP mode, the decoder first obtains the reconstructed values of the samples adjacent to the current block, where the reconstructed values of the samples adjacent to the current block include the reconstructed values of the samples in the top row of the current block and the reconstructed values of the samples in the left column of the current block.
[0116] After obtaining the reconstructed values of the adjacent samples, for example, the reconstructed value of the sample in the top row of the current block obtained is redT (containing N values), and the reconstructed value of the sample in the left column of the current block obtained is redL (containing N values), and redT and redL constitute a new vector pTemp, which is the reference value set of the current block.
[0117] In order to perform a filtering process to obtain a reference value set of the current block, in an optional embodiment, in S602, performing a filtering process on the reconstructed values of adjacent samples to obtain a reference value set of the current block includes: dividing the reconstructed values of the adjacent samples into N groups, calculating an average value of the reconstructed values of each group, and taking the average value as the reference value of the reference value set, where N is a positive integer.
[0118] N is set to a positive integer value corresponding to the preset size of the current block.
[0119] In other words, performing a filtering process on the reconstructed values of adjacent samples in block S602 specifically involves dividing redT and redL into N groups, calculating the average of the reconstructed values of each group to obtain N average values, and using the N average values as the reference values of the reference value set.
[0120] For example, if the size of the current block is 4x4, then inSize=4; if the size of the current block is 4x8, 8x4 or 8x8, then inSize=8; if the size of the current block is greater than 8x8, then inSize=7.
[0121] Block S603: if the size of the current block is smaller than the preset threshold, calculate a second constant value based on the bit depth value of the luminance component of the samples in the current block.
[0122] In practice, the size of the current block can be represented by MipSizeId. If MipSizeId is a number less than 2, i.e., MipSizeId is equal to 0 or 1, a second constant value is calculated based on the bit depth value of the luma component of the samples in the current block.
[0123] In one alternative embodiment for calculating the second constant value, in block S603, calculating the second constant value based on the bit depth values of the luma component of the samples in the current block includes: The second constant value may be set to a value obtained by performing a binary bit left shift operation on the numeric value 1, where a number of left shift bits used in the binary bit left shift operation is equal to the bit depth value minus 1.
[0124] Specifically, two The constant value is the result of performing a bitwise left shift operation on the number 1, where the number of bits shifted left is equal to the bit depth minus 1.
[0125] Block S604 determines a first predicted input value of the set of predicted input values as a difference between the second constant value and a first reference value of the set of reference values.
[0126] The set of predicted input values is used to calculate a prediction of the current block based on the MIP.
[0127] After obtaining the second constant value, in S604, the difference between the second constant value and the first reference value of the reference value set can be determined as a first predicted input value. The first predicted input value can be obtained by adopting the above formula (7) for calculation.
[0128] Block S605 determines other predicted input values in the set of predicted input values other than the first predicted input value based on the reference value set.
[0129] The other predicted input value p[i] includes a predicted input value other than the first predicted input value when the size of the current block is smaller than a preset threshold. The other predicted input value p[i] may further include a predicted input value when the size of the current block is equal to or larger than a preset threshold. The other predicted input value may be obtained by calculating the above formula (8).
[0130] Block S606 calculates a prediction value for a sample at a particular position of the current block based on the set of predicted input values.
[0131] Specifically, after all predicted input values are determined, a set of predicted input values can be obtained. Prediction can be performed based on the set of predicted input values to obtain a predicted value of a sample at a specific position of the current block, for example, a predicted value of a sample at a position identified by a crosshair in FIG. 3.
[0132] To determine a predicted value of a sample at a specific position of the current block, in an optional embodiment, block S606 includes the following contents: Determine a MIP matrix of the current block, a bit right shift parameter of the current block, and a weighting parameter of the current block from one or more mapping tables stored in advance; Calculate a predicted value of a sample at a specific position of the current block based on a set of predicted input values, the MIP matrix of the current block, the bit right shift parameter of the current block, and the weighting parameter of the current block.
[0133] In other words, one or more mapping tables are pre-stored in the encoder, which can determine the MIP matrix (mWeit) of the current block, the bit right shift parameter (sW) of the current block, and the weighting parameter (fO) of the current block.
[0134] After obtaining the above parameters from the mapping table, the above parameters and the set of predicted input values can be input into equations (1) and (2) to calculate and obtain the predicted value of the sample at a specific position of the current block.
[0135] In an alternative embodiment, determining the MIP matrix of the current block, the bit right shift parameter of the current block, and the weighting parameter of the current block from one or more mapping tables pre-stored to obtain the MIP matrix of the current block, the bit right shift parameter of the current block, and the weighting parameter of the current block includes: The method includes determining an MIP matrix of the current block, a bit right shift parameter of the current block, and a weighting parameter of the current block from one or more pre-stored mapping tables based on a size of the current block.
[0136] In other words, according to the size of the current block, obtain the MIP matrix of the current block corresponding to the size of the current block, the bit right shift parameter of the current block and the weight parameter of the current block from the mapping table. For example, if the size of the current block is 4x4, MipSizeId=0, if the size of the current block is 4x8, 8x4 or 8x8, MipSizeId=1, if the size of the current block is larger than 8x8, MipSizeId=2. According to the value of MipSizeId, the MIP matrix of the current block corresponding to the size of the current block, the bit right shift parameter of the current block can be found from the mapping table.
[0137] Block S607 performs a filtering process on the predicted value of the sample at the specific position to obtain predicted values of all samples in the current block.
[0138] After the predicted value of the sample at the particular position is determined in block S606, a filtering process can be performed on the predicted value of the sample at the particular position to obtain predicted values of all samples in the current block.
[0139] To obtain the predicted values of all samples in the current block, in one optional embodiment, block S60 may include the following: Perform an interpolation filtering process on the predicted values of the samples at the specific positions to obtain the predicted values of the samples at other positions in the current block other than the samples at the specific positions.
[0140] Here, by performing an interpolation filtering process mainly on the predicted value of the sample located at a specific position, the predicted values of the samples located at positions other than the sample located at the specific position can be obtained, and the predicted values of all the samples in the current block can be obtained.
[0141] An embodiment of the present application provides a method for determining a predicted value. This method is applied to a decoder. In the embodiment of the present application, a second constant is calculated, and the difference between the second constant value and the first reference value of the reference value set is determined to be the first predicted input value of the predicted input value set, and the predicted input value set is used to calculate the predicted value of the current block, so that the dynamic value range of the predicted input value when predicting in MIP mode can be effectively reduced. Therefore, compared with the conventional technology, when the predicted input value set and the MIP matrix are represented with the same number of bits, the dynamic range data can be represented more accurately, and the accuracy during the calculation of the predicted value in MIP mode is increased, and the coding efficiency is improved.
[0142] Second embodiment
[0143] Based on the same inventive concept, an embodiment of the present application provides an encoder. FIG. 7 is a schematic diagram showing the structure of an encoder according to an embodiment of the present application. As shown in FIG. 7, the encoder includes a first acquisition module 71, a first processing module 72, a first calculation module 73, a first determination module 74, a second calculation module 75, a third calculation module 76 and a second processing module 77. The first acquisition module 71 is used to obtain reconstructed values of samples adjacent to a current block. The first processing module 72 is used to perform a filtering process on the reconstructed values of the adjacent samples to obtain a reference value set of the current block. The first calculation module 73 is used to calculate a first constant value based on the bit depth value of the luminance component of the samples in the current block when the size of the current block is smaller than a preset threshold. The first determination module 74 is used to determine that a first predicted input value of the predicted input value set is the difference between the first constant value and a first reference value of the reference value set. The second calculation module 75 is used to determine other predicted input values other than the first predicted input value in the predicted input value set based on the reference value set. The third calculation module 76 is used to calculate a predicted value of the sample at a specific position of the current block based on the set of predicted input values, and the second processing module 77 is used to perform a filtering process on the predicted value of the sample at the specific position to obtain predicted values of all samples in the current block.
[0144] In one optional embodiment, the first processing module 72 is specifically used to divide the reconstructed values of adjacent samples into N groups, calculate the average value of the reconstructed values of each group, and set the average value as the reference value of the reference value set, where N is a positive integer.
[0145] N is set to a positive integer value corresponding to the preset size of the current block.
[0146] In one optional embodiment, the first calculation module 73 calculating a first constant numerical value based on the bit depth value of the luma component of the samples in the current block includes setting the first constant value to a value obtained by performing a binary bit left shift operation on the numerical value 1, where the number of left shift bits used in the binary bit left shift operation is equal to the bit depth value minus 1.
[0147] In an optional embodiment, the third calculation module 76 is specifically used to determine a MIP matrix of a current block, a bit right shift parameter of the current block, and a weighting parameter of the current block from one or more mapping tables pre-stored, and calculate a predicted value of a sample at a specific position of the current block based on a set of predicted input values, the MIP matrix of the current block, the bit right shift parameter of the current block, and the weighting parameter of the current block.
[0148] In an alternative embodiment, the third calculation module 76 determines the MIP matrix of the current block, the bit right shift parameter of the current block, and the weighting parameter of the current block from one or more pre-stored mapping tables by: The method includes determining an MIP matrix of the current block, a bit right shift parameter of the current block, and a weighting parameter of the current block from one or more pre-stored mapping tables based on a size of the current block.
[0149] In one optional embodiment, the second processing module 77 is specifically used to perform an interpolation filtering process on the predicted value of a sample at a specific position to obtain a predicted value of a sample at a position other than the sample at the specific position in the current block.
[0150] An embodiment of the present application provides a decoder. FIG. 8 is a schematic diagram showing the structure of a decoder according to an embodiment of the present application. As shown in FIG. 8, the decoder includes a second acquisition module 81, a third processing module 82, a fourth calculation module 83, a second determination module 84, a fifth calculation module 85, a sixth calculation module 86 and a fourth processing module 87. The second acquisition module 81 is used to analyze the bitstream to obtain the size of a current block and the coding mode of the current block. The third processing module 82 is used to obtain the reconstructed values of samples adjacent to the current block and perform a filtering process on the reconstructed values of the adjacent samples to obtain a reference value set of the current block when the coding mode of the current block is a matrix-based intra prediction (MIP) mode. The fourth calculation module 83 is used to calculate a second constant value according to the bit depth value of the luminance component of the sample in the current block when the size of the current block is smaller than a preset threshold. The second determination module 84 is used to determine that a first predicted input value of the predicted input value set is the difference between the second constant value and the first reference value of the reference value set. The fifth calculation module 85 is used for determining other predicted input values in the predicted input value set than the first predicted input value according to the reference value set. The sixth calculation module 86 is used for calculating a predicted value of a sample at a specific position of the current block according to the predicted input value set. The fourth processing module 87 is used for performing an interpolation filtering process on the predicted value of the sample at the specific position to obtain a predicted value of a sample at a specific position in the current block other than the sample at the specific position.
[0151] In an alternative embodiment, the third processing module 82 performs a filtering process on the reconstructed values of the neighboring samples to obtain a set of reference values for the current block, the filtering process comprising: The method includes dividing the reconstructed values of adjacent samples into N groups, calculating the average value of the reconstructed values of each group, and setting the average value as the reference value of the reference value set, where N is a positive integer.
[0152] N is set to a positive integer value corresponding to the preset size of the current block.
[0153] In an alternative embodiment, the fourth calculation module 83 calculates the second constant value based on the bit depth values of the luminance components of the samples in the current block by: The second constant value may be set to a value obtained by performing a binary bit left shift operation on the numeric value 1, where a number of left shift bits used in the binary bit left shift operation is equal to the bit depth value minus 1.
[0154] In an alternative embodiment, Six Calculation Module 8 6 Specifically, the MIP matrix of the current block, the bit right shift parameter of the current block, and the weighting parameter of the current block are determined from one or more mapping tables stored in advance, and a predicted value of a sample at a specific position of the current block is calculated according to a set of predicted input values, the MIP matrix of the current block, the bit right shift parameter of the current block, and the weighting parameter of the current block.
[0155] In an alternative embodiment, Six Calculation Module 8 6 determining the MIP matrix of the current block, the bit right shift parameter of the current block, and the weighting parameter of the current block from one or more mapping tables stored in advance; The method includes determining an MIP matrix of the current block, a bit right shift parameter of the current block, and a weighting parameter of the current block from one or more pre-stored mapping tables based on a size of the current block.
[0156] In one optional embodiment, the fourth processing module 87 is specifically used to perform an interpolation filtering process on the predicted value of a sample at a specific position to obtain a predicted value of a sample at a position other than the sample at the specific position in the current block.
[0157] Fig. 9 is a schematic diagram showing the structure of an encoder according to another embodiment of the present application. As shown in Fig. 9, the encoder 900 according to the embodiment of the present application includes a processor 91 and a storage medium 92 storing instructions executable by the processor 91. The storage medium 92 is operable by the processor 91 via a communication bus 93. When the instructions are executed by the processor 91, the method for determining a predicted value according to one or more embodiments described above is performed.
[0158] In practice, each component of the encoder is coupled together via a communication bus 93. It can be understood that the communication bus 93 is used to realize the connection communication between these components. In addition to a data bus, the communication bus 93 further includes a power bus, a control bus and a status signal bus. For clarity of explanation, various buses are marked as the communication bus 93 in FIG. 9.
[0159] Fig. 10 is a schematic diagram showing the structure of a decoder according to another embodiment of the present application. As shown in Fig. 10, the decoder 1000 according to the embodiment of the present application includes a processor 101 and a storage medium 102 storing instructions executable by the processor 101. The storage medium 102 is operable by the processor 101 via a communication bus 103. When the instructions are executed by the processor 101, the decoder 1000 performs the method for determining a predicted value according to one or more embodiments described above. This includes determining the weighting parameters for the blocks.
[0160] In practice, each component of the encoder is coupled together via a communication bus 103. It can be understood that the communication bus 103 is used to realize the connection communication between these components. In addition to a data bus, the communication bus 103 further includes a power bus, a control bus and a status signal bus. For clarity of explanation, various buses are marked as the communication bus 103 in FIG. 10.
[0161] An embodiment of the present application provides a computer-readable storage medium, which stores executable instructions, which, when executed by one or more processors, cause the processors to perform a method for determining a predicted value according to one or more embodiments described above.
[0162] The memory of the embodiments of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memory. The non-volatile memory can be a Read-Only Memory (ROM), a Programmable Read-Only Memory (PROM), an Erasable Programmable Read-Only Memory (EPROM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), or a Flash Memory. The volatile memory can be a Random Access Memory (RAM) that functions as an external high-speed cache. By way of illustrative, but non-limiting example, many types of RAM are available, such as Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), Synch-link Dynamic Random Access Memory (SLDRAM), and Direct Rambus Random Access Memory (DR RAM).The memory of the systems and methods described herein may comprise, without being limited to, these and any other suitable types of memory.
[0163] The processor may be an integrated circuit chip having signal processing capabilities. In the implementation process, each step of the above-mentioned method embodiment may be completed by an integrated logic circuit in the form of hardware of the processor or an instruction in the form of software. The above-mentioned processor may be a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component. The processor may realize or execute the method, steps and logic block diagrams disclosed in the embodiments of the present application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application may be directly performed and completed by a hardware decoding processor, or may be performed and completed by a combination of hardware and software modules in the decoding processor. The software module can be in a storage medium mature in the art, such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, or an electrically erasable programmable memory, a register, etc. The storage medium is in the memory. The processor reads the information in the memory and completes the steps of the above-mentioned method together with the hardware of the processor.
[0164] It may be understood that the embodiments described herein may be implemented by hardware, software, firmware, middleware, microcode, or a combination thereof. When implemented by hardware, the processing unit may be implemented by one or more Application Specific Integrated Circuits (ASIC), Digital Signal Processing (DSP), DSP Device, Programmable Logic Device (PLD), Field-Programmable Gate Array (FPGA), general-purpose processor, controller, microcontroller, microprocessor, other electronic unit, or a combination thereof.
[0165] For a software implementation, the techniques described herein may be implemented with modules (e.g., procedures, functions, and so on) for performing the functions described herein. The software code is stored in a memory and executed by a processor. The memory may be implemented within the processor or external to the processor.
[0166] As used herein, the terms "comprising," "including," or variations thereof are intended to cover a non-exclusive inclusion, such that a process, method, object, or apparatus comprising a series of steps or units may include not only the listed steps or units, but also other steps or units not listed, or may include other steps or units inherent to the process, method, object, or apparatus. In the absence of more limitations, a process, method, object, or apparatus that includes an element limited by a "comprising" statement does not exclude the presence of other identical elements.
[0167] The sequence numbers of the above-mentioned embodiments are adopted for the purpose of explanation only, and do not indicate the superiority or inferiority of the embodiments.
[0168] From the description of the above embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by software and a necessary universal hardware platform. Of course, it can also be realized by hardware alone, but the former is a preferred embodiment. Based on this understanding, an essential part of the technical solution of the present application or a part that contributes to the prior art can be embodied as a software product. The computer software product can be stored in a storage medium (such as a ROM / RAM, a magnetic disk, or an optical disk) and includes a plurality of instructions that cause a terminal (such as a mobile phone, a computer, a server, a network device, etc.) to execute the method of each embodiment of the present application.
[0169] In practice, each component of the decoder is coupled together via a communication bus 103. It can be understood that the communication bus 103 is used to realize the connection communication between these components. In addition to a data bus, the communication bus 103 further includes a power bus, a control bus and a status signal bus. For clarity of explanation, various buses are marked as the communication bus 103 in FIG. 10.
[0170] Industrial Applicability
[0171] The embodiment of the present application provides a method for determining a predicted value, an encoder, a decoder, and a computer storage medium. The method for determining a predicted value applied to the encoder includes: obtaining a reconstructed value of a sample adjacent to a current block; performing a filtering process on the reconstructed value of the adjacent sample to obtain a reference value set of the current block; calculating a first constant value according to a bit depth value of a luminance component of a sample in the current block when the size of the current block is smaller than a preset threshold; determining that a first predicted input value of the predicted input value set is a difference between the first constant value and a first reference value of the reference value set; determining other predicted input values other than the first predicted input value in the predicted input value set according to the reference value set; calculating a predicted value of a sample at a specific position of the current block according to the predicted input value set; and performing a filtering process on the predicted value of the sample at the specific position to obtain predicted values of all samples in the current block. The prediction accuracy in video encoding and decoding can be improved, thereby improving the efficiency of encoding and decoding.
Claims
1. A method for determining a predicted value applied to an encoder, comprising the steps of: Obtaining reconstructed values of samples adjacent to the current block; filtering the reconstructed values of the adjacent samples to obtain a set of reference values for the current block, where a number of samples obtained by filtering the upper samples of the current block is equal to a number of samples obtained by filtering the left samples of the current block; determining a first predicted input value of the set of predicted input values as a difference value obtained by subtracting a first reference value of the set of reference values from the predetermined value; determining other predicted input values in the set of predicted input values other than the first predicted input value based on the set of reference values; calculating a prediction for a sample at a particular position of the current block based on the set of predicted input values; performing a filtering process on the predicted value of the sample at the particular position to obtain predicted values of all samples in the current block; Including, filtering the reconstructed values of the neighboring samples to obtain a set of reference values for the current block, dividing the reconstructed values of the adjacent samples into N groups; Calculating the average reconstruction value for each group; setting the average value as a reference value of the reference value set; where N is a positive integer. A method for determining a predicted value, comprising:
2. N is set to a positive integer value corresponding to a preset size of the current block; 2. The method of claim 1 .
3. Calculating a first constant value based on bit depth values of luma components of samples in the current block includes: The constant value is set to a value obtained by performing a binary bit left shift operation on a numeric value of 1; a number of left shift bits used in the binary bit left shift operation is equal to the bit depth value minus one.
2. The method of claim 1 .
4. performing a filtering process on the predicted value of the sample at the particular position to obtain predicted values of all samples in the current block; performing an interpolation filtering process on the predicted value of the sample at the specific position to obtain a predicted value of a sample at a position other than the sample at the specific position in the current block; 2. The method of claim 1 .
5. A method for determining a prediction value applied to a decoder, comprising the steps of: Parsing the bitstream to obtain a size of a current block and a coding mode of the current block; If the coding mode of the current block is a matrix-based intra prediction (MIP) mode, reconstructed values of samples adjacent to the current block are obtained, and a filtering process is performed on the reconstructed values of the adjacent samples to obtain a reference value set of the current block, where the number of samples obtained by filtering the upper samples of the current block is equal to the number of samples obtained by filtering the left samples of the current block; determining a first predicted input value of a set of predicted input values as a difference value obtained by subtracting a first reference value of the set of reference values from the second constant value; determining other predicted input values in the set of predicted input values other than the first predicted input value based on the set of reference values; calculating a prediction for a sample at a particular position of the current block based on the set of predicted input values; performing a filtering process on the predicted value of the sample at the particular position to obtain predicted values of all samples in the current block; Including, performing a filtering operation on the reconstructed values of the neighboring samples to obtain a set of reference values for the current block, dividing the reconstructed values of the adjacent samples into N groups; Calculating the average reconstruction value for each group; setting the average value as a reference value of the reference value set; where N is a positive integer. A method for determining a predicted value, comprising:
6. N is set to a positive integer value corresponding to a preset size of the current block; 6. The method of claim 5 .
7. Calculating a second constant value based on bit depth values of luma components of samples in the current block, comprising: the second constant value is set to a value obtained by performing a binary bit left shift operation on a numeric value of 1; a number of left shift bits used in the binary bit left shift operation is equal to the bit depth value minus one.
6. The method of claim 5 .
8. performing a filtering process on the predicted value of the sample at the particular position to obtain predicted values of all samples in the current block; performing an interpolation filtering process on the predicted value of the sample at the specific position to obtain a predicted value of a sample at a position other than the sample at the specific position in the current block; 6. The method of claim 5 .
9. An encoder comprising: a first acquisition module, a first processing module, a first determination module, a second calculation module, a third calculation module and a second processing module; The first acquisition module is used for acquiring reconstructed values of samples adjacent to a current block; the first processing module is used to obtain a set of reference values of the current block by filtering the reconstructed values of the adjacent samples, and the number of samples obtained by filtering the upper samples of the current block is equal to the number of samples obtained by filtering the left samples of the current block; the first determining module is used for determining that a first predicted input value of the set of predicted input values is a difference value obtained by subtracting a first reference value of the set of reference values from the fixed value; The second calculation module is used to determine another predicted input value in the set of predicted input values other than the first predicted input value based on the set of reference values; the third calculation module is used to calculate a prediction value of a sample at a specific position of the current block based on the set of prediction input values; the second processing module is used for performing a filtering process on the predicted value of the sample at the specific position to obtain predicted values of all samples in the current block; The first processing module performs a filtering process on the reconstructed values of the neighboring samples to obtain a set of reference values of the current block, dividing the reconstructed values of the adjacent samples into N groups; Calculating the average reconstruction value for each group; setting the average value as a reference value of the reference value set; where N is a positive integer. An encoder characterized by:
10. A decoder comprising: a second acquisition module, a third processing module, a second determination module, a fifth calculation module, a sixth calculation module, and a fourth processing module; The second obtaining module is used for analyzing the bitstream to obtain a size of a current block and a coding mode of the current block; The third processing module is used to obtain reconstructed values of samples adjacent to the current block when the coding mode of the current block is a matrix-based intra prediction (MIP) mode, and perform a filtering process on the reconstructed values of the adjacent samples to obtain a reference value set of the current block, and the number of samples obtained by performing a filtering process on the upper samples of the current block is equal to the number of samples obtained by performing a filtering process on the left samples of the current block; the second determining module is used for determining that a first predicted input value of the set of predicted input values is a difference value obtained by subtracting a first reference value of the set of reference values from the second constant value; The fifth calculation module is used to determine another predicted input value in the set of predicted input values other than the first predicted input value based on the set of reference values; the sixth calculation module is used to calculate a prediction value of a sample at a specific position of the current block based on the set of prediction input values; the fourth processing module is used for performing a filtering process on the predicted value of the sample at the specific position to obtain predicted values of all samples in the current block; The third processing module performs a filtering process on the reconstructed values of the neighboring samples to obtain a set of reference values of the current block, dividing the reconstructed values of the adjacent samples into N groups; Calculating the average reconstruction value for each group; setting the average value as a reference value of the reference value set; where N is a positive integer. A decoder characterized by:
11. 1. An encoder comprising: A method for determining a predicted value according to any one of claims 1 to 4, comprising: a processor; and a storage medium storing instructions executable by the processor, the storage medium being operable by the processor via a communication bus, the instructions being executed by the processor to perform the method for determining a predicted value according to any one of claims 1 to 4. An encoder characterized by:
12. A decoder comprising: A method for determining a predicted value according to any one of claims 5 to 8, comprising: a processor; and a storage medium storing instructions executable by the processor, the storage medium being operable by the processor via a communication bus, the method performing the method for determining a predicted value according to any one of claims 5 to 8, when the instructions are executed by the processor. A decoder characterized by:
13. 1. A computer-readable storage medium, comprising: The computer-readable storage medium stores executable instructions, which, when executed by one or more processors, cause the processors to perform the method for determining a predicted value according to any one of claims 1 to 4 or the method for determining a predicted value according to any one of claims 5 to 8. A computer-readable storage medium comprising:
Citation Information
Patent Citations
Coding of intra-prediction modes
WO2020249633A1