Pixel prediction method and device in decoding, electronic equipment and computer product

By dynamically dividing the coding unit and judging the motion vector consistency of the diagonal decoding block, and using differentiated prediction processing, the complexity of VVC decoding is reduced, the decoding efficiency is improved and the compression efficiency is maintained, thus solving the problems of slow VVC decoding speed and high power consumption.

CN120835144APending Publication Date: 2025-10-24BEIJING DAJIA INTERNET INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511151578.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-08-15
Publication Date
2025-10-24

AI Technical Summary

Technical Problem

The high complexity of VVC decoding leads to slower decoding speed and increased power consumption, making it difficult to effectively reduce decoding complexity while maintaining compression efficiency.

Method used

By dynamically dividing the coding units and judging the consistency of motion vectors in the diagonal decoding blocks, whole-block prediction or block-based processing is adopted to reduce the processing overhead of sub-blocks, maintain local processing accuracy, and dynamically adjust the processing flow to reduce computational complexity.

Benefits of technology

While reducing computational complexity, it maintains prediction accuracy and improves decoding efficiency, solving the latency and power consumption problems caused by complex calculations at the decoding end, and achieving high compression efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120835144A_ABST
    Figure CN120835144A_ABST
Patent Text Reader

Abstract

The invention relates to a pixel prediction method and device in decoding, electronic equipment and a computer program product, and belongs to the technical field of video coding and decoding. The method comprises the following steps: dividing a current coding unit in a current decoding frame into a plurality of decoding blocks; obtaining a target decoding block in the current coding unit, and determining a target motion vector of the target decoding block, the target decoding block comprising a diagonal decoding block in the current coding unit; if the target motion vectors of the target decoding blocks are the same, determining a reference coding unit in the reference frame, and obtaining a pixel prediction result of the current coding unit according to the reference coding unit; and if the target motion vectors of the target decoding blocks are different, respectively determining the target motion vector of each decoding block, determining a reference block corresponding to the decoding block in the reference frame according to the target motion vector of the decoding block, and obtaining a pixel prediction result of the decoding block according to the reference block. According to the invention, the decoding complexity can be effectively reduced while the compression efficiency is ensured.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to the technical field of video coding, and in particular, to a pixel prediction method in decoding, a pixel prediction device in decoding, an electronic device and a computer program product. BACKGROUND

[0002] VVC (Versatile Video Coding) is a new generation of video coding standard. Compared with HEVC (High Efficiency Video Coding), VVC achieves about 50% bit rate saving under the same video quality, and can transmit higher quality video content.

[0003] However, VVC introduces some implicitly derived tools such as DMVR (Decoder-side Motion Vector Refinement), etc. Although these tools improve compression efficiency and video quality, they also significantly increase decoding complexity, resulting in slower decoding speed and high power consumption. In practical applications, DMVR is difficult to start due to the limitation of decoding complexity, which reduces the expected compression efficiency of VVC.

[0004] Therefore, there is an urgent need in the art for a method that can effectively reduce decoding complexity while ensuring compression efficiency.

[0005] It should be noted that the information disclosed in the above background section is only used to strengthen the understanding of the background of the present disclosure, and therefore can include information that does not constitute prior art known to those of ordinary skill in the art. SUMMARY

[0006] The purpose of the present disclosure is to provide a pixel prediction method in decoding, a pixel prediction device in decoding, an electronic device and a computer program product, which can effectively reduce decoding complexity while ensuring compression efficiency at least to some extent.

[0007] According to a first aspect of the present disclosure, a pixel prediction method in decoding is provided, comprising:

[0008] dividing a current coding unit in a current decoding frame into a plurality of decoding blocks, and obtaining a reference frame of the current decoding frame;

[0009] obtaining a target decoding block in the current coding unit, and determining a target motion vector of the target decoding block, wherein the target decoding block includes a diagonal decoding block in the current coding unit;

[0010] If the target motion vector of the target decoding block is same, a reference coding unit in the reference frame is determined according to the target motion vector, and a pixel prediction result of the current coding unit is obtained according to the reference coding unit;

[0011] If the target motion vector of the target decoding block is different, target motion vectors of each decoding block in the current coding unit are determined respectively, corresponding reference blocks of the decoding blocks in the reference frame are determined according to the target motion vectors of the decoding blocks, and pixel prediction results of the decoding blocks are obtained according to the reference blocks.

[0012] In an exemplary embodiment of the present disclosure, the determining the target motion vector of the target decoding block comprises:

[0013] An initial motion vector of the target decoding block is obtained, and an initial reference block of the target decoding block is determined according to the initial motion vector;

[0014] An initial motion error is obtained according to the initial reference block of the target decoding block, and a motion error threshold is determined according to a type of the current decoding frame;

[0015] If the initial motion error is less than the motion error threshold, the initial motion vector is taken as the target motion vector of the target decoding block;

[0016] If the initial motion error is greater than or equal to the motion error threshold, an integer pixel offset is performed on the initial motion vector to obtain the target motion vector of the target decoding block.

[0017] In an exemplary embodiment of the present disclosure, the determining the motion error threshold according to the type of the current decoding frame comprises:

[0018] A threshold base parameter is obtained according to a number of pixels in the decoding block;

[0019] A time domain layer in which the current decoding frame is located in a decoding process is determined according to the type of the current decoding frame, and a threshold multiple is determined according to the time domain layer;

[0020] The motion error threshold is obtained according to the threshold base parameter and the threshold multiple.

[0021] In an exemplary embodiment of the present disclosure, the reference frame comprises a forward reference frame and a backward reference frame, the reference block comprises a forward reference block in the forward reference frame and a backward reference block in the backward reference frame, and the obtaining the initial motion error according to the initial reference block of the target decoding block comprises:

[0022] The initial motion error is obtained according to the sum of absolute differences of the initial forward reference block and the initial backward reference block of the target decoding block.

[0023] In an example embodiment of the present disclosure, the integer-pel offsetting of the initial motion vector to obtain a target motion vector of the target decoding block comprises:

[0024] A forward search region is determined according to the initial forward reference block and a preset search range, and a backward search region is determined according to the initial backward reference block and the preset search range.

[0025] On the basis of the initial motion vector, a symmetric reference block in the forward search region and the backward search region is determined according to a forward motion vector and a backward motion vector which are inversely symmetrically offset.

[0026] A sum of absolute differences of each group of the symmetric reference blocks is obtained, and the symmetric reference block with the minimum sum of absolute differences is determined as a target reference block.

[0027] A motion vector corresponding to the target reference block is determined as a target motion vector of the target decoding block.

[0028] In an example embodiment of the present disclosure, before the current coding unit in the current decoding frame is divided into a plurality of decoding blocks, the method further comprises:

[0029] The number of pixels of the current coding unit is obtained.

[0030] If the number of pixels of the current coding unit is less than a preset pixel number threshold, subsequent steps are continued to be executed.

[0031] If the number of pixels of the current coding unit is greater than or equal to the pixel number threshold, subsequent steps are cancelled to be executed.

[0032] In an example embodiment of the present disclosure, the reference block corresponding to the decoding block in the reference frame is determined according to the target motion vector of the decoding block, and a pixel prediction result of the decoding block is obtained according to the reference block, which comprises:

