Decoding prediction method, apparatus and computer storage medium
By constructing a subset of neighboring reference pixels that balances importance and dispersion for decoding prediction, the problem of high search complexity in existing technologies is solved, video image decoding performance is improved and bit rate is reduced.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2018-12-25
- Publication Date
- 2026-04-07
AI Technical Summary
In existing video coding standards, the construction of adjacent reference pixel subsets is unreasonable, resulting in high search complexity and reduced decoding and prediction performance of video images, which cannot meet the needs of new video applications such as ultra-high definition and virtual reality.
By obtaining reference pixels adjacent to at least one edge of the block to be decoded, a reference point is determined, and the position of the selected reference pixels is determined according to a preset number of samples, forming a subset of adjacent reference pixels. Decoding prediction is performed based on this subset, taking into account both importance and dispersion, and reducing search complexity.
It improves the predictive performance of video image decoding, reduces the bit rate, and increases encoding and decoding efficiency.
Smart Images

Figure CN116456083B_ABST
Abstract
Description
[0001] Divisional Statement
[0002] This application is a divisional application of PCT / CN2018 / 123657, filed on December 25, 2018, entitled "Decoding prediction method, device and computer storage medium", which entered the Chinese national phase as Chinese Patent Application No. 201880095849.8. TECHNICAL FIELD
[0003] Embodiments of the present application relate to the technical field of video coding, and in particular to a decoding prediction method, device and computer storage medium. BACKGROUND
[0004] With the increasing demand for video display quality, new video application forms such as high-definition and ultra-high-definition videos have emerged. H.265 / High Efficiency Video Coding (HEVC) is the latest international video compression standard, and the compression performance of H.265 / HEVC is about 50% higher than that of the previous generation video coding standard H.264 / Advanced Video Coding (AVC), but still cannot meet the needs of the rapid development of video applications, especially new video applications such as ultra-high-definition and virtual reality (VR).
[0005] In 2015, the Video Coding Experts Group of ITU-T and the Moving Picture Experts Group of ISO / IEC established the Joint Video Exploration Team (JVET) to develop the next generation of video coding standards. The Joint Exploration Test Model (JEM) is a general reference software platform, and different coding tools are verified based on this platform. In April 2018, JVET officially named the next generation of video coding standards as Versatile Video Coding (VVC), and the corresponding test model is VTM. In the JEM and VTM reference software, a coding prediction method based on a linear model has been integrated, which predicts the chroma component from the luminance component of the current to-be-decoded block through the linear model. However, when constructing the linear model, the adjacent reference pixel subset constructed by the adjacent reference pixels is not very reasonable, resulting in high search complexity and reducing the decoding prediction performance of the video image. SUMMARY
[0006] Therefore, the embodiment of the present application expects to provide a decoding prediction method, device and computer storage medium, since the adjacent reference pixels in the adjacent reference pixel subset not only consider importance and dispersion, but also the number of pixels in the adjacent reference pixel subset is less, thereby reducing the complexity of search, improving the prediction performance of video image decoding, and further reducing the bit rate.
[0007] The technical solution of the embodiment of the present application can be implemented as follows:
[0008] In a first aspect, the embodiment of the present application provides a decoding prediction method, which comprises:
[0009] obtaining reference pixel points adjacent to at least one side of a to-be-decoded block to obtain a first adjacent reference pixel set;
[0010] determining a reference point from the at least one side, and determining to-be-selected reference pixel point positions corresponding to the at least one side according to a preset sampling number;
[0011] selecting reference pixel points corresponding to the to-be-selected reference pixel point positions from the first adjacent reference pixel set based on the to-be-selected reference pixel point positions, and forming an adjacent reference pixel subset by using the selected reference pixel points;
[0012] performing prediction decoding on the to-be-decoded block based on the adjacent reference pixel subset.
[0013] In a second aspect, the embodiment of the present application provides a decoding prediction device, which comprises an obtaining unit, a determining unit, a selecting unit and a decoding unit,
[0014] The obtaining unit is configured to obtain reference pixel points adjacent to at least one side of a to-be-decoded block to obtain a first adjacent reference pixel set.
[0015] The determining unit is configured to determine a reference point from the at least one side, and determine to-be-selected reference pixel point positions corresponding to the at least one side according to a preset sampling number.
[0016] The selecting unit is configured to select reference pixel points corresponding to the to-be-selected reference pixel point positions from the first adjacent reference pixel set based on the to-be-selected reference pixel point positions, and form an adjacent reference pixel subset by using the selected reference pixel points.
[0017] The decoding unit is configured to perform prediction decoding on the to-be-decoded block based on the adjacent reference pixel subset.
[0018] In a third aspect, the embodiment of the present application provides a decoding prediction device, which comprises a memory and a processor.
[0019] the memory, configured to store a computer program capable of running on the processor;
[0020] the processor, configured to execute the steps of the method according to the first aspect when running the computer program.
[0021] In a fourth aspect, an embodiment of the present application provides a computer storage medium, which stores a decoding prediction program, and the decoding prediction program, when executed by at least one processor, implements the steps of the method according to the first aspect.
[0022] The embodiments of the present application provide a decoding prediction method and device and a computer storage medium. Firstly, reference pixel points adjacent to at least one side of a to-be-decoded block are acquired to obtain a first adjacent reference pixel set. Then, a reference point is determined from the at least one side, and a to-be-selected reference pixel position corresponding to the at least one side is determined according to a preset sampling number. Then, based on the to-be-selected reference pixel position, reference pixel points corresponding to the to-be-selected reference pixel position are selected from the first adjacent reference pixel set to form an adjacent reference pixel subset. Finally, the to-be-decoded block is predicted and decoded based on the adjacent reference pixel subset. Since the selection of the adjacent reference pixel points in the adjacent reference pixel subset takes into account the importance and dispersion, the model parameters constructed based on the adjacent reference pixel subset are relatively accurate, which can improve the prediction performance of video image decoding. Moreover, the number of pixel points in the adjacent reference pixel subset is relatively small, thereby reducing the complexity of search, improving the prediction performance of video image decoding, and further reducing the bit rate. BRIEF DESCRIPTION OF DRAWINGS
[0023] Figures 1A to 1C are structural diagrams of video image sampling formats in related technical solutions, respectively;
[0024] Figure 2A and Figure 2B are sampling diagrams of first image component adjacent reference values and second image component adjacent reference values of a decoding block in related technical solutions, respectively;
[0025] Figure 3 is a structural diagram of constructing a prediction model based on a maximum value and a minimum value for a decoding block in related technical solutions;
[0026] Figure 4A and Figure 4B are structural diagrams of selecting adjacent reference pixel points for a square decoding block and a non-square decoding block, respectively, provided by related technical solutions;
[0027] Figure 5A and Figure 5BA structure diagram of selecting adjacent reference pixels for a conventional technical solution and L0138 proposal, respectively;
[0028] Figure 6 A component block diagram of a video encoding system provided by an embodiment of the present application;
[0029] Figure 7 A component block diagram of a video decoding system provided by an embodiment of the present application;
[0030] Figure 8 A flowchart of a decoding prediction method provided by an embodiment of the present application;
[0031] Figure 9 A structure diagram of selecting adjacent reference pixels corresponding to an upper side of a to-be-decoded block provided by an embodiment of the present application;
[0032] Figure 10 A structure diagram of selecting adjacent reference pixels corresponding to a left side of a to-be-decoded block provided by an embodiment of the present application;
[0033] Figure 11 Another structure diagram of selecting adjacent reference pixels corresponding to an upper side of a to-be-decoded block provided by an embodiment of the present application;
[0034] Figure 12 Still another structure diagram of selecting adjacent reference pixels corresponding to an upper side of a to-be-decoded block provided by an embodiment of the present application;
[0035] Figure 13 Still another structure diagram of selecting adjacent reference pixels corresponding to an upper side of a to-be-decoded block provided by an embodiment of the present application;
[0036] Figure 14 Still another structure diagram of selecting adjacent reference pixels corresponding to an upper side of a to-be-decoded block provided by an embodiment of the present application;
[0037] Figure 15 A component structure diagram of a decoding prediction device provided by an embodiment of the present application;
[0038] Figure 16 A specific hardware structure diagram of a decoding prediction device provided by an embodiment of the present application. DETAILED DESCRIPTION
[0039] In order to enable persons skilled in the art to more fully understand the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below with reference to the accompanying drawings, which are only used for reference and do not limit the embodiments of the present application.
[0040] In a video image, a first image component, a second image component and a third image component are generally used to represent a decoded block; wherein the three image components are a luminance component, a blue chroma component and a red chroma component respectively, specifically, the luminance component is usually represented by a symbol Y, the blue chroma component is usually represented by a symbol Cb, and the red chroma component is usually represented by a symbol Cr.
[0041] In the embodiments of the present application, the first image component can be a luminance component Y, the second image component can be a blue chroma component Cb, and the third image component can be a red chroma component Cr, but the embodiments of the present application are not limited thereto. Currently commonly used sampling formats are YCbCr formats, which include the following, as shown in Figures 1A to 1C respectively, wherein the cross (X) in the figure represents a first image component sampling point, and the circle (O) represents a second image component or a third image component sampling point. The YCbCr formats include:
[0042] 4:4:4 format: as shown in Figure 1A , which indicates that the second image component or the third image component is not down-sampled; it takes 4 first image component sampling samples, 4 second image component sampling samples and 4 third image component sampling samples for every 4 consecutive pixel points on each scan line;
[0043] 4:2:2 format: as shown in Figure 1B , which indicates that the first image component is horizontally sampled by 2:1 with respect to the second image component or the third image component, and there is no vertical down-sampling; it takes 4 first image component sampling samples, 2 second image component sampling samples and 2 third image component sampling samples for every 4 consecutive pixel points on each scan line;
[0044] 4:2:0 format: as shown in Figure 1C , which indicates that the first image component is horizontally down-sampled by 2:1 and vertically down-sampled by 2:1 with respect to the second image component or the third image component; it takes 2 first image component sampling samples, 1 second image component sampling sample and 1 third image component sampling sample for every 2 consecutive pixel points on a horizontal scan line and a vertical scan line.
[0045] In the case where the video image adopts YCbCr as the 4:2:0 format, if the first image component of the video image is a decoded block of 2N×2N size, then the corresponding second image component or third image component is a decoded block of N×N size, wherein N is the side length of the decoded block. In the embodiments of the present application, the following will be described taking the 4:2:0 format as an example, but the technical solutions of the embodiments of the present application are also applicable to other sampling formats.
[0046] In the next generation video coding standard H.266, in order to further improve the coding performance, the cross-component prediction (CCP) is extended and improved, and the cross-component linear model prediction (CCLM) is proposed. In H.266, the CCLM realizes the prediction between the first image component and the second image component, the first image component and the third image component, and the second image component and the third image component. The following will take the prediction from the first image component to the second image component as an example for description, but the technical solutions of the embodiments of the present application can also be applicable to the prediction of other image components.
[0047] It can be understood that, in order to reduce the redundancy between the first image component and the second image component, the prediction mode using the CCLM is used in VTM, and at this time the first image component and the second image component are of the same decoding block, and the second image component is predicted based on the first image component reconstruction value of the same decoding block, for example, using the prediction model as shown in formula (1):
[0048] Pred C [i,j]=α·Rec L [i,j]+β (1)
[0049] Wherein, i, j represent the position coordinates of the pixel points in the decoding block, i represents the horizontal direction, and j represents the vertical direction. Pred C [i,j] represents the second image component prediction value corresponding to the pixel point with position coordinates [i, j] in the decoding block, Rec L [i,j] represents the first image component reconstruction value corresponding to the pixel point with position coordinates [i, j] (after downsampling) in the same decoding block, and α and β are model parameters of the above prediction model.
[0050] There are many ways to construct the model parameters α and β, which can be a regression construction method evaluated by least squares, or a construction method of maximum and minimum, or even other construction methods, and the embodiments of the present application do not make specific limitations. The following will be described based on the regression construction method of least squares and the construction method of maximum and minimum, respectively.
[0051] In VVC, a derivation method of regression construction model parameters based on least squares is initially accepted, and specifically, the derivation can be performed by minimizing the regression error of the first image component adjacent reference value and the second image component adjacent reference value around the decoding block, and α and β are as shown in formula (2) as follows:
[0052]
[0053] wherein, L(n) represents the first image component adjacent reference value corresponding to the down-sampled left side and upper side, C(n) represents the second image component adjacent reference value corresponding to the left side and upper side, N is the side length of the second image component decoding block, n = 1, 2, …, 2N. Referring to Figure 2A and Figure 2B respectively show the sampling schematic diagram of the first image component adjacent reference value and the second image component adjacent reference value of the decoding block in the related technical solution; wherein, in Figure 2A , the bold larger box is used to highlight the indication of the first image component decoding block 21, and the gray solid circle is used to indicate the adjacent reference value L(n) of the first image component decoding block 21; in Figure 2B , the bold larger box is used to highlight the indication of the second image component decoding block 22, and the gray solid circle is used to indicate the adjacent reference value C(n) of the second image component decoding block 22. Figure 2A shows the first image component decoding block 21 of 2N x 2N size, for the video image of 4:2:0 format, the size of the second image component corresponding to one first image component of 2N x 2N size is N x N, as shown in 22 in Figure 2B ; that is, Figure 2A and Figure 2B are the decoding block schematic diagrams obtained by respectively sampling the first image component and the second image component for the same decoding block.
[0054] In VVC, a simplified derivation method of model parameters is recently accepted, specifically, the model parameters can be derived according to the principle of “two points determine a line” by searching for the maximum first image component adjacent reference value and the minimum first image component adjacent reference value, such as α and β shown in the following formula (3):
[0055]
[0056] wherein, L max and L min represent the maximum value and the minimum value searched from the down-sampled first image component adjacent reference values corresponding to the left side and the upper side, C max and C min represent the second image component adjacent reference values corresponding to the reference pixel points at the positions of L max and L min . Referring to Figure 3 , which shows the structure schematic diagram of the prediction model constructed based on the maximum value and the minimum value in the related technical solution; wherein, the abscissa represents the first image component adjacent reference value of the decoding block, and the ordinate represents the second image component adjacent reference value 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 short side [N1] [N2] [N2] 2xn / nx2 (n≥2) 2 4 2 4 4xn / nx4 (n≥4) 4 8 4 4 8xn / nx8 (n≥8) 8 16 8 8 16xn / nx16 (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 reference sample points that are adjacent to at least one edge of the block to be decoded; A reference point is determined from the at least one edge, and the position of the reference sample point corresponding to the at least one edge is determined according to a preset number of samples; Based on the location of the reference sample point, select a reference sample point that corresponds to the location of the reference sample point from the reference sample points; Based on the selected reference sample points, determine the parameters of the cross-component prediction model; Based on the cross-component prediction model parameters, cross-component prediction decoding is performed on the block to be decoded; The step of determining a reference point from the at least one edge and determining the position of the reference sample point corresponding to the at least one edge according to a preset number of samples includes: The first sampling interval is calculated based on the preset number of samples and the length of the at least one edge; A reference point is determined from the at least one edge, and the position of the reference sample point 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 at least one edge includes at least one of the following: the left side of the block to be decoded and the top side of the block to be decoded.
3. The method according to claim 1, characterized in that, Determining a reference point from the at least one edge includes: The midpoint of the at least one edge is calculated based on the length of the at least one edge. If the midpoint of the at least one edge is located in the middle position between two reference sample points, the position of the first reference sample point slightly to the right of the middle position is taken as the reference point of the at least one edge, or the position of the first reference sample point slightly to the left of the middle position is taken as the reference point of the at least one edge.
4. The method according to claim 1, characterized in that, Determining a reference point from the at least one edge includes: The midpoint of the at least one edge is calculated based on the length of the at least one edge. If the midpoint of the at least one edge is located at the midpoint between two reference sample points, the position of the first reference sample point slightly below the midpoint is taken as the reference point of the at least one edge, or the position of the first reference sample point slightly above the midpoint is taken as the reference point of the at least one edge.
5. The method according to claim 1, characterized in that, Determining a reference point from the at least one edge and determining the position of the reference sample point corresponding to the at least one edge according to the first sampling interval includes: Based on the length of the at least one edge, calculate the midpoint value of the at least one edge; The position of the reference sample point is calculated based on the midpoint value and the first sampling interval; When the midpoint value is not an integer, the reference sample point position to the left of the midpoint value is rounded down to the nearest integer, and the rounded reference sample point position is determined as the reference sample point position; the reference sample point position to the right of the midpoint value is rounded up to the nearest integer, and the rounded reference sample point position is determined as the reference sample point position.
6. The method according to claim 1, characterized in that, Determining a reference point from the at least one edge and determining the position of the reference sample point corresponding to the at least one edge according to the first sampling interval includes: Based on the length of the at least one edge, calculate the midpoint value of the at least one edge; The position of the reference sample point is calculated based on the midpoint value and the first sampling interval; When the midpoint value is not an integer, the reference sample point position to the left of the midpoint value is rounded up, and the rounded reference sample point position is determined as the reference sample point position; the reference sample point position to the right of the midpoint value is rounded down, and the rounded reference sample point position is determined as the reference sample point position.
7. The method according to claim 1, characterized in that, After the first sampling interval is calculated, the method further includes: The first sampling interval is adjusted to obtain the second sampling interval; A reference point is determined from the at least one edge, and the position of the reference sample point corresponding to the at least one edge is determined according to the second sampling interval.
8. The method according to claim 7, characterized in that, After obtaining the second sampling interval, the method further includes: A reference point is determined from the at least one edge, and the position of the reference sample point to the left of the reference point is determined according to the first sampling interval, and the position of the reference sample point to the right of the reference point is determined according to the second sampling interval.
9. The method according to claim 1, characterized in that, The calculation of the first sampling interval based on the preset number of samples and the length of at least one edge includes: Based on the preset number of samples and the length of at least one side, the first sampling interval is calculated using equation (1); (1) in, N represents the first sampling interval, length represents the length of the at least one side, and N2 represents the preset number of samples; Accordingly, determining a reference point from the at least one edge and determining the position of the reference sample point corresponding to the at least one edge according to the first sampling interval includes: Based on the first sampling interval, the starting position of the reference sample point is calculated using equation (2); The position of the reference sample point corresponding to the at least one edge is determined based on the starting position of the reference sample point and the first sampling interval; (2) Where shift represents the starting position of the reference sample point.
10. The method according to claim 9, characterized in that, Determining the position of the reference sample point corresponding to the at least one edge based on the starting position of the reference sample point and the first sampling interval includes: If the starting position of the reference sample point is 2 and the first sampling interval is 4, then the positions of the reference sample points corresponding to the at least one edge are determined to be 2, 6, 10, and 14.
11. The method according to claim 1, characterized in that, Determining a reference point from the at least one edge, and determining the position of the reference sample point corresponding to the at least one edge according to a preset number of samples, includes: If the length of the at least one edge is 8 and the preset number of samples is 2, then the reference sample point position corresponding to the at least one edge is determined to be 2, 6; or 1, 5; or 1, 6; or 2, 5.
12. The method according to claim 1, characterized in that, Determining a reference point from the at least one edge, and determining the position of the reference sample point corresponding to the at least one edge according to a preset number of samples, includes: A reference point is determined from the at least one edge, and the positions of consecutive reference sample points near the reference point are determined as reference sample point positions according to the preset number of samples, wherein the reference point is located at the middle position of the reference sample point positions.
13. The method according to claim 12, characterized in that, The method further includes: If the length of the at least one edge is 8 and the preset number of samples is 3, then the reference sample point position corresponding to the at least one edge is determined to be 2, 3, 4; or 3, 4, 5.
14. The method according to any one of claims 1 to 13, characterized in that, The block to be decoded includes a square decoding block or a non-square decoding block.
15. The method according to claim 1, characterized in that, Determining a reference point from the at least one edge, and determining the position of the reference sample point corresponding to the at least one edge according to a preset number of samples, includes: From the reference sample points, obtain the remaining reference sample points other than the reference sample points corresponding to the start and end positions of the at least one edge; A reference point is determined from the at least one edge, and the position of the reference sample point is determined based on the remaining reference sample points according to a preset number of samples.
16. The method according to claim 1, characterized in that, The cross-component prediction model parameters are used to characterize the prediction relationship between the first image component and the second image component of the block to be decoded.
17. The method according to claim 16, characterized in that, The step of determining model parameters based on the selected reference sample points includes: From the selected reference sample points, determine the maximum value among the adjacent reference values of the first image component. and minimum value ,as well as and The adjacent reference value of the second image component corresponding to the reference sample point at the corresponding position and ; according to , , and The model parameters are calculated using equation (3); (3) in, and This represents the model parameters.
18. A decoding prediction device, characterized in that, The decoding prediction device includes an acquisition unit, a determination unit, a selection unit, a decoding unit, and a calculation unit; The acquisition unit is configured to acquire reference sample points that are adjacent to at least one edge of the block to be decoded; The calculation unit is configured to calculate a first sampling interval based on a preset number of samples and the length of the at least one edge. The determining unit is configured to determine a reference point from the at least one edge and determine the position of the reference sample point corresponding to the at least one edge according to the first sampling interval. The selection unit is configured to select a reference sample point from the reference sample points that corresponds to the location of the reference sample point, based on the location of the reference sample point. The decoding unit is configured to determine the cross-component prediction model parameters based on the selected reference sample points; Based on the cross-component prediction model parameters, cross-component prediction decoding is performed on the block to be decoded.
19. 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 17 when running the computer program.
20. 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 17.
21. A coding prediction method, characterized in that, The method includes: Obtain reference sample points that are adjacent to at least one edge of the block to be encoded; A reference point is determined from the at least one edge, and the position of the reference sample point corresponding to the at least one edge is determined according to a preset number of samples; Based on the location of the reference sample point, select a reference sample point that corresponds to the location of the reference sample point from the reference sample points; Based on the selected reference sample points, determine the parameters of the cross-component prediction model; Based on the cross-component prediction model parameters, cross-component prediction coding is performed on the block to be coded; The step of determining a reference point from the at least one edge and determining the position of the reference sample point corresponding to the at least one edge according to a preset number of samples includes: The first sampling interval is calculated based on the preset number of samples and the length of the at least one edge; A reference point is determined from the at least one edge, and the position of the reference sample point corresponding to the at least one edge is determined according to the first sampling interval.
22. A method for transmitting a code stream, characterized in that, The following steps are performed to generate the bitstream and transmit the bitstream: Obtain reference sample points that are adjacent to at least one edge of the block to be encoded; A reference point is determined from the at least one edge, and the position of the reference sample point corresponding to the at least one edge is determined according to a preset number of samples; Based on the location of the reference sample point, select a reference sample point that corresponds to the location of the reference sample point from the reference sample points; Based on the selected reference sample points, determine the parameters of the cross-component prediction model; Based on the cross-component prediction model parameters, cross-component prediction coding is performed on the block to be coded; The step of determining a reference point from the at least one edge and determining the position of the reference sample point corresponding to the at least one edge according to a preset number of samples includes: The first sampling interval is calculated based on the preset number of samples and the length of the at least one edge; A reference point is determined from the at least one edge, and the position of the reference sample point corresponding to the at least one edge is determined according to the first sampling interval.
Citation Information
Patent Citations
Decoding prediction method and device and computer storage medium
CN113068025A