Image component prediction method, encoder, decoder, and storage medium

By constructing the input reference sample set and determining the input sampling matrix using a predesign calculation model, the problem of high complexity in the prediction process in H.266/VVC is solved, and parallel processing and hardware-friendly image component prediction are realized.

CN120343264APending Publication Date: 2025-07-18GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202510576577.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2019-12-19
Publication Date
2025-07-18

AI Technical Summary

Technical Problem

In H.266/VVC, the intramatrical prediction process is complex and difficult to process in parallel, and depends on the different types of brightness blocks, increasing the computational complexity.

Method used

By determining the adjacent reference sample set and preset parameter values of the current block, the input reference sample set is constructed, and the input sampling matrix is determined using the predesign calculation model, simplifying the matrix multiplication derivation process and realizing parallel processing.

Benefits of technology

It reduces the time complexity, simplifies the derivation process of matrix multiplication input sampling, realizes hardware-friendly parallel processing, and reduces dependence on the current block type.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120343264A_ABST
    Figure CN120343264A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses an image component prediction method, an encoder, a decoder and a storage medium, and the method comprises the steps: determining an adjacent reference sampling set of a current block, and determining a preset parameter value corresponding to the current block; wherein the adjacent reference sampling set comprises at least one reference sampling value; caching the adjacent reference sample set and the preset parameter value, and constructing an input reference sample value set; determining an input sampling matrix by using a first preset calculation model according to the reference sample value set; and performing image component prediction on the current block according to the input sampling matrix to obtain a prediction block of the current block.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the patent application with the application number "201980092311.6", the application date of December 19, 2019, and the invention name of "Image Component Prediction Method, Encoder, Decoder, and Storage Medium". Technical Field

[0002] Embodiments of this application relate to the field of image processing technologies, and in particular, to an image component prediction method, an encoder, a decoder, and a storage medium. Background Art

[0003] With the improvement of people's requirements for video display quality, new video application forms such as high-definition and ultra-high-definition videos have emerged as the times require. H.265 / High Efficiency Video Coding (HEVC) can no longer meet the rapidly developing needs of video applications. The Joint Video Exploration Team (JVET) has proposed the next-generation video coding standard H.266 / Versatile Video Coding (VVC), and its corresponding test model is the VVC Test Model (VTM) of the reference software test platform for VVC.

[0004] In H.266 / VVC, the Matrix-based IntraPrediction (MIP) technology has been accepted. This technology adds different numbers of MIP prediction modes in the intra-frame luminance prediction process according to different types of intra-frame luminance blocks. During the MIP prediction process, since the derivation process is also related to the type of luminance block, the derivation process is relatively cumbersome, not conducive to parallel processing, and also increases the complexity. Summary of the Invention

[0005] Embodiments of this application provide an image component prediction method, an encoder, a decoder, and a storage medium, which can simplify the derivation process of matrix multiplication input sampling and reduce the time complexity.

[0006] The technical solution of the embodiments of this application can be implemented as follows:

[0007] In a first aspect, embodiments of this application provide an image component prediction method, which is applied to an encoder. The method includes:

[0008] Determine the adjacent reference sampling set of the current block and determine the preset parameter value corresponding to the current block; wherein, the adjacent reference sampling set includes at least one reference sampling value;

[0009] Cache the adjacent reference sampling set and the preset parameter value to construct an input reference sample set;

[0010] Determine an input sampling matrix according to the input reference sample set by using a first preset calculation model;

[0011] Perform image component prediction on the current block according to the input sampling matrix to obtain a predicted block of the current block.

[0012] In a second aspect, an embodiment of the present application provides an image component prediction method, which is applied to a decoder. The method includes:

[0013] Determine an adjacent reference sampling set of a current block and determine a preset parameter value corresponding to the current block; wherein, the adjacent reference sampling set includes at least one reference sampling value;

[0014] Cache the adjacent reference sampling set and the preset parameter value to construct an input reference sample set;

[0015] Determine an input sampling matrix according to the input reference sample set by using a first preset calculation model;

[0016] Perform image component prediction on the current block according to the input sampling matrix to obtain a predicted block of the current block.

[0017] In a third aspect, an embodiment of the present application provides an encoder, which includes a first determination unit, a first cache unit, and a first prediction unit; wherein,

[0018] The first determination unit is configured to determine an adjacent reference sampling set of a current block and determine a preset parameter value corresponding to the current block; wherein, the adjacent reference sampling set includes at least one reference sampling value;

[0019] The first cache unit is configured to cache the adjacent reference sampling set and the preset parameter value to construct an input reference sample set;

[0020] The first determination unit is further configured to determine an input sampling matrix according to the input reference sample set by using a first preset calculation model;

[0021] The first prediction unit is configured to perform image component prediction on a current block according to the input sampling matrix to obtain a predicted block of the current block.

[0022] In a fourth aspect, an embodiment of the present application provides an encoder, which includes a first memory and a first processor; wherein,

[0023] The first memory is used to store a computer program that can run on the first processor;

[0024] A first processor, configured to execute the method according to the first aspect when running the computer program.

[0025] In a fifth aspect, an embodiment of the present application provides a decoder, which includes a second determination unit, a second cache unit, and a second prediction unit; wherein,

[0026] The second determination unit is configured to determine an adjacent reference sample set of the current block and determine a preset parameter value corresponding to the current block; wherein, the adjacent reference sample set includes at least one reference sample value;

[0027] The second cache unit is configured to cache the adjacent reference sample set and the preset parameter value to construct an input reference sample value set;

[0028] The second determination unit is further configured to determine an input sampling matrix according to the input reference sample value set by using a first pre-designed calculation model;

[0029] The second prediction unit is configured to perform an image component prediction on the current block according to the input sampling matrix to obtain a predicted block of the current block.

[0030] In a sixth aspect, an embodiment of the present application provides a decoder, which includes a second memory and a second processor; wherein,

[0031] The second memory is used to store a computer program that can run on the second processor;

[0032] The second processor is configured to execute the method according to the second aspect when running the computer program.

[0033] In a seventh aspect, an embodiment of the present application provides a computer storage medium, which stores an image component prediction program. When the image component prediction program is executed by the first processor, it implements the method according to the first aspect, or when it is executed by the second processor, it implements the method according to the second aspect.

[0034] The embodiment of the present application provides an image component prediction method, an encoder, a decoder, and a storage medium. By determining the adjacent reference sampling set of the current block and determining the preset parameter value corresponding to the current block; caching the adjacent reference sampling set and the preset parameter value to construct an input reference sample set; according to the input reference sample set, using a first preset calculation model to determine an input sampling matrix; and then predicting the image component of the current block according to the input sampling matrix to obtain the prediction block of the current block. In this way, the solution of the embodiment of the present application does not need to judge the type of the current block, reduces the time complexity, and is beneficial to hardware implementation; in addition, the input sampling matrix can be determined according to the input reference sample set and the first preset calculation model. At this time, the derivation process of the matrix multiplication input sampling is also simplified, so that the derivation process of the input sampling matrix is unified. Moreover, the solution of the embodiment of the present application no longer depends on the type of the current block and can also implement parallel processing, reducing the calculation complexity. Description of the Drawings

[0035] Figure 1 It is a schematic block diagram of the composition of a video coding system provided by an embodiment of the present application;

[0036] Figure 2 It is a schematic block diagram of the composition of a video decoding system provided by an embodiment of the present application;

[0037] Figure 3 It is a schematic flowchart of an image component prediction method provided by an embodiment of the present application;

[0038] Figure 4A It is a schematic structural diagram of a reference pixel position provided by an embodiment of the present application;

[0039] Figure 4B It is a schematic structural diagram of a reference pixel downsampling process provided by an embodiment of the present application;

[0040] Figure 5A It is a schematic structural diagram of a buffer filling provided by a related technical solution;

[0041] Figure 5B It is another schematic structural diagram of a buffer filling provided by a related technical solution;

[0042] Figure 5C It is a schematic structural diagram of a buffer filling provided by an embodiment of the present application;

[0043] Figure 6A It is a schematic structural diagram of determining an input sampling provided by a related technical solution;

[0044] Figure 6B It is another schematic structural diagram of determining an input sampling provided by an embodiment of the present application;

[0045] Figure 7 Schematic flowchart of another image component prediction method provided by an embodiment of the present application;

[0046] Figure 8 Schematic structural diagram of a prediction value generation provided by an embodiment of the present application;

[0047] Figure 9 Schematic structural diagram of the composition of an encoder provided by an embodiment of the present application;

[0048] Figure 10 Schematic specific hardware structure diagram of an encoder provided by an embodiment of the present application;

[0049] Figure 11 Schematic structural diagram of the composition of a decoder provided by an embodiment of the present application;

[0050] Figure 12 Schematic specific hardware structure diagram of a decoder provided by an embodiment of the present application. Detailed implementation manners

[0051] In order to be able to understand the features and technical content of the embodiments of the present application in more detail, the implementation of the embodiments of the present application will be described in detail below with reference to the accompanying drawings. The accompanying drawings are only for reference and illustration purposes and are not used to limit the embodiments of the present application.

[0052] In video images, generally, a coding block (CB) is characterized by a first image component, a second image component, and a third image component; among them, these three image components are respectively a luminance component, a blue chrominance component, and a red chrominance component. Specifically, the luminance component is usually denoted by the symbol Y, the blue chrominance component is usually denoted by the symbol Cb or U, and the red chrominance component is usually denoted by the symbol Cr or V; thus, video images can be represented in the YCbCr format or the YUV format.

[0053] In the embodiments of the present application, the first image component may be a luminance component, the second image component may be a blue chrominance component, and the third image component may be a red chrominance component, but the embodiments of the present application do not make specific limitations.