[0033] If the target motion vector of the decoding block points to a sub-pixel position in the reference frame, a first reference block corresponding to the decoding block in the reference frame is determined according to the target motion vector of the decoding block.

[0034] The first reference block is boundary padded to obtain a second reference block corresponding to the decoding block in the reference frame.

[0035] The second reference block corresponding to the decoding block in the reference frame is weighted averaged to obtain the pixel prediction result of the decoding block.

[0036] According to a second aspect of the present disclosure, there is provided a pixel prediction apparatus in decoding, comprising:

[0037] a decoding block division module configured to perform division of a current coding unit in a current decoded frame into a plurality of decoding blocks, and obtain a reference frame of the current decoded frame;

[0038] a motion vector determination module configured to perform obtaining a target decoding block in the current coding unit, and determining a target motion vector of the target decoding block, wherein the target decoding block comprises a diagonal decoding block in the current coding unit;

[0039] a coding unit prediction module configured to perform, if the target motion vector of the target decoding block is same, determining a reference coding unit in the reference frame according to the target motion vector, and obtaining a pixel prediction result of the current coding unit according to the reference coding unit;

[0040] a decoding block prediction module configured to perform, if the target motion vector of the target decoding block is different, respectively determining a target motion vector of each decoding block in the current coding unit, determining a corresponding reference block of the decoding block in the reference frame according to the target motion vector of the decoding block, and obtaining a pixel prediction result of the decoding block according to the reference block.

[0041] In an exemplary embodiment of the present disclosure, the motion vector determination module comprises:

[0042] an initial motion vector obtaining unit configured to perform obtaining an initial motion vector of the target decoding block, and determining an initial reference block of the target decoding block according to the initial motion vector;

[0043] a motion error threshold value determination unit configured to perform obtaining an initial motion error according to the initial reference block of the target decoding block, and determining a motion error threshold value according to a type of the current decoded frame;

[0044] a first target motion vector determination unit configured to perform, if the initial motion error is less than the motion error threshold value, taking the initial motion vector as a target motion vector of the target decoding block;

[0045] a second target motion vector determination unit configured to perform, if the initial motion error is greater than or equal to the motion error threshold value, performing integer-pixel offset on the initial motion vector to obtain the target motion vector of the target decoding block.

[0046] In an exemplary embodiment of the present disclosure, the motion error threshold value determination unit comprises:

[0047] a threshold base parameter determination unit configured to determine a threshold base parameter according to a number of pixels in the decoded block;

[0048] a threshold multiple determination unit configured to determine a threshold multiple according to a type of the current decoded frame to determine a temporal layer in which the current decoded frame is located in a decoding process, and determine the threshold multiple according to the temporal layer;

[0049] a motion error threshold calculation unit configured to determine the motion error threshold according to the threshold base parameter and the threshold multiple.

[0050] In an exemplary embodiment of the present disclosure, the motion error threshold determination unit further comprises:

[0051] an initial motion error determination unit configured to determine an initial motion error according to an absolute difference sum of an initial forward reference block and an initial backward reference block of the target decoded block.

[0052] In an exemplary embodiment of the present disclosure, the second target motion vector determination unit comprises:

[0053] a search region determination unit configured to determine a forward search region according to the initial forward reference block and a preset search range, and determine a backward search region according to the initial backward reference block and the preset search range;

[0054] a symmetric reference block determination unit configured to determine symmetric reference blocks in the forward search region and the backward search region according to forward motion vectors and backward motion vectors which are inversely symmetric to an offset of the initial motion vector;

[0055] a target reference block determination unit configured to determine an absolute difference sum of each group of the symmetric reference blocks, and determine the symmetric reference block with the smallest absolute difference sum as a target reference block;

[0056] a target motion vector determination unit configured to determine a motion vector corresponding to the target reference block as a target motion vector of the target decoded block.

[0057] In an exemplary embodiment of the present disclosure, the pixel prediction device in the decoding process further comprises an encoding unit limiting module, and the encoding unit limiting module comprises:

[0058] a pixel number acquisition unit configured to acquire a number of pixels of the current encoding unit;

[0059] a continue execution unit configured to continue to execute subsequent steps if the number of pixels of the current encoding unit is less than a preset pixel number threshold.

[0060] cancel execution unit configured to execute a cancel operation if a number of pixels of the current coding unit is greater than or equal to the pixel number threshold.

[0061] In an example embodiment of the present disclosure, the decoding block prediction module comprises:

[0062] a first reference block determination unit configured to determine a first reference block corresponding to the decoding block in the reference frame according to the target motion vector of the decoding block if the target motion vector of the decoding block points to a sub-pixel position in the reference frame;

[0063] a second reference block determination unit configured to perform boundary padding on the first reference block to obtain a second reference block corresponding to the decoding block in the reference frame;

[0064] a decoding block pixel prediction unit configured to perform weighted average on the second reference block corresponding to the decoding block in the reference frame to obtain a pixel prediction result of the decoding block.

[0065] According to a third aspect of the present disclosure, an electronic device is provided, comprising: a processor; a memory for storing instructions executable by the processor; wherein the processor is configured to execute the instructions to implement the pixel prediction method in decoding described in any of the preceding aspects.

[0066] According to a fourth aspect of the present disclosure, a computer program product is provided, comprising a computer program which, when executed by a processor, implements the pixel prediction method in decoding described in any of the preceding aspects.

[0067] The example embodiments of the present disclosure can have the following beneficial effects:

[0068] The pixel prediction method in decoding of the example embodiments of the present disclosure realizes differentiated prediction processing through dynamic division of coding units and based on motion vector consistency judgment of diagonal decoding blocks. When the motion vectors of diagonal decoding blocks are consistent, whole block prediction is used to reduce sub-block processing overhead. When the motion vectors of diagonal decoding blocks are different, local processing accuracy is maintained and error accumulation in whole block prediction is avoided through sub-block processing. Meanwhile, the selection strategy of diagonal decoding blocks enhances the accuracy of motion difference detection and can more effectively identify block motion change regions. The pixel prediction method in the example embodiments of the present disclosure balances prediction accuracy and computational efficiency through a dynamic processing mechanism, reduces the overall complexity of motion search and interpolation operations in the decoding process, and solves the problems of delay and power consumption at the decoding end caused by complex operations. The pixel prediction method in the example embodiments of the present disclosure reduces computational complexity while maintaining prediction accuracy, has the advantages of improving decoding efficiency, reducing computational complexity, and maintaining compression efficiency.

[0069] It should be understood that the foregoing general description and the following detailed description are only examples and explanatory, and are not restrictive of the present disclosure. BRIEF DESCRIPTION OF DRAWINGS

[0070] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and serve to explain the principles of the present disclosure. It is readily apparent to one of ordinary skill in the art that the accompanying drawings only illustrate some embodiments of the present disclosure and other drawings can be obtained by one of ordinary skill in the art without any creative effort based on the accompanying drawings.

[0071] Figure 1 A flowchart of a pixel prediction method in decoding in one specific embodiment of the present disclosure is shown;

