Decoding prediction method, apparatus and computer storage medium
By constructing a second set of adjacent reference pixels in the video coding standard VVC for prediction and decoding, the problem of high search complexity in linear model prediction is solved, thus improving decoding performance and reducing bit rate.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
- Filing Date
- 2019-01-02
- Publication Date
- 2026-07-10
AI Technical Summary
In the linear model prediction of the video coding standard VVC, the unreasonable construction of adjacent reference pixels leads to high search complexity and reduces the video image decoding prediction performance.
By obtaining the adjacent reference pixels of the block to be decoded, determining the positions of K reference pixels, removing unimportant reference pixels close to the starting position, and constructing a second or more adjacent reference pixels for prediction and decoding, the search complexity is reduced and the accuracy of model parameters is improved.
It improves decoding and prediction performance, reduces bit rate, and increases video image compression efficiency.
Smart Images

Figure CN116600131B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the technical field of video encoding and decoding, and in particular to a decoding prediction method, apparatus, and computer storage medium. Background Technology
[0002] As people's demands for video display quality increase, new video application forms such as high-definition and ultra-high-definition video have emerged. H.265 / High Efficiency Video Coding (HEVC) is currently the latest international video compression standard. The compression performance of H.265 / HEVC is about 50% higher than the previous generation video coding standard H.264 / Advanced Video Coding (AVC), but it still cannot meet the needs of the rapidly developing video applications, especially new video applications such as ultra-high-definition and virtual reality (VR).
[0003] In 2015, the ITU-T Video Coding Experts Group and the ISO / IEC Moving Picture Experts Group established the Joint Video Exploration Team (JVET) to develop the next-generation video coding standard. In April 2018, JVET officially named the next-generation video coding standard Versatile Video Coding (VVC), with its corresponding test model (VVC Test Model, VTM). The VTM reference software integrates a prediction method based on a linear model, which predicts the chrominance component from the luminance component of the current block to be decoded. However, the use of multiple adjacent reference pixels constructed from adjacent reference pixels in building the linear model is not ideal, leading to high search complexity and reduced decoding prediction performance of the video image. Summary of the Invention
[0004] In view of this, embodiments of this application aim to provide a decoding prediction method, apparatus, and computer storage medium that reduces the number of pixels in multiple adjacent reference pixels, thereby reducing the complexity of the search, improving the prediction performance of video image decoding, and thus reducing the bit rate.
[0005] The technical solution of this application embodiment can be implemented as follows:
[0006] In a first aspect, embodiments of this application provide a decoding prediction method, the method comprising:
[0007] Obtain the reference pixels adjacent to the block to be decoded to obtain the first plurality of adjacent reference pixels; wherein, the first plurality of adjacent reference pixels includes one or more reference pixels in the reference row or reference column adjacent to the block to be decoded;
[0008] Starting from the beginning of the reference row or the reference column, determine the positions corresponding to K reference pixels; where K is a positive integer greater than or equal to 1.
[0009] Based on the positions corresponding to the determined K reference pixels, a second plurality of adjacent reference pixels are obtained, wherein the second plurality of adjacent reference pixels include reference pixels other than the K reference pixels in the first plurality of adjacent reference pixels;
[0010] Based on the second plurality of adjacent reference pixels, predictive decoding is performed on the block to be decoded.
[0011] Secondly, embodiments of this application provide a decoding prediction apparatus, which includes a processor and a memory. The memory stores calculations and programs. When executed by the processor, the computer program can be executed by the processor to: obtain reference pixels adjacent to the block to be decoded, thereby obtaining a first plurality of adjacent reference pixels; wherein the first plurality of adjacent reference pixels includes one or more reference pixels in a reference row or reference column adjacent to the block to be decoded; starting from the starting position of the reference row or reference column, determine the positions corresponding to K reference pixels; wherein K is a positive integer greater than or equal to 1; based on the determined positions corresponding to the K reference pixels, obtain a second plurality of adjacent reference pixels, wherein the second plurality of adjacent reference pixels includes reference pixels other than the K reference pixels in the first plurality of adjacent reference pixels; and perform predictive decoding on the block to be decoded based on the second plurality of adjacent reference pixels.
[0012] Thirdly, embodiments of this application provide a computer storage medium storing a decoding prediction program, which, when executed by at least one processor, implements the steps of the method described in the first aspect.
[0013] This application provides a decoding prediction method, apparatus, and computer storage medium. First, it obtains adjacent reference pixels of the block to be decoded, resulting in a first plurality of adjacent reference pixels. These first plurality of adjacent reference pixels include one or more reference pixels in a reference row or column adjacent to the block to be decoded. Then, starting from the beginning of the reference row or column, it determines the positions corresponding to K reference pixels, where K is a positive integer greater than or equal to 1. Next, based on the determined positions of the K reference pixels, it obtains a second plurality of adjacent reference pixels, which includes reference pixels from the first plurality of adjacent reference pixels excluding the K reference pixels. Finally, based on the second plurality of adjacent reference pixels, it performs predictive decoding on the block to be decoded. Since unimportant reference pixels near the beginning have been removed from the second plurality of adjacent reference pixels, the model parameters constructed using these pixels are more accurate, improving decoding prediction performance. Furthermore, the smaller number of pixels in the second plurality of adjacent reference pixels reduces search complexity and improves video image compression efficiency, thereby reducing the bitrate. Attached Figure Description
[0014] Figures 1A to 1C These are schematic diagrams illustrating the structure of video image sampling formats in relevant technical solutions;
[0015] Figure 2 This application provides a schematic block diagram of a video encoding system.
[0016] Figure 3 This application provides a schematic block diagram of a video decoding system according to an embodiment of the present application.
[0017] Figure 4 A flowchart illustrating a decoding prediction method provided in an embodiment of this application;
[0018] Figure 5 This application provides a schematic diagram of a structure for selecting adjacent reference pixels in MDLM_A mode according to an embodiment of the present application.
[0019] Figure 6 This application provides a schematic diagram of a structure for selecting adjacent reference pixels in MDLM_L mode according to an embodiment of the present application.
[0020] Figure 7 This is a schematic diagram illustrating the structure for selecting adjacent reference pixels in another MDLM_A mode provided in this application embodiment;
[0021] Figure 8 A schematic diagram illustrating the structure for selecting adjacent reference pixels in another MDLM_L mode provided in this application embodiment;
[0022] Figure 9 This application provides a schematic diagram of a decoding block constructing a prediction model based on maximum and minimum values.
[0023] Figure 10 This is a schematic diagram of the composition structure of a decoding prediction device provided in an embodiment of this application;
[0024] Figure 11 This is a schematic diagram of the specific hardware structure of a decoding prediction device provided in an embodiment of this application. Detailed Implementation
[0025] In order to gain a more detailed understanding of the features and technical content of the embodiments of this application, the implementation of the embodiments of this application will be described in detail below with reference to the accompanying drawings. The accompanying drawings are for reference and illustration only and are not intended to limit the embodiments of this application.
[0026] In video images, a first image component, a second image component, and a third image component are generally used to represent the decoding block. These three image components are a luminance component, a blue chrominance component, and a red chrominance component, respectively. Specifically, the luminance component is usually represented by the symbol Y, the blue chrominance component is usually represented by the symbol Cb, and the red chrominance component is usually represented by the symbol Cr.
[0027] In the embodiments of this application, the first image component can be the luminance component Y, the second image component can be the blue chromaticity component Cb, and the third image component can be the red chromaticity component Cr; however, the embodiments of this application do not specifically limit this. Currently, the commonly used sampling format is the YCbCr format, which includes the following types, respectively... Figures 1A to 1C As shown, in the figure, the cross (X) represents the sampling point of the first image component, and the circle (○) represents the sampling point of the second or third image component. The YCbCr format includes:
[0028] 4:4:4 format: e.g. Figure 1A As shown, this indicates that the second or third image component is not downsampled; it is achieved by taking 4 sampled samples of the first image component, 4 sampled samples of the second image component, and 4 sampled samples of the third image component every 4 consecutive pixels on each scan line.
[0029] 4:2:2 format: e.g. Figure 1B As shown, this indicates that the first image component is horizontally sampled at a ratio of 2:1 relative to the second or third image component, without vertical downsampling; it involves taking 4 samples of the first image component, 2 samples of the second image component, and 2 samples of the third image component from every 4 consecutive pixels on each scan line.
[0030] 4:2:0 format: e.g. Figure 1C As shown, this indicates that the first image component is downsampled horizontally by a ratio of 2:1 and vertically by a ratio of 2:1 relative to the second or third image component; it involves taking two sampled samples of the first image component, one sampled sample of the second image component, and one sampled sample of the third image component from every two consecutive pixels on the horizontal and vertical scan lines.
[0031] When the video image uses YCbCr in a 4:2:0 format, if the first image component of the video image is a 2N×2N decoding block, then the corresponding second or third image component is an N×N decoding block, where N is the side length of the decoding block. In this embodiment, the following description uses the 4:2:0 format as an example, but the technical solution of this embodiment is also applicable to other sampling formats.
[0032] In the H.266 video coding standard, to further improve encoding and decoding performance, cross-component prediction (CCP) has been extended and improved, introducing cross-component linear model prediction (CCLM) and multi-directional linear model prediction (MDLM). In H.266, both CCLM and MDLM can achieve predictions between the first and second image components, between the first and third image components, and between the second and third image components.
[0033] Taking the prediction from the first image component to the second image component as an example, to reduce redundancy between the first and second image components, inter-component linear model prediction modes are used in VTM, mainly including CCLM mode and MDLM mode. Here, CCLM mode is also called LM mode, and MDLM mode can be further divided into MDLM upper (MDLM_Ave, MDLM_A) mode and MDLM left (MDLM_Left, MDLM_L) mode. Among them, MDLM_A mode can also be called MDLM_T mode or CCLM_T mode; MDLM_L mode can also be called CCLM_L mode. Overall, in the VVC reference software VTM3.0, the three inter-component linear model prediction modes, namely LM mode, MDLM_A mode, and MDLM_L mode, are in competition with each other. MDLM_A mode is INTRA_T_CCLM mode, and MDLM_L mode is INTRA_L_CCLM mode. The difference between these three modes lies in the multiple adjacent reference pixels constructed for deriving model parameters α and β.
[0034] To obtain more accurate neighboring reference pixels for deriving model parameters α and β, thereby improving decoding prediction performance, this application provides a decoding prediction method. First, it acquires reference pixels adjacent to the block to be decoded, obtaining a first plurality of neighboring reference pixels. These first plurality of neighboring reference pixels include one or more reference pixels in a reference row or column adjacent to the block to be decoded. Then, starting from the beginning of the reference row or column, it determines the positions corresponding to K reference pixels, where K is a positive integer greater than or equal to 1. Based on the determined positions corresponding to the K reference pixels, it obtains a second plurality of neighboring reference pixels, which includes reference pixels from the first plurality of neighboring reference pixels excluding the K reference pixels. That is, the second plurality of neighboring reference pixels starts from the (K+1)th reference pixel in the first plurality of neighboring reference samples.
[0035] Finally, based on the second plurality of adjacent reference pixels, predictive decoding is performed on the block to be decoded. Since the second plurality of adjacent reference pixels are obtained by removing unimportant reference pixels close to the starting position from the first plurality of adjacent reference pixels, the model parameters constructed using the second plurality of adjacent reference pixels are more accurate, improving decoding prediction performance. Furthermore, the number of pixels in the second plurality of adjacent reference pixels is smaller, thereby reducing search complexity and improving video image compression efficiency, thus reducing the bit rate. The embodiments of this application will now be described in detail with reference to the accompanying drawings.
[0036] For INTRA_T_CCLM mode, the reference row adjacent to the block to be decoded is the row above the block to be decoded. For INTRA_L_CCLM mode, the reference column adjacent to the block to be decoded is the row to the left of the block to be decoded.
[0037] Each reference pixel corresponds to a brightness position, and adjacent reference pixels include the upper adjacent pixel and the left adjacent pixel.
[0038] See Figure 2 It illustrates an example block diagram of a video encoding system provided in an embodiment of this application; as shown Figure 2As shown, the video coding system 200 includes a transform and quantization unit 201, an intra-frame estimation unit 202, an intra-frame prediction unit 203, a motion compensation unit 204, a motion estimation unit 205, an inverse transform and inverse quantization unit 206, a filter control and analysis unit 207, a filtering unit 208, an encoding unit 209, and a decoded image buffer unit 210. The filtering unit 208 can implement deblocking filtering and Sample Adaptive Offset (SAO) filtering, while the encoding unit 209 can implement header information encoding and Context-based Adaptive Binary Arithmetic Coding (CABAC). For the input raw video signal, the coding tree blocks are used to... The partitioning of a video coding unit (CTU) yields a video coding block. The residual pixel information obtained after intra-frame or inter-frame prediction is then transformed by the transform and quantization unit 201. This transformation involves converting the residual information from the pixel domain to the transform domain and quantizing the resulting transform coefficients to further reduce the bit rate. Intra-frame estimation unit 202 and intra-frame prediction unit 203 perform intra-frame prediction on the video coding block. Specifically, intra-frame estimation unit 202 and intra-frame prediction unit 203 determine the intra-frame prediction mode to be used to encode the video coding block. Motion compensation unit 204 and motion estimation unit 205 perform inter-frame prediction 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 motion estimation unit 205 is a process of generating motion vectors, which can estimate the motion of the video coding block. Then, motion compensation unit 204 uses the motion vectors determined by motion estimation unit 205 to generate motion vectors. The system performs motion compensation; after determining the intra-prediction mode, the intra-prediction unit 203 also provides the selected intra-prediction data to the coding unit 209, and the motion estimation unit 205 also sends the calculated motion vector data to the coding unit 209; in addition, the inverse transform and inverse quantization unit 206 is used to reconstruct the video coding block, reconstructing the residual block in the pixel domain. The reconstructed residual block is processed by the filter control analysis unit 207 and the filtering unit 208 to remove block artifacts, and then the reconstructed residual block is added to a predictive block in the frame of the decoding image buffer unit 210 to generate the reconstructed video coding block; the coding unit 209 is used to encode various coding parameters and quantized transform coefficients. In the CABAC-based coding algorithm, the context content can be based on adjacent coding blocks and can be used to encode information indicating the determined intra-prediction mode, outputting the bitstream of the video signal; and the decoding image buffer unit 210 is used to store the reconstructed video coding block for prediction reference.As video image encoding proceeds, new reconstructed video encoding blocks are continuously generated, and these reconstructed video encoding blocks are stored in the decoding image buffer unit 210.
[0039] See Figure 3 It illustrates an example block diagram of a video decoding system provided in an embodiment of this application; as shown Figure 3 As shown, the video decoding system 300 includes a decoding unit 301, an inverse transform and inverse quantization unit 302, an intra-frame prediction unit 303, a motion compensation unit 304, a filtering unit 305, and a decoding image buffer unit 306. The decoding unit 301 can perform header information decoding and CABAC decoding, while the filtering unit 305 can perform deblocking filtering and SAO filtering. The input video signal is processed... Figure 2 After encoding, the video signal bitstream is output. This bitstream is input into the video decoding system 300, first passing through the decoding unit 301 to obtain the decoded transform coefficients. These transform coefficients are then processed by the inverse transform and inverse quantization unit 302 to generate residual blocks in the pixel domain. The intra-frame prediction unit 303 can generate prediction data for the current video decoding block based on the determined intra-frame prediction mode and data from previously decoded blocks in the current frame or image. The motion compensation unit 304 determines the prediction information for the video decoding block by analyzing motion vectors and other associated syntax elements, and uses this prediction information... The information is used to generate a predictive block of the video block being decoded; the decoded video block is formed by summing the residual block from the inverse transform and inverse quantization unit 302 with the corresponding predictive block generated by the intra-frame prediction unit 303 or the motion compensation unit 304; the decoded video signal is passed through the filtering unit 305 to remove block artifacts, which can improve video quality; then the decoded video block is stored in the decoding image buffer unit 306, which stores reference images for subsequent intra-frame prediction or motion compensation, and is also used for the output of the video signal, thus obtaining the recovered original video signal.
[0040] The embodiments of this application are mainly applied in, for example... Figure 2 The intra-prediction unit 203 shown and as follows Figure 3 The intra-prediction unit 303 shown is an example of this application. In other words, the embodiments of this application can be applied to both encoding and decoding systems, but the embodiments of this application do not specifically limit this application.
[0041] Based on the above Figure 2 or Figure 3 For application scenario examples, see Figure 4 It illustrates a flowchart of a decoding prediction method provided in an embodiment of this application, which may include:
[0042] S401: Obtain the reference pixels adjacent to the block to be decoded, and obtain the first plurality of adjacent reference pixels; wherein, the first plurality of adjacent reference pixels includes one or more reference pixels in the reference row or reference column adjacent to the block to be decoded;
[0043] S402: Starting from the beginning position of the reference row or the reference column, determine the positions corresponding to K reference pixels; where K is a positive integer greater than or equal to 1;
[0044] S403: Based on the positions corresponding to the determined K reference pixels, a second plurality of adjacent reference pixels are obtained, wherein the second plurality of adjacent reference pixels include reference pixels other than the K reference pixels in the first plurality of adjacent reference pixels;
[0045] S404: Based on the second plurality of adjacent reference pixels, perform predictive decoding on the block to be decoded.
[0046] It should be noted that the block to be decoded is the block for which first image component prediction, second image component prediction, or third image component prediction is currently performed. The reference row or column adjacent to the block to be decoded can refer to the reference row adjacent to the top edge of the block, the reference column adjacent to the left edge of the block, or even the reference row or column adjacent to other edges of the block. This application embodiment does not impose specific limitations. For ease of description, in this application embodiment, the reference rows adjacent to the block to be decoded will be described using the reference rows adjacent to the top edge as an example, and the reference columns adjacent to the block to be decoded will be described using the reference columns adjacent to the left edge as an example.
[0047] The reference pixels in the reference row adjacent to the block to be decoded may include reference pixels adjacent to the top edge and the top right edge (also referred to as the adjacent reference pixels corresponding to the top edge and the top right edge), where the top edge represents the top edge of the block to be decoded, and the top right edge represents the side length of the block to be decoded that extends horizontally to the right from the top edge of the block to be decoded, which is the same as the width of the current decoded block; the reference pixels in the reference column adjacent to the block to be decoded may also include reference pixels adjacent to the left edge and the bottom left edge (also referred to as the adjacent reference pixels corresponding to the left edge and the bottom left edge), where the left edge represents the left edge of the block to be decoded, and the bottom left edge represents the side length of the block to be decoded that extends vertically downward from the left edge of the block to be decoded, which is the same as the height of the current decoded block; however, this embodiment of the application does not impose specific limitations.
[0048] It should also be noted that the K reference pixels represent the less important reference pixels among the first plurality of adjacent reference pixels, generally distributed near the starting position of the reference row or reference column. The starting position of the reference row represents the leftmost edge of the reference row, and the starting position of the reference column represents the top edge of the reference column. Since the reference row is horizontal, "determining the positions corresponding to the K reference pixels starting from the starting position of the reference row or reference column" means determining the positions corresponding to the K reference pixels horizontally to the right, starting from the leftmost edge of the reference row. Since the reference column is vertical, "determining the positions corresponding to the K reference pixels starting from the starting position of the reference row or reference column" means determining the positions corresponding to the K reference pixels vertically downwards, starting from the top edge of the reference column. Thus, by acquiring the reference pixels adjacent to the block to be decoded, a first plurality of adjacent reference pixels are obtained; wherein, the first plurality of adjacent reference pixels include one or more reference pixels in the reference row or reference column adjacent to the block to be decoded; starting from the starting position of the reference row or reference column, the positions corresponding to K reference pixels are determined, where K is a positive integer greater than or equal to 1; based on the determined positions corresponding to the K reference pixels, a second plurality of adjacent reference pixels are obtained, wherein, the second plurality of adjacent reference pixels include reference pixels other than the K reference pixels in the first plurality of adjacent reference pixels; based on the second plurality of adjacent reference pixels, the block to be decoded is predicted and decoded; since the second plurality of adjacent reference pixels are obtained by removing unimportant reference pixels close to the starting position from the first plurality of adjacent reference pixels, the model parameters constructed using the second plurality of adjacent reference pixels are more accurate, improving the decoding prediction performance; moreover, the number of pixels in the second plurality of adjacent reference pixels is smaller, thereby reducing the search complexity and improving the compression efficiency of the video image, thereby reducing the bit rate.
[0049] Understandably, the decoding prediction method of this application embodiment can also be applied to the encoding system. By determining the second plurality of adjacent reference pixels in the encoding system, not only can the encoding prediction performance of video images be improved, but the encoding compression efficiency can also be increased to save encoding bitrate. The following description will only take the determination of the second plurality of adjacent reference pixels in the decoding system as an example.
[0050] In some embodiments, the prediction mode used by the block to be decoded is the Multidirectional Linear Model Prediction (MDLM) mode, which includes the MDLM_A mode and the MDLM_L mode.
[0051] In some embodiments, optionally, before determining the positions corresponding to the K reference pixels starting from the beginning position of the reference row or the reference column, the method further includes:
[0052] For the reference row, the value of K is calculated based on the length of the reference row and a first preset ratio, wherein the first preset ratio is a preset ratio corresponding to the reference row; or...
[0053] For the reference column, the value of K is calculated based on the length of the reference column and a second preset ratio, wherein the second preset ratio is a preset ratio corresponding to the reference column.
[0054] In some embodiments, optionally, before determining the positions corresponding to the K reference pixels starting from the beginning position of the reference row or the reference column, the method further includes:
[0055] For the reference row, the value of K is calculated based on the length of the upper side of the block to be decoded and a first preset ratio; or,
[0056] For the reference column, the value of K is calculated based on the length of the left side of the block to be decoded and the second preset ratio.
[0057] Further, determining the positions corresponding to the K reference pixels, starting from the beginning position of the reference row or the reference column, includes:
[0058] For the reference row, starting from the leftmost edge of the reference row, determine the positions corresponding to the K consecutive reference pixels to the right; or,
[0059] For the reference column, starting from the top edge of the reference column, determine the positions corresponding to the K consecutive reference pixels downwards.
[0060] It should be noted that the multiple neighboring reference pixels used to search for the largest and smallest neighboring reference values of the first image component are no longer the first multiple neighboring reference pixels, but rather a second multiple neighboring reference pixels obtained based on a preset number (K) of consecutive reference pixels starting from the starting position. The second multiple neighboring reference pixels include reference pixels other than the aforementioned preset number (K) of reference pixels. In this way, unimportant reference pixels corresponding to the starting positions of the first multiple neighboring reference pixels are removed, making the model parameters constructed using the second multiple neighboring reference pixels more accurate, thereby improving decoding and prediction performance.
[0061] It should also be noted that the value of K can be a pre-set number of reference pixels, such as 1, 2, or 4; it can also be calculated based on the length of the reference row or reference column of the block to be decoded and its corresponding preset ratio; or it can be calculated based on the side length of the block to be decoded and its corresponding preset ratio. However, in practical applications, specific settings are made according to the actual situation, and this application embodiment does not impose specific limitations. The preset ratio corresponding to the reference row of the block to be decoded is represented by a first preset ratio, and the preset ratio corresponding to the reference column of the block to be decoded is represented by a second preset ratio. The values of the first preset ratio and the second preset ratio can be the same or different, and this application embodiment does not impose specific limitations.
[0062] Understandably, whether it's the MDLM_A mode where all reference pixels in the reference row (i.e., the adjacent reference pixels corresponding to the top and top right edges) can be used, or the MDLM_L mode where all reference pixels in the reference column (i.e., the adjacent reference pixels corresponding to the left and bottom left edges) can be used, for both modes, assuming N is the side length of the block to be decoded (for the MDLM_A mode, N is the width of the block to be decoded, i.e., the length of the top edge; for the MDLM_L mode, N is the height of the block to be decoded, i.e., the length of the left edge), the value of K can be directly obtained from Table 1 for blocks with different side lengths. Referring to Table 1, it shows an example of determining the number of reference pixels in the second plurality of adjacent reference pixels using an MDLM mode provided in this application embodiment; where N1 represents the number of pixels in the first plurality of adjacent reference pixels, N2 represents the number of pixels in the second plurality of adjacent reference pixels, and K represents the preset number of adjacent reference pixels in this application embodiment.
[0063] Table 1
[0064] Side length N <![CDATA[N1]]> <![CDATA[N2]]> K 2 4 3 1 4 8 6 2 8 16 12 4 16 32 24 8 32 64 48 16
[0065] For MDLM_A mode, when all reference pixels in the reference row (i.e., the adjacent reference pixels corresponding to the top and top right edges) are available, the following two processing methods are included:
[0066] The first processing method: Taking the length of the reference row and its corresponding first preset ratio as an example, assuming the first preset ratio is one-quarter, the side length of the block to be decoded (i.e., the number of reference pixels on the top side) is 8, and the length of the reference row (i.e., the total number of reference pixels on the top side and the upper right side) is 16, then the value of K can be obtained as 4; that is, the remaining three-quarters of the reference pixels (i.e., 12 reference pixels) at the right edge position of the multiple adjacent reference points corresponding to the top side and the upper right side are used to form a second set of adjacent reference pixels to derive the model parameters α and β.
[0067] The second processing method: Taking the length of the upper side of the block to be decoded and the corresponding first preset ratio as an example, assuming that the first preset ratio is one-half, the length of the upper side of the block to be decoded (i.e. the number of reference pixels on the upper side) is 8, and the value of K can also be 4; that is, the remaining three-quarters of the reference pixels (i.e., 12 reference pixels) at the right edge position of the multiple adjacent reference points corresponding to the upper side and the upper right side are used to form a second set of adjacent reference pixels to derive the model parameters α and β.
[0068] For example, see Figure 5 This illustrates a schematic diagram of a structure for selecting adjacent reference pixels in MDLM_A mode according to an embodiment of this application; as shown... Figure 5 As shown, the block to be decoded is a square, and the gray solid circles are used to represent the adjacent reference pixels selected by the block to be decoded. The first image component needs to be downsampled first, so that the first image component and the second image component have the same resolution after downsampling. Assuming that the first preset ratio is one-quarter and the length of the reference row (i.e., the total number of reference pixels on the top and upper right sides) is 16, the value of K can be obtained as 4. That is to say, whether it is the first image component or the second image component, it starts from the leftmost edge of the reference row and determines the position corresponding to 4 consecutive reference pixels to the right, so that the second plurality of adjacent reference pixels do not include these 4 reference pixels. The remaining three-quarters of the reference pixels on the right edge (i.e., 12 reference pixels) are used to form the second plurality of adjacent reference pixels for the derivation of model parameters α and β.
[0069] It should be noted that the first preset ratio can be not only one-quarter, but also one-eighth, or even one-half; different first preset ratios will result in different values of K, and this application does not impose specific limitations on the embodiments.
[0070] For MDLM_A mode, in addition to the general case where all reference pixels in the reference row (i.e., the adjacent reference pixels corresponding to the top and top right edges) can be used, there are some special cases. These three special cases are introduced below:
[0071] First special case: When the adjacent pixels corresponding to the upper side of the decoding block cannot be used, there are no adjacent reference pixels. The model parameter α is set to 0, and the model parameter β is set to the median value of the second image component, 512. That is, the predicted value of the second image component corresponding to all pixels in the current decoding block is 512.
[0072] Second special case: When the adjacent pixels corresponding to the top edge of the decoding block are usable but the adjacent pixels corresponding to the top right edge are not usable, for the first processing method mentioned above, the length of the reference row (the number of reference pixels on the top edge only) is 8, the first preset ratio is one-quarter, and the value of K is 2. That is, the remaining three-quarters of the reference pixels (i.e., 6 reference pixels) at the right edge position of the multiple adjacent reference points corresponding to the top edge are formed into a second set of adjacent reference pixels to derive model parameters α and β. For the second processing method mentioned above, the length of the top edge (i.e., the number of reference pixels on the top edge) is 8, the first preset ratio is one-half, and the value of K is 4. That is, the remaining half of the reference pixels (i.e., 4 reference pixels) at the right edge position of the multiple adjacent reference points corresponding to the top edge are formed into a second set of adjacent reference pixels to derive model parameters α and β.
[0073] The third special case: When the adjacent pixels corresponding to the upper side and the upper right side of the decoding block can be used, the same first or second processing method as described above is used to construct multiple adjacent reference pixels to derive the model parameters α and β.
[0074] For MDLM_L mode, when all reference pixels in the reference column (i.e., adjacent reference pixels corresponding to the left and lower left edges) are available, the following two processing methods are included:
[0075] The third processing method: Taking the length of the reference column and the corresponding second preset ratio as an example, assuming that the second preset ratio is one-quarter, the side length of the block to be decoded (i.e., the number of reference pixels on the left side) is 8, and the length of the reference column (i.e., the total number of reference pixels on the left side and the lower left side) is 16, then the value of K can be obtained as 4; that is, the remaining three-quarters of the reference pixels (i.e., 12 reference pixels) at the lower edge position of the multiple adjacent reference points corresponding to the left side and the lower left side are used to form a second set of multiple adjacent reference pixels to derive the model parameters α and β.
[0076] The fourth processing method: Taking the length of the left side of the block to be decoded and the corresponding second preset ratio as an example, assuming that the second preset ratio is one-half, the length of the left side of the block to be decoded (i.e. the number of reference pixels on the left side) is 8, and the value of K is also 4; that is, the remaining three-quarters of the reference pixels (i.e., 12 reference pixels) at the lower edge position of the multiple adjacent reference points corresponding to the left side and the lower left side are used to form a second set of multiple adjacent reference pixels to derive the model parameters α and β.
[0077] For example, see Figure 6It illustrates a schematic diagram of a structure for selecting adjacent reference pixels in MDLM_L mode according to an embodiment of this application; as shown Figure 6 As shown, the block to be decoded is a square, and the gray solid circles are used to represent the adjacent reference pixels selected by the block to be decoded. The first image component needs to be downsampled first, so that the downsampled first image component and the second image component have the same resolution. Assuming that the second preset ratio is one-quarter and the length of the reference column (i.e., the total number of reference pixels on the left and lower left sides) is 16, the value of K can be obtained as 4. That is to say, whether it is the first image component or the second image component, the positions of the four consecutive reference pixels are determined from the top edge of the reference column, so that the second plurality of adjacent reference pixels do not include these four reference pixels. The remaining three-quarters of the reference pixels (i.e., 12 reference pixels) at the lower edge position are used to form the second plurality of adjacent reference pixels for the derivation of model parameters α and β.
[0078] It should be noted that the second preset ratio can be not only one-quarter, but also one-eighth, or even one-half; different second preset ratios will result in different values of K, and this application does not impose specific limitations on the embodiments.
[0079] For the MDLM_L mode, in addition to the general case where all reference pixels in the reference column (i.e., the adjacent reference pixels corresponding to the left and lower left sides) can be used, there are some special cases. These three special cases are introduced below:
[0080] First special case: When the adjacent pixel corresponding to the left side of the decoding block cannot be used, there is no adjacent reference pixel. The model parameter α is set to 0, and the model parameter β is set to the median value of the second image component, 512. That is, the predicted value of the second image component corresponding to all pixels in the current decoding block is 512.
[0081] Second special case: When the adjacent pixels corresponding to the left side of the decoding block are usable but the adjacent pixels corresponding to the lower left side are not usable, for the third processing method mentioned above, the length of the reference column (only the number of reference pixels on the left side) is 8, the second preset ratio is one-quarter, and the value of K is 2. That is, the remaining three-quarters of the reference pixels (i.e., 6 reference pixels) at the lower edge position of the multiple adjacent reference points corresponding to the left side are formed into a second set of multiple adjacent reference pixels to derive model parameters α and β. For the fourth processing method mentioned above, the length of the left side (i.e., the number of reference pixels on the left side) is 8, the second preset ratio is one-half, and the value of K is 4. That is, the remaining half of the reference pixels (i.e., 4 reference pixels) at the lower edge position of the multiple adjacent reference points corresponding to the left side are formed into a second set of multiple adjacent reference pixels to derive model parameters α and β.
[0082] The third special case: When the adjacent pixels corresponding to the left side and the adjacent pixels corresponding to the lower left side of the decoding block can be used, the same third or fourth processing method as mentioned above is used to determine multiple adjacent reference pixels to derive the model parameters α and β.
[0083] In some embodiments, for the MDLM_A mode, before determining the positions corresponding to the K reference pixels, the method further includes:
[0084] Starting from the leftmost edge of the reference row, determine the positions corresponding to i consecutive reference pixels to the right;
[0085] Starting from the rightmost edge of the reference row, determine the positions of j consecutive reference pixels to the left; where i is a positive integer greater than or equal to 1 and less than K, and j = Ki.
[0086] In some embodiments, for the MDLM_L mode, before determining the positions corresponding to the K reference pixels, the method further includes:
[0087] Starting from the top edge of the reference column, determine the positions of p consecutive reference pixels downwards;
[0088] Starting from the bottom edge of the reference column, determine the positions of q consecutive reference pixels upwards; where p is a positive integer greater than or equal to 1 and less than K, and q = Kp.
[0089] It should be noted that, regardless of whether it is MDLM_A mode or MDLM_L mode, the second plurality of adjacent reference pixels can exclude a certain number of reference pixels at the start and end positions of the reference row or reference column, thus retaining only the reference pixels in the middle portion of the second plurality of adjacent reference pixels. Here, the values of i and j can be equal or unequal; the values of p and q can be equal or unequal; in practical applications, the values of i, j, p, and q can be specifically set according to the actual situation, and this application embodiment does not impose specific limitations.
[0090] For example, see MDLM_A mode. Figure 7 This illustrates a schematic diagram of another MDLM_A mode for selecting adjacent reference pixels provided in an embodiment of this application; as shown below. Figure 7 As shown, the block to be decoded is square, and the gray solid circles are used to represent the selected adjacent reference pixels of the block to be decoded. The first image component needs to be downsampled first, so that the downsampled first image component has the same resolution as the second image component. Assuming the first preset ratio is one-quarter, and the length of the reference row (i.e., the total number of reference pixels on the top and upper right sides) is 16, the value of K can be obtained as 4. Assuming that the number of pixels not included in the second set of adjacent reference pixels at both ends of the reference row is equal, even if one-eighth of the reference pixels at each end of the reference row are not included in the second set of adjacent reference pixels... In multiple adjacent reference pixels, i is 2 and j is also 2. Therefore, for both the first and second image components, the positions corresponding to two consecutive reference pixels are determined to the right from the leftmost edge of the reference row, and the positions corresponding to two consecutive reference pixels are determined to the left from the rightmost edge of the reference row. These four reference pixels are then excluded from the second set of multiple adjacent reference pixels. Finally, the remaining three-quarters of the reference pixels in the middle (i.e., 12 reference pixels) are used to form the second set of multiple adjacent reference pixels for the derivation of model parameters α and β.
[0091] For example, see MDLM_L mode. Figure 8 This illustrates a schematic diagram of another MDLM_L mode for selecting adjacent reference pixels provided in an embodiment of this application; as shown below. Figure 8As shown, the block to be decoded is a square, and the gray solid circles are used to represent the selected adjacent reference pixels of the block to be decoded. The first image component needs to be downsampled first, so that the downsampled first image component has the same resolution as the second image component. Assuming the second preset ratio is one-quarter, and the length of the reference column (i.e., the total number of reference pixels on the left and lower left sides) is 16, the value of K can be obtained as 4. Assuming that the number of pixels not included in the second set of adjacent reference pixels at both ends of the reference column is equal, even if one-eighth of the reference pixels at each end of the reference column are not included in the second set of adjacent reference pixels... In multiple adjacent reference pixels, that is, the value of p is 2 and the value of q is also 2. Therefore, for both the first and second image components, the positions corresponding to two consecutive reference pixels are determined downward from the top edge of the reference column, and the positions corresponding to two consecutive reference pixels are determined upward from the bottom edge of the reference column. Then, these four reference pixels are not included in the second multiple adjacent reference pixels. Finally, the remaining three-quarters of the reference pixels in the middle position (i.e., 12 reference pixels) are used to form the second multiple adjacent reference pixels for the derivation of model parameters α and β.
[0092] Understandably, to reduce redundancy between the first and second image components, an inter-component linear model prediction mode is used in VTM. For two inter-component linear model prediction modes, LM mode and MDLM mode, the second image component can be predicted using the reconstructed values of the first image component within the same decoding block, for example, using the prediction model shown in equation (1):
[0093] Pred C [i,j]=α·Rec L [i,j]+β(1)
[0094] Where i and j represent the position coordinates of pixels in the decoding block, i represents the horizontal direction, j represents the vertical direction, and Pred C [i,j] represents the predicted value of the second image component corresponding to the pixel with position coordinates [i,j] in the decoded block, Rec L [i,j] represents the reconstructed value of the first image component corresponding to the pixel with position coordinates [i,j] in the same decoding block (after downsampling), and α and β are the model parameters of the above prediction model.
[0095] Based on the second set of neighboring reference pixels obtained above, the second model parameters α and β can be constructed in various ways. These can be constructed using a regression method with least squares as the evaluation criterion, or using a maximum and minimum value method, or even other methods. The following descriptions will use the regression method based on least squares and the maximum and minimum value method as examples.
[0096] In VVC, α and β can be derived using the regression error based on least squares by using the adjacent reference values of the first and second image components corresponding to the reference pixels in the second plurality of adjacent reference pixels. As shown in the following equation (2):
[0097]
[0098] Where L(n) represents the adjacent reference value of the first image component corresponding to the reference pixel in the second plurality of adjacent reference pixels, C(n) represents the adjacent reference value of the second image component corresponding to the reference pixel in the second plurality of adjacent reference pixels, and N is the number of pixels in the second plurality of adjacent reference pixels.
[0099] In VVC, the model parameters α and β can also be derived by searching for the largest and smallest first image component neighboring reference values among the second and multiple neighboring reference pixels, based on the principle of "two points determine a line", as shown in the following equation (3):
[0100]
[0101] Among them, L max and L min C represents the maximum and minimum values found among the adjacent reference values of the first image component corresponding to the second or more adjacent reference pixels. max and C min L represents max and L min The adjacent reference value of the second image component corresponding to the reference pixel at that location. See also Figure 9 This illustration shows a schematic diagram of a prediction model constructed based on the maximum and minimum values of a decoding block according to an embodiment of this application; wherein, the horizontal axis represents the adjacent reference value of the first image component corresponding to the decoding block, and the vertical axis represents the adjacent reference value of the second image component corresponding to the decoding block, according to L max and L min And C max and C min The model parameters α and β can be calculated using equation (3), and the constructed prediction model is C = α·L + β. Here, L represents the reconstructed value of the first image component corresponding to one pixel in the decoding block, and C represents the predicted value of the second image component corresponding to that pixel in the decoding block.
[0102] In some embodiments, the second plurality of adjacent reference pixels perform predictive decoding on the block to be decoded, including:
[0103] The first model parameters are determined based on the second set of adjacent reference pixels.
[0104] A first prediction model is established based on the first model parameters; wherein, the first prediction model is used to characterize the prediction relationship between the first image component and the second image component corresponding to each pixel in the block to be decoded;
[0105] Based on the first prediction model, predictive decoding is performed on the block to be decoded.
[0106] It should be noted that after obtaining the second or more adjacent reference pixels, the first model parameters α1 and β1 can be constructed according to equation (2) or equation (3); then, the first prediction model can be established according to equation (1); based on the first prediction model, the block to be decoded can be predicted and decoded. Since the unimportant reference pixels corresponding to the starting position have been removed from the second or more adjacent reference pixels, not only is the complexity of the search reduced, but the model parameters constructed from the second or more adjacent reference pixels are also more accurate, thereby improving the decoding prediction performance and increasing the compression efficiency of the video image, thus reducing the bit rate.
[0107] Furthermore, for the second plurality of adjacent reference pixels obtained above, suitable reference pixels can be determined at equal or unequal intervals according to the sampling interval to form a third plurality of adjacent reference pixels; since the number of pixels in the third plurality of adjacent reference pixels is less, the complexity of the search can be further reduced.
[0108] In some embodiments, before performing predictive decoding on the block to be decoded based on the second plurality of adjacent reference pixels, the method further includes:
[0109] Based on the second plurality of adjacent reference pixels, the position of the reference pixel is determined according to a preset number of samples;
[0110] Based on the position of the reference pixel, a reference pixel corresponding to the position of the reference pixel is determined from the second plurality of adjacent reference pixels, so as to obtain a third plurality of adjacent reference pixels including the determined reference pixel.
[0111] In some embodiments, the position of the reference pixel among a second plurality of adjacent reference pixels is determined according to a sampling interval.
[0112] In some embodiments, the sampling interval is an equal sampling interval, and determining the position of the reference pixel among the second plurality of adjacent reference pixels according to the sampling interval includes:
[0113] The position of the reference pixel among the second plurality of adjacent reference pixels is determined by uniformly sampling the second plurality of adjacent reference pixels according to the equal sampling interval, wherein the following expression is satisfied:
[0114] (startPosN+pos*pickStepN)
[0115] Wherein, startPosN represents the starting position of the reference pixel, pos represents the determination process variable from position 0 to position cntN-1, the value of pos ranges from 0 to cntN-1, cntN represents the preset number of samples, and pickStepN represents the equal sampling interval.
[0116] In some embodiments, the sampling interval is an unequal sampling interval, and determining the position of the reference pixel among the second plurality of adjacent reference pixels according to the sampling interval includes:
[0117] The position of the reference pixel in the second plurality of adjacent reference samples is determined by non-uniformly sampling the second plurality of adjacent reference pixels according to the unequal sampling interval.
[0118] Further, the second plurality of adjacent reference pixels perform predictive decoding on the block to be decoded, including:
[0119] Based on the third plurality of adjacent reference pixels, the second model parameters are determined;
[0120] A second prediction model is established based on the second model parameters; wherein, the second prediction model is used to characterize the prediction relationship between the first image component and the second image component corresponding to each pixel in the block to be decoded;
[0121] Based on the second prediction model, predictive decoding is performed on the block to be decoded.
[0122] It should be noted that the preset sampling number is a number of reference pixels pre-set according to actual needs. These reference pixels at the determined reference pixel positions can be obtained by uniformly sampling a plurality of adjacent reference pixels at a preset sampling interval, or by non-uniformly sampling a plurality of adjacent reference pixels at different preset sampling intervals. In practical applications, the specific settings are made according to the actual situation, and this application embodiment does not impose specific limitations.
[0123] In this way, based on the second or more adjacent reference pixels, a third or more adjacent reference pixels can be obtained through uniform or non-uniform sampling. Then, based on the third or more adjacent reference pixels and equation (2) or (3), the second model parameters α2 and β2 can be constructed, and the second prediction model can be established according to equation (1). Based on the second prediction model, the block to be decoded can be predicted and decoded. Since not only are unimportant reference pixels near the starting position removed from the third or more adjacent reference pixels, but also importance and dispersion are taken into account, the number of pixels in the third or more adjacent reference pixels is reduced, thereby further reducing the complexity of the search. This makes the model parameters constructed from the second or more adjacent reference pixels more accurate, better improving the decoding prediction performance, and thus reducing the bit rate.
[0124] In some embodiments, the block to be decoded includes a square decoding block or a non-square decoding block. That is, the embodiments of this application can be applied to both square decoding blocks and non-square decoding blocks, and the embodiments of this application are not specifically limited.
[0125] The above embodiments provide a decoding prediction method. By acquiring reference pixels adjacent to the block to be decoded, a first plurality of adjacent reference pixels are obtained. These first plurality of adjacent reference pixels include one or more reference pixels in a reference row or column adjacent to the block to be decoded. Starting from the beginning position of the reference row or column, the positions corresponding to K reference pixels are determined, where K is a positive integer greater than or equal to 1. Based on the determined positions corresponding to the K reference pixels, a second plurality of adjacent reference pixels are obtained, where the second plurality of adjacent reference pixels include reference pixels other than the K reference pixels in the first plurality of adjacent reference pixels. Based on the second plurality of adjacent reference pixels, the block to be decoded is predicted and decoded. By constructing the second plurality of adjacent reference pixels, the number of reference pixels is reduced, thereby reducing the search complexity, improving the prediction performance of video image decoding, and ultimately reducing the bit rate.
[0126] Based on the foregoing Figure 4 For inventive concepts with the same technical solutions shown, see [link to inventive concept]. Figure 10 This illustration shows a schematic diagram of the composition of a decoding prediction device 100 provided in an embodiment of this application. The decoding prediction device 100 may include: an acquisition unit 1001, a determination unit 1002, an exclusion unit 1003, and a prediction unit 1004, wherein...
[0127] The acquisition unit 1001 is configured to acquire reference pixels adjacent to the block to be decoded, thereby obtaining a first plurality of adjacent reference pixels; wherein, the first plurality of adjacent reference pixels includes one or more reference pixels in a reference row or reference column adjacent to the block to be decoded.
[0128] The determining unit 1002 is configured to determine the positions corresponding to K reference pixels, starting from the starting position of the reference row or the reference column; where K is a positive integer greater than or equal to 1.
[0129] The exclusion unit 1003 is configured to obtain a second plurality of adjacent reference pixels based on the positions corresponding to the determined K reference pixels, wherein the second plurality of adjacent reference pixels includes reference pixels other than the K reference pixels in the first plurality of adjacent reference pixels.
[0130] The prediction unit 1004 is configured to predict and decode the block to be decoded based on the second plurality of adjacent reference pixels.
[0131] In the above scheme, the prediction mode adopted by the block to be decoded is the multidirectional linear model prediction (MDLM) mode, which includes the MDLM_A mode and the MDLM_L mode.
[0132] In the above scheme, see [reference] Figure 10 The decoding prediction device 100 further includes a calculation unit 1005, configured to calculate the value of K for the MDLM_A mode based on the length of the reference row and a first preset ratio, wherein the first preset ratio is a preset ratio corresponding to the reference row; or, for the MDLM_L mode, calculate the value of K based on the length of the reference column and a second preset ratio, wherein the second preset ratio is a preset ratio corresponding to the reference column.
[0133] In the above scheme, the calculation unit 1005 is further configured to calculate the value of K based on the length of the upper side of the block to be decoded and a first preset ratio for the MDLM_A mode; or, for the MDLM_L mode, calculate the value of K based on the length of the left side of the block to be decoded and a second preset ratio.
[0134] In the above scheme, the determining unit 1002 is specifically configured to, for the MDLM_A mode, determine the positions corresponding to the K consecutive reference pixels starting from the leftmost edge of the reference row and moving to the right; or, for the MDLM_L mode, determine the positions corresponding to the K consecutive reference pixels starting from the top edge of the reference column and moving downwards.
[0135] In the above scheme, for the MDLM_A mode, the determining unit 1002 is further configured to determine the positions corresponding to i consecutive reference pixels to the right starting from the leftmost edge of the reference row; and to determine the positions corresponding to j consecutive reference pixels to the left starting from the rightmost edge of the reference row; where i is a positive integer greater than or equal to 1 and less than K, and j = Ki.
[0136] In the above scheme, for the MDLM_L mode, the determining unit 1002 is further configured to determine the positions corresponding to p consecutive reference pixels starting from the top edge of the reference column downwards; and to determine the positions corresponding to q consecutive reference pixels starting from the bottom edge of the reference column upwards; wherein p is a positive integer greater than or equal to 1 and less than K, and q = Kp.
[0137] In the above scheme, the determining unit 1002 is further configured to determine the first model parameters based on a second plurality of adjacent reference pixels;
[0138] The prediction unit 1004 is specifically configured to establish a first prediction model based on the first model parameters; wherein the first prediction model is used to characterize the prediction relationship between the first image component and the second image component corresponding to each pixel in the block to be decoded; and to perform prediction decoding on the block to be decoded based on the first prediction model.
[0139] In the above scheme, see [reference] Figure 10 The decoding prediction device 100 further includes a selection unit 1006, configured to determine the position of a reference pixel to be selected based on the second plurality of adjacent reference pixels according to a preset number of samples; and to select a reference pixel corresponding to the position of the reference pixel to be selected from the second plurality of adjacent reference pixels based on the position of the reference pixel to be selected, and to form a third plurality of adjacent reference pixels by selecting the selected reference pixels.
[0140] In the above scheme, the determining unit 1002 is further configured to determine the second model parameters based on the third plurality of adjacent reference pixels;
[0141] The prediction unit 1004 is specifically configured to establish a second prediction model based on the second model parameters; wherein the second prediction model is used to characterize the prediction relationship between the first image component and the second image component corresponding to each pixel in the block to be decoded; and to perform prediction decoding on the block to be decoded based on the second prediction model.
[0142] Understandably, in this embodiment, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular component. Furthermore, the components in this embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional module.
[0143] If the integrated unit is implemented as a software functional module and 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 the 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 to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0144] Therefore, this embodiment provides a computer storage medium storing a decoding prediction program, which, when executed by at least one processor, implements the aforementioned... Figure 4 The steps of the method described in the technical solution shown.
[0145] Based on the composition of the aforementioned decoding prediction device 100 and the computer storage medium, see [link to documentation]. Figure 11 This illustrates a specific hardware structure example of the decoding prediction device 100 provided in this application embodiment, which may include: a network interface 1101, a memory 1102, and a processor 1103; the various components are coupled together through a bus system 1104. It is understood that the bus system 1104 is used to implement the connection and communication between these components. In addition to a data bus, the bus system 1104 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 11 The various buses are all labeled as bus system 1104. Among them, network interface 1101 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0146] Memory 1102 is used to store computer programs that can run on processor 1103;
[0147] Processor 1103, when running the computer program, performs the following:
[0148] Obtain the reference pixels adjacent to the block to be decoded to obtain the first plurality of adjacent reference pixels; wherein, the first plurality of adjacent reference pixels includes one or more reference pixels in the reference row or reference column adjacent to the block to be decoded;
[0149] Starting from the beginning of the reference row or the reference column, determine the positions corresponding to K reference pixels; where K is a positive integer greater than or equal to 1.
[0150] Based on the positions corresponding to the determined K reference pixels, a second plurality of adjacent reference pixels are obtained, wherein the second plurality of adjacent reference pixels include reference pixels other than the K reference pixels in the first plurality of adjacent reference pixels;
[0151] Based on the second plurality of adjacent reference pixels, predictive decoding is performed on the block to be decoded.
[0152] It is understood that the memory 1102 in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be 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 DRAM (SDRAM), Double Data Rate Synchronous DRAM (DDRSDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The memory 1102 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0153] The processor 1103 may be an integrated circuit chip with signal processing capabilities. In implementation, each step of the above method can be completed by the integrated logic circuitry in the hardware of the processor 1103 or by instructions in software form. The processor 1103 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, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules may reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in memory 1102. Processor 1103 reads the information in memory 1102 and completes the steps of the above method in conjunction with its hardware.
[0154] It is understood that the embodiments described herein can be implemented in 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 herein, or combinations thereof.
[0155] For software implementation, the techniques described herein can be achieved through modules (e.g., procedures, functions, etc.) that perform the functions described herein. The software code can be stored in memory and executed by a processor. The memory can be implemented within the processor or externally.
[0156] Alternatively, as another embodiment, the processor 1103 is further configured to perform the aforementioned actions when running the computer program. Figure 4 The steps of the method described in the technical solution shown.
[0157] It should be noted that the technical solutions described in the embodiments of this application can be combined arbitrarily without conflict.
[0158] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
[0159] Industrial applicability
[0160] In this embodiment, firstly, the reference pixels adjacent to the block to be decoded are obtained to obtain a first plurality of adjacent reference pixels; wherein, the first plurality of adjacent reference pixels include one or more reference pixels in the reference row or reference column adjacent to the block to be decoded; then, starting from the starting position of the reference row or reference column, the positions corresponding to K reference pixels are determined; wherein, K is a positive integer greater than or equal to 1; then, based on the determined positions corresponding to the K reference pixels, a second plurality of adjacent reference pixels are obtained, wherein, the second plurality of adjacent reference pixels include reference pixels other than the K reference pixels in the first plurality of adjacent reference pixels; finally, based on the second plurality of adjacent reference pixels, the block to be decoded is predicted and decoded; since unimportant reference pixels close to the starting position have been removed from the second plurality of adjacent reference pixels, the model parameters constructed using the second plurality of adjacent reference pixels are more accurate, improving the decoding prediction performance; in addition, the number of pixels in the second plurality of adjacent reference pixels is small, which can reduce the complexity of the search and improve the compression efficiency of the video image, thereby reducing the bit rate.
Claims
1. A prediction decoding method, wherein, The method includes: Obtain the reference sample points adjacent to the block to be decoded to obtain the first plurality of adjacent reference sample points; wherein, the first plurality of adjacent reference sample points include one or more reference sample points in the reference row or reference column adjacent to the block to be decoded; Starting from the beginning position of the reference row or the reference column, determine the positions corresponding to K reference sample points; where K is a positive integer greater than or equal to 1, wherein, for the reference row, the value of K is calculated based on the length of the upper side of the block to be decoded and a first preset ratio; or, for the reference column, the value of K is calculated based on the length of the left side of the block to be decoded and a second preset ratio. Based on the positions corresponding to the determined K reference sample points, a second plurality of adjacent reference sample points are obtained, wherein the second plurality of adjacent reference sample points include reference sample points other than the K reference sample points in the first plurality of adjacent reference sample points. Based on the second plurality of adjacent reference sample points, a third plurality of adjacent reference sample points are obtained, wherein the number of reference sample points included in the third plurality of adjacent reference sample points is less than the number of reference sample points included in the second plurality of adjacent reference sample points. Based on the third plurality of adjacent reference sample points, predictive decoding is performed on the block to be decoded.
2. The method according to claim 1, wherein, For the reference row, before determining the positions corresponding to the K reference sample points, the method further includes: Starting from the leftmost edge of the reference row, determine the positions corresponding to i consecutive reference sample points to the right; Starting from the rightmost edge of the reference row, determine the positions corresponding to j consecutive reference sample points to the left; where i is a positive integer greater than or equal to 1 and less than K, and j = Ki.
3. The method according to claim 1, wherein, For the reference column, before determining the positions corresponding to the K reference sample points, the method further includes: Starting from the top edge of the reference column, determine the positions corresponding to p consecutive reference sample points downwards; Starting from the bottom edge of the reference column, determine the positions corresponding to q consecutive reference sample points upwards; where p is a positive integer greater than or equal to 1 and less than K, and q = Kp.
4. The method according to any one of claims 1 to 3, characterized in that, Based on the second plurality of adjacent reference sample points, the third plurality of adjacent reference sample points are obtained as follows: Based on the second plurality of adjacent reference sample points, the positions of the reference sample points are determined according to a preset number of samples; Based on the location of the reference sample point, a reference sample point corresponding to the location of the reference sample point is determined from the second plurality of adjacent reference sample points, so as to obtain a third plurality of adjacent reference sample points including the determined reference sample point.
5. The method according to claim 4, wherein, Determining the location of reference sample points according to the preset number of samples includes: The position of the reference sample point among the second plurality of adjacent reference sample points is determined according to the sampling interval.
6. The method according to claim 5, wherein, The sampling interval is an equal sampling interval, and determining the position of the reference sample point among the second plurality of adjacent reference sample points according to the sampling interval includes: The position of the reference sample point among the second plurality of adjacent reference sample points is determined by uniformly sampling the second plurality of adjacent reference sample points according to the equal sampling interval, wherein the following expression is satisfied: in, startPosN This indicates the starting position of the reference sample point. pos The value ranges from 0 to cntN-1 Integers, variables cntN This indicates the preset number of samples. pickStepN This indicates the equal sampling interval.
7. The method according to claim 5, wherein, The sampling interval is an unequal sampling interval, and determining the position of the reference sample point among the second plurality of adjacent reference sample points according to the sampling interval includes: The position of the reference sample point among the second plurality of adjacent reference sample points is determined by non-uniformly sampling the second plurality of adjacent reference sample points according to the unequal sampling intervals.
8. The method according to claim 1, wherein, Each reference sample point corresponds to a brightness position, and the adjacent reference sample points include the upper adjacent sample point or the left adjacent reference sample point.
9. The method according to claim 1, wherein, The second plurality of adjacent reference sample points start from the (K+1)th reference sample point among the first plurality of adjacent reference sample points.
10. A predictive decoding apparatus, wherein, The predictive decoding device includes a processor and a memory, the memory being used to store a computer program, which, when executed by the processor, can be executed by the processor to: Obtain the reference sample points adjacent to the block to be decoded to obtain the first plurality of adjacent reference sample points; wherein, the first plurality of adjacent reference sample points include one or more reference sample points in the reference row or reference column adjacent to the block to be decoded; Starting from the beginning position of the reference row or the reference column, determine the positions corresponding to K reference sample points; where K is a positive integer greater than or equal to 1, wherein, for the reference row, the value of K is calculated based on the length of the upper side of the block to be decoded and a first preset ratio; or, for the reference column, the value of K is calculated based on the length of the left side of the block to be decoded and a second preset ratio. Based on the positions corresponding to the determined K reference sample points, a second plurality of adjacent reference sample points are obtained, wherein the second plurality of adjacent reference sample points include reference sample points other than the K reference sample points in the first plurality of adjacent reference sample points. Based on the second plurality of adjacent reference sample points, a third plurality of adjacent reference sample points are obtained, wherein the number of reference sample points included in the third plurality of adjacent reference sample points is less than the number of reference sample points included in the second plurality of adjacent reference sample points. Based on the third plurality of adjacent reference sample points, predictive decoding is performed on the block to be decoded.
11. The predictive decoding apparatus according to claim 10, wherein, In obtaining the third plurality of adjacent reference sample points based on the second plurality of adjacent reference sample points, the processor is configured to: Based on the second plurality of adjacent reference sample points, the positions of the reference sample points are determined according to a preset number of samples; Based on the location of the reference sample point, a reference sample point corresponding to the location of the reference sample point is determined from the second plurality of adjacent reference sample points, so as to obtain a third plurality of adjacent reference sample points including the determined reference sample point.
12. A predictive coding method, wherein, The method includes: Obtain the reference sample points adjacent to the block to be encoded to obtain the first plurality of adjacent reference sample points; wherein, the first plurality of adjacent reference sample points include one or more reference sample points in the reference row or reference column adjacent to the block to be encoded; Starting from the beginning position of the reference row or the reference column, determine the positions corresponding to K reference sample points; where K is a positive integer greater than or equal to 1, wherein, for the reference row, the value of K is calculated based on the length of the upper side of the block to be encoded and a first preset ratio; or, for the reference column, the value of K is calculated based on the length of the left side of the block to be encoded and a second preset ratio. Based on the positions corresponding to the determined K reference sample points, a second plurality of adjacent reference sample points are obtained, wherein the second plurality of adjacent reference sample points include reference sample points other than the K reference sample points in the first plurality of adjacent reference sample points. Based on the second plurality of adjacent reference sample points, a third plurality of adjacent reference sample points are obtained, wherein the number of reference sample points included in the third plurality of adjacent reference sample points is less than the number of reference sample points included in the second plurality of adjacent reference sample points. Based on the third plurality of adjacent reference sample points, predictive coding is performed on the block to be coded.
13. A method for transmitting a code stream, characterized in that, include: The predictive coding method of claim 12 is used to generate a bitstream and transmit the bitstream.