[0054] In the MIP technology, the input data for MIP prediction may include the reference pixels of the upper row and the left column of the current block, the MIP prediction mode applied to the current block (which can be represented by modeId), the width and height information of the current block, and whether transposition is required, etc.; the output data of MIP prediction may include the predicted value of the current block. Among them, the MIP prediction process can be specifically divided into four steps: configuring MIP core parameters, obtaining reference pixels, constructing input samples, and generating predicted values. After these four steps, the predicted value of the current block can be obtained.

[0055] However, in the MIP prediction process, for the step of constructing input samples, since this step is strongly correlated with the luminance block type (which can be represented by mipSizeId), that is, for different luminance block types, different input sample derivation methods will be used to obtain the input sample matrix, making the derivation process relatively cumbersome. Especially for the case where the luminance block type mipSizeId is equal to 0 or 1, there are also differences in the derivation methods of p[0] and p[x] in the input sample matrix, which is not conducive to parallel processing; in addition, for different luminance block types, different numbers of MIP prediction modes are added in the intra-frame luminance prediction process, and for each MIP prediction mode, a judgment of the luminance block type needs to be executed during luminance prediction, which also increases the complexity.

[0056] The embodiment of the present application provides an image component prediction method, by determining the adjacent reference sample set of the current block and determining the preset parameter value corresponding to the current block; wherein, the adjacent reference sample set includes at least one reference sample value; caching the adjacent reference sample set and the preset parameter value to construct an input reference sample value set; then, according to the input reference sample value set, using a first pre-designed calculation model to determine the input sample matrix; and then performing image component prediction on the current block according to the input sample matrix to obtain the predicted block of the current block. In this way, the solution of the embodiment of the present application does not need to judge the type of the current block, reduces the time complexity, and is conducive to hardware implementation; in addition, the input sample matrix can be determined according to the input reference sample value set and the first pre-designed calculation model, which simplifies the derivation process of the matrix multiplication input samples at this time, makes the derivation process of the input sample matrix unified, and the solution of the embodiment of the present application no longer depends on the type of the current block, and can also achieve parallel processing, reducing the calculation complexity.

[0057] The following will describe each embodiment of the present application in detail with reference to the drawings.

[0058] See Figure 1 , which shows an example of the composition block diagram of a video coding system provided by the embodiment of the present application; as Figure 1As shown, the video encoding system 100 includes a transform and quantization unit 101, an intra prediction estimation unit 102, an intra prediction unit 103, a motion compensation unit 104, a motion estimation unit 105, an inverse transform and inverse quantization unit 106, a filter control analysis unit 107, a filtering unit 108, an encoding unit 109, a decoded image buffer unit 110, etc. Among them, the filtering unit 108 can implement deblocking filtering and sample adaptive offset (SAO) filtering, and the encoding unit 109 can implement header information encoding and context-based adaptive binary arithmetic coding (CABAC). For the input original video signal, a video coding block can be obtained through the division of a coding tree unit (CTU). Then, the residual pixel information obtained after intra-frame or inter-frame prediction is transformed by the transform and quantization unit 101 for the video coding block, including transforming the residual information from the pixel domain to the transform domain and quantizing the obtained transform coefficients to further reduce the bit rate; the intra prediction estimation unit 102 and the intra prediction unit 103 are used for intra prediction of the video coding block; specifically, the intra prediction estimation unit 102 and the intra prediction unit 103 are used to determine the intra prediction mode to be used for encoding the video coding block; the motion compensation unit 104 and the motion estimation unit 105 are used to perform inter-frame predictive coding of the received video coding block relative to one or more blocks in one or more reference frames to provide temporal prediction information; the motion estimation performed by the motion estimation unit 105 is a process of generating a motion vector, and the motion vector can estimate the motion of the video coding block, and then the motion compensation unit 104 performs motion compensation based on the motion vector determined by the motion estimation unit 105; after determining the intra prediction mode, the intra prediction unit 103 is also used to provide the selected intra prediction data to the encoding unit 109, and the motion estimation unit 105 also sends the calculated and determined motion vector data to the encoding unit 109; in addition, the inverse transform and inverse quantization unit 106 is used for the reconstruction of the video coding block, reconstructing the residual block in the pixel domain, and the reconstructed residual block removes block effect artifacts through the filter control analysis unit 107 and the filtering unit 108, and then adds the reconstructed residual block to a predictive block in the frame of the decoded image buffer unit 110 to generate a reconstructed video coding block; the encoding unit 109 is used for encoding various coding parameters and the quantized transform coefficients. In the CABAC-based encoding algorithm, the context can be based on adjacent coding blocks and can be used to encode information indicating the determined intra prediction mode, and output the bitstream of the video signal; while the decoded image buffer unit 110 is used to store the reconstructed video coding block for prediction reference.As the video image encoding progresses, new reconstructed video coding blocks are continuously generated, and these reconstructed video coding blocks are all stored in the decoded picture buffer unit 110.

[0059] See Figure 2 , which shows an example of a block diagram of a video decoding system provided by an embodiment of the present application; as Figure 2 shown, the video decoding system 200 includes a decoding unit 201, an inverse transform and inverse quantization unit 202, an intra prediction unit 203, a motion compensation unit 204, a filtering unit 205, a decoded picture buffer unit 206, etc. Among them, the decoding unit 201 can implement header information decoding and CABAC decoding, and the filtering unit 205 can implement deblocking filtering and SAO filtering. After the input video signal undergoes Figure 1 encoding processing, the bitstream of the video signal is output; this bitstream is input into the video decoding system 200 and first passes through the decoding unit 201 to obtain the decoded transform coefficients; the inverse transform and inverse quantization unit 202 processes the transform coefficients to generate a residual block in the pixel domain; the intra prediction unit 203 can be used to generate prediction data for the current video decoding block based on the determined intra prediction mode and data from previously decoded blocks in the current frame or picture; the motion compensation unit 204 determines prediction information for the video decoding block by analyzing motion vectors and other associated syntax elements, and uses this prediction information to generate a predictive block for the video decoding block being decoded; by summing the residual block from the inverse transform and inverse quantization unit 202 and the corresponding predictive block generated by the intra prediction unit 203 or the motion compensation unit 204, a decoded video block is formed; the decoded video signal passes through the filtering unit 205 to remove block effect artifacts, which can improve the video quality; then the decoded video block is stored in the decoded picture buffer unit 206, and the decoded picture buffer unit 206 stores reference images for subsequent intra prediction or motion compensation, and is also used for the output of the video signal, that is, the original video signal is recovered.

[0060] The image component prediction method in the embodiments of the present application is mainly applied to the intra prediction unit 103 part as shown in Figure 1 and as shown in Figure 2The in - frame prediction unit 203 part shown. That is to say, the image component prediction method in the embodiments of the present application can be applied to a video coding system, a video decoding system, or even both a video coding system and a video decoding system simultaneously, but the embodiments of the present application do not make specific limitations. It should also be noted that when the image component prediction method is applied to the in - frame prediction unit 103 part, the "current block" specifically refers to the current coding block in in - frame prediction; when the image component prediction method is applied to the in - frame prediction unit 203 part, the "current block" specifically refers to the current decoding block in in - frame prediction.

[0061] Based on the above Figure 1 or Figure 2 application scenario examples, see Figure 3 , which shows a schematic flowchart of an image component prediction method provided by the embodiments of the present application. As Figure 3 shown, the method may include:

[0062] S301: Determine the adjacent reference sampling set of the current block, and determine the preset parameter value corresponding to the current block; wherein, the adjacent reference sampling set includes at least one reference sampling value;

[0063] It should be noted that a video image can be divided into multiple image blocks, and each currently to - be - encoded image block can be called a coding block. Here, each coding block can include a first image component, a second image component, and a third image component; and the current block is a coding block in the video image that is currently to be predicted for the first image component, the second image component, or the third image component.

[0064] Among them, assuming that the current block is for the first image component prediction, and the first image component is a luminance component, that is, the image component to be predicted is a luminance component, then the current block can also be called a luminance block; or, assuming that the current block is for the second image component prediction, and the second image component is a chrominance component, that is, the image component to be predicted is a chrominance component, then the current block can also be called a chrominance block.

[0065] It should also be noted that for the current block, when the left - hand adjacent region, the lower - left adjacent region, the upper - hand adjacent region, and the upper - right adjacent region are all valid regions, the adjacent reference sampling set can be filtered from the reference pixels in the left - hand adjacent region and the upper - hand adjacent region of the current block, or can be filtered from the reference pixels in the left - hand adjacent region and the lower - left adjacent region of the current block, or can also be filtered from the reference pixels in the upper - hand adjacent region and the upper - right adjacent region of the current block. The embodiments of the present application do not make specific limitations.

[0066] In some embodiments, for S301, the determining of the adjacent reference sampling set of the current block may include:

[0067] Obtain reference pixels adjacent to at least one side of the current block; wherein, at least one side of the current block includes at least one of the following: the upper side, the upper right side, the left side, and the lower left side;

[0068] Determine an adjacent reference sampling set of the current block according to the obtained reference pixels.

[0069] Here, at least one side of the current block may be the upper side (which may also be referred to as the upper row), or the upper right side (which may also be referred to as the upper right row), or the left side (which may also be referred to as the left column) or the lower left side (which may also be referred to as the lower left column); it may even be a combination of two sides, such as the upper side and the left side; however, the embodiments of the present application do not make any limitations.

[0070] Further, in some embodiments, if at least one side of the current block is the left side and / or the upper side, for S301, the determining of the adjacent reference sampling set of the current block may include:

[0071] Obtain reference pixels adjacent to at least one side of the current block; wherein, at least one side of the current block includes: the upper side and / or the left side;

[0072] Determine an adjacent reference sampling set of the current block according to the obtained reference pixels.

[0073] Here, at least one side of the current block may include the left side of the current block and / or the upper side of the current block; that is, at least one side of the current block may refer to the upper side of the current block, or may refer to the left side of the current block, or even may refer to the upper side and the left side of the current block, and the embodiments of the present application do not make specific limitations.