[0072] Figure 2 A flowchart of a pixel prediction method in decoding in an example embodiment of the present disclosure is shown;

[0073] Figure 3 A flowchart of determining a target motion vector of a target decoding block in an example embodiment of the present disclosure is shown;

[0074] Figure 4 A flowchart of determining a motion error threshold according to a type of a current decoding frame in an example embodiment of the present disclosure is shown;

[0075] Figure 5 A flowchart of performing integer-pel offset on an initial motion vector in an example embodiment of the present disclosure is shown;

[0076] Figure 6 A flowchart of obtaining a pixel prediction result of a decoding block according to a reference block in an example embodiment of the present disclosure is shown;

[0077] Figure 7 A flowchart of an optimization step of a pixel prediction method in one specific embodiment of the present disclosure is shown;

[0078] Figure 8 A block diagram of a pixel prediction apparatus in decoding in an example embodiment of the present disclosure is shown;

[0079] Figure 9 A structural diagram of a computer system of an electronic device suitable for implementing an embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0080] In order to make the ordinary person in the art better understand the technical solutions of the present disclosure, the technical solutions in the embodiments of the present disclosure will be described clearly and completely below in conjunction with the drawings.

[0081] It should be noted that the terms "first", "second", and the like in the description and in the claims of the present disclosure and the above-described drawings are used to distinguish similar objects and are not necessarily used to describe a particular sequential or chronological order. It should be understood that the data thus used can be interchanged, where appropriate, so that the embodiments of the present disclosure described herein can be carried out in other than the order shown or described herein.

[0082] The example implementations described below can be implemented in a number of ways, and are not to be limited by the examples set forth herein; rather, these implementations are provided so that this disclosure will be thorough and complete, and will fully convey the concept of example implementations to those skilled in the art. The described features, structures, or characteristics can be combined in any suitable manner in one or more implementations. In the following description, numerous specific details are provided to give a thorough understanding of implementations of the present disclosure. One skilled in the relevant art will recognize, however, that the implementations of the present disclosure can be practiced without one or more of the specific details, or with other methods, components, devices, steps, etc. In other instances, well-known structures have not been described in detail so as not to obscure aspects of the present disclosure.

[0083] Furthermore, the accompanying drawings are only schematic and are non-limiting detailed representations of implementations of the present disclosure. Identical components have been given the same reference numerals, and thus will not be described again at length. Some embodiments are shown by way of example in the drawings and will be described in detail in the text below. Each example serves to explain certain aspects of the present disclosure. The use of the same reference signs in different drawings indicates similar or identical components. Some blocks in the drawings are functional entities that do not necessarily have to correspond to physically or logically independent entities. These functional entities can be implemented in software, or in one or more hardware modules or integrated circuits, or in different network and / or processor devices and / or microcontroller devices.

[0084] In some related embodiments, the DMVR technology can optimize the initial motion vector in bidirectional prediction through local search at the decoding end, improve the accuracy of motion compensation, reduce residual data, and thus improve compression efficiency. As shown in Figure 1 The specific process of DMVR is as follows:

[0085] Step S110. Decoding block division.

[0086] According to the block size, the coding unit is divided into 8x16, 16x8 or 16x16 sub-blocks, and each sub-block is independently processed by DMVR.

[0087] Step S120. Initial error calculation.

[0088] Take the initial motion vector pair (mv0, mv1) of bidirectional prediction, use the initial motion vector for bidirectional motion compensation, and calculate the initial motion error between the two reference blocks.

[0089] Step S130. Threshold judgment.

[0090] The initial motion error is multiplied by 3 / 4 and updated, and if the updated motion error is less than the number of sub-pixel, it is considered that the initial motion vector is more accurate, the initial motion vector is maintained, and invalid refinement search is avoided.

[0091] Step S140. Integer pixel offset.

[0092] A 25-point search is performed in a 5x5 search window, the pixel coordinates are (mvX, mvY), the search range is [-2, +2] pixels, the symmetric motion vector pair and the motion error are calculated for each search point, and the position with the minimum motion error is selected as the integer pixel optimization result.

[0093] Step S150. Sub-pixel offset.

[0094] A 1 / 4 precision sub-pixel search is performed near the integer pixel optimal point, an error plane fitting method is used to estimate the motion error of the sub-pixel position, and the optimal sub-pixel position is found.

[0095] Step S160. Boundary padding and motion compensation.

[0096] The optimal motion vector is padded, the padded reference region is used for bidirectional motion compensation, and the final prediction is obtained by weighted averaging the prediction results of the two directions.

[0097] The main disadvantage of the above DMVR algorithm is that the decoding complexity is too high, which makes it difficult to land in actual application, and the root cause comes from the characteristics of the algorithm itself. The increase in complexity mainly includes the 25-point motion error calculation of each sub-block, the interpolation calculation of each sub-block after motion vector offset, and the division of a larger block into a large number of sub-blocks for independent motion vector offset. DMVR obtains more accurate prediction by independently refining the motion vector of each sub-block in a region to improve compression efficiency. In order to save the bit overhead of motion vector offset, the algorithm adopts an implicit derivation method to refine the motion vector, which requires a consistent search process on the encoding and decoding sides. For mobile devices and other terminal devices, the increase in decoding calculation is difficult to bear.

[0098] Based on the above problems, the present example embodiment first provides a pixel prediction method in decoding. Referring to Figure 2 The pixel prediction method in decoding can include the following steps:

[0099] Step S210. Divide a current coding unit in a current decoding frame into a plurality of decoding blocks, and obtain a reference frame of the current decoding frame.

[0100] Step S220. Obtain a target decoding block in the current coding unit, and determine a target motion vector of the target decoding block, wherein the target decoding block comprises a diagonal decoding block in the current coding unit.

[0101] Step S230. If the target motion vectors of the target decoding blocks are the same, determine a reference coding unit in the reference frame according to the target motion vector, and obtain a pixel prediction result of the current coding unit according to the reference coding unit.

[0102] Step S240. If the target motion vectors of the target decoding blocks are different, determine the target motion vectors of each decoding block in the current coding unit respectively, determine the corresponding reference blocks of the decoding blocks in the reference frame according to the target motion vectors of the decoding blocks, and obtain the pixel prediction result of the decoding blocks according to the reference blocks.

[0103] The pixel prediction method in the decoding of the example embodiment of the present disclosure realizes differentiated prediction processing through dynamic division of coding units and judgment based on the motion vector consistency of diagonal decoding blocks. When the motion vectors of diagonal decoding blocks are consistent, the sub-block processing overhead is reduced through whole-block prediction; when the motion vectors of diagonal decoding blocks exist differences, the local processing accuracy is maintained, and the whole-block prediction error accumulation is avoided through block processing. At the same time, the selection strategy of diagonal decoding blocks enhances the accuracy of motion difference detection, and can more effectively identify the motion change area within the block. The pixel prediction method in the example embodiment of the present disclosure balances the prediction accuracy and the calculation efficiency through the dynamic processing mechanism, reduces the overall complexity of motion search and interpolation operation in the decoding process, solves the delay and power consumption problems caused by complex operations at the decoding end, maintains the prediction accuracy while reducing the calculation complexity, and has the advantages of improving the decoding efficiency, reducing the calculation complexity, and maintaining the compression efficiency.

