Decoding prediction method, apparatus and computer storage medium
By constructing a subset of adjacent reference pixels, the problem of high search complexity in existing technologies is solved, improving the decoding and prediction performance of video images and reducing the bit rate.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2018-12-25
- Publication Date
- 2026-04-14
AI Technical Summary
In video coding, the construction of adjacent reference pixel subsets in existing technologies is unreasonable, resulting in high search complexity and reduced decoding and prediction performance of video images.
By acquiring at least one edge-adjacent reference pixel of the block to be decoded, a reference point is determined, and the position of the selected reference pixel is determined according to a preset number of samples, forming a subset of adjacent reference pixels for predictive decoding of video images.
It reduces search complexity, improves video image decoding and prediction performance, and reduces bit rate.
Smart Images

Figure CN116456084B_ABST
Abstract
Description
[0001] Case Analysis
[0002] This application is a divisional application of Chinese Patent Application No. 201880095849.8, entitled "Decoding Prediction Method, Apparatus and Computer Storage Medium", which entered the Chinese national phase based on PCT international patent application PCT / CN2018 / 123657 filed on December 25, 2018. Technical Field
[0003] 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
[0004] 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).
[0005] 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. The Joint Exploration Test Model (JEM) is a general reference software platform upon which different coding tools are validated. In April 2018, JVET officially named the next-generation video coding standard Versatile Video Coding (VVC), with its corresponding test model being VTM. A linear model-based codec prediction method has been integrated into the JEM and VTM reference software. This linear model predicts the chrominance components from the luminance components of the current block to be decoded. However, the subset of neighboring reference pixels constructed from adjacent reference pixels is not ideal when building the linear model, leading to high search complexity and reduced decoding prediction performance of video images. Summary of the Invention
[0006] In view of this, embodiments of this application aim to provide a decoding prediction method, apparatus, and computer storage medium. Since the adjacent reference pixels in the adjacent reference pixel subset not only take into account both importance and dispersion, but also have a small number of pixels in the adjacent reference pixel subset, the complexity of the search is reduced, the prediction performance of video image decoding is improved, and the bit rate is reduced.
[0007] The technical solution of this application embodiment can be implemented as follows:
[0008] In a first aspect, embodiments of this application provide a decoding prediction method, the method comprising:
[0009] Obtain reference pixels that are adjacent to at least one edge of the block to be decoded, and obtain the first set of adjacent reference pixels;
[0010] A reference point is determined from the at least one edge, and the position of the reference pixel point to be selected corresponding to the at least one edge is determined according to a preset number of samples;
[0011] Based on the position of the reference pixel to be selected, a reference pixel corresponding to the position of the reference pixel to be selected is selected from the first set of adjacent reference pixels, and the selected reference pixels are used to form a subset of adjacent reference pixels.
[0012] Based on the adjacent reference pixel subset, predictive decoding is performed on the block to be decoded.
[0013] Secondly, embodiments of this application provide a decoding prediction apparatus, which includes an acquisition unit, a determination unit, a selection unit, and a decoding unit.
[0014] The acquisition unit is configured to acquire reference pixel points adjacent to at least one edge of the block to be decoded, thereby obtaining a first set of adjacent reference pixels;
[0015] The determining unit is configured to determine a reference point from the at least one edge, and determine the position of the candidate reference pixel point corresponding to the at least one edge according to a preset number of samples.
[0016] The selection unit is configured to select a reference pixel corresponding to the position of the reference pixel to be selected from the first set of adjacent reference pixels based on the position of the reference pixel to be selected, and to form an adjacent reference pixel subset by selecting the reference pixels.
[0017] The decoding unit is configured to perform predictive decoding on the block to be decoded based on the adjacent reference pixel subset.
[0018] Thirdly, embodiments of this application provide a decoding prediction device, which includes: a memory and a processor;
[0019] The memory is used to store computer programs that can run on the processor;
[0020] The processor is configured to perform the steps of the method as described in the first aspect when running the computer program.
[0021] Fourthly, 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.
[0022] This application provides a decoding prediction method, apparatus, and computer storage medium. First, reference pixels adjacent to at least one edge of the block to be decoded are obtained, forming a first set of adjacent reference pixels. Then, a reference point is determined from the at least one edge, and the position of the candidate reference pixel corresponding to the at least one edge is determined according to a preset sampling number. Next, based on the position of the candidate reference pixel, reference pixels corresponding to the position of the candidate reference pixel are selected from the first set of adjacent reference pixels, forming a subset of adjacent reference pixels. Finally, based on the subset of adjacent reference pixels, the block to be decoded is predicted and decoded. Because the selection of adjacent reference pixels in this subset takes into account both importance and dispersion, the model parameters constructed based on this subset are more accurate, which can improve the prediction performance of video image decoding. Moreover, the number of pixels in this subset is relatively small, thereby reducing the search complexity, improving the prediction performance of video image decoding, and thus reducing the bit rate. Attached Figure Description
[0023] Figures 1A to 1C These are schematic diagrams illustrating the structure of video image sampling formats in relevant technical solutions;
[0024] Figure 2A and Figure 2B These are sampling diagrams of the adjacent reference values of the first image component and the adjacent reference values of the second image component in the decoding block of the relevant technical solutions.
[0025] Figure 3 A schematic diagram of the structure of the prediction model constructed by the decoding block based on the maximum and minimum values in the relevant technical solution;
[0026] Figure 4A and Figure 4B These are schematic diagrams illustrating the structure of selecting adjacent reference pixels for a square decoding block and a non-square decoding block, respectively, provided for relevant technical solutions.
[0027] Figure 5A and Figure 5BThese are schematic diagrams illustrating a traditional technical solution and the structure of selecting adjacent reference pixels in the L0138 proposal, respectively, for the relevant technical solutions.
[0028] Figure 6 This application provides a schematic block diagram of a video encoding system.
[0029] Figure 7 This application provides a schematic block diagram of a video decoding system according to an embodiment of the present application.
[0030] Figure 8 A flowchart illustrating a decoding prediction method provided in an embodiment of this application;
[0031] Figure 9 This is a schematic diagram of a structure for selecting a subset of adjacent reference pixels corresponding to the upper side edge of a block to be decoded, provided in an embodiment of this application.
[0032] Figure 10 This application provides a schematic diagram of a structure for selecting a subset of adjacent reference pixels corresponding to the left side of a block to be decoded, as provided in an embodiment of the present application.
[0033] Figure 11 A schematic diagram illustrating the structure for selecting a subset of adjacent reference pixels corresponding to the upper side edge of a block to be decoded, as provided in an embodiment of this application.
[0034] Figure 12 A schematic diagram illustrating another structural approach for selecting a subset of adjacent reference pixels corresponding to the upper side edge of a block to be decoded, as provided in an embodiment of this application.
[0035] Figure 13 A schematic diagram illustrating another structural approach for selecting a subset of adjacent reference pixels corresponding to the upper side edge of a block to be decoded, as provided in an embodiment of this application.
[0036] Figure 14 A schematic diagram illustrating another structural approach for selecting a subset of adjacent reference pixels corresponding to the upper side edge of a block to be decoded, as provided in an embodiment of this application.
[0037] Figure 15 This is a schematic diagram of the composition structure of a decoding prediction device provided in an embodiment of this application;
[0038] Figure 16 This is a schematic diagram of the specific hardware structure of a decoding prediction device provided in an embodiment of this application. Detailed Implementation
[0039] 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.
[0040] 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.
[0041] 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:
[0042] 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.
[0043] 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.
[0044] 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.
[0045] 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.
[0046] In the next-generation video coding standard H.266, to further improve encoding and decoding performance, cross-component prediction (CCP) has been extended and improved, introducing cross-component linear model prediction (CCLM). In H.266, CCLM implements predictions between a first image component and a second image component, between a first image component and a third image component, and between the second and third image components. The following description uses the prediction from the first image component to the second image component as an example; however, the technical solutions of this application embodiment can also be applied to the prediction of other image components.
[0047] Understandably, in order to reduce redundancy between the first and second image components, the prediction mode of CCLM is used in VTM. In this case, the first and second image components belong to the same decoding block, and the second image component is predicted based on the reconstructed value of the first image component in the same decoding block, for example, using the prediction model shown in Equation (1):
[0048] Pred C [i,j]=α·Rec L [i,j]+β (1)
[0049] 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.
[0050] There are various ways to construct the model parameters α and β. These can be constructed using a regression method based on least squares, a method based on maximum and minimum values, or even other methods. This application does not specifically limit these methods. The following descriptions will use the regression method based on least squares and the method based on maximum and minimum values as examples.
[0051] In VVC, a regression-based method for constructing model parameters based on least squares was initially accepted. Specifically, the parameters can be derived by minimizing the regression error between the first and second image component neighboring reference values around the decoded block, as shown in equation (2) below:
[0052]
[0053] Where L(n) represents the adjacent reference values of the first image component corresponding to the downsampled left and top edges, C(n) represents the adjacent reference values of the second image component corresponding to the left and top edges, and N is the side length of the second image component decoding block, n = 1, 2, ..., 2N. See also Figure 2A and Figure 2B The diagrams show sampling schematics of the first image component adjacent reference value and the second image component adjacent reference value in the decoding block of the relevant technical solutions; wherein, in Figure 2A In the diagram, a larger, bolded box is used to highlight the first image component decoding block 21, while a solid gray circle is used to indicate the adjacent reference value L(n) of the first image component decoding block 21; Figure 2B In the middle, the larger, bold box is used to highlight the second image component decoding block 22, while the gray solid circle is used to indicate the adjacent reference value C(n) of the second image component decoding block 22. Figure 2A The diagram shows a first image component decoding block 21 of size 2N×2N. For a 4:2:0 format video image, the size of the second image component corresponding to a 2N×2N first image component is N×N, such as... Figure 2B As shown in 22; that is to say, Figure 2A and Figure 2B This is a schematic diagram of a decoding block obtained by sampling the first image component and the second image component separately for the same decoding block.
[0054] In VVC, a simplified method for deriving model parameters has recently been adopted. Specifically, the model parameters can be derived by searching for the largest and smallest neighboring reference values of the first image component, based on the principle of "two points determine a line", as shown in the following equation (3):
[0055]
[0056] 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 downsampled left and top edges. 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 the corresponding position. See also Figure 3 It illustrates a schematic diagram of the structure of the decoding block constructing a prediction model based on the maximum and minimum values in the relevant technical solution; where the horizontal axis represents the adjacent reference value of the first image component of the decoding block, and the vertical axis represents the adjacent reference value of the second image component of the decoding block, according to L max and L min And Cmax 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.
[0057] There are several cases in the existing technology for constructing the set of adjacent reference pixels in CCLM, which will be described separately below.
[0058] (a) Distinguishing by the shape of the decoded block
[0059] See Figure 4A It illustrates a schematic diagram of a square decoding block selecting adjacent reference pixels provided by a related technical solution; such as Figure 4A As shown, the decoding block is a square decoding block, and all adjacent pixels corresponding to the left and top edges of the decoding block can be used as reference pixels. The first image component needs to be downsampled so that the downsampled first image component has the same resolution as the second image component. Figure 4A In the diagram, the gray solid circles are used to represent the adjacent reference pixels selected by the square decoding block.
[0060] See Figure 4B It illustrates a schematic diagram of a non-square decoding block selecting adjacent reference pixels provided by a related technical solution; such as Figure 4B As shown, this decoding block is a non-square decoding block, with unequal width and height. On one hand, the first image component needs to be downsampled so that it has the same resolution as the second image component. On the other hand, the adjacent pixels corresponding to the longer side of the decoding block need to be further downsampled so that the number of adjacent reference pixels on the longer side is equal to the number of adjacent reference pixels on the shorter side. Figure 4B In the diagram, the gray solid circles are used to represent the adjacent reference pixels selected for non-square decoding blocks.
[0061] (b) Distinguish based on the presence of adjacent pixels corresponding to the left or top edge of the decoded block.
[0062] When the adjacent pixels corresponding to the left and top edges of the decoding block can be used, the pixels in the row adjacent to the top edge and the adjacent pixels in the column adjacent to the left edge can be used as adjacent reference pixels.
[0063] When only one of the adjacent pixels corresponding to the left or top edge of the decoding block can be used, the adjacent pixel corresponding to the valid edge is used as the adjacent reference pixel.
[0064] When the adjacent pixels corresponding to the left and top edges of the decoding block are unusable, 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 decoding block is 512.
[0065] It should be noted that, assuming N is defined as the length of the short side of the second image component decoding block, then when the adjacent pixels corresponding to the left and top sides of the decoding block are both usable, there are a total of 2N adjacent reference pixels that can be used in the CCLM. Furthermore, unless otherwise specified, the following description assumes that the adjacent pixels corresponding to the left and top sides of the decoding block are both usable.
[0066] (c) Scheme of adjacent reference pixel subset (reduction)
[0067] In calculating the model parameters of CCLM, the computational complexity is directly proportional to the number of neighboring reference pixels used in CCLM. Therefore, to reduce computational complexity, JVET Proposal L0138, presented at its 12th meeting, proposes a technique to reduce the number of neighboring reference pixels used in CCLM based on the size of the second image component block corresponding to the block to be decoded. Table 1 shows the relationship between the size of the second image component block corresponding to the block to be decoded and the number of neighboring reference pixels provided by the relevant technical solution. In Table 1, N1 represents the number of neighboring reference pixels used in CCLM in the conventional technical solution, and N2 represents the number of neighboring reference pixels used in CCLM after reduction provided by Proposal L0138. Specifically, the reduction method in Proposal L0138 is obtained by downsampling the neighboring reference pixels after they are acquired in the conventional technical solution.
[0068] Table 1
[0069]
[0070]
[0071] (d) Downsampling scheme for adjacent reference pixels
[0072] For non-square decoding blocks, VTM already provides a downsampling scheme for the longer side (e.g., Figure 4B (As shown). Proposal L0138, as mentioned above, proposes a further reduced set of downsampled points.
[0073] In Proposal L0138, the selection of adjacent reference pixels during downsampling affects decoding prediction performance. The subset of adjacent reference pixels obtained using the default downsampling scheme in VTM does not yield ideal decoding prediction performance. Therefore, Proposal L0138 proposes a different selection scheme for the subset of adjacent reference pixels during downsampling. Specifically, in the traditional technique used in VTM, when downsampling the long side of a non-square decoding block, pixels in the adjacent row corresponding to the top side of the decoding block are selected starting from the leftmost edge, and pixels in the adjacent column corresponding to the left side are selected starting from the top edge. Proposal L0138 proposes a scheme that selects pixels starting from the opposite edge of the traditional technique. For details, please refer to [link to relevant documentation]. Figure 5A and Figure 5B The example of a selected point structure is shown.
[0074] See Figure 5A It illustrates a structural diagram of a traditional technical solution for selecting adjacent reference pixels, as provided by the relevant technical solution; for example... Figure 5A As shown, for the pixels in the adjacent row corresponding to the longer side of this decoding block, sampling starts from the pixel at the leftmost edge; see [link to documentation]. Figure 5B It shows a schematic diagram of the structure for selecting adjacent reference pixels in the L0138 proposal provided by the relevant technical solution; such as Figure 5B As shown, for the pixels in the adjacent row corresponding to the long side of the decoding block, sampling starts from the rightmost edge pixel; the sampling interval here is the same as the traditional technical solution, and will not be repeated in this embodiment. Using the sampling scheme of Proposal L0138, the value range of all adjacent reference point pixels can be comprehensively covered in the model parameter calculation of CCLM. However, since the importance of each adjacent reference pixel is not considered, it still cannot represent the overall characteristics of the long side to the maximum extent under the premise of a limited number.
[0075] In the relevant technical solutions, on the one hand, considering the computational complexity, although the VTM accepts the largest and smallest adjacent reference values of the first image component from 2N points, and derives the model parameters according to the principle of "two points determine a line" (see Equation (3)), this solution only uses two adjacent reference pixels, which greatly reduces the computational complexity compared to constructing model parameters based on least squares regression; however, this solution still has considerable complexity, mainly because the maximum and minimum values need to be determined within the set of adjacent reference pixels, which requires 4N comparison operations to determine the maximum and minimum values. Moreover, the larger the length of the decoding block, the larger the number of adjacent reference pixels used for CCLM, resulting in a larger number of searches to determine the maximum and minimum values. Therefore, the computational complexity brought by this solution is still relatively large. On the other hand, considering the prediction accuracy, if the searched pixel has a low correlation with the current decoding block during the search for the maximum and minimum values, it can be confirmed that the pixel is a bad point. Thus, if the two searched pixels contain bad points, it will cause a large model bias to the prediction model. Therefore, although the method of constructing model parameters based on the maximum and minimum values has low complexity, its robustness is poor, which leads to a decrease in decoding and prediction performance.
[0076] Based on this, the latest L0138 proposal introduces the concept of a subset of adjacent reference pixels. While addressing the aforementioned shortcomings by reducing the number of adjacent reference pixels, thus further reducing computational complexity, it also improves upon this by selecting pixels at appropriate positions (such as...). Figure 5B As shown in the figure, the decoding prediction performance is slightly improved, but there is still room for improvement in this scheme.
[0077] To improve the performance of encoding / decoding prediction, this application provides a decoding prediction method. This method uses the midpoint of at least one edge of the block to be decoded as a reference point and determines the position of a selected reference pixel according to a preset number of samples. Neighboring reference pixels, chosen considering both importance and dispersion, are then placed into a subset of neighboring reference pixels. Based on this subset of neighboring reference pixels, the block to be decoded is predicted and decoded. Since the model parameters constructed based on this subset of neighboring reference pixels are more accurate, the decoding prediction performance is improved. Furthermore, the smaller number of pixels in this subset reduces the search complexity and thus lowers the bit rate. The embodiments of this application will be described in detail below with reference to the accompanying drawings.
[0078] See Figure 6 It illustrates an example block diagram of a video encoding system provided in an embodiment of this application; as shown Figure 6As shown, the video coding system 600 includes components such as transform and quantization 601, intra-frame estimation 602, intra-frame prediction 603, motion compensation 604, motion estimation 605, inverse transform and inverse quantization 606, filter control analysis 607, deblocking filtering and sample adaptive offset (SAO) filtering 608, header information encoding and context-based adaptive binary arithmetic coding (CABAC) 609, and a decoded image buffer 610; for the input raw video signal, it uses coding tree blocks (Coding Tree) to... The division of a Unit (CTU) yields a video coding block. Then, the residual pixel information obtained after intra-frame or inter-frame prediction is transformed using Transform and Quantization 601. This includes transforming 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 602 and intra-frame prediction 603 are used to perform intra-frame prediction on the video coding block. Specifically, intra-frame estimation 602 and intra-frame prediction 603 are used to determine the intra-frame prediction mode to be used to encode the video coding block. Motion Motion compensation 604 and motion estimation 605 are used to perform inter-frame predictive coding of the received video coded 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 605 is a process of generating motion vectors that can estimate the motion of the video coded block, and then motion compensation 604 performs motion compensation based on the motion vectors determined by motion estimation 605; after determining the intra-frame prediction mode, intra-frame prediction 603 is also used to provide the selected intra-frame prediction data to the header information coding and CABAC. 609, and motion estimation 605 also sends the calculated motion vector data to header information encoding and CABAC 609; furthermore, inverse transform and inverse quantization 606 is used for the reconstruction of the video coding block, reconstructing the residual block in the pixel domain. This reconstructed residual block removes block artifacts through filter control analysis 607 and deblocking filtering and SAO filtering 608, and then adds the reconstructed residual block to a predictive block in the frame of the decoded image buffer 610 to generate the reconstructed video coding block; header information encoding and CABAC 609 are 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-frame prediction mode, outputting the bitstream of the video signal; while the decoded image buffer 610 is used to store the reconstructed video coding block for prediction reference. As video image encoding progresses, new reconstructed video coding blocks are continuously generated, and these reconstructed video coding blocks are stored in the decoded image buffer 610.
[0079] See Figure 7 It illustrates an example block diagram of a video decoding system provided in an embodiment of this application; as shown Figure 7 As shown, the video decoding system 700 includes components such as header information decoding and CABAC decoding 701, inverse transform and inverse quantization 702, intra-frame prediction 703, motion compensation 704, deblocking filtering and SAO filtering 705, and a decoded image buffer 706; the input video signal is processed through... Figure 6 After encoding, the video signal bitstream is output. This bitstream is input into the video decoding system 700, where it first undergoes header information decoding and CABAC decoding 701 to obtain the decoded transform coefficients. These transform coefficients are then processed by inverse transform and inverse quantization 702 to generate residual blocks in the pixel domain. Intra-frame prediction 703 can be used to 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. Motion compensation 704 determines the prediction information for the video decoding block by analyzing motion vectors and other associated syntax elements, and uses this information... Predictive information is used to generate predictive blocks for the video block being decoded; the decoded video block is formed by summing the residual block from inverse transform and inverse quantization 702 with the corresponding predictive block generated by intra-frame prediction 703 or motion compensation 704; the decoded video signal is then subjected to deblocking filtering and SAO filtering 705 to remove block artifacts, thereby improving video quality; the decoded video block is then stored in the decoded image buffer 706, 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.
[0080] The embodiments of this application are mainly applied in, for example... Figure 6 The intra-prediction 603 portion shown and as follows Figure 7 The intra-frame prediction 703 section is shown; that is, the embodiments of this application can be applied to both encoding and decoding systems, but the embodiments of this application do not specifically limit them.
[0081] Based on the above Figure 6 or Figure 7 For application scenario examples, see Figure 8 It illustrates a flowchart of a decoding prediction method provided in an embodiment of this application, which may include:
[0082] S801: Obtain reference pixels that are adjacent to at least one edge of the block to be decoded, and obtain the first set of adjacent reference pixels;
[0083] S802: Determine a reference point from the at least one edge, and determine the position of the selected reference pixel point corresponding to the at least one edge according to a preset number of samples;
[0084] S803: Based on the position of the reference pixel to be selected, select a reference pixel corresponding to the position of the reference pixel to be selected from the first set of adjacent reference pixels, and form an adjacent reference pixel subset by the selected reference pixels;
[0085] S804: Based on the adjacent reference pixel subset, perform predictive decoding on the block to be decoded.
[0086] It should be noted that the block to be decoded is the block to be decoded for the second image component prediction or the third image component prediction. At least one edge of the block to be decoded can refer to the top edge of the block to be decoded, or the left edge of the block to be decoded, or even the top edge and the left edge of the block to be decoded. This application embodiment does not make specific limitations.
[0087] It should also be noted that the reference point can be the midpoint of the at least one edge, the position of the first reference pixel point slightly to the left of the midpoint of the at least one edge, the position of the first reference pixel point slightly to the right of the midpoint of the at least one edge, or even other reference pixel point positions of the at least one edge. This application embodiment does not make specific limitations.
[0088] In this embodiment, the decoding prediction method can also be applied to the encoding system. By constructing a subset of adjacent reference pixels in the encoding system, the encoding prediction performance of video images can be improved, and the encoding compression efficiency can be increased, thereby saving encoding bitrate. The following description will only take the construction of a subset of adjacent reference pixels in the decoding system as an example.
[0089] In this embodiment, reference pixels adjacent to at least one edge of the block to be decoded are first obtained to form a first set of adjacent reference pixels. Then, a reference point is determined from the at least one edge, and the position of the candidate reference pixel corresponding to the at least one edge is determined according to a preset number of samples. Based on the position of the candidate reference pixel, reference pixels corresponding to the position of the candidate reference pixel are selected from the first set of adjacent reference pixels, and the selected reference pixels are combined to form a subset of adjacent reference pixels. Finally, based on the subset of adjacent reference pixels, the block to be decoded is predicted and decoded. Since in this embodiment, all reference pixels adjacent to the top or left edge of the block to be decoded are no longer used in the search operation for decoding prediction, but rather, while taking into account importance and dispersion, a subset of adjacent reference pixels is formed by selecting adjacent reference pixels at appropriate positions, the number of pixels in the subset of adjacent reference pixels is smaller, which not only reduces the complexity of the search but also improves the decoding prediction performance, thereby reducing the bit rate.
[0090] In some embodiments, determining a reference point from the at least one edge includes:
[0091] Based on the length of the at least one side, determine the midpoint of the at least one side, and use the midpoint of the at least one side as the reference point.
[0092] In some embodiments, when the reference point is the midpoint of the at least one edge, determining a reference point from the at least one edge includes:
[0093] Based on the length of the at least one side, if the midpoint of the at least one side is located in the middle position between two reference pixels, then the position of the first reference pixel slightly to the right of the middle position is taken as the reference point of the at least one side, or the position of the first reference pixel slightly to the left of the middle position is taken as the reference point of the at least one side.
[0094] It should be noted that, considering the importance of reference pixels adjacent to at least one edge of the block to be decoded is related to their corresponding positions, in order to ensure that the reference pixels in the adjacent reference pixel subset can represent the characteristics of the entire adjacent edge, it is necessary to select reference pixels located at the center of the edge as much as possible, so as to eliminate points with lower importance (such as reference pixels on the two edges of the edge). In the embodiments of this application, if the upper edge of the block to be decoded is taken as an example, the position of the first reference pixel slightly to the right or left of the middle position can be used as the reference point of the edge.
[0095] For example, see Figure 9 This illustrates a structural diagram of selecting a subset of adjacent reference pixels corresponding to the upper side edge of a block to be decoded, according to an embodiment of this application. Figure 9 As shown, for all reference pixels distributed on the upper side of the block to be decoded, the midpoint of that side is selected as the center (e.g., ...). Figure 9 (As shown by the dashed line), the reference pixel is selected using this center as the reference point. Assuming the side length of the upper edge of the decoding block is 16, and the preset sampling number is 4, the sampling interval Δ is 16 / 4 = 4. Thus, since the length of the upper edge is 16, the midpoint can be determined to be between 7 and 8; that is, the midpoint can be selected as either 7 or 8. Figure 9 In the example of selecting 8 as the reference point, since the preset sampling number is 4, the position of the reference pixel to be selected can be determined (e.g., Figure 9 (Examples of gray dots) are 2, 6, 10, and 14; based on the positions of these reference pixels, corresponding reference pixels can be selected to form a subset of adjacent reference pixels.
[0096] In some embodiments, when the reference point is the midpoint of the at least one edge, determining a reference point from the at least one edge includes:
[0097] Based on the length of the at least one side, if the midpoint of the at least one side is located in the middle position between two reference pixels, then the position of the first reference pixel slightly below the middle position is taken as the reference point of the at least one side, or the position of the first reference pixel slightly above the middle position is taken as the reference point of the at least one side.
[0098] It should be noted that, considering the importance of reference pixels adjacent to at least one edge of the block to be decoded is related to their corresponding positions, in order to ensure that the reference pixels in the subset of adjacent reference pixels can represent the characteristics of the entire adjacent edge, it is necessary to select reference pixels located at the center of the edge as much as possible, so as to eliminate points with lower importance (such as reference pixels on the two edges of the edge). In the embodiments of this application, if the left edge of the block to be decoded is taken as an example, the position of the first reference pixel slightly below or slightly above the middle position can be used as the reference point of the edge.
[0099] For example, see Figure 10 This illustrates a structural diagram of selecting a subset of adjacent reference pixels corresponding to the left side of a block to be decoded, according to an embodiment of this application. Figure 10 As shown, for all reference pixels distributed on the left side of the block to be decoded, the midpoint of that side is selected as the center (e.g., ...). Figure 10 (As shown by the dashed line), the center is used as the reference point for selecting reference pixels. Assuming the side length of the upper edge of the decoding block is 8, and the preset sampling number is 2, the sampling interval Δ is 8 / 2 = 4. Thus, since the length of the left side is 8, the midpoint can be determined to be between 3 and 4; that is, the midpoint can be selected as either 3 or 4. Figure 10 In the example of selecting 4 as the reference point, since the preset sampling number is 2, the position of the reference pixel to be selected can be determined (e.g., Figure 10 (Example of gray dots) are 2 and 6; based on the positions of these reference pixels, corresponding reference pixels can be selected to form a subset of adjacent reference pixels.
[0100] In practical applications, since the length of the left or top edge of the block to be decoded is always a multiple of 2, the middle position of the left or top edge of the block to be decoded lies between two points. Figure 9 In the example, the first pixel slightly to the right of the center is used as the midpoint of the side; however, in this embodiment, the first pixel slightly to the left of the center can also be used as the midpoint of the side, such as... Figure 11 The structure example shown. Figure 11In the middle, the first pixel slightly to the left of the center position (e.g.) Figure 11 3) is taken as the midpoint of this side. Since the preset sampling number is 2, the position of the reference pixel to be selected can be determined (e.g., Figure 11 (Examples of gray dots) are 1 and 5. Based on the positions of these reference pixels, corresponding reference pixels can also be selected to form a subset of adjacent reference pixels. Therefore, in this embodiment, for the upper edge of the block to be decoded, either the first pixel slightly to the right of the center can be used as the midpoint of the edge, or the first pixel slightly to the left of the center can be used as the midpoint of the edge; this embodiment does not impose a specific limitation. Similarly, for the left edge of the block to be decoded, either the first pixel slightly below the center can be used as the midpoint of the edge, or the first pixel slightly above the center can be used as the midpoint of the edge; this embodiment also does not impose a specific limitation.
[0101] Unless otherwise specified, the following description will take the top edge of the block to be decoded as an example. However, the prediction method of this application embodiment is also applicable to the left edge of the block to be decoded, or even other edges of the block to be decoded.
[0102] Understandably, if the existence of reference pixels adjacent to the left or top edge of the block to be decoded is not considered, then the adjacent reference pixel subset can still be constructed according to equations (4) and (5).
[0103] Δ=length / (N2 / 2) (4)
[0104] shift=Δ / 2 (5)
[0105] Where Δ represents the sampling interval, length represents the number of reference pixels in a row adjacent to the top edge of the block to be decoded, or the number of reference pixels in a column adjacent to the left edge of the block to be decoded, N2 represents the number of adjacent reference pixels expected to constitute the adjacent reference pixel subset of the block to be decoded (generally, the left and top edges are each half, but this application embodiment does not specifically limit this), and shift represents the starting position of the selected reference pixel. Here, when the middle position of the left or top edge of the block to be decoded is between two points, if the first pixel slightly to the right of the middle position is taken as the midpoint of the edge, then the starting position shift = Δ / 2; if the first pixel slightly to the left of the middle position is taken as the midpoint of the edge, then the starting position shift = Δ / 2 - 1.
[0106] For example, with Figure 9Taking the top side as an example, length equals 16 and N2 equals 8. Assuming that the left side and the top side are each half, that is, the preset sampling number of the top side is 4, then according to equations (4) and (5), we can calculate Δ = length / (N2 / 2) = 4 and shift = Δ / 2 = 2 respectively. That is, with 2 as the starting point and 4 as the sampling interval, we can first determine the position of the reference pixel to be selected, such as 2, 6, 10 and 14, and then select the corresponding reference pixel to form a subset of adjacent reference pixels. Here, it should be noted that the preset sampling number corresponding to the left side and the preset sampling number corresponding to the top side can be the same or different. This application embodiment does not make specific limitations.
[0107] In addition, this application embodiment also provides a scheme for determining the preset number of samples, as shown in Table 2. Thus, this application embodiment can also replace N2 with N2' from Table 2 and substitute it into the above equations (4) and (5) for calculation, so that the resulting subset of adjacent reference pixels is more accurate. This improves the decoding prediction performance.
[0108] Referring to Table 2, it shows the relationship between the size of the second image component block corresponding to the block to be decoded and the number of adjacent reference pixels provided in the embodiments of this application. In Table 2, N represents the length of the short side of the block to be decoded, N1 represents the number of adjacent reference pixels provided in conventional technical solutions, N2 is the number of adjacent reference pixels provided in Proposal L0138, and N2' represents the number of adjacent reference pixels provided in the embodiments of this application. As can be seen from Table 2, when the length of the short side of the block to be decoded is less than or equal to 4, the adjacent reference pixel subset contains 4 reference pixels; when the length of the short side of the block to be decoded is greater than 4, the adjacent reference pixel subset can contain 8 reference pixels.
[0109] Table 2
[0110] Size of the second image component block Length of the shorter side <![CDATA[N1]]> <![CDATA[N2]]> <![CDATA[N2‘]]> 2×n / n×2 (n≥2) 2 4 2 4 4×n / n×4 (n≥4) 4 8 4 4 8×n / n×8 (n≥8) 8 16 8 8 16×n / n×16 (n≥16) 16 32 8 8 32×32 32 64 8 8
[0111] In some embodiments, determining a reference point from the at least one edge and determining the position of the selected reference pixel corresponding to the at least one edge according to a preset number of samples includes:
[0112] The first sampling interval is calculated based on the preset number of samples and the length of the at least one edge;
[0113] Using the midpoint of the at least one edge as a reference point, the position of the selected reference pixel point corresponding to the at least one edge is determined according to the first sampling interval.
[0114] Optionally, determining the position of the selected reference pixel corresponding to the at least one edge according to the first sampling interval, using the midpoint of the at least one edge as a reference point, includes:
[0115] Based on the length of the at least one edge, calculate the midpoint value of the at least one edge;
[0116] The position of the reference pixel is calculated based on the midpoint value and the first sampling interval.
[0117] When the midpoint value is not an integer, the reference pixel position to the left of the midpoint value is rounded down to the nearest integer, and the rounded reference pixel position is determined as the reference pixel position to be selected; the reference pixel position to the right of the midpoint value is rounded up to the nearest integer, and the rounded reference pixel position is determined as the reference pixel position to be selected.
[0118] Optionally, determining the position of the selected reference pixel corresponding to the at least one edge according to the first sampling interval, using the midpoint of the at least one edge as a reference point, includes:
[0119] Based on the length of the at least one edge, calculate the midpoint value of the at least one edge;
[0120] The position of the reference pixel is calculated based on the midpoint value and the first sampling interval.
[0121] When the midpoint value is not an integer, the reference pixel position to the left of the midpoint value is rounded up, and the rounded reference pixel position is determined as the candidate reference pixel position; the reference pixel position to the right of the midpoint value is rounded down, and the rounded reference pixel position is determined as the candidate reference pixel position.
[0122] It should be noted that the first sampling interval corresponding to the edge can be calculated based on the preset number of samples and the length of one edge of the block to be decoded. Furthermore, since the length of the left or top edge of the block to be decoded is always a multiple of 2, the middle position of the left or top edge is always between two points. In this case, the calculated midpoint value is non-integer, and the calculated reference pixel position is also non-integer. However, if the length of the left or top edge of the block to be decoded is not a multiple of 2, the middle position of the left or top edge will not be between two points. In this case, the calculated midpoint value is an integer, and the calculated reference pixel position is also an integer. That is, the calculated midpoint value can be an integer or a non-integer; correspondingly, the calculated reference pixel position can also be an integer or a non-integer. This application does not impose specific limitations on this embodiment.
[0123] Thus, when the calculated midpoint value is an integer, the calculated reference pixel position is also an integer, and the calculated reference pixel position can be directly used as the candidate reference pixel position; when the calculated midpoint value is not an integer, the calculated reference pixel position is also not an integer, and the candidate reference pixel position can be determined by rounding up or down.
[0124] For example, with Figure 11 Taking the upper side as an example, assuming the preset sampling number is 2 and the length of the upper side is 8, the first sampling interval can be determined to be 4. Since the length of the upper side is 8, the middle position of the upper side is between two points. Since the reference pixel arrangement starts at 0 and ends at 7, the actual position of the midpoint of the upper side can be calculated to be 3.5. Since the first sampling interval is 4, shifting 4 / 2 points to the left and right of the midpoint respectively, the reference point positions can be calculated to be 1.5 and 5.5. At this point, rounding down the reference pixel position to the left of the midpoint value yields one candidate reference pixel position as 1, while rounding up the reference pixel position to the right of the midpoint value yields another candidate reference pixel position as 6. This method can also be called an outward rounding scheme. Figure 12 As shown; this allows the reference pixels corresponding to positions 1 and 6 to form a subset of adjacent reference pixels. Furthermore, when the calculated reference point positions are 1.5 and 5.5, the reference pixel positions to the left of the midpoint value can be rounded up to obtain one candidate reference pixel position as 2, while the reference pixel positions to the right of the midpoint value can be rounded down to obtain another candidate reference pixel position as 5; this method can also be called the inward rounding scheme, such as... Figure 13 As shown; this allows the reference pixels corresponding to positions 2 and 5 to form a subset of adjacent reference pixels.
[0125] In some embodiments, after the first sampling interval is calculated, the method further includes:
[0126] The first sampling interval is adjusted to obtain the second sampling interval;
[0127] Using the midpoint of the at least one edge as a reference point, the position of the selected reference pixel point corresponding to the at least one edge is determined according to the second sampling interval.
[0128] In some embodiments, after obtaining the second sampling interval, the method further includes:
[0129] Using the midpoint of at least one edge as a reference point, the position of the candidate reference pixel to the left of the reference point is determined according to the first sampling interval, and the position of the candidate reference pixel to the right of the reference point is determined according to the second sampling interval.
[0130] It should be noted that after the first sampling interval is calculated, it can be fine-tuned, such as by adding or subtracting 1, to obtain the second sampling interval. For example, if the first sampling interval is 4, the adjusted second sampling interval can be 3 or 5. In this embodiment, the adjustment of the first sampling interval can be made by a small amount (e.g., adding or subtracting 1), but the specific setting of the adjustment range is not specifically limited in this embodiment.
[0131] In addition, after determining the reference point of at least one edge of the block to be decoded, uniform sampling can be performed according to the first sampling interval or the second sampling interval; or uniform sampling can be performed according to the first sampling interval and the second sampling interval. Moreover, the positions of the selected reference pixels determined after sampling can be symmetrically distributed on both sides of the reference point or asymmetrically distributed on both sides of the reference point; the embodiments of this application do not make specific limitations.
[0132] In some embodiments, determining a reference point from the at least one edge and determining the position of the selected reference pixel corresponding to the at least one edge according to a preset number of samples includes:
[0133] Using the midpoint of at least one edge as a reference point, the positions of consecutive reference pixels near the reference point are determined as the positions of reference pixels to be selected according to the preset number of samples, and the reference point is located at the middle position of the positions of the reference pixels to be selected.
[0134] It should be noted that, since the reference pixel in the middle position is the one most relevant to the reconstructed value of the first image component of the block to be decoded among adjacent reference pixels, the positions of consecutive reference pixels near the middle position with a preset number of samples can be used as the positions of the reference pixels to be selected. This method can be called the continuous sampling scheme of the middle position. Figure 14 As shown; this allows the reference pixels corresponding to positions 2, 3, and 4 to form a subset of adjacent reference pixels.
[0135] Understandably, assuming that the reference pixel positions in a row / column adjacent to the upper or left side of the block to be decoded are numbered starting from 0, then the number of adjacent reference pixels and the corresponding positions of the selected reference pixels in the adjacent reference pixel subset formed in this embodiment are shown in Table 3.
[0136] Table 3
[0137]
[0138] In this embodiment, the positions of consecutive reference pixels with a preset number of samples near the middle position are used as the positions of reference pixels to be selected, thereby forming a subset of adjacent reference pixels. Prediction decoding is performed based on this subset of adjacent reference pixels. Based on the L0138 proposal, the bit rate can still be saved and the decoding gain can be improved, thereby improving the decoding prediction performance.
[0139] In some embodiments, the block to be decoded includes a square decoding block or a non-square decoding block.
[0140] Furthermore, in some embodiments, when the block to be decoded is a non-square decoding block, the method further includes:
[0141] Based on the length of at least one side of the block to be decoded, determine the long side of the block to be decoded and the third sampling interval corresponding to the long side;
[0142] Delete the reference pixel corresponding to the end position of the long side, initially offset the long side of the deleted reference pixel by a preset offset, take the offset reference pixel position as the starting point, and sample the long side of the deleted reference pixel according to the third sampling interval to determine the position of the candidate reference pixel corresponding to the long side.
[0143] It should be noted that 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. For square decoding blocks, any side of the square decoding block can be used as the long side, so the above method is also applicable to square decoding blocks.
[0144] It should also be noted that, taking a non-square decoding block as an example, there must be a long side and a short side on the left or top side of the decoding block. Based on the ratio between the long and short sides, the third sampling interval corresponding to the long side can be obtained. Before sampling the long side, the reference pixel corresponding to the end position of the long side can be deleted first. Then, the long side with the deleted reference pixel is initially offset by a preset offset, using the offset reference pixel position as the starting point. Then, the long side with the deleted reference pixel is sampled again to determine the position of the selected reference pixel corresponding to that long side. In this embodiment, the preset offset can be half of the third sampling interval, or other values; this embodiment does not specifically limit the value.
[0145] For example, in the relevant technical solutions, reference pixel sampling is performed on the long side of the non-square decoding block, such as... Figure 4B As shown. In Figure 4BIn this example, based on the ratio between the long side and the short side, the third sampling interval is determined to be 4. The long side starts from the position of the first reference pixel on the left, and then selects the same number of reference pixels adjacent to the short side according to the third sampling interval. Since this would cause the sampled reference pixels to be offset to the left, failing to cover the characteristics of the entire long side, in this embodiment, an initial offset is first applied to the long side of the non-square decoding block to ensure that the sampled reference pixels cover the characteristics of the entire long side. For example, the preset offset is half of the third sampling interval, i.e., the preset offset is 2. In other words, in this embodiment, sampling starts from point 2, so the resulting subset of adjacent reference pixels can better cover the characteristics of the entire long side.
[0146] In some embodiments, determining a reference point from the at least one edge and determining the position of the selected reference pixel corresponding to the at least one edge according to a preset number of samples includes:
[0147] Delete the reference pixels corresponding to the start and end positions of at least one edge to obtain a second set of adjacent reference pixels;
[0148] Using the midpoint of at least one edge as a reference point, the position of the reference pixel to be selected is determined based on the second set of adjacent reference pixels according to a preset number of samples.
[0149] It should be noted that, in this embodiment, reference pixels can be selected directly based on the midpoint of the left or top edge of the block to be decoded as the reference point to form a subset of adjacent reference pixels; in this embodiment, reference pixels can also be deleted first from the start and end positions corresponding to the left / top edge of the block to be decoded (for example, for the top edge, the start position is the left edge and the end position is the right edge; for the left edge, the start position is the top edge and the end position is the bottom edge), retaining the reference pixels in the middle part, and then the selected reference pixels are used to form a subset of adjacent reference pixels.
[0150] It should also be noted that the preset number of samples can be arbitrarily chosen; generally, the preset number of samples should be less than N1 shown in Table 2; however, the embodiments of this application are not limited to the preset number of samples being equal to N2 or N2'. Since the preset number of samples is less than N1 shown in Table 2, the search complexity of the reference pixel can be reduced, thereby improving the decoding prediction performance. Specifically, by changing the Δ and shift values in the above equations (4) and (5), it is possible to determine the position of the reference pixel to be selected with different starting points and sampling intervals, and thus select the corresponding reference pixel to form a subset of adjacent reference pixels.
[0151] In some embodiments, the step of predictive decoding of the block to be decoded based on the subset of neighboring reference pixels includes:
[0152] Based on the adjacent reference pixel subset, determine the model parameters;
[0153] A prediction model is established based on the model parameters; wherein the 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;
[0154] Based on the prediction model, predictive decoding is performed on the block to be decoded.
[0155] It should be noted that after obtaining the subset of adjacent reference pixels, the model parameters α and β can be constructed; thus, a prediction model can be established according to the above equation (1); based on the prediction model, the block to be decoded can be predicted and decoded. Since the adjacent reference pixels included in the subset of adjacent reference pixels take into account both importance and dispersion, the constructed model parameters are more accurate, thereby improving the decoding prediction performance and reducing the bit rate.
[0156] The above embodiments provide a decoding prediction method, which obtains a first set of adjacent reference pixels by acquiring reference pixels adjacent to at least one edge of the block to be decoded; determines a reference point from the at least one edge, and determines the position of the candidate reference pixel corresponding to the at least one edge according to a preset number of samples; selects reference pixels corresponding to the candidate reference pixel positions from the first set of adjacent reference pixels based on the candidate reference pixel positions, and forms an adjacent reference pixel subset by the selected reference pixels; and performs prediction decoding on the block to be decoded based on the adjacent reference pixel subset. Since the adjacent reference pixels in the adjacent reference pixel subset not only take into account both importance and dispersion, but also have a small number of pixels, the complexity of the search is reduced, the prediction performance of video image decoding is improved, and the bit rate is reduced.
[0157] Based on the foregoing Figure 8 For inventive concepts with the same technical solutions shown, see [link to inventive concept]. Figure 15 This illustration shows a schematic diagram of the composition of a decoding prediction device 150 provided in an embodiment of this application. The decoding prediction device 150 may include: an acquisition unit 1501, a determination unit 1502, a selection unit 1503, and a decoding unit 1504, wherein...
[0158] The acquisition unit 1501 is configured to acquire reference pixel points adjacent to at least one edge of the block to be decoded, thereby obtaining a first set of adjacent reference pixels;
[0159] The determining unit 1502 is configured to determine a reference point from the at least one edge and determine the position of the candidate reference pixel point corresponding to the at least one edge according to a preset number of samples.
[0160] The selection unit 1503 is configured to select a reference pixel corresponding to the position of the reference pixel to be selected from the first set of adjacent reference pixels based on the position of the reference pixel to be selected, and form an adjacent reference pixel subset by selecting the reference pixel.
[0161] The decoding unit 1504 is configured to perform predictive decoding on the block to be decoded based on the adjacent reference pixel subset.
[0162] In the above scheme, the determining unit 1502 is specifically configured to, based on the length of the at least one side, if the midpoint of the at least one side is located in the middle position between two reference pixels, take the position of the first reference pixel slightly to the right of the middle position as the reference point of the at least one side, or take the position of the first reference pixel slightly to the left of the middle position as the reference point of the at least one side.
[0163] In the above scheme, the determining unit 1502 is specifically configured to, based on the length of the at least one side, if the midpoint of the at least one side is located in the middle position between two reference pixels, take the position of the first reference pixel slightly lower than the middle position as the reference point of the at least one side, or take the position of the first reference pixel slightly higher than the middle position as the reference point of the at least one side.
[0164] In the above scheme, see [reference] Figure 15 The decoding prediction device 150 further includes a calculation unit 1505, configured to calculate a first sampling interval based on the preset number of samples and the length of the at least one edge;
[0165] The determining unit 1502 is specifically configured to determine the position of the selected reference pixel point corresponding to the at least one edge according to the first sampling interval, using the midpoint of the at least one edge as the reference point.
[0166] In the above scheme, the calculation unit 1505 is further configured to calculate the midpoint value of the at least one side based on the length of the at least one side; and to calculate the position of the reference pixel point according to the midpoint value and the first sampling interval.
[0167] The determining unit 1502 is specifically configured to, when the midpoint value is not an integer, round down the reference pixel position to the left of the midpoint value and determine the rounded reference pixel position as the candidate reference pixel position; and round up the reference pixel position to the right of the midpoint value and determine the rounded reference pixel position as the candidate reference pixel position.
[0168] In the above scheme, the calculation unit 1505 is further configured to calculate the midpoint value of the at least one side based on the length of the at least one side; and to calculate the position of the reference pixel point according to the midpoint value and the first sampling interval.
[0169] The determining unit 1502 is specifically configured to, when the midpoint value is not an integer, round up the reference pixel position to the left of the midpoint value and determine the rounded reference pixel position as the candidate reference pixel position; and round down the reference pixel position to the right of the midpoint value and determine the rounded reference pixel position as the candidate reference pixel position.
[0170] In the above scheme, see [reference] Figure 15 The decoding prediction device 150 further includes an adjustment unit 1506, configured to adjust the first sampling interval to obtain a second sampling interval;
[0171] The determining unit 1502 is further configured to determine the position of the selected reference pixel point corresponding to the at least one edge according to the second sampling interval, using the midpoint of the at least one edge as a reference point.
[0172] In the above scheme, the determining unit 1502 is further configured to use the midpoint of the at least one side as a reference point, determine the position of the candidate reference pixel point to the left of the reference point according to the first sampling interval, and determine the position of the candidate reference pixel point to the right of the reference point according to the second sampling interval.
[0173] In the above scheme, the determining unit 1502 is further configured to take the midpoint of the at least one edge as a reference point, and determine the positions of consecutive reference pixels near the reference point as the positions of reference pixels to be selected according to the preset number of samples, and the reference point is located at the middle position of the positions of the reference pixels to be selected.
[0174] In the above scheme, the block to be decoded includes a square decoding block or a non-square decoding block.
[0175] In the above scheme, the acquisition unit 1501 is further configured to delete the reference pixel points corresponding to the start position and end position of the at least one edge respectively, to obtain a second set of adjacent reference pixels;
[0176] The determining unit 1502 is further configured to determine the position of the reference pixel to be selected based on the midpoint of the at least one edge as a reference point and the second set of adjacent reference pixels, according to a preset number of samples.
[0177] In the above scheme, see [reference] Figure 15 The decoding prediction device 150 further includes an establishment unit 1507, configured to determine model parameters based on the adjacent reference pixel subset; and establish a prediction model according to the model parameters; wherein the 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;
[0178] The decoding unit 1504 is specifically configured to perform predictive decoding on the block to be decoded based on the prediction model.
[0179] 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.
[0180] 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.
[0181] 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 8 The steps of the method described in the technical solution shown.
[0182] Based on the composition of the aforementioned decoding prediction device 150 and the computer storage medium, see [link to documentation]. Figure 16This illustrates a specific hardware structure example of the decoding prediction device 150 provided in this application embodiment, which may include: a network interface 1601, a memory 1602, and a processor 1603; the various components are coupled together through a bus system 1604. It is understood that the bus system 1604 is used to implement communication between these components. In addition to a data bus, the bus system 1604 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 16 The various buses are all labeled as Bus System 1604. Among them, Network Interface 1601 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
[0183] Memory 1602 is used to store computer programs that can run on processor 1603;
[0184] Processor 1603, when running the computer program, performs the following:
[0185] Obtain reference pixels that are adjacent to at least one edge of the block to be decoded, and obtain the first set of adjacent reference pixels;
[0186] A reference point is determined from the at least one edge, and the position of the reference pixel point to be selected corresponding to the at least one edge is determined according to a preset number of samples;
[0187] Based on the position of the reference pixel to be selected, a reference pixel corresponding to the position of the reference pixel to be selected is selected from the first set of adjacent reference pixels, and the selected reference pixels are used to form a subset of adjacent reference pixels.
[0188] Based on the adjacent reference pixel subset, predictive decoding is performed on the block to be decoded.
[0189] It is understood that the memory 1602 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 1602 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0190] The processor 1603 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 1603 or by instructions in software form. The processor 1603 can 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 can 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 can be executed by a combination of hardware and software modules in the decoding processor. The software modules can be located 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 1602. Processor 1603 reads the information in memory 1602 and, in conjunction with its hardware, completes the steps of the above method.
[0191] 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.
[0192] 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.
[0193] Optionally, as another embodiment, the processor 1603 is further configured to perform the aforementioned actions when running the computer program. Figure 8 The steps of the method described in the technical solution shown.
[0194] It should be noted that the technical solutions described in the embodiments of this application can be combined arbitrarily without conflict.
[0195] 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.
[0196] Industrial applicability
[0197] In this embodiment, firstly, reference pixels adjacent to at least one edge of the block to be decoded are obtained to form a first set of adjacent reference pixels. Then, a reference point is determined from the at least one edge, and the position of the candidate reference pixel corresponding to the at least one edge is determined according to a preset number of samples. Next, based on the position of the candidate reference pixel, reference pixels corresponding to the position of the candidate reference pixel are selected from the first set of adjacent reference pixels, and the selected reference pixels are combined to form a subset of adjacent reference pixels. Finally, based on the subset of adjacent reference pixels, the block to be decoded is predicted and decoded. Since the selection of adjacent reference pixels in the subset of adjacent reference pixels takes into account both importance and dispersion, the model parameters constructed based on the subset of adjacent reference pixels are more accurate, which can improve the prediction performance of video image decoding. Moreover, the number of pixels in the subset of adjacent reference pixels is small, which also reduces the complexity of the search, improves the prediction performance of video image decoding, and thus reduces the bit rate.
Claims
1. A decoding prediction method, characterized in that, The method includes: Obtain a reference sample that is adjacent to at least one edge of the block to be decoded; Determine a starting position from the at least one edge, and determine the position of the reference sample to be selected corresponding to the at least one edge according to a preset number of samples; Based on the position of the reference sample to be selected, a reference sample corresponding to the position of the reference sample to be selected is selected from the reference samples; Based on the selected reference samples, predictive decoding is performed on the block to be decoded; The step of predictive decoding of the block to be decoded based on the selected reference samples includes: Based on the selected reference samples, the model parameters of the inter-component prediction model are determined; wherein, the inter-component prediction model is used to characterize the prediction relationship between the first image component and the second image component of the block to be decoded; Based on the inter-component prediction model, predictive decoding is performed on the block to be decoded; The step of determining a starting position from the at least one edge and determining the position of the selected reference sample corresponding to the at least one edge according to a preset number of samples includes: Based on the preset number of samples and the number of reference samples for at least one edge, the starting position and the first sampling interval are determined; Starting from the initial position, the position of the reference sample to be selected corresponding to the at least one edge is determined according to the first sampling interval.
2. The method according to claim 1, characterized in that, The step of determining model parameters based on the selected reference samples includes: From the selected reference samples, determine the maximum value among the adjacent reference sample values of the first image component. and minimum value ,as well as and The corresponding second image component adjacent reference sample value and ; according to and The difference between and and The difference between them determines the parameters of the first model; according to , Based on the first model parameters, determine the second model parameters.
3. The method according to claim 2, characterized in that, The step of determining model parameters based on the selected reference samples includes: according to , , and The model parameters are calculated using equation (3); (3) in, This represents the parameters of the first model. This represents the parameters of the second model.
4. The method according to claim 1, characterized in that, Determining the first sampling interval based on the preset number of samples and the number of reference samples for at least one edge includes: Based on the preset number of samples and the number of reference samples for at least one edge, the first sampling interval is calculated using equation (1); (1) in, N represents the first sampling interval, length represents the number of reference samples for the at least one edge, and N2 represents the preset number of samples.
5. The method according to claim 4, characterized in that, Determining the starting position based on the preset number of samples and the number of reference samples for at least one edge includes: Based on the first sampling interval, the starting position is calculated using equation (2); (2) Here, shift represents the starting position.
6. The method according to claim 1, characterized in that, The step of determining the position of the at least one edge to be selected as a reference sample according to the first sampling interval, starting from the starting position, includes: If the starting position is 2 and the first sampling interval is 4, then the candidate reference sample positions corresponding to the at least one edge are determined to be 2, 6, 10, and 14.
7. The method according to claim 1, characterized in that, The step of determining a starting position from the at least one edge and determining the position of the candidate reference sample corresponding to the at least one edge according to a preset number of samples includes: If the number of reference samples for at least one edge is 8 and the preset number of samples is 2, then the position of the selected reference sample corresponding to the at least one edge is determined to be 2 or 6; or 1 or 5; or 1 or 6; or 2 or 5.
8. The method according to any one of claims 1 to 7, characterized in that, The block to be decoded includes a square decoding block or a non-square decoding block.
9. A decoding prediction device, characterized in that, The decoding prediction device includes an acquisition unit, a determination unit, a selection unit, and a decoding unit. The acquisition unit is configured to acquire a reference sample that is adjacent to at least one edge of the block to be decoded; The determining unit is configured to determine a starting position from the at least one edge and determine the position of the selected reference sample corresponding to the at least one edge according to a preset number of samples. The selection unit is configured to select a reference sample from the reference samples that corresponds to the position of the reference sample to be selected, based on the position of the reference sample to be selected. The decoding unit is configured to determine the model parameters of the inter-component prediction model based on the selected reference samples; wherein the inter-component prediction model is used to characterize the prediction relationship between the first image component and the second image component of the block to be decoded; and to perform predictive decoding on the block to be decoded based on the inter-component prediction model. The determining unit is further configured to determine a starting position and a first sampling interval based on the preset number of samples and the number of reference samples for the at least one edge; and to determine the position of the selected reference sample corresponding to the at least one edge starting from the starting position according to the first sampling interval.
10. A decoding prediction device, characterized in that, The decoding prediction device includes: a memory and a processor; The memory is used to store computer programs that can run on the processor; The processor is configured to perform the steps of the method as described in any one of claims 1 to 8 when running the computer program.
11. A computer storage medium, characterized in that, The computer storage medium stores a decoding prediction program, which, when executed by at least one processor, implements the steps of the method as described in any one of claims 1 to 8.
12. A coding prediction method, characterized in that, The method includes: Obtain a reference sample that is adjacent to at least one edge of the block to be encoded; Determine a starting position from the at least one edge, and determine the position of the reference sample to be selected corresponding to the at least one edge according to a preset number of samples; Based on the position of the reference sample to be selected, a reference sample corresponding to the position of the reference sample to be selected is selected from the reference samples; Based on the selected reference samples, predictive coding is performed on the block to be encoded; The step of predictive coding of the block to be coded based on the selected reference samples includes: Based on the selected reference samples, the model parameters of the inter-component prediction model are determined; wherein, the inter-component prediction model is used to characterize the prediction relationship between the first image component and the second image component of the block to be encoded; Based on the inter-component prediction model, predictive coding is performed on the block to be coded; The step of determining a starting position from the at least one edge and determining the position of the selected reference sample corresponding to the at least one edge according to a preset number of samples includes: Based on the preset number of samples and the number of reference samples for at least one edge, the starting position and the first sampling interval are determined; Starting from the initial position, the position of the reference sample to be selected corresponding to the at least one edge is determined according to the first sampling interval.
13. A method for transmitting a code stream, characterized in that, The following steps are performed to generate the bitstream and transmit the bitstream: Obtain a reference sample that is adjacent to at least one edge of the block to be encoded; Determine a starting position from the at least one edge, and determine the position of the reference sample to be selected corresponding to the at least one edge according to a preset number of samples; Based on the position of the reference sample to be selected, a reference sample corresponding to the position of the reference sample to be selected is selected from the reference samples; Based on the selected reference samples, predictive coding is performed on the block to be encoded; The step of predictive coding of the block to be coded based on the selected reference samples includes: Based on the selected reference samples, the model parameters of the inter-component prediction model are determined; wherein, the inter-component prediction model is used to characterize the prediction relationship between the first image component and the second image component of the block to be encoded; Based on the inter-component prediction model, predictive coding is performed on the block to be coded; The step of determining a starting position from the at least one edge and determining the position of the selected reference sample corresponding to the at least one edge according to a preset number of samples includes: Based on the preset number of samples and the number of reference samples for at least one edge, the starting position and the first sampling interval are determined; Starting from the initial position, the position of the reference sample to be selected corresponding to the at least one edge is determined according to the first sampling interval.
Citation Information
Patent Citations
Video encoding inter-frame prediction method based on multiple linear regression
CN107483954A
Image compression method and device using reference pixel storage space in multiple forms
WO2015120823A1