[0074] Further, in some embodiments, for S301, the determining of the adjacent reference sampling set of the current block may include:

[0075] Perform a first filtering process on the reference pixels adjacent to at least one side of the current block to determine a reference sampling value adjacent to the at least one side;

[0076] Compose an adjacent reference sampling set of the current block according to the determined reference sampling value.

[0077] Further, in some embodiments, the method may further include:

[0078] The first filtering process includes a downsampling filtering process or a low-pass filtering process.

[0079] It should be noted that when both the left adjacent region and the upper adjacent region are valid regions, the adjacent reference sampling set can be filtered from the reference pixels adjacent to the left side of the current block and the reference pixels adjacent to the upper side of the current block. When the left adjacent region is a valid region and the upper adjacent region is an invalid region, the adjacent reference sampling set can be filtered from the reference pixels adjacent to the left side of the current block. When the left adjacent region is an invalid region and the upper adjacent region is a valid region, the adjacent reference sampling set can be filtered from the reference pixels adjacent to the upper side of the current block. The filtering here can be downsampling filtering or low-pass filtering, and the embodiments of the present application do not make specific limitations.

[0080] In practical applications, when predicting the current block, the upper block and the left block of the current block are both encoded at this time; the reference pixels of the MIP technology can be the reconstructed values of the reference pixels adjacent to the upper row of the current block and the reconstructed values of the reference pixels adjacent to the left column of the current block. At this time, the reference pixels of the current block can be obtained by acquiring the reference pixels corresponding to the upper side and the left side of the current block. As Figure 4A shown, it shows a schematic diagram of the position of a kind of reference pixel provided by the embodiments of the present application. In Figure 4A , both the left adjacent region and the upper adjacent region are valid regions; among them, the reference pixels corresponding to the upper side of the current block are the pixels filled with gray, which can be represented by refT; the reference pixels corresponding to the left side of the current block are the pixels filled with slashes, which can be represented by refL. Then, the reference pixels of the current block can include refT and refL, and the adjacent reference sampling set is obtained by filtering refT and refL. Here, it should be particularly noted that for invalid positions (such as the boundaries of the image), the same method as that for obtaining reference pixels in the traditional intra-frame prediction technology can be used for filling.

[0081] For the MIP technology, the current block can be divided into three categories according to the size of the current block, and the type of the current block can be recorded by mipSizeId. Specifically, for different types of current blocks, the number of sampling points included in the adjacent reference sampling set and the number of sampling points output by matrix multiplication are different.

[0082] Assume that the current block is a 4×4 image block. At this time, mipSizeId = 0. Then, the input reference pixel set selects two pixel points for each side, the number of sampling points input for matrix multiplication is four, and the output is a 4×4 MIP prediction block;

[0083] Assume that the current block is an image block of 4×N, N×4, or 8×8 (where N = 8, 16, 32, 64). At this time, mipSizeId = 1, and the input reference pixel set selects four pixel points for each side. The number of input sampling points for matrix multiplication is eight, and the output is a 4×4 MIP prediction block;

[0084] Assume that the current block is an image block of other sizes. At this time, mipSizeId = 2, and the input reference pixel set selects four pixel points for each side. The number of input sampling points for matrix multiplication is seven, and the output is an 8×8 MIP prediction block.

[0085] In this way, since the sum of the width and height of the current block is greater than the number of input sampling points for matrix multiplication, in order to obtain the sample values of the number of input sampling points, it is also necessary to perform downsampling on the obtained reference pixels (including refT and refL) at this time to obtain an adjacent reference sampling set.

[0086] Further, in some embodiments, determining the adjacent reference sampling set of the current block according to the obtained reference pixels may include:

[0087] Determine the sampling positions of the reference pixels based on at least one side of the current block;

[0088] Select the reference sampling values corresponding to the sampling positions from the obtained reference pixels, and form the adjacent reference sampling set with the selected parameter sampling values.

[0089] Further, determining the sampling positions of the reference pixels based on at least one side of the current block may include:

[0090] Perform downsampling on at least one side of the current block to determine the sampling positions.

[0091] It should be noted that boundarySize reference samples need to be sampled separately on each reference side (including the upper side and the left side) of the current block, and the value of boundarySize is related to the type mipSizeId of the current block.

[0092] Specifically, for the reference pixel refS, the number of its reference pixels (i.e., the side length of the current block) is nTbS; at this time, the number of reference pixels that need to be downsampled is boundarySize. The sampling rate of each reference side can be represented by bDwn, and bDwn can be calculated according to Equation (1). In addition, in the reference pixel refS, an average operation is performed on every bDwn reference pixels, and the obtained average value is used as a sampling point in the reference sampling redS, and redS can be calculated according to Equation (2). Here, S can be replaced by W and H respectively, where W represents the upper side and H represents the left side.

[0093] bDwn = nTbs / boundarySize(1)

[0094]

[0095] After the downsampling processing by formula (1) and formula (2), two parts of reference samples can be obtained: the upper-side reference sample redT obtained by downsampling the upper-side reference pixel refT of the current block, and the left-side reference sample redL obtained by downsampling the left-side reference pixel refL of the current block; as Figure 4B shown. In Figure 4B , taking a 4×4 current block as an example, redL obtained by downsampling on the left side includes two reference pixels, namely reference pixel 1 and reference pixel 2; redT obtained by downsampling on the upper side includes two reference pixels, namely reference pixel 3 and reference pixel 4; thus, the adjacent reference sample set of the current block includes four reference pixels.

[0096] For the MIP technology, in addition to obtaining the current block type mipSizeId, it is also necessary to obtain the bit depth value (which can be represented by BitDepth) corresponding to the image component to be predicted of the current block. Assuming that the image component to be predicted is the luminance component, then the luminance bit depth of the current block can be obtained; or, assuming that the image component to be predicted is the chrominance component, then the chrominance bit depth of the current block can be obtained, so as to obtain the preset parameter value of the current block.

[0097] Further, in some embodiments, for S301, determining the preset parameter value corresponding to the current block may include:

[0098] Obtaining the bit depth value corresponding to the image component to be predicted of the current block;

[0099] Converting 1 into a binary value, and performing a shift process of subtracting 1 from the binary value by the bit depth value to obtain the preset parameter value.

[0100] That is to say, after obtaining the bit depth value BitDepth corresponding to the image component to be predicted of the current block, the preset parameter value can be expressed as 1<<(BitDepth - 1).

[0101] In this way, after obtaining the adjacent reference sample set and the preset parameter value of the current block, they can be cached to construct an input reference sample set.

[0102] S302: Cache the adjacent reference sample set and the preset parameter value to construct an input reference sample set;

[0103] It should be noted that after obtaining the adjacent reference sampling set, an initial input reference sample set can be constructed first; then, one bit is added to the end of the initial buffer to cache the preset parameter value, so as to obtain the input reference sample set, which is convenient for constructing the input sampling matrix subsequently.

[0104] In some embodiments, for S302, the caching of the adjacent reference sampling set and the preset parameter value to construct the input reference sample set may include:

[0105] Caching the adjacent reference sampling set to obtain an initial input reference sample set;

[0106] Using a data unit after the initial input reference sample set to cache the preset parameter value to obtain the input reference sample set.

[0107] Furthermore, for the construction of the initial input reference sample set, there are differences in the construction methods on the encoder side and the decoder side, which are mainly related to the determination method of the transpose processing indication flag (which can be represented by isTransposed).

[0108] When applied to the encoder side, in some embodiments, the caching of the adjacent reference sampling set to obtain an initial input reference sample set may include:

[0109] Determining the value of the transpose processing indication flag by using the rate-distortion optimization method;

[0110] When the value of the transpose processing indication flag is 0, in the buffer, store the reference sampling values corresponding to the upper side of the adjacent reference sampling set before the reference sampling values corresponding to the left side, and then determine the buffer as the initial input reference sample set; or,

[0111] When the value of the transpose processing indication flag is 1, in the buffer, store the reference sampling values corresponding to the upper side of the adjacent reference sampling set after the reference sampling values corresponding to the left side, perform transpose processing on the buffer, and determine the transposed buffer as the initial input reference sample set.

[0112] It should be noted that the value of the transpose processing indication flag can be determined by means of Rate Distortion Optimization (RDO). For example, by calculating the first-generation value of transpose processing and the second-generation value of non-transpose processing respectively. If the first-generation value is less than the second-generation value, the value of the transpose processing indication flag can be determined to be 1 at this time. At this time, the reference sample value corresponding to the upper side in the adjacent reference sample set can be stored after the reference sample value corresponding to the left side, or the reference sample value corresponding to the left side in the adjacent reference sample set can be stored before the reference sample value corresponding to the upper side, that is, transpose processing is required. If the first-generation value is not less than the second-generation value, the value of the transpose processing indication flag can be determined to be 0 at this time. At this time, the reference sample value corresponding to the upper side in the adjacent reference sample set can be stored before the reference sample value corresponding to the left side, or the reference sample value corresponding to the left side in the adjacent reference sample set can be stored after the reference sample value corresponding to the upper side, that is, transpose processing is not required.

[0113] It should also be noted that on the encoder side, the value of the determined transpose processing indication flag needs to be written into the code stream for subsequent parsing and processing on the decoder side.

[0114] When applied to the decoder side, in some embodiments, caching the adjacent reference sample set to obtain the initial input reference sample value set may include:

[0115] Parsing the code stream to obtain the value of the transpose processing indication flag;

[0116] When the value of the transpose processing indication flag is 0, in the buffer, store the reference sample value corresponding to the upper side in the adjacent reference sample set before the reference sample value corresponding to the left side, then determine the buffer as the initial input reference sample value set; or,

[0117] When the value of the transpose processing indication flag is 1, in the buffer, store the reference sample value corresponding to the upper side in the adjacent reference sample set after the reference sample value corresponding to the left side, perform transpose processing on the buffer, and determine the transposed buffer as the initial input reference sample value set.