[0104] Next, the above steps of the example embodiment will be described in more detail. Figures 3 to 7 The above steps of the example embodiment will be described in more detail.

[0105] In step S210, the current coding unit in the current decoding frame is divided into multiple decoding blocks, and the reference frame of the current decoding frame is obtained.

[0106] In the example embodiment, each decoding frame can contain multiple coding units, and each coding unit can be divided into multiple decoding blocks. The reference frame refers to the video frame that needs to be referenced when decoding the current decoding frame, and generally can include a forward reference frame and a backward reference frame.

[0107] In the example embodiment, the size of the current coding unit can also be limited before the current coding unit in the current decoding frame is divided into multiple decoding blocks. Specifically, the number of pixels of the current coding unit can be obtained; if the number of pixels of the current coding unit is less than a preset number of pixel threshold, the subsequent steps are continued to be executed; and if the number of pixels of the current coding unit is greater than or equal to the number of pixel threshold, the subsequent steps are cancelled to be executed.

[0108] For a larger coding unit (such as 128x128), a large number of sub-blocks need to be processed for motion vector refinement. Since the large block is generally a block with simple texture, the gain ratio of the sub-block after the motion vector refinement is not high. It is found through testing that, by limiting the DMVR processing on the coding unit with the number of pixels greater than a certain number of pixel threshold, for example, the coding unit with the number of pixels greater than 2048, the decoding complexity can be effectively reduced at a high cost performance.

[0109] Specifically, in the initial stage of the decoding process, the total number of pixels of the current coding unit is counted and compared with the preset threshold to realize the differential processing of different sizes of coding units. When the number of pixels is lower than the threshold, it indicates that the size of the coding unit is small, and the subsequent block division, motion vector calculation and other refinement processes are suitable; when the number of pixels reaches or exceeds the threshold, it indicates that the size of the coding unit is large, and the subsequent calculation-intensive operations are directly skipped to avoid redundant motion compensation on the large-size unit. This pre-judgment mechanism based on the size of the pixel reduces the calculation overhead of the large-size coding unit from the source by selectively executing the processing flow. For high-resolution video streams or decoding devices with limited computing capacity, the processing flow can be dynamically adjusted to optimize the allocation of computing resources.

[0110] In step S220, a target decoding block in the current coding unit is obtained, and a target motion vector of the target decoding block is determined, wherein the target decoding block includes a diagonal decoding block in the current coding unit.

[0111] In the example embodiment, the diagonal decoding block refers to the decoding block located at the diagonal line position of the coding unit, such as the top-left decoding block and the bottom-right decoding block. By selecting the diagonal sub-block as the key area, the representative motion characteristics can be used to reduce the calculation dimension. The target motion vector refers to the optimal motion vector after verification and optimization.

[0112] In the example embodiment, as shown in FIG. 2, the determination of the target motion vector of the target decoding block can include the following steps: Figure 3

[0113] Step S310. The initial motion vector of the target decoding block is obtained, and the initial reference block of the target decoding block is determined according to the initial motion vector.

[0114] ​The initial motion vector refers to a preliminary motion vector derived by the decoder through adjacent block motion information or a prediction mode, which can be implemented in a manner of prediction based on time domain or spatial domain correlation, and is used to quickly establish an initial reference block to reduce the amount of calculation. The initial reference block refers to a pixel region in a reference frame corresponding to the initial motion vector.

[0115] Step S320. Obtain the initial motion error according to the initial reference block of the target decoding block, and determine the motion error threshold according to the type of the current decoding frame.

[0116] In the example embodiment, the reference frame includes a forward reference frame and a backward reference frame, and the reference block includes a forward reference block in the forward reference frame and a backward reference block in the backward reference frame. The initial motion error refers to the difference between the current block and the initial reference block, which can be obtained according to the sum of absolute differences of the initial forward reference block and the initial backward reference block of the target decoding block.

[0117] The forward reference frame refers to a decoded image located in front of the time axis of the current decoding frame, which is used to provide reference data for forward motion prediction, and its role is to capture the forward motion trajectory of the target decoding block in the time sequence. The backward reference frame refers to a decoded image located behind the time axis of the current decoding frame, which is used to provide reference data for backward motion prediction, and its role is to capture the backward motion trajectory of the target decoding block in the time sequence. The forward reference block refers to a pixel region in the forward reference frame corresponding to the motion vector of the target decoding block, which can be determined by mapping the position of the motion vector coordinates, and is used to calculate the forward prediction error. The backward reference block refers to a pixel region in the backward reference frame corresponding to the motion vector of the target decoding block, which can be determined by mapping the position of the motion vector coordinates, and is used to calculate the backward prediction error.

[0118] The sum of absolute differences refers to the sum of absolute values of the luminance or chrominance difference values of the corresponding pixels of the forward reference block and the backward reference block, which can be implemented in a manner of pixel-by-pixel calculation and superposition, and its role is to quantify the matching degree between the two reference blocks. At the decoding end, the matching degree of the two reference blocks can be found in a small range by SAD (Sum of Absolute Differences) calculation. Since no additional information needs to be transmitted, this optimization at the decoding end can directly bring compression gain. After the initial motion vector is quickly generated through the motion information of adjacent blocks, the pixel difference value between the current block and the reference block at the position pointed by the initial motion vector is calculated as the initial motion error.

[0119] In the bidirectional motion estimation process, the forward reference block and the backward reference block are obtained from the reference frames in different time directions respectively to form a pair of bidirectional prediction data. By performing absolute difference summation on the pixel difference between the forward reference block and the backward reference block, the motion matching accuracy in both directions can be reflected. When the difference between the bidirectional reference blocks is small, it indicates that the initial motion vector has high matching degree in both time directions, and thus the initial motion vector can be directly used as the final result to avoid subsequent correction operations. When the bidirectional difference is large, the motion vector correction process is triggered.

[0120] In the example embodiment, the motion error threshold refers to a critical value for determining whether to trigger motion vector correction, which can be dynamically adjusted according to the decoding block size and the time domain layer to realize adaptive processing in different scenarios. As shown in FIG. 5, the motion error threshold is determined according to the type of the current decoding frame, which can include the following steps: Figure 4

[0121] Step S410. Obtain a threshold base parameter according to the number of pixels in the decoding block.

[0122] The threshold base parameter refers to the base parameter for calculating the motion error threshold, which can be determined according to the number of pixels in the decoding block.

[0123] Step S420. Determine the time domain layer in which the current decoding frame is located in the decoding process according to the type of the current decoding frame, and determine a threshold multiple according to the time domain layer.

[0124] The time domain layer refers to a hierarchical system divided according to the frame type, and the hierarchical value can be determined by the encoding properties of the key frame, the forward reference frame and the bidirectional reference frame type. The hierarchical value is used to reflect the importance of the frame in the time domain prediction, and the high-level frame corresponds to a larger threshold multiple to relax the error judgment condition. The threshold multiple refers to a proportional factor positively related to the level, for example, a preset level-multiple mapping table can be used to realize it. This parameter is used to set a higher error tolerance for high-level reference frames to reduce the calculation frequency of motion vector correction.