[0118] It should be noted that on the decoder side, the value of the transpose processing indication flag can be directly obtained by parsing the code stream; then, according to the value of the transpose processing indication flag, it is determined whether transpose processing of the buffer is required.

[0119] That is to say, after determining the value of the transpose processing indication flag (isTransposed), assuming that the buffer can be represented by pTemp, when isTransposed is 0, all the reference pixels redT corresponding to the upper side are first stored in pTemp, and then, at the next position after all redT are stored, all the reference pixels redL corresponding to the left side are continuously stored; as Figure 5A shown, taking the current 4×4 block as an example, redL includes reference pixel 1 and reference pixel 2, and redT includes reference pixel 3 and reference pixel 4; in this way, the caching order in pTemp is reference pixel 3, reference pixel 4, reference pixel 1, and reference pixel 2; since all the reference pixels corresponding to the upper side are stored before the reference pixels corresponding to the left side, no transpose is required at this time, and the obtained buffer is the initial input reference sample set.

[0120] When isTransposed is 1, all the reference pixels redL corresponding to the left side are first stored in pTemp, and then, at the next position after all redL are stored, all the reference pixels redT corresponding to the upper side are continuously stored; as Figure 5B shown, still taking the current 4×4 block as an example, redL includes reference pixel 1 and reference pixel 2, and redT includes reference pixel 3 and reference pixel 4; in this way, the caching order in pTemp is reference pixel 1, reference pixel 2, reference pixel 3, and reference pixel 4; since all the reference pixels corresponding to the upper side are stored after the reference pixels corresponding to the left side, transpose is required at this time, and then the transposed buffer is determined as the initial input reference sample set.

[0121] In this way, after obtaining the initial input reference sample set, a data unit can be extended after the initial input reference sample set, and this data unit is used to cache a preset parameter value, that is, store 1<<(BitDepth - 1), as Figure 5C shown; in Figure 5C , still taking the current 4×4 block as an example, the initial input reference sample set stores four values, that is, the reference sample values after reference pixel downsampling; in the embodiment of the present application, the input reference sample set stores five values. In addition to the four reference sample values after reference pixel downsampling, an additional preset parameter value is also stored.

[0122] S303: Determine an input sampling matrix according to the input reference sample set by using a first preset calculation model;

[0123] It should be noted that the input sampling is a matrix vector that requires matrix multiplication operations. The current solution is determined by the initial buffer (denoted by pTemp), the current block type (denoted by mipSizeId), the bit depth value corresponding to the image component to be predicted (denoted by BitDepth), and the number of input samplings. Finally, the x-th input sampling value (denoted by P[x]) in the input sampling matrix is obtained. Among them, when mipSizeId = 0 or 1, the sample value at the zero-th position of pTemp needs to subtract 1<<(BitDepth - 1) as P[0], and then the sample value corresponding to each position of the other positions needs to subtract the value at the zero-th position of pTemp as P[x]; specifically as follows,

[0124]

[0125] When mipSizeId = 2, the first position of the initial buffer pTemp can be ignored, and then the sample value corresponding to each position of the other positions is subtracted from the sample value corresponding to the zero-th position and stored in the previous position, specifically as follows,

[0126] p[x] = pTemp[x + 1] - pTemp[0](4)

[0127] As Figure 6A shown, still taking a 4×4 current block as an example, the initial buffer stores four values, but the number of input samplings is four. At this time, four input sampling values can be determined according to Equation (3) or Equation (4), denoted by p[x], x = 0, 1, 2, 3; thus forming a 1×4 input sampling matrix. However, in the current solution, the derivation process of the matrix multiplication input sampling needs to be related to the current block type mipSizeId, making the derivation process relatively cumbersome and having a certain complexity; moreover, for the case of mipSizeId = 0 or 1, the calculation formulas of p[0] and p[i] are different, which is not conducive to parallel processing.

[0128] In the embodiments of the present application, the initial buffer can be extended to an input reference sample set and used to store 1<<(BitDepth - 1); in this way, it can be realized that the derivation process of the input sampling is no longer related to the current block type mipSizeId, unifying the derivation process of the matrix multiplication input sampling; and the input sampling can be determined only by the input reference sample set (still denoted by pTemp) and the number of input samplings to obtain the i-th input sampling value (denoted by p[i]) in the input sampling matrix.

[0129] Specifically, in some embodiments, for S303, the determining the input sampling matrix according to the input reference sample set by using the first pre-designed calculation model may include:

[0130] Calculate the i-th input sampling value by using a first pre-designed calculation model based on the sample value corresponding to the (i + 1)-th position and the sample value corresponding to the 0-th position in the input reference sample value set; where i is a positive integer greater than or equal to 0 and less than N, and N represents the number of elements included in the input sampling matrix.

[0131] Form the input sampling matrix according to the N calculated input sampling values.

[0132] Further, in some embodiments, the calculating the i-th input sampling value by using the first pre-designed calculation model may include:

[0133] Perform a subtraction operation by using the first pre-designed calculation model to obtain the i-th input sampling value.

[0134] Further, in some embodiments, the method may further include:

[0135] Set the minuend of the subtraction operation to be equal to the sample value corresponding to the (i + 1)-th position in the reference sample value set.

[0136] Set the subtrahend of the subtraction operation to be equal to the sample value corresponding to the 0-th position in the reference sample value set.

[0137] That is to say, regardless of the type of the current block, the sample value corresponding to the first position, i.e., the 0-th position, in the input reference sample value set can be ignored; then, the sample value corresponding to each of the other positions is subtracted by the sample value corresponding to the 0-th position and stored in its previous position; here, the first pre-designed calculation model is as shown in the following formula

[0138] p[i] = pTemp[i + 1] - pTemp[0] (5)

[0139] where i = 0, 1, …, N - 1, N is the number of input samplings (which can also be represented by inSize), and the number of input samplings is the number of elements included in the input sampling matrix; pTemp[0] represents the sample value corresponding to the 0-th position, pTemp[i + 1] represents the sample value corresponding to the (i + 1)-th position, and p[i] represents the i-th input sampling value; in this way, after obtaining N input sampling values, an input sampling matrix can be formed; as Figure 6B shown, still taking the current 4×4 block as an example, the input reference sample value set stores five values, but the number of input samplings is four. At this time, regardless of the type of the current block, four input sampling values can be determined according to formula (5) and represented by p[i], i = 0, 1, 2, 3; thus, a 1×4 input sampling matrix is formed.

[0140] S304: Perform image component prediction on the current block according to the input sampling matrix to obtain the predicted block of the current block.

[0141] It should be noted that after obtaining the input sampling matrix, the temporary prediction value of at least one pixel in the MIP prediction block can be calculated first; then, through processes such as clipping processing, transpose processing, and upsampling processing in sequence, the prediction block of the current block can be finally obtained.

[0142] It should also be noted that assuming the image component to be predicted is the luminance component, then the current block can be the current luminance block, and finally the luminance prediction block of the current luminance block can be obtained, and the luminance prediction value of at least one pixel is provided in the luminance prediction block; or, assuming the image component to be predicted is the chrominance component, then the current block can be the current chrominance block, and finally the chrominance prediction block of the current chrominance block can be obtained, and the chrominance prediction value of at least one pixel is provided in the chrominance prediction block; the embodiments of the present application do not make any restrictions.

[0143] In some embodiments, for S304, the step of performing image component prediction on the current block according to the input sampling matrix to obtain the prediction block of the current block, as Figure 7 shown, this step may include:

[0144] S401: Obtain the MIP prediction block of the current block according to the input sampling matrix, where the MIP prediction block includes the prediction sampling values of at least some pixel positions in the current block;

[0145] It should be noted that after obtaining the input sampling matrix, the weight matrix (denoted by mWeight), shift factor (denoted by sW), and offset factor (denoted by fO) corresponding to the current block can also be obtained; then as Figure 8 shown, the second pre-designed calculation model can be used to calculate the temporary prediction value of at least one pixel in the MIP prediction block (denoted by predMip) to obtain the MIP prediction block.

[0146] Further, in some embodiments, for S401, the step of obtaining the MIP prediction block of the current block according to the input sampling matrix may include:

[0147] Obtain the weight matrix, shift factor, and offset factor corresponding to the current block;

[0148] Perform matrix multiplication processing on the input sampling matrix, the weight matrix, the shift factor, and the offset factor by using the second pre-designed calculation model, and calculate to obtain the MIP prediction block.

[0149] That is to say, in the encoder or decoder, a weight matrix table is established in advance and stored in the encoder or decoder. In this way, according to the current block type mipSizeId and MIP prediction mode modeId, the weight matrix mWeight[x][y] required for the current block can be determined by looking up the table.

[0150] In addition, in the encoder or decoder, a shift factor table, as shown in Table 1, and an offset factor table, as shown in Table 2, are also established in advance. And the shift factor table and the offset factor table are also stored in the encoder or decoder. In this way, according to the current block type mipSizeId and MIP prediction mode modeId, the shift factor sW and offset factor fO required for the current block can also be determined by looking up the table.

[0151] Table 1

[0152]

[0153] Table 2

[0154]

[0155] In this way, after obtaining the current block type mipSizeId and MIP prediction mode modeId, the weight matrix mWeight[x][y], shift factor sW, and offset factor fO can be determined by looking up the table, that is, the MIP prediction block predMip[x][y] can be calculated. Among them, the second pre-designed calculation model is as follows.

[0156]

[0157] Among them, [x][y] represents the position coordinates of the pixel point, x represents the horizontal direction, and y represents the vertical direction; inSize represents the number of input samples, and predSize represents the side length of the MIP prediction block predMip. Here, predSize is only related to the current block type mipSizeId; when mipSizeId = 0 or 1, the output MIP prediction block is 4×4, then predSize is equal to 4; when mipSizeId = 2, the output MIP prediction block is 8×8, then predSize is equal to 8. Thus, according to the above formula (6), the temporary prediction value of at least one pixel in the MIP prediction block predMip can be calculated to obtain the MIP prediction block.