[0125] It is found through statistics that different time domain layers have different sensitivities to the threshold. The frames in the lower layer do not have obvious performance loss for a larger threshold. Because the threshold becomes larger, more sub-blocks skip the subsequent fine processing of the motion vector to reduce the calculation amount. Therefore, the time domain layer attribute of the current decoding frame can be used to determine the error threshold. For example, the key frame uses a lower threshold to improve the correction sensitivity, and the prediction frame uses a higher threshold to reduce the correction frequency. For example, the threshold multiples that can be set for different time domain layers (not including the highest layer) are 2, 4, 6, 8 and 8 under GOP (Group of Pictures, image group) 32.

[0126] ​Step S430. Obtain the motion error threshold according to the threshold base parameter and the threshold multiple.

[0127] Specifically, the number of decoded block pixels can be taken as the threshold base parameter, and then the time domain level is dynamically allocated according to the frame type, the key frame is allocated the lowest level, and the reference frame with the bidirectional prediction feature is allocated the highest level. The final motion error threshold is generated by the product of the base parameter and the multiple, so that the threshold of the high-level reference frame increases with the level. When the size of the decoded block is small, the base parameter is automatically reduced, and at this time, even if the multiple of the high-level frame is high, the overall threshold can still be kept in a reasonable range to prevent small size blocks from skipping necessary motion vector correction due to too high threshold.

[0128] In the example embodiment, by introducing a dynamic hierarchical adjustment mechanism of the motion error judgment threshold, the judgment conditions are differentiated for different sizes of decoded blocks and reference frames of different time domain importance under the premise of ensuring the accuracy of motion vector correction. For small size decoded blocks, the correction sensitivity is maintained by reducing the base parameter; for high-level reference frames, the correction frequency is reduced by increasing the multiple factor. This method can adaptively select the processing path according to the initial matching quality, avoiding redundant calculation on motion vectors that have already met the accuracy requirements.

[0129] Step S330. If the initial motion error is less than the motion error threshold, the initial motion vector is taken as the target motion vector of the target decoded block.

[0130] When the initial error is lower than the threshold, the initial vector is directly taken as the final target motion vector, and the subsequent correction steps are skipped to save computing resources.

[0131] Step S340. If the initial motion error is greater than or equal to the motion error threshold, the initial motion vector is subjected to integer pixel offset to obtain the target motion vector of the target decoded block.

[0132] When the error exceeds the threshold, local search at the integer pixel level is performed based on the initial vector, and the optimal correction result is selected by comparing the error values corresponding to different offset positions.

[0133] Integer pixel offset refers to an operation of adjusting the pointing position of the motion vector in integer pixels. Specifically, a symmetric search mode can be used for local correction within a limited range, such as moving in the horizontal or vertical direction within a preset 5x5 search window. The integer pixel offset operation limits the search range to a local area, significantly reducing the amount of calculation compared to full search or sub-pixel search.

[0134] After the 25-point search of the integer-pixel offset of the decoded block is completed, the precision of the motion vector is consistent with the initial motion vector. If the initial motion vector is integer-pixel precision, the motion vector after the refinement is also integer-pixel precision, and no sub-pixel precision interpolation is required when generating the predicted pixels subsequently. However, after the sub-pixel offset is completed, almost all the motion vectors become sub-pixel, which increases a large number of interpolation calculations. By directly removing the process of the sub-pixel offset, decoding acceleration can be obtained at a higher cost performance.

[0135] In the example embodiment, unnecessary full-range search operations are avoided through the dynamic threshold judgment and the local correction strategy, and the processing efficiency can be significantly improved, especially in the high temporal layer or large-size coding block scenario.

[0136] In the example embodiment, as shown in FIG. 1, the integer-pixel offset is performed on the initial motion vector to obtain the target motion vector of the target decoded block, which can specifically include the following steps: Figure 5

[0137] Step S510. The forward search region is determined according to the initial forward reference block and the preset search range, and the backward search region is determined according to the initial backward reference block and the preset search range.

[0138] The forward search region refers to a limited pixel range that is expanded around the initial forward reference block, and is used to limit the search space of the forward motion vector. The backward search region refers to a symmetrical search range established with the initial backward reference block as the center, which can be specifically implemented by using a rectangular region with the same size as the forward search region to ensure the symmetry of the bidirectional search.

[0139] Step S520. The symmetrical reference blocks in the forward search region and the backward search region are determined according to the offset reverse-symmetrical forward motion vector and the offset reverse-symmetrical backward motion vector on the basis of the initial motion vector.

[0140] The offset reverse-symmetry refers to the offset direction of the forward motion vector being opposite to that of the backward motion vector and the displacement being equal. By using the continuity of the motion, in the bidirectional prediction, the real motion trajectory is continuous, and the forward and backward motion vectors are also symmetrical. By optimizing the symmetry at the decoding end, the prediction can be closer to the real motion.

[0141] Step S530. The absolute difference sum of each group of symmetrical reference blocks is obtained, and the symmetrical reference block with the minimum absolute difference sum is determined as the target reference block.

[0142] Step S540. The motion vector corresponding to the target reference block is determined as the target motion vector of the target decoded block.

[0143] ​For each candidate reference block generated by each set of symmetric offset, the absolute difference sum of the corresponding pixels of the forward reference block and the backward reference block is calculated, and then all candidate offset combinations are traversed to select the symmetric reference block with the minimum absolute difference sum as the optimal matching block, and the corresponding motion vector is selected as the target motion vector.

[0144] With reference to the foregoing description Figure 2 As shown in step S230, if the target motion vectors of the target decoding blocks are the same, the reference coding units in the reference frame are determined according to the target motion vectors, and the pixel prediction result of the current coding unit is obtained according to the reference coding units.

[0145] In the example embodiment, the reference coding unit refers to the region in the reference frame corresponding to the spatial position of the current coding unit, which can be realized by mapping the motion vector to the reference frame coordinates.

[0146] Since the motion vector refinement processing of the decoding blocks in the coding unit has strong local correlation, for the coding unit with the number of decoding blocks greater than or equal to a certain threshold, for example, greater than or equal to 4 blocks, the motion vector refinement processing of the top-left decoding block and the bottom-right decoding block can be performed first, and if the optimal motion vectors obtained are the same, it indicates that the same motion vector can be directly used for other decoding blocks. If the optimal motion vectors of all decoding blocks are the same, interpolation can be directly performed on the coding unit, for example, the pixel prediction result of the current coding unit is obtained according to the weighted sum of the forward and backward reference coding units, a large amount of calculation can be skipped, the interpolation efficiency is improved, and the performance loss is reduced.

[0147] In step S240, if the target motion vectors of the target decoding blocks are different, the target motion vectors of each decoding block in the current coding unit are determined respectively, the reference blocks corresponding to the decoding blocks in the reference frame are determined according to the target motion vectors of the decoding blocks, and the pixel prediction result of the decoding block is obtained according to the reference block.