[0158] S402: Clip the predicted sample values in the MIP prediction block to obtain the MIP prediction block of the current block;

[0159] It should be noted that after obtaining the temporary prediction values of at least one pixel in the MIP prediction block, the temporary prediction values of at least one pixel in the MIP prediction block can be clamped. Specifically, if the temporary prediction value is less than 0, it can be set to 0; if the temporary prediction value is greater than (1 << BitDepth) - 1, it can be set to (1 << BitDepth) - 1; thus, the range of the prediction value can be clamped between 0 and (1 << BitDepth) - 1.

[0160] In this way, after the clamping process of the MIP prediction block, the prediction values of at least one pixel in the MIP prediction block can be obtained, and the range of the prediction values is between 0 and (1 << BitDepth) - 1; then, it is determined whether transposition processing is required according to the transposed sign bit isTransposed to determine the final MIP prediction block.

[0161] S403: Determine whether to perform transposition processing on the MIP prediction block;

[0162] S404: When the determination result is "yes", perform transposition processing on the predicted sample values in the MIP prediction block, and determine the transposed MIP prediction block as the MIP prediction block of the current block;

[0163] S405: When the determination result is "no", determine the MIP prediction block as the MIP prediction block of the current block;

[0164] S406: Determine whether the size of the MIP prediction block is the same as the size of the current block;

[0165] When applied to the encoder side, in some embodiments, for S403, the determination of whether to perform transposition processing on the MIP prediction block may include:

[0166] Using the rate-distortion optimization method, calculate the first-generation cost of performing transposition processing on the MIP prediction block and the second-generation cost of not performing transposition processing on the MIP prediction block respectively;

[0167] When the first-generation cost is less than the second-generation cost, determine to perform transposition processing on the MIP prediction block; or,

[0168] When the first-generation cost is not less than the second-generation cost, determine not to perform transposition processing on the MIP prediction block.

[0169] When applied to the decoder side, in some embodiments, for S403, the determination of whether to perform transposition processing on the MIP prediction block may include:

[0170] Parse the code stream to obtain the value of the transposition processing indication flag;

[0171] According to the value of the transpose processing indication flag, it is determined whether to perform transpose processing on the MIP prediction block.

[0172] It should be noted that the transpose processing indication flag is represented by isTransposed, and it can be determined whether the MIP prediction block needs to be transposed according to the value of isTransposed. Specifically, on the encoder side, if the value of the first generation is less than the value of the second generation, the value of isTransposed is set to 1 at this time, then it can be determined that transpose processing needs to be performed on the MIP prediction block; or, if the value of the first generation is not less than the value of the second generation, the value of isTransposed is set to 0 at this time, then it can be determined that there is no need to perform transpose processing on the MIP prediction block. On the decoder side, the value of the transpose processing indication flag can be obtained by parsing the code stream; if the parsed value of isTransposed is 1, then it can be determined that transpose processing needs to be performed on the MIP prediction block; or, if the parsed value of isTransposed is 0, then it can be determined that there is no need to perform transpose processing on the MIP prediction block.

[0173] More specifically, when isTransposed is 0, it indicates that the MIP prediction block does not need to be transposed. At this time, the MIP prediction block predMip can be directly used for subsequent steps, that is, execute step S406 to determine whether the size of the MIP prediction block is the same as the size of the current block; when isTransposed is 0, it indicates that the MIP prediction block needs to be transposed. At this time, the following formula can be used for transpose processing,

[0174]

[0175] In this way, according to formula (7), after performing transpose processing on the MIP prediction block, the transposed MIP prediction block can be obtained, and the transposed MIP prediction block is set as the MIP prediction block, and then step S406 is also executed, that is, to determine whether the size of the MIP prediction block is the same as the size of the current block.

[0176] S407: When the size of the MIP prediction block is different from the size of the current block, perform second filtering processing on the MIP prediction block to obtain the prediction block of the current block;

[0177] S408: When the size of the MIP prediction block is the same as the size of the current block, set the prediction block of the current block to be equal to the MIP prediction block; where, the prediction block includes the predicted sampling values of all pixel positions in the current block.

[0178] Further, the second filtering process may include an upsampling filtering process or a low-pass filtering process.

[0179] It should be noted that after obtaining the MIP prediction block, since the size of the MIP prediction block only includes two types: the 4×4 MIP prediction block and the 8×8 MIP prediction block; in this way, the size of the current block may be the same as or different from the size of the MIP prediction block; that is to say, the sampled values corresponding to the MIP prediction block may not necessarily fill the current block, so that the generation of the final prediction value may require an upsampling operation on the MIP prediction block, that is, by determining whether the size of the MIP prediction block is the same as the size of the current block to determine whether to perform an upsampling process on the MIP prediction block.

[0180] Specifically, when the size of the MIP prediction block is the same as the size of the current block, that is, the width and height of the MIP prediction block are both the same as the current block, it indicates that there is no need to perform an upsampling process on the MIP prediction block. At this time, the MIP prediction block can be directly filled into the current block, that is, there are no empty pixel points in the filled current block. At this time, the prediction value of each pixel in the current block can be directly set to the prediction value of each pixel in the MIP prediction block, as shown below,

[0181] predSamples[x][y] = predMip[x][y](8)

[0182] Among them, [x][y] represents the position coordinates of the pixel point, x represents the horizontal direction, and y represents the vertical direction; predSamples[x][y] represents the prediction value corresponding to the pixel point with the position coordinates [x][y] in the current block, and predMip[x][y] represents the prediction value corresponding to the pixel point with the position coordinates [x][y] in the MIP prediction block. In this way, according to Equation (8), the MIP prediction block predMip[x][y] can be directly used as the prediction block predSamples[x][y] of the current block.

[0183] When the size of the MIP prediction block is different from the size of the current block, that is, one of the width and height of the MIP prediction block is different from the current block, it indicates that an upsampling process needs to be performed on the MIP prediction block. After performing the upsampling process on it, the prediction block of the current block can be obtained.

[0184] Specifically, in some embodiments, for S407, when the second filtering process is an upsampling filtering process, the method may further include:

[0185] Determine the horizontal upsampling factor and the vertical upsampling factor corresponding to the current block;

[0186] According to the MIP prediction block, the horizontal upsampling factor, and the vertical upsampling factor, use a third pre-designed calculation model to determine the predicted value of the position of the pixel to be filled in the current block, so as to obtain the prediction block of the current block; wherein, the position of the pixel to be filled is the pixel position in the current block that is different from the pixel position in the MIP prediction block.

[0187] It should be noted that when the size of the MIP prediction block is different from the size of the current block, there are vacant pixel points in the current block after filling. At this time, linear interpolation needs to be used to upsample the MIP prediction block predMip[x][y].

[0188] Here, assume that the width and height of the MIP prediction block are both predSize, the width of the current block is nTbW, and the height of the current block is nTbH; then according to the side length predSize of the MIP prediction block and the width nTbW of the current block, the horizontal upsampling factor (denoted by upHor) can be calculated; similarly, according to the side length predSize of the MIP prediction block and the height nTbH of the current block, the vertical upsampling factor (denoted by upVer) can be calculated; the specific calculation formulas are as follows.

[0189]

[0190] Since the MIP prediction block cannot fill the current block, at this time, the current block needs to be filled according to the horizontal upsampling factor upHor and the vertical upsampling factor upVer, that is, an upsampling operation is performed, and the filling method for the corresponding position is as follows.

[0191] predSamples[(x + 1) × upHor - 1][(y + 1) × upVer - 1] = predMip[x][y] (10)

[0192] where x = 0, 1,..., nTbW - 1; y = 0, 1,…, nTbH - 1.

[0193] Here, for the specific method of upsampling processing, first, the upper-side reference pixel refT is filled into the corresponding position predSamples[x][-1] of the upper row of the current block, and then the left-side reference pixel refL is filled into the corresponding position predSamples[-1][y] of the left column of the current block; then according to Equation (10), for the pixel positions to be filled in the current block, such as the vacant positions between the predicted values of the filled corresponding positions, or the vacant positions between the reference pixels and the predicted values of the filled corresponding positions, etc., horizontal interpolation is first performed, and then vertical interpolation is performed. Finally, the upsampling result predSamples[x][y] of the current block can be obtained, and this predSamples[x][y] is the predicted value of the current block obtained according to the MIP prediction mode.

[0194] In the embodiment of the present application, when the image component prediction method is applied to the encoder side, the predicted value of at least one pixel in the current block can be calculated by using the image component prediction method, and then the residual corresponding to at least one pixel can be calculated according to the difference between the true value and the predicted value of at least one pixel in the current block, and the calculated residual is written into the bitstream; in addition, after obtaining the transpose processing indication flag (isTransposed), the value of isTransposed also needs to be written into the bitstream; then the bitstream is transmitted from the encoder side to the decoder side; correspondingly, when the image component prediction method is applied to the decoder side, the value of isTransposed can be determined by parsing the bitstream, and then it is determined whether transpose processing is required; in addition, the predicted value of at least one pixel in the current block can be calculated by using the image component prediction method, and then the residual corresponding to at least one pixel can be directly obtained by parsing the bitstream, and according to the predicted value and the residual of at least one pixel in the current block, the true value of at least one pixel in the current block can be obtained.

[0195] This embodiment provides an image component prediction method, which is applied to an encoder or a decoder. By determining the adjacent reference sampling set of the current block and determining the preset parameter value corresponding to the current block; wherein, the adjacent reference sampling set includes at least one reference sampling value; caching the adjacent reference sampling set and the preset parameter value to construct an input reference sample set; according to the input reference sample set, using a first pre-designed calculation model to determine an input sampling matrix; and performing image component prediction on the current block according to the input sampling matrix to obtain the predicted block of the current block. In this way, the solution of the embodiment of the present application does not need to judge the type of the current block, reduces the time complexity, and is beneficial to hardware implementation; in addition, the input sampling matrix can be determined according to the input reference sample set and the first pre-designed calculation model. At this time, the derivation process of the matrix multiplication input sampling is also simplified, so that the derivation process of the input sampling matrix is unified. Moreover, the solution of the embodiment of the present application no longer depends on the type of the current block, and can also achieve parallel processing, reducing the calculation complexity.