[0148] If the target motion vectors of each target decoding block are inconsistent, the motion vector matching and reference block positioning are performed separately for each decoding block in the current coding unit, the pixel prediction result of each decoding block is obtained respectively, and thus the pixel prediction result of the entire coding unit is obtained.

[0149] In the example embodiment, as Figure 6 As shown, the reference blocks corresponding to the decoding blocks in the reference frame are determined according to the target motion vectors of the decoding blocks, and the pixel prediction result of the decoding block is obtained according to the reference block, which can include the following steps:

[0150] Step S610. If the target motion vector of the decoding block points to a sub-pixel position in the reference frame, the first reference block corresponding to the decoding block in the reference frame is determined according to the target motion vector of the decoding block.

[0151] Sub-pixel position refers to a position of a non-integer pixel coordinate in a reference frame, which can be determined by using an interpolation algorithm with 1 / 2 pixel or 1 / 4 pixel precision. Sub-pixel can improve the pointing accuracy of a motion vector.

[0152] Step S620. Boundary padding is performed on the first reference block to obtain a second reference block corresponding to the decoding block in the reference frame.

[0153] Boundary padding refers to extending pixel values of a part exceeding a valid pixel region of the reference frame, so as to ensure that the obtained second reference block is at an integer pixel position.

[0154] Step S630. Weighted average is performed on the second reference block corresponding to the decoding block in the reference frame to obtain a pixel prediction result of the decoding block.

[0155] Finally, motion compensation is performed according to the second reference block after boundary padding, and weighted average is performed on the forward and backward second reference blocks to obtain a pixel prediction result of the decoding block.

[0156] As shown in FIG. 6, the pixel prediction method in the specific embodiment of the present disclosure includes the following steps. Figure 7 The optimization step of the pixel prediction method in the specific embodiment of the present disclosure can include the following parts.

[0157] Optimization step 1: early exit of a diagonal sub-block

[0158] The motion vector refinement processing of a sub-block has strong local correlation. For a coding unit with a sub-block number greater than or equal to 4, the motion vector refinement processing of the upper left sub-block and the lower right sub-block can be performed first. If the results are consistent, the same result is directly taken for other sub-blocks, a large amount of calculation can be skipped, and the performance loss is small.

[0159] Optimization step 2: hierarchical threshold adjustment

[0160] Since the motion error used for the motion vector refinement processing comes from the front and rear two reference blocks, and is not the motion error of the original pixels of the current block, the motion error used for comparison itself has a certain error. It is found through statistics that different temporal layers have different sensitivities to the threshold. The frames in the lower layer will not have obvious performance loss for a larger threshold. Since the threshold is larger, more sub-blocks can skip the subsequent motion vector refinement processing process, thereby reducing the calculation amount. The threshold multiples of 2, 4, 6, 8, and 8 that can be set for different temporal layers (not including the highest layer) are counted under GOP 32.

[0161] Optimization step 3: removing sub-pixel offset

[0162] After each sub-block completes the 25-point search of the integer-pixel offset, the precision of the motion vector is consistent with the initial motion vector. If the initial motion vector is integer-pixel precision, the refined motion vector is also integer-pixel precision, and no sub-pixel interpolation is required when generating the predicted pixels. However, after the sub-pixel offset is completed, almost all motion vectors become sub-pixel, which increases a large number of interpolation calculations. By directly removing the sub-pixel offset process, decoding acceleration can be achieved at a relatively high cost performance.

[0163] Optimization step 4: whole block motion compensation

[0164] After each sub-block completes the motion vector refinement process, the original implementation is to perform interpolation to obtain predicted pixels in units of sub-blocks. Due to the characteristics of the SIMD (Single Instruction Multiple Data) assembly, frequent sub-block calls are not as efficient as large block centralized interpolation. Therefore, by judging whether the motion vector refinement processes of all sub-blocks are consistent, interpolation can be performed on the encoding unit to obtain pixels in the case of full consistency, thereby improving the interpolation efficiency.

[0165] Optimization step 5: block restriction

[0166] For larger blocks (such as 128x128), a large number of sub-blocks need to be processed for motion vector refinement. Since large blocks are generally blocks with relatively simple textures, the gain ratio of the sub-block motion vector refinement is not high. Tests have found that by limiting the encoding unit with a pixel number greater than 2048 to not perform DMVR, the decoding complexity can be effectively reduced at a relatively high cost performance.

[0167] In the example embodiment, the complexity sources of DMVR are analyzed from the perspective of considering compression efficiency. A non-standard solution is implemented from different block cost performance analysis, sub-block motion vector refinement skipping, hierarchical threshold adjustment, and interpolation complexity optimization, which greatly reduces the decoding complexity of the DMVR algorithm and improves the decoding end cost performance. Compared with the original DMVR algorithm, the decoding complexity can be reduced by 80%, and more than 65% of the compression rate benefit is retained in the PSNR611 and SSIM611 indicators.

[0168] In practical application, under the KVC (Key-Value Coding) 4.0 version and Random Access configuration, the CRF (Conditional Random Field) is 24, 26, 28, and 30, and the objective benefits of 100 sequences in the KwaiMp4 (video test sequence set) sequence set are tested, the BD-Rate (code rate) SSIM611 is-0.92%, the BD-Rate PSNR611 is-1.13%, the BD-Rate VMAF611 is-0.97%, the encoding time is increased by 1%, and the decoding time is increased by 6%.

[0169] It should be noted that although the various steps of the methods in the present disclosure are described in a particular order in the accompanying drawings, this does not require or imply that the steps must be performed in this particular order, or that all the steps shown must be performed to achieve the desired results. In addition or alternatively, some steps can be omitted, a plurality of steps can be combined into one step, and / or one step can be divided into a plurality of steps, etc.

[0170] Further, the present disclosure also provides a pixel prediction device in decoding. Referring to Figure 8 As shown, the pixel prediction device in decoding can include a decoding block division module 810, a motion vector determination module 820, an encoding unit prediction module 830, and a decoding block prediction module 840. Among them:

[0171] The decoding block division module 810 is configured to divide a current encoding unit in a current decoding frame into a plurality of decoding blocks, and obtain a reference frame of the current decoding frame;

[0172] The motion vector determination module 820 is configured to obtain a target decoding block in the current encoding unit, and determine a target motion vector of the target decoding block, wherein the target decoding block includes a diagonal decoding block in the current encoding unit;

[0173] The encoding unit prediction module 830 is configured to determine a reference encoding unit in the reference frame according to the target motion vector of the target decoding block if the target motion vectors of the target decoding blocks are the same, and obtain a pixel prediction result of the current encoding unit according to the reference encoding unit;

[0174] The decoding block prediction module 840 is configured to determine the target motion vectors of each decoding block in the current encoding unit respectively if the target motion vectors of the target decoding blocks are different, determine the corresponding reference blocks of the decoding blocks in the reference frame according to the target motion vectors of the decoding blocks, and obtain the pixel prediction results of the decoding blocks according to the reference blocks.

[0175] In some example embodiments of the present disclosure, the motion vector determination module 820 can include an initial motion vector obtaining unit, a motion error threshold value determining unit, a first target motion vector determining unit, and a second target motion vector determining unit. Wherein:

[0176] The initial motion vector obtaining unit is configured to perform obtaining an initial motion vector of a target decoding block, and determining an initial reference block of the target decoding block according to the initial motion vector;

[0177] The motion error threshold value determining unit is configured to perform obtaining an initial motion error according to the initial reference block of the target decoding block, and determining a motion error threshold value according to a type of a current decoding frame;

[0178] The first target motion vector determining unit is configured to perform, if the initial motion error is less than the motion error threshold value, taking the initial motion vector as a target motion vector of the target decoding block;

[0179] The second target motion vector determining unit is configured to perform, if the initial motion error is greater than or equal to the motion error threshold value, performing a pel-recursive on the initial motion vector to obtain a target motion vector of the target decoding block.

[0180] In some example embodiments of the present disclosure, the motion error threshold value determining unit can include a threshold value base parameter determining unit, a threshold value multiple determining unit, and a motion error threshold value calculating unit. Wherein:

[0181] The threshold value base parameter determining unit is configured to perform obtaining a threshold value base parameter according to a number of pixels in a decoding block;

[0182] The threshold value multiple determining unit is configured to perform determining a time domain layer in which a current decoding frame is located in a decoding process according to the type of the current decoding frame, and determining a threshold value multiple according to the time domain layer;

[0183] The motion error threshold value calculating unit is configured to perform obtaining the motion error threshold value according to the threshold value base parameter and the threshold value multiple.

[0184] In some example embodiments of the present disclosure, the motion error threshold value determining unit can further include an initial motion error determining unit configured to perform obtaining the initial motion error according to a sum of absolute differences of the initial forward reference block and the initial backward reference block of the target decoding block.

[0185] In some example embodiments of the present disclosure, the second target motion vector determining unit can include a search region determining unit, a symmetric reference block determining unit, a target reference block determining unit, and a target motion vector determining unit. Wherein:

[0186] The search region determination unit is configured to determine a forward search region according to the initial forward reference block and a preset search range, and determine a backward search region according to the initial backward reference block and the preset search range.

[0187] The symmetric reference block determination unit is configured to determine symmetric reference blocks in the forward search region and the backward search region according to the offset inversely symmetric forward motion vector and the offset inversely symmetric backward motion vector based on the initial motion vector.

[0188] The target reference block determination unit is configured to obtain an absolute difference sum of each group of symmetric reference blocks, and determine a symmetric reference block with the smallest absolute difference sum as a target reference block.

[0189] The target motion vector determination unit is configured to determine a motion vector corresponding to the target reference block as a target motion vector of the target decoding block.

[0190] In some example embodiments of the present disclosure, the pixel prediction device in the decoding provided by the present disclosure can further include an encoding unit limiting module, which can include a pixel number obtaining unit, a continue executing unit and a cancel executing unit. Wherein:

[0191] The pixel number obtaining unit is configured to obtain the pixel number of the current encoding unit.

[0192] The continue executing unit is configured to continue to execute the subsequent steps if the pixel number of the current encoding unit is less than a preset pixel number threshold.

[0193] The cancel executing unit is configured to cancel the execution of the subsequent steps if the pixel number of the current encoding unit is greater than or equal to the pixel number threshold.

[0194] In some example embodiments of the present disclosure, the decoding block prediction module 840 can include a first reference block determination unit, a second reference block determination unit and a decoding block pixel prediction unit. Wherein:

[0195] The first reference block determination unit is configured to determine a first reference block corresponding to the decoding block in the reference frame according to the target motion vector of the decoding block if the target motion vector of the decoding block points to a sub-pixel position in the reference frame.

[0196] The second reference block determination unit is configured to perform boundary padding on the first reference block to obtain a second reference block corresponding to the decoding block in the reference frame.

[0197] The decoding block pixel prediction unit is configured to perform weighted average on the second reference block corresponding to the decoding block in the reference frame to obtain a pixel prediction result of the decoding block.

[0198] The specific details of the modules / units in the pixel prediction device in the above decoding have been described in detail in the corresponding method embodiment part, and will not be described here again.

[0199] Figure 9 A structural diagram of a computer system of an electronic device suitable for implementing embodiments of the present application is shown.

[0200] It should be noted that, Figure 9 The computer system 900 of the electronic device shown is only an example, and should not bring any limitation to the functions and use range of the embodiments of the present application.

[0201] As Figure 9 shown, the computer system 900 includes a central processing unit (CPU) 901, which can perform various appropriate actions and processes according to programs stored in a read-only memory (ROM) 902 or programs loaded from a storage portion 908 into a random access memory (RAM) 903. In the RAM 903, various programs and data required for system operation are also stored. The CPU 901, the ROM 902, and the RAM 903 are connected to each other through a bus 904. An input / output (I / O) interface 905 is also connected to the bus 904.

[0202] The following components are connected to the I / O interface 905: an input portion 906 including a keyboard, a mouse, and the like; an output portion 907 including a cathode ray tube (CRT), a liquid crystal display (LCD), and the like, and a speaker, and the like; a storage portion 908 including a hard disk, and the like; and a communication portion 909 including a network interface card such as a LAN card, a modem, and the like. The communication portion 909 performs communication processing via a network such as the Internet. A drive 910 is also connected to the I / O interface 905 as necessary. A removable medium 911 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, and the like is attached to the drive 910 as necessary, so that a computer program read therefrom is installed into the storage portion 908 as necessary.

[0203] In particular, according to embodiments of the present application, the processes described above with reference to the flowcharts can be implemented as a computer software program. For example, embodiments of the present application include a computer program product comprising a computer program carried on a computer readable medium, the computer program containing program code for executing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network by the communication portion 909, and / or installed from the removable medium 911. When the computer program is executed by the central processing unit (CPU) 901, various functions defined in the system of the present application are performed.

[0204] The exemplary embodiments of the present disclosure also provide a computer program product. The computer program product includes a computer program which, when executed by a processor, implements the pixel prediction method in the above-described decoding.

[0205] In an embodiment, the computer program product can be a tangible product containing the computer program, such as a computer-readable storage medium storing the computer program. The computer-readable storage medium can be a storage medium based on electric, magnetic, optical, electromagnetic, infrared, etc. signals, including but not limited to: random access memory (RAM), read-only memory (ROM), magnetic tape, floppy disk, flash memory (Flash), mechanical hard disk (HDD), solid state disk (SSD), etc. For example, the computer program product can be implemented as a non-volatile storage medium storing the computer program, such as read-only memory (ROM), NAND flash memory (Nand Flash), etc.

[0206] In an embodiment, the computer program product can be an intangible product containing the computer program. For example, the computer program product can be implemented as a virtual digital product, such as an executable file, installation package, etc. digital file storing the computer program.

[0207] The code of the computer program can be written in one or more programming languages. The programming languages include, but are not limited to, C language, Java, C++, etc. The program code can be executed entirely on the user computing device, or partially on the user computing device, or as a separate software package, or partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server. In the case involving a remote computing device, the remote computing device can be connected to the user computing device through any kind of network, such as a local area network (LAN), a wide area network (WAN), etc., or can be connected to an external computing device (for example, through an Internet connection provided by an operator).