[0196] Based on the same inventive concept as the foregoing embodiment, refer to Figure 9 , which shows a schematic structural diagram of an encoder 90 provided by an embodiment of the present application. As Figure 9 shown, the encoder 90 may include: a first determination unit 901, a first cache unit 902, and a first prediction unit 903, wherein,

[0197] The first determination unit 901 is configured to determine the adjacent reference sampling set of the current block and determine the preset parameter value corresponding to the current block; wherein, the adjacent reference sampling set includes at least one reference sampling value;

[0198] The first cache unit 902 is configured to cache the adjacent reference sampling set and the preset parameter value to construct an input reference sample set;

[0199] The first determination unit 901 is further configured to determine an input sampling matrix according to the input reference sample set by using a first pre-designed calculation model;

[0200] The first prediction unit 903 is configured to perform image component prediction on the current block according to the input sampling matrix to obtain the predicted block of the current block.

[0201] In the above solution, refer to Figure 9 , the encoder 90 may further include a first acquisition unit 904, configured to acquire reference pixels adjacent to at least one side of the current block; wherein, at least one side of the current block includes at least one of the following: the upper side, the upper right side, the left side, and the lower left side;

[0202] The first determination unit 901 is configured to determine an adjacent reference sampling set of the current block according to the obtained reference pixels.

[0203] In the above solution, referring to Figure 9 , the encoder 90 may further include a first processing unit 905 configured to perform a first filtering process on reference pixels adjacent to at least one side of the current block to determine reference sampling values adjacent to at least one side;

[0204] The first determination unit 901 is configured to form an adjacent reference sampling set of the current block according to the determined reference sampling values.

[0205] In the above solution, the first filtering process includes a downsampling filtering process or a low-pass filtering process.

[0206] In the above solution, the first acquisition unit 904 is further configured to acquire a bit depth value corresponding to the image component to be predicted of the current block;

[0207] The first processing unit 905 is further configured to convert 1 into a binary value and perform a shift process of subtracting 1 from the bit depth value on the binary value to obtain the preset parameter value.

[0208] In the above solution, the first buffer unit 902 is configured to buffer the adjacent reference sampling set to obtain an initial input reference sample value set; and use a data unit after the initial input reference sample value set to buffer the preset parameter value to obtain the input reference sample value set.

[0209] In the above solution, the first determination unit 901 is further configured to determine the value of the transpose processing indication flag by means of rate-distortion optimization;

[0210] The first buffer unit 902 is specifically configured to, when the value of the transpose processing indication flag is 0, store the reference sampling values corresponding to the upper side in the adjacent reference sampling set before the reference sampling values corresponding to the left side in the buffer area, and then determine the buffer area as the initial input reference sample value set; or, when the value of the transpose processing indication flag is 1, store the reference sampling values corresponding to the upper side in the adjacent reference sampling set after the reference sampling values corresponding to the left side in the buffer area, perform a transpose process on the buffer area, and determine the transposed buffer area as the initial input reference sample value set.

[0211] In the above solution, referring to Figure 9, the encoder 90 may further include a first calculation unit 906 configured to calculate the i-th input sample value according to the sample value corresponding to the (i + 1)-th position and the sample value corresponding to the 0-th position in the input reference sample set by using a first pre-designed calculation model; where i is a positive integer greater than or equal to 0 and less than N, and N represents the number of elements included in the input sampling matrix;

[0212] A first determination unit 901 configured to form the input sampling matrix according to the N calculated input sample values.

[0213] In the above solution, the first calculation unit 906 is specifically configured to perform a subtraction operation by using the first pre-designed calculation model to obtain the i-th input sample value.

[0214] In the above solution, the first calculation unit 906 is specifically configured to set the minuend of the subtraction operation to be equal to the sample value corresponding to the (i + 1)-th position in the reference sample set; and set the subtrahend of the subtraction operation to be equal to the sample value corresponding to the 0-th position in the reference sample set.

[0215] In the above solution, a first obtaining unit 904 is further configured to obtain the MIP prediction block of the current block according to the input sampling matrix, where the MIP prediction block includes predicted sample values at at least some pixel positions in the current block;

[0216] A first processing unit 905 is further configured to, when one of the width and height of the MIP prediction block is different from that of the current block, perform a second filtering process on the MIP prediction block to obtain the prediction block of the current block; or, when both the width and height of the MIP prediction block are the same as those of the current block, set the prediction block of the current block to be equal to the MIP prediction block; where the prediction block includes predicted sample values at all pixel positions in the current block.

[0217] In the above solution, the first obtaining unit 904 is specifically configured to perform a clipping process on the predicted sample values in the MIP prediction block to obtain the MIP prediction block of the current block.

[0218] In the above solution, refer to Figure 9 , the encoder 90 may further include a first judgment unit 907 configured to judge whether to perform a transpose process on the MIP prediction block; and when the judgment result is "yes", perform a transpose process on the predicted sample values in the MIP prediction block, and determine the transposed MIP prediction block as the MIP prediction block of the current block.

[0219] In the above solution, the first calculation unit 906 is further configured to calculate the first generation value of transposing the MIP prediction block and the second generation value of not transposing the MIP prediction block respectively in a utilization rate distortion optimization manner;

[0220] The first determination unit 907 is specifically configured to determine to transpose the MIP prediction block when the first generation value is less than the second generation value; or, when the first generation value is not less than the second generation value, determine not to transpose the MIP prediction block.

[0221] In the above solution, the second filtering process includes upsampling filtering or low-pass filtering.

[0222] In the above solution, the first acquisition unit 904 is further configured to acquire the weight matrix, shift factor, and offset factor corresponding to the current block;

[0223] The first calculation unit 906 is further configured to perform matrix multiplication processing on the input sampling matrix, the weight matrix, the shift factor, and the offset factor by using a second pre-designed calculation model to calculate the MIP prediction block.

[0224] In the above solution, when the second filtering process is upsampling filtering, the first determination unit 901 is further configured to determine the horizontal upsampling factor and vertical upsampling factor corresponding to the current block;

[0225] The first calculation unit 906 is further configured to determine the predicted value of the pixel position to be filled in the current block according to the MIP prediction block, the horizontal upsampling factor, and the vertical upsampling factor by using a third pre-designed calculation model to obtain the predicted block of the current block; wherein, the pixel position to be filled is the pixel position different from the pixel position in the MIP prediction block in the current block.

[0226] It can be understood that in the embodiments of the present application, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc. Of course, it may also be a module or non-modular. Moreover, the components in this embodiment may be integrated in a processing unit, or each unit may exist physically alone, or two or more units may be integrated in one unit. The above integrated unit may be implemented in the form of hardware or in the form of a software functional module.

[0227] When the integrated unit is implemented in the form of a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, in essence, or the part that contributes to the prior art, or all or part of this technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the method described in this embodiment. The foregoing storage medium includes: various media such as USB flash drives, mobile hard disks, read-only memories (ROMs), random access memories (RAMs), magnetic disks, or optical discs that can store program codes.

[0228] Therefore, an embodiment of the present application provides a computer storage medium, which is applied to an encoder 90. The computer storage medium stores an image component prediction program, and when the image component prediction program is executed by a first processor, it implements the method described in any one of the foregoing embodiments.

[0229] Based on the composition of the foregoing encoder 90 and the computer storage medium, refer to Figure 10 , which shows a specific hardware structure example of the encoder 90 provided by an embodiment of the present application. It may include: a first communication interface 1001, a first memory 1002, and a first processor 1003; each component is coupled together through a first bus system 1004. It can be understood that the first bus system 1004 is used to realize the connection and communication between these components. In addition to including a data bus, the first bus system 1004 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clear description, in Figure 10 all kinds of buses are labeled as the first bus system 1004. Among them,

[0230] The first communication interface 1001 is used for receiving and sending signals during the process of receiving and sending information to and from other external network elements;

[0231] The first memory 1002 is used for storing a computer program that can run on the first processor 1003;

[0232] The first processor 1003 is used for, when running the computer program, executing:

[0233] determining an adjacent reference sampling set of a current block, and determining a preset parameter value corresponding to the current block; wherein, the adjacent reference sampling set includes at least one reference sampling value;

[0234] Cache the adjacent reference sampling sets and the preset parameter values to construct an input reference sample set;

[0235] Determine an input sampling matrix according to the input reference sample set by using a first preset calculation model;

[0236] Perform image component prediction on the current block according to the input sampling matrix to obtain a predicted block of the current block.