[0208] The computer program can be carried or transmitted by electric, magnetic, optical, electromagnetic, infrared, etc. signals. The electronic device can convert the signals carrying the computer program into digital signals, and then run the computer program. When the computer program is running on the electronic device, its code is used to make the electronic device execute (more specifically, can make the processor of the electronic device execute) the method steps of various exemplary embodiments of the present disclosure, such as the pixel prediction method in the above-described decoding.

[0209] The computer program product of the first aspect of the present disclosure can include a computer readable storage medium. The computer readable storage medium can be a tangible medium that can retain, store, or maintain the program code for use by a machine. The computer readable storage medium can be based on any suitable technology for programmable processing, including both numerous embodiments of memory media and processing mediums suitable for use with a computer. In this context, a "computer readable storage medium" can include tablets computers, memory cards, ROM, RAM, DVD, Blu-ray, hard drives, or any other suitable medium upon which a program can be maintained or stored.

[0210] It should be noted that although several modules of the device for action execution are mentioned in the detailed description above, such a division is not mandatory. Indeed, according to embodiments of the present disclosure, the features and functionalities of two or more modules described above can be embodied in one module. Conversely, the features and functionalities of one module described above can be further divided into embodied by a plurality of modules.

[0211] Other embodiments of the present disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the features of the present disclosure disclosed herein. It is intended that the present disclosure cover any and all variations of the present disclosure that come within the scope of the present disclosure, including custom and practice of the art of the present disclosure. It is intended that the scope of the present disclosure be defined by the following claims.

[0212] It is to be understood that the present disclosure is not limited to the precise construction described above and shown in the drawings, and that various modifications and changes can be made by those skilled in the art without departing from the scope of the present disclosure. The scope of the present disclosure is limited only by the claims appended hereto.

Claims

1. A pixel prediction method in decoding, characterized in that: The application relates to a method for determining a target motion vector of a target decoding block in a current coding unit in a current decoding frame. The current coding unit is divided into multiple decoding blocks, and a reference frame of the current decoding frame is obtained; A target decoding block in the current coding unit is obtained, and a target motion vector of the target decoding block is determined, wherein the target decoding block comprises a diagonal decoding block in the current coding unit; If the target motion vectors of the target decoding blocks are the same, a reference coding unit in the reference frame is determined according to the target motion vector, and a pixel prediction result of the current coding unit is obtained according to the reference coding unit; If the target motion vectors of the target decoding blocks are different, target motion vectors of each decoding block in the current coding unit are determined respectively, corresponding reference blocks of the decoding blocks in the reference frame are determined according to the target motion vectors of the decoding blocks, and pixel prediction results of the decoding blocks are obtained according to the reference blocks.

2. The method of pixel prediction in decoding according to claim 1, wherein, The method for determining the target motion vector of the target decoding block comprises the following steps: An initial motion vector of the target decoding block is obtained, and an initial reference block of the target decoding block is determined according to the initial motion vector; An initial motion error is obtained according to the initial reference block of the target decoding block, and a motion error threshold value is determined according to the type of the current decoding frame; If the initial motion error is smaller than the motion error threshold value, the initial motion vector is taken as the target motion vector of the target decoding block; If the initial motion error is larger than or equal to the motion error threshold value, the initial motion vector is subjected to integer pixel offset to obtain the target motion vector of the target decoding block.

3. The method of Claim 2, wherein, The method for determining the motion error threshold value according to the type of the current decoding frame comprises the following steps: A threshold value basic parameter is obtained according to the number of pixels in the decoding block; A time domain layer in which the current decoding frame is located in a decoding process is determined according to the type of the current decoding frame, and a threshold value multiple is determined according to the time domain layer; The motion error threshold value is obtained according to the threshold value basic parameter and the threshold value multiple.

4. The method of Claim 2, wherein, The reference frame comprises a forward reference frame and a backward reference frame, the reference block comprises a forward reference block in the forward reference frame and a backward reference block in the backward reference frame, and the method for obtaining the initial motion error according to the initial reference block of the target decoding block comprises the following steps: The initial motion error is obtained according to the sum of absolute differences of the initial forward reference block and the initial backward reference block of the target decoding block.

5. The method of pixel prediction in decoding according to claim 4, characterized in that, The method for obtaining the target motion vector of the target decoding block by subjecting the initial motion vector to integer pixel offset comprises the following steps: A forward search area is determined according to the initial forward reference block and a preset search range, and a backward search area is determined according to the initial backward reference block and the preset search range; On the basis of the initial motion vector, a symmetric reference block in the forward search area and the backward search area is determined according to a forward motion vector and a backward motion vector which are inversely symmetrically offset; The sum of absolute differences of each group of the symmetric reference blocks is obtained, and the symmetric reference block with the minimum sum of absolute differences is determined as a target reference block; A motion vector corresponding to the target reference block is determined as the target motion vector of the target decoding block.

6. The method of pixel prediction in decoding according to claim 1, wherein, Before dividing a current coding unit in a current decoded frame into a plurality of decoded blocks, the method further comprises: acquiring a pixel number of the current coding unit; if the pixel number of the current coding unit is less than a preset pixel number threshold, then continuing to perform a subsequent step; if the pixel number of the current coding unit is greater than or equal to the pixel number threshold, then canceling the subsequent step.

7. The method of pixel prediction in decoding according to claim 1, wherein, The determining of the corresponding reference block of the decoded block in the reference frame according to the target motion vector of the decoded block and the obtaining of the pixel prediction result of the decoded block according to the reference block comprises: if the target motion vector of the decoded block points to a sub-pixel position in the reference frame, then determining a first reference block of the decoded block in the reference frame according to the target motion vector of the decoded block; performing boundary padding on the first reference block to obtain a second reference block of the decoded block in the reference frame; performing weighted average on the second reference block of the decoded block in the reference frame to obtain the pixel prediction result of the decoded block.

8. An apparatus for pixel prediction in decoding, characterized by The method comprises: a decoded block division module configured to perform division of a current coding unit in a current decoded frame into a plurality of decoded blocks and acquire a reference frame of the current decoded frame; a motion vector determination module configured to perform acquisition of a target decoded block in the current coding unit and determination of a target motion vector of the target decoded block, wherein the target decoded block comprises a diagonal decoded block in the current coding unit; a coding unit prediction module configured to perform, if the target motion vectors of the target decoded blocks are the same, determination of a reference coding unit in the reference frame according to the target motion vectors and obtaining of a pixel prediction result of the current coding unit according to the reference coding unit; a decoded block prediction module configured to perform, if the target motion vectors of the target decoded blocks are different, determination of target motion vectors of each decoded block in the current coding unit respectively, determination of corresponding reference blocks of the decoded blocks in the reference frame according to the target motion vectors of the decoded blocks, and obtaining of pixel prediction results of the decoded blocks according to the reference blocks.

9. An electronic device, comprising: The method comprises: a processor; a memory for storing instructions executable by the processor; wherein the processor is configured to execute the instructions to implement the pixel prediction method in decoding according to any one of claims 1 to 7.

10. A computer program product comprising a computer program, characterized in that, The computer program is executed by the processor to implement the pixel prediction method in decoding according to any one of claims 1 to 7.