[0237] It can be understood that the first memory 1002 in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may 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 may be a random access memory (RAM), which is used as an external cache. By way of example but not limitation, many forms 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 (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct rambus random access memory (DRRAM). The first memory 1002 of the systems and methods described in the present application is intended to include but not be limited to these and any other suitable types of memories.

[0238] The first processor 1003 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the integrated logic circuit of the hardware in the first processor 1003 or instructions in the form of software. The above-mentioned first processor 1003 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 devices, discrete gate or transistor logic devices, discrete hardware components. It can implement or execute various methods, steps, and logic block diagrams disclosed in the embodiments of the present application. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc. The steps of the method disclosed in combination with the embodiments of the present application can be directly embodied as being executed and completed by a hardware decoding processor, or executed and completed by a combination of hardware and software modules in the decoding processor. The software module may be located in a mature storage medium in the art such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers, etc. This storage medium is located in the first memory 1002, and the first processor 1003 reads the information in the first memory 1002 and combines its hardware to complete the steps of the above method.

[0239] It can be understood that these embodiments described in the present application can be implemented using hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in the present application, or a combination thereof. For software implementation, the technologies described in the present application can be implemented by executing modules (such as procedures, functions, etc.) that perform the functions described in the present application. The software code can be stored in a memory and executed by a processor. The memory can be implemented inside or outside the processor.

[0240] Optionally, as another embodiment, the first processor 1003 is further configured to execute the method described in any one of the foregoing embodiments when running the computer program.

[0241] This embodiment provides an encoder, which may include a first determination unit, a first buffer unit, and a first prediction unit; wherein, the first determination unit is configured to determine an adjacent reference sampling set of a current block and determine a preset parameter value corresponding to the current block; the first buffer unit is configured to buffer the adjacent reference sampling set and the preset parameter value to construct an input reference sample value set; the first determination unit is further configured to determine an input sampling matrix according to the input reference sample value set by using a first preset calculation model; the first prediction unit is configured to perform an image component prediction on the current block according to the input sampling matrix to obtain a predicted block of the current block; in this way, not only the derivation process of the matrix multiplication input sampling is simplified, making the derivation process of the input sampling matrix unified, but also the determination of the current block type is not required, reducing the time complexity and being beneficial to hardware implementation.

[0242] Based on the same inventive concept as the foregoing embodiments, refer to Figure 11 , which shows a schematic structural diagram of a decoder 110 provided in an embodiment of the present application. As Figure 11 shown, the decoder 110 may include: a second determination unit 1101, a second buffer unit 1102, and a second prediction unit 1103, wherein,

[0243] The second determination unit 1101 is configured to determine an adjacent reference sampling set of the current block and determine a preset parameter value corresponding to the current block; wherein, the adjacent reference sampling set includes at least one reference sampling value;

[0244] The second buffer unit 1102 is configured to buffer the adjacent reference sampling set and the preset parameter value to construct an input reference sample value set;

[0245] The second determination unit 1101 is further configured to determine an input sampling matrix according to the input reference sample value set by using a first preset calculation model;

[0246] The second prediction unit 1103 is configured to perform an image component prediction on the current block according to the input sampling matrix to obtain a predicted block of the current block.

[0247] In the above solution, refer to Figure 11 , the decoder 110 may further include a second acquisition unit 1104, configured to acquire reference pixels adjacent to at least one side of the current block; wherein, at least one side of the current block includes at least one of the following: the upper side, the upper right side, the left side, and the lower left side;

[0248] The second determination unit 1101 is configured to determine an adjacent reference sample set of the current block according to the obtained reference pixels.

[0249] In the above solution, referring to Figure 11 , the decoder 110 may further include a second processing unit 1105, configured to perform a first filtering process on reference pixels adjacent to at least one side of the current block to determine reference sample values adjacent to at least one side;

[0250] The second determination unit 1101 is configured to form an adjacent reference sample set of the current block according to the determined reference sample values.

[0251] In the above solution, the first filtering process includes a downsampling filtering process or a low-pass filtering process.

[0252] In the above solution, the second acquisition unit 1104 is further configured to acquire a bit depth value corresponding to a predicted image component of the current block;

[0253] The second processing unit 1105 is further configured to convert 1 into a binary value, and perform a shift process of subtracting 1 from the bit depth value on the binary value to obtain the preset parameter value.

[0254] In the above solution, the second buffer unit 1102 is configured to buffer the adjacent reference sample set to obtain an initial input reference sample value set; and use a data unit after the initial input reference sample value set to buffer the preset parameter value to obtain the input reference sample value set.

[0255] In the above solution, referring to Figure 11 , the decoder 110 may further include a parsing unit 1106, configured to parse a bitstream to obtain a value of a transpose processing indication flag;

[0256] The second buffer unit 1102 is specifically configured to, when the value of the transpose processing indication flag is 0, store the reference sample values corresponding to the upper side in the adjacent reference sample set before the reference sample values corresponding to the left side in the buffer area, and then determine the buffer area as the initial input reference sample value set; or, when the value of the transpose processing indication flag is 1, store the reference sample values corresponding to the upper side in the adjacent reference sample set after the reference sample values corresponding to the left side in the buffer area, perform a transpose process on the buffer area, and determine the transposed buffer area as the initial input reference sample value set.

[0257] In the above solution, referring to Figure 11, the decoder 110 may further include a second calculation unit 1107 configured to calculate the i-th input sample value according to the sample value corresponding to the (i + 1)-th position and the sample value corresponding to the 0-th position in the input reference sample set by using a first pre-designed calculation model; where i is a positive integer greater than or equal to 0 and less than N, and N represents the number of elements included in the input sampling matrix;

[0258] A second determination unit 1101 configured to form the input sampling matrix according to the calculated N input sample values.

[0259] In the above solution, the second calculation unit 1107 is specifically configured to perform a subtraction operation by using the first pre-designed calculation model to obtain the i-th input sample value.

[0260] In the above solution, the second calculation unit 1107 is specifically configured to set the minuend of the subtraction operation to be equal to the sample value corresponding to the (i + 1)-th position in the reference sample set; and set the subtrahend of the subtraction operation to be equal to the sample value corresponding to the 0-th position in the reference sample set.

[0261] In the above solution, the second acquisition unit 1104 is further configured to obtain the MIP prediction block of the current block according to the input sampling matrix, where the MIP prediction block includes predicted sample values at at least some pixel positions in the current block;

[0262] A second processing unit 1105 is further configured to, when one of the width and height of the MIP prediction block is different from that of the current block, perform a second filtering process on the MIP prediction block to obtain the prediction block of the current block; or, when both the width and height of the MIP prediction block are the same as those of the current block, set the prediction block of the current block to be equal to the MIP prediction block; where the prediction block includes predicted sample values at all pixel positions in the current block.

[0263] In the above solution, the second acquisition unit 1104 is specifically configured to perform a clipping process on the predicted sample values in the MIP prediction block to obtain the MIP prediction block of the current block.

[0264] In the above solution, refer to Figure 11 , the decoder 110 may further include a second determination unit 1108 configured to determine whether to perform a transpose process on the MIP prediction block; and when the determination result is "yes", perform a transpose process on the predicted sample values in the MIP prediction block, and determine the transposed MIP prediction block as the MIP prediction block of the current block.

[0265] In the above solution, the parsing unit 1106 is specifically configured to parse the bitstream to obtain the value of the transpose process indication flag;

[0266] The second determination unit 1108 is specifically configured to determine whether to perform transposition processing on the MIP prediction block according to the value of the transposition processing indication flag.

[0267] In the above solution, the second filtering process includes upsampling filtering or low-pass filtering.

[0268] In the above solution, the second acquisition unit 1104 is further configured to acquire the weight matrix, shift factor, and offset factor corresponding to the current block;

[0269] The second calculation unit 1107 is further configured to perform matrix multiplication processing on the input sampling matrix, the weight matrix, the shift factor, and the offset factor by using a second pre-designed calculation model to calculate the MIP prediction block.

[0270] In the above solution, the second determination unit 1101 is further configured to determine the horizontal upsampling factor and the vertical upsampling factor corresponding to the current block;

[0271] The second calculation unit 1107 is further configured to determine the predicted value of the pixel position to be filled in the current block according to the MIP prediction block, the horizontal upsampling factor, and the vertical upsampling factor by using a third pre-designed calculation model to obtain the prediction block of the current block; wherein, the pixel position to be filled is the pixel position different from the pixel position in the MIP prediction block in the current block.

[0272] It can be understood that in this embodiment, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc. Of course, it may also be a module or non-modular. Moreover, the components in this embodiment may be integrated in a processing unit, or each unit may exist physically alone, or two or more units may be integrated in one unit. The above integrated unit may be implemented in the form of hardware or in the form of a software functional module.

[0273] If the integrated unit is implemented in the form of a software functional module and is not sold or used as an independent product, it may be stored in a computer-readable storage medium. Based on this understanding, this embodiment provides a computer storage medium, which is applied to the decoder 110. The computer storage medium stores an image component prediction program, and when the image component prediction program is executed by a second processor, it implements the method described in any one of the foregoing embodiments.

[0274] Based on the composition of the above decoder 110 and the computer storage medium, see Figure 12, which shows a specific hardware structure example of the decoder 110 provided by the embodiments of the present application, may include: a second communication interface 1201, a second memory 1202, and a second processor 1203; each component is coupled together through a second bus system 1204. It can be understood that the second bus system 1204 is used to realize the connection and communication between these components. The second bus system 1204 includes, in addition to the data bus, a power bus, a control bus, and a status signal bus. However, for the sake of clarity, in Figure 12 all kinds of buses are labeled as the second bus system 1204. Among them,

[0275] The second communication interface 1201 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;

[0276] The second memory 1202 is used to store a computer program that can run on the second processor 1203;

[0277] The second processor 1203 is used for, when running the computer program, executing:

[0278] Determine the adjacent reference sampling set of the current block, and determine the preset parameter value corresponding to the current block; wherein, the adjacent reference sampling set includes at least one reference sampling value;

[0279] Cache the adjacent reference sampling set and the preset parameter value, and construct an input reference sample value set;

[0280] According to the input reference sample value set, use a first pre-designed calculation model to determine an input sampling matrix;

[0281] Perform image component prediction on the current block according to the input sampling matrix, and obtain a prediction block of the current block.

[0282] Optionally, as another embodiment, the second processor 1203 is further configured to execute the method described in any one of the foregoing embodiments when running the computer program.

[0283] It can be understood that the hardware functions of the second memory 1202 and the first memory 1002 are similar, and the hardware functions of the second processor 1203 and the first processor 1003 are similar; details are not described here again.

[0284] This embodiment provides a decoder, which may include a second determination unit, a second buffer unit, and a second prediction unit. Among them, the second determination unit is configured to determine the adjacent reference sampling set of the current block and determine the preset parameter value corresponding to the current block. The second buffer unit is configured to buffer the adjacent reference sampling set and the preset parameter value to construct an input reference sample set. The second determination unit is further configured to determine an input sampling matrix according to the input reference sample set by using a first pre-designed calculation model. The second prediction unit is configured to perform an image component prediction on the current block according to the input sampling matrix to obtain a predicted block of the current block. In this way, not only is the derivation process of the matrix multiplication input sampling simplified, making the derivation process of the input sampling matrix unified, but also the determination of the current block type is not required, reducing the time complexity and facilitating hardware implementation.

[0285] It should be noted that in this application, the terms "include", "comprise" or any other variant thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements not only includes those elements, but also includes other elements not expressly listed, or also includes elements inherent to such process, method, article or device. Without further limitation, an element defined by the statement "including a..." does not exclude the existence of additional identical elements in the process, method, article or device including that element.

[0286] The serial numbers of the above embodiments of this application are only for description and do not represent the superiority or inferiority of the embodiments.

[0287] The methods disclosed in several method embodiments provided by this application can be arbitrarily combined without conflict to obtain new method embodiments.

[0288] The features disclosed in several product embodiments provided by this application can be arbitrarily combined without conflict to obtain new product embodiments.

[0289] The features disclosed in several method or device embodiments provided by this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.

[0290] The above is only the specific implementation manner of this application, but the protection scope of this application is not limited thereto. Any person skilled in the art can easily think of changes or substitutions within the technical scope disclosed by this application, and all should be covered by the protection scope of this application. Therefore, the protection scope of this application should be subject to the protection scope of the claims.

[0291] Industrial applicability

[0292] In the embodiment of the present application, by determining the adjacent reference sampling set of the current block and determining the preset parameter value corresponding to the current block; caching the adjacent reference sampling set and the preset parameter value to construct an input reference sample set; then, according to the input reference sample set, using a first preset calculation model to determine an input sampling matrix; and then performing image component prediction on the current block according to the input sampling matrix to obtain a predicted block of the current block. In this way, the solution of the embodiment of the present application does not need to judge the type of the current block, reduces the time complexity, and is beneficial to hardware implementation; in addition, the input sampling matrix can be determined according to the input reference sample set and the first preset calculation model. At this time, the derivation process of the matrix multiplication input sampling is also simplified, making the derivation process of the input sampling matrix unified. Moreover, the solution of the embodiment of the present application no longer depends on the type of the current block, and can also achieve parallel processing, reducing the calculation complexity.

Claims

1. A method for image component prediction, applied to a decoder, the method comprising: Obtaining an upper-side reference sampling value adjacent to the upper side of the current block and a left-side reference sampling value adjacent to the left side of the current block; Determining a downsampled upper-side reference sampling value by downsampling the upper-side reference sampling value, and determining a downsampled left-side reference sampling value by downsampling the left-side reference sampling value; Determining an adjacent reference sampling set based on the downsampled upper-side reference sampling value and the downsampled left-side reference sampling value; Performing bit shift processing on the binary value corresponding to the number 1 to obtain a preset parameter value, wherein the number of bits of bit shift is equal to the bit depth value corresponding to the image component to be predicted of the current block minus 1; Determining an input sampling matrix based on the adjacent reference sampling set and the preset parameter value; and Performing image component prediction on the current block according to the input sampling matrix to obtain a predicted block of the current block.

2. The method according to claim 1, wherein, Determining an adjacent reference sampling set based on the downsampled upper-side reference sampling value and the downsampled left-side reference sampling value includes: Analyzing the code stream to obtain the value of the transpose processing indication flag; When the value of the transpose processing indication flag is 1, storing the downsampled left-side reference sampling value before the downsampled upper-side reference sampling value in the adjacent reference sampling set; When the value of the transpose processing indication flag is 0, storing the downsampled upper-side reference sampling value before the downsampled left-side reference sampling value in the adjacent reference sampling set.

3. The method according to claim 1, wherein, Determining an input sampling matrix based on the adjacent reference sampling set and the preset parameter value includes: Determining the size parameter of the current block; When the value of the size parameter of the current block is equal to the first value or the second value, calculating the i-th input sampling value according to the sampling value corresponding to the i-th position and the sampling value corresponding to the 0-th position in the adjacent reference sampling set, and calculating the 0-th input sampling value according to the preset parameter value and the sampling value corresponding to the 0-th position in the adjacent reference sampling set; When the value of the size parameter of the current block is equal to the third value, calculating the i-th input sampling value according to the sampling value corresponding to the (i + 1)-th position and the sampling value corresponding to the 0-th position in the adjacent reference sampling set.

4. The method according to claim 3, wherein: When both the width and height of the current block are equal to 4, the value of the size parameter is equal to the first value; When the width or height of the current block is equal to 4, or both the width and height of the current block are equal to 8, the value of the size parameter is equal to the second value; Otherwise, the value of the size parameter is equal to the third value.

5. The method according to claim 4, wherein: The first value is equal to 0; The second value is equal to 1; The third value is equal to 2.

6. The method according to claim 1, wherein, Performing image component prediction on the current block according to the input sampling matrix to obtain a predicted block of the current block includes: Determining a weight matrix corresponding to the current block; Determining a predicted sampling value in the MIP block based on the weight matrix, the input sampling matrix, the shift factor, the offset factor, and the sampling value corresponding to the 0-th position in the adjacent reference sampling set; Clip the predicted sample values in the MIP block to obtain a predicted MIP block.

7. The method according to claim 6, further comprising: When the value of the transpose processing indication flag is equal to 1, perform transpose processing on the predicted MIP block.

8. The method according to claim 6 or 7, further comprising: When the width or height of the MIP block is different from that of the current block, perform upsampling on the predicted MIP block to obtain a predicted block of the current block; When the width and height of the MIP block are the same as those of the current block, set the predicted block of the current block to be equal to the predicted MIP block, where the predicted block includes predicted sample values at all sample value positions in the current block.

9. A method for image component prediction, applied to an encoder, the method comprising: Obtain an upper side reference sample value adjacent to the upper side of the current block and a left side reference sample value adjacent to the left side of the current block; Determine the downsampled upper side reference sample value by downsampling the upper side reference sample value, and determine the downsampled left side reference sample value by downsampling the left side reference sample value; Determine an adjacent reference sample set based on the downsampled upper side reference sample value and the downsampled left side reference sample value; Perform bit shift processing on the binary value corresponding to the number 1 to obtain a preset parameter value, where the number of bits of bit shift is equal to the bit depth value corresponding to the image component to be predicted of the current block minus 1; Determine an input sampling matrix based on the adjacent reference sample set and the preset parameter value; and Perform image component prediction on the current block according to the input sampling matrix to obtain a predicted block of the current block.

10. The method according to claim 9, wherein, Determining an adjacent reference sample set based on the downsampled upper side reference sample value and the downsampled left side reference sample value includes: Using a rate-distortion optimization method to determine the value of the transpose processing indication flag; When the value of the transpose processing indication flag is 1, store the downsampled left side reference sample value before the downsampled upper side reference sample value in the adjacent reference sample set; When the value of the transpose processing indication flag is 0, store the downsampled upper side reference sample value before the downsampled left side reference sample value in the adjacent reference sample set.

11. The method according to claim 9, wherein, Determining an input sampling matrix based on an adjacent reference sample set and a preset parameter value includes: Determine the size parameter of the current block; When the value of the size parameter of the current block is equal to the first value or the second value, calculate the i-th input sample value according to the sample value corresponding to the i-th position and the sample value corresponding to the 0-th position in the adjacent reference sample set, and calculate the 0-th input sample value according to the preset parameter value and the sample value corresponding to the 0-th position in the adjacent reference sample set; When the value of the size parameter of the current block is equal to the third value, calculate the i-th input sample value according to the sample value corresponding to the (i + 1)-th position and the sample value corresponding to the 0-th position in the adjacent reference sample set.

12. The method according to claim 11, wherein: When the width and height of the current block are both equal to 4, the value of the size parameter is equal to the first value; When the width or height of the current block is equal to 4, or the width and height of the current block are both equal to 8, the value of the size parameter is equal to the second value; Otherwise, the value of the size parameter is equal to the third value.

13. The method according to claim 12, wherein: The first value is equal to 0; The second value is equal to 1; The third value is equal to 2.

14. The method according to claim 9, wherein, Performing image component prediction on the current block according to the input sampling matrix to obtain a prediction block of the current block includes: Determining a weight matrix corresponding to the current block; Based on the weight matrix, the input sampling matrix, the shift factor, the offset factor, and the sampling value corresponding to the 0th position in the adjacent reference sampling set, determining the predicted sampling values in the MIP block; Performing clipping processing on the predicted sampling values in the MIP block to obtain a predicted MIP block.

15. The method according to claim 14, further comprising: When the value of the transpose processing indication flag is equal to 1, performing transpose processing on the predicted MIP block.

16. The method according to claim 14 or 15, further comprising: When the width or height of the MIP block is different from that of the current block, performing upsampling processing on the predicted MIP block to obtain a prediction block of the current block; When the width and height of the MIP block are the same as those of the current block, setting the prediction block of the current block to be equal to the predicted MIP block, where the prediction block includes the predicted sampling values at all sampling value positions in the current block.

17. An encoder, the encoder includes a first memory and a first processor; wherein, The first memory is used to store a computer program that can run on the first processor; The first processor is used to execute the method according to any one of claims 1 to 8 when running the computer program.

18. A decoder, the decoder includes a second memory and a second processor; wherein, The second memory is used to store a computer program that can run on the second processor; The second processor is used to execute the method according to any one of claims 9 to 16 when running the computer program.

19. A computer storage medium, wherein, The computer storage medium stores a bitstream generated according to the method according to any one of claims 9 to 16.

Citation Information

Patent Citations

  • Method and device for predicting block on basis of illumination compensation in image coding system

    CN107810635A