Target pixel point searching method for inter-frame motion estimation coding

Through inter prediction and multi-pixel search technology, the target pixel points in inter motion estimation are determined, which solves the local optimal problem, reduces encoding complexity and improves efficiency, making it suitable for real-time video applications.

CN119254957APending Publication Date: 2025-01-03YEALINK (XIAMEN) NETWORK TECHNOLOGY CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411292362.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-14
Publication Date
2025-01-03

AI Technical Summary

Technical Problem

The existing inter-frame motion estimation encoding method is prone to falling into local optimal when looking for optimal pixel points, resulting in high encoding complexity and is not suitable for real-time application scenarios such as video conferencing.

Method used

By obtaining the video frame to be encoded, searching the entire pixel based on inter-frame prediction and combining the reference frame, determining the optimal search point of the entire pixel, and using this point to search half-pixel, determining whether to search 1/4 pixels, and finally searching from multiple searches Select the point with the least distortion among the points as the target pixel point.

Benefits of technology

It effectively reduces the pixel-based calculation complexity in inter-motion estimation, improves encoding efficiency, and makes inter-motion estimation encoding suitable for real-time application scenarios such as video conferences, and achieves rapid encoding without reducing encoding performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119254957A_ABST
    Figure CN119254957A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of video coding, and discloses a target pixel point searching method for inter-frame motion estimation coding, and the method comprises the steps: obtaining a to-be-coded video frame; predicting one block in the current frame of the to-be-coded video frame by combining the reference frame based on inter-frame prediction to obtain a predicted block; performing integer pixel search according to the prediction block, and determining an optimal integer pixel search point; performing half-pixel search by using the whole-pixel optimal search point, and determining a half-pixel optimal search point; whether 1 / 4 pixel search is carried out or not is judged through the half-pixel optimal search point; if 1 / 4 pixel search is carried out, determining a 1 / 4 pixel optimal search point; and selecting a search pixel point with minimum distortion from the integer pixel optimal search point, the half pixel optimal search point and the 1 / 4 pixel optimal search point as a target pixel point. According to the invention, on the premise of not reducing or slightly reducing the coding performance, the coding efficiency is improved, and the real-time coding effect is realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of video encoding, and in particular to a method for searching target pixel points for inter-frame motion estimation encoding. Background Art

[0002] As a new generation of video coding standard, HEVC has doubled the compression efficiency compared to the previous generation video coding standard H.264 / AVC, but at the same time, the coding complexity has also increased significantly. This is mainly due to the introduction of some new technologies in HEVC, such as large-size quadtree segmentation, higher prediction accuracy, 35 intra-frame prediction modes, RDO technology and SAO technology. The RDO process needs to calculate the coding cost of each coding size and prediction unit, and select the one with the lowest cost as the optimal size and prediction mode. Therefore, the RDO process is the most computationally intensive part of the encoder encoding process. The inter-frame motion estimation process requires the inter-frame prediction block to search for the most similar block from the adjacent reference frames through motion matching, which has extremely high computational complexity. Since inter-frame motion estimation uses HEVC, the new technology introduced leads to extremely high coding complexity and computational complexity, which is not suitable for real-time application scenarios such as video conferencing.

[0003] The application number CN201510509889.0, "A method for fast mode selection of HEVC inter-frame coding", mainly uses modeling to find the optimal pixel point, which is prone to fall into the problem of local optimality and has limitations in inter-frame motion estimation and reducing coding complexity.

[0004] With respect to the above-mentioned related technologies, the inventors have found that the existing inter-frame motion estimation coding method has the problem of being easily trapped in the local optimum when searching for the optimal pixel point and is not suitable for real-time application scenarios such as video conferencing. Summary of the invention

[0005] In order to make inter-frame motion estimation coding suitable for real-time application scenarios such as video conferencing and improve coding efficiency, the present application provides a target pixel point search method for inter-frame motion estimation coding.

[0006] In a first aspect, the present application provides a target pixel search method for inter-frame motion estimation encoding.

[0007] This application is achieved through the following technical solutions:

[0008] A target pixel search method for inter-frame motion estimation coding comprises the following steps:

[0009] Get the video frame to be encoded;

[0010] Based on inter-frame prediction, in combination with a reference frame, predict a block in the current frame of the video frame to be encoded to obtain a predicted block;

[0011] Performing integer pixel search according to the prediction block to determine an integer pixel optimal search point;

[0012] Performing a half-pixel search using the integer-pixel optimal search point to determine a half-pixel optimal search point;

[0013] Determining whether to perform a 1 / 4 pixel search based on the half-pixel optimal search point;

[0014] If a 1 / 4 pixel search is performed, determine the 1 / 4 pixel optimal search point;

[0015] A search pixel point with the smallest distortion is selected from the integer-pixel optimal search point, the half-pixel optimal search point and the 1 / 4-pixel optimal search point as a target pixel point.

[0016] In a preferred example, the present application can be further configured as follows: it also includes the following steps:

[0017] If the 1 / 4 pixel search is not performed, the search pixel point with the smallest distortion is selected from the integer pixel optimal search point and the half pixel optimal search point as the target pixel point.

[0018] In a preferred example, the present application may be further configured as follows: performing integer pixel search according to the prediction block, the step of determining the integer pixel optimal search point includes:

[0019] Using the motion vectors of the neighboring coding blocks of the prediction block in the spatial domain and the temporal domain, a motion vector set is formed;

[0020] Finding a motion vector with minimum distortion from the motion vector set as the initial vector of the current coding block, and obtaining an integer pixel search start point of the current coding block in the reference frame;

[0021] Taking the integer pixel search starting point as the center, respectively performing diamond searches with a preset step size, and selecting the point with the smallest distortion in the current diamond search as the search center point for the next diamond search;

[0022] Before performing the next diamond search, first calculate the distance between the search center point and the integer pixel search starting point;

[0023] Determining the distance and a preset distance threshold;

[0024] If the distance and the distance threshold satisfy a preset condition, the next diamond search is performed until the integer pixel search point appears at the search center position, and the integer pixel optimal search point is obtained, and the distortion value of the integer pixel optimal search point is less than or equal to the preset first threshold.

[0025] In a preferred example, the present application may be further configured as follows: after the step of determining the distance and the preset distance threshold, the step further includes:

[0026] If the distance and the distance threshold do not satisfy a preset condition, the search center point is used as the integer pixel search starting point, and a full traversal search is performed according to a preset step size to obtain the integer pixel optimal search point.

[0027] In a preferred example, the present application can be further configured as follows: using the integer pixel optimal search point to perform a half-pixel search, the step of determining the half-pixel optimal search point includes:

[0028] A rectangular search is performed with the integer-pixel optimal search point as the center. The search is performed in the order of (-2,0)→(2,0)→(0,-2)→(0,2)→(-2,-2)→(2,-2)→(-2,2)→(2,2), and the search point with the smallest distortion is selected as the half-pixel optimal search point.

[0029] In a preferred example, the present application can be further configured as follows: the step of determining the 1 / 4 pixel optimal search point includes:

[0030] Determining the position of the half-pixel optimal search point;

[0031] When the half-pixel optimal search point is located at the midpoint of the pixel block, a 1 / 4 pixel search is performed in the order of (0,-1)→(0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1);

[0032] First calculate the pixel values ​​of (0,-1), (0,1) and (-1,0) to determine the current 1 / 4 pixel search point;

[0033] If the current 1 / 4 pixel search point is (0,-1) or (-1,0), then calculate the pixel value of (-1,-1) to get the 1 / 4 pixel optimal search point;

[0034] If the current 1 / 4 pixel search point is (-1,0) or (0,1), then calculate the pixel value of (-1,1) to obtain the 1 / 4 pixel optimal search point;

[0035] Then calculate the pixel value of (1,0) to determine the current 1 / 4 pixel search point;

[0036] If the current 1 / 4 pixel search point is (0, -1) or (1, 0), the pixel value of (1, -1) is calculated to obtain the 1 / 4 pixel optimal search point.

[0037] In a preferred example, the present application may be further configured as follows: after the step of determining the position of the half-pixel optimal search point, the step further includes:

[0038] When the half-pixel optimal search point is located on the horizontal axis of the pixel block, a 1 / 4 pixel search is performed in the order of (0,-1)→(0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1);

[0039] First calculate the pixel values ​​of (0,-1) and (0,1);

[0040] Determining the position of the half-pixel optimal search point;

[0041] When the position of the half-pixel optimal search point is located on the positive horizontal axis of the pixel block, the pixel value of (-1,0) is calculated to determine the current 1 / 4 pixel search point;

[0042] If the current 1 / 4 pixel search points are (0,-1) and (-1,0), then calculate the pixel value of (-1,-1) to obtain the 1 / 4 pixel optimal search point;

[0043] If the current 1 / 4 pixel search points are (-1,0) and (0,1), then calculate the pixel value of (-1,1) to obtain the 1 / 4 pixel optimal search point;

[0044] When the position of the half-pixel optimal search point is located on the negative horizontal axis of the pixel block, the pixel value of (1,0) is calculated to determine the current 1 / 4 pixel search point;

[0045] If the current 1 / 4 pixel search point is (0,-1) or (1,0), then calculate the pixel value of (1,-1) to get the 1 / 4 pixel optimal search point;

[0046] If the current 1 / 4 pixel search point is (1,0), then the pixel value of (1,1) is calculated to obtain the 1 / 4 pixel optimal search point.

[0047] In a preferred example, the present application may be further configured as follows: after the step of determining the position of the half-pixel optimal search point, the step further includes:

[0048] When the half-pixel optimal search point is located on the vertical axis of the pixel block, a 1 / 4 pixel search is performed in the order of (0,-1) / (0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1);

[0049] If the half-pixel optimal search point is (0,2), then the pixel value of (0,-1) is calculated to determine the current 1 / 4 pixel search point;

[0050] If the half-pixel optimal search point is (0, -2), then the pixel value of (0, 1) is calculated to determine the current 1 / 4 pixel search point;

[0051] Calculate the pixel value of (-1,0) to determine the position of the half-pixel optimal search point and the position of the current 1 / 4-pixel search point;

[0052] When the half-pixel optimal search point is (0, 2) and the current 1 / 4 pixel search point is (0, -1) or (-1, 0), the pixel value of (1, -1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0053] When the half-pixel optimal search point is (0, -2) and the current 1 / 4 pixel search point is (0, 1) or (-1, 0), the pixel value of (-1, 1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0054] Calculate the pixel value of (1,0) to determine the position of the half-pixel optimal search point and the position of the current 1 / 4-pixel search point;

[0055] When the half-pixel optimal search point is (0, 2) and the current 1 / 4-pixel search point is (0, -1) or (1, 0), the pixel value of (1, -1) is calculated to obtain the 1 / 4-pixel optimal search point;

[0056] When the half-pixel optimal search point is (0, -2) and the current 1 / 4 pixel search point is (0, 1) or (1, 0), the pixel value of (1, 1) is calculated to obtain the 1 / 4 pixel optimal search point.

[0057] In a preferred example, the present application may be further configured as follows: after the step of determining the position of the half-pixel optimal search point, the step further includes:

[0058] When the half-pixel optimal search point is located at the vertex position of the pixel block, a 1 / 4 pixel search is performed in the order of (0,-1) / (0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1);

[0059] Determining the position of the half-pixel optimal search point;

[0060] If the vertical coordinate of the half-pixel optimal search point is 2, the pixel value of (0, -1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0061] If the vertical coordinate of the half-pixel optimal search point is not 2, the pixel value of (0,1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0062] If the horizontal coordinate of the half-pixel optimal search point is 2, the pixel value of (-1,0) is calculated to obtain the 1 / 4 pixel optimal search point;

[0063] If the vertical coordinate of the half-pixel optimal search point is 2 and the current 1 / 4 pixel search point is (0, -1) or (-1, 0), then the pixel value of (-1, -1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0064] If the vertical coordinate of the half-pixel optimal search point is -2 and the current 1 / 4 pixel search point is (-1,0) or (0,1), the pixel value of (-1,1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0065] If the horizontal coordinate of the half-pixel optimal search point is -2, the pixel value of (1,0) is calculated to obtain the 1 / 4-pixel optimal search point;

[0066] If the half-pixel optimal search point is (-2, -2) and the current 1 / 4 pixel search point is (0, -1) or (1, 0), then the pixel value of (1, -1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0067] If the current 1 / 4 pixel search point is (0,1) or (1,0), the pixel value of (1,1) is calculated to obtain the 1 / 4 pixel optimal search point.

[0068] In a preferred example, the present application may be further configured as follows: the step of determining whether to perform a 1 / 4 pixel search based on the half-pixel optimal search point includes:

[0069] Calculate the difference between the maximum distortion value in each half-pixel search point and the distortion value of the integer-pixel optimal search point;

[0070] If the difference between the maximum distortion value of the half-pixel search point and the distortion value of the integer-pixel optimal search point is greater than or equal to a preset second threshold, determining whether the distortion value of the half-pixel optimal search point is greater than the minimum distortion value of the MERGE mode;

[0071] When the distortion value of the half-pixel optimal search point is greater than the minimum distortion value of the MERGE mode, it is determined to perform a 1 / 4 pixel search;

[0072] When the difference between the maximum distortion value of the half-pixel search point and the distortion value of the integer-pixel optimal search point is less than the second threshold, it is determined not to perform the 1 / 4 pixel search.

[0073] In a second aspect, the present application provides a target pixel point search device for inter-frame motion estimation encoding.

[0074] This application is achieved through the following technical solutions:

[0075] A target pixel point search device for inter-frame motion estimation coding, comprising:

[0076] An acquisition module, used to obtain video frames to be encoded;

[0077] An inter-frame prediction module, configured to predict a block in a current frame of the video frame to be encoded based on the inter-frame prediction and in combination with a reference frame to obtain a predicted block;

[0078] An integer pixel search module, used to perform integer pixel search according to the prediction block and determine an integer pixel optimal search point;

[0079] A half-pixel search module, used to perform a half-pixel search using the integer-pixel optimal search point to determine the half-pixel optimal search point;

[0080] A judgment module, used to judge whether to perform a 1 / 4 pixel search based on the half-pixel optimal search point;

[0081] 1 / 4 pixel search module, used to perform 1 / 4 pixel search and determine the 1 / 4 pixel optimal search point;

[0082] The optimal search point determination module is used to select a search pixel point with the smallest distortion from the integer pixel optimal search point, the half pixel optimal search point and the 1 / 4 pixel optimal search point as a target pixel point.

[0083] In summary, compared with the prior art, the technical solution provided by this application has at least the following beneficial effects:

[0084] Based on inter-frame prediction, a block in the current frame of the acquired video frame to be encoded is predicted by utilizing the similarity between the previous and next frames and combining with the reference frame to obtain a prediction block. By storing the prediction error between the actual video block and the prediction block, there is no need to store the pixel data of the entire video block, so as to reduce the data volume of the video to be encoded and improve the encoding efficiency. An integer pixel search is performed according to the prediction block to determine the integer pixel optimal search point. A half-pixel search is performed using the integer pixel optimal search point to determine the half-pixel optimal search point, so as to fully utilize the characteristics of the prediction block and the position and search trend of the optimal half-pixel point to determine the optimal search point. Through the half-pixel optimal search point, it is determined whether to perform a 1 / 4 pixel search and finally determine the optimal search point. The problem that the optimal search point is easily trapped in the local optimum when the modeling method is used to find the optimal search point in the prior art is overcome, thereby effectively reducing the sub-pixel calculation complexity in the inter-frame motion estimation, and improving the encoding efficiency without reducing or slightly reducing the encoding performance, so that the inter-frame motion estimation encoding is suitable for real-time application scenarios such as video conferencing, which is conducive to the realization of real-time video encoding processing. BRIEF DESCRIPTION OF THE DRAWINGS

[0085] Figure 1 A schematic diagram of the overall flow of a target pixel search method for inter-frame motion estimation encoding provided as an exemplary embodiment of the present application.

[0086] Figure 2 A structural block diagram of a target pixel point search device for inter-frame motion estimation encoding is provided as another exemplary embodiment of the present application. DETAILED DESCRIPTION

[0087] This specific embodiment is merely an explanation of the present application and is not a limitation of the present application. After reading this specification, those skilled in the art may make modifications to the present embodiment without any creative contribution as needed, but such modifications are protected by the patent law as long as they are within the scope of the claims of the present application.

[0088] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0089] In addition, the term "and / or" in this article is only a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this article, unless otherwise specified, generally means that the associated objects before and after are in an "or" relationship.

[0090] The present application proposes a fast inter-frame motion estimation coding method. In the process of inter-frame prediction coding, a prediction block is used to perform an integer pixel search based on an adjacent reference frame to determine the optimal search point for the integer pixel; a half-pixel search is then performed based on the optimal search point for the integer pixel, and it is determined whether to perform a 1 / 4 pixel search based on the search result of the half-pixel; finally, a 1 / 4 pixel search is performed based on the position and search trend of the optimal half-pixel point to determine the optimal search point. The method can make full use of block prediction features and the search trend of the optimal half-pixel point, skip the calculation of some search points, effectively reduce the sub-pixel calculation complexity in inter-frame motion estimation, and achieve fast coding without reducing or slightly reducing the coding performance.

[0091] The embodiments of the present application are further described in detail below in conjunction with the drawings in the specification.

[0092] Reference Figure 1 , an embodiment of the present application provides a target pixel search method for inter-frame motion estimation encoding, and the main steps of the method are described as follows.

[0093] S1: Obtain the video frame to be encoded;

[0094] S2: Based on inter-frame prediction, in combination with a reference frame, predict a block in the current frame of the video frame to be encoded to obtain a predicted block;

[0095] S3: performing integer pixel search according to the prediction block to determine the integer pixel optimal search point;

[0096] S4: using the integer pixel optimal search point to perform a half-pixel search to determine the half-pixel optimal search point;

[0097] S5: judging whether to perform a 1 / 4 pixel search based on the half-pixel optimal search point;

[0098] S6: If a 1 / 4 pixel search is performed, determine the 1 / 4 pixel optimal search point;

[0099] S7: Select a search pixel point with the smallest distortion from the integer-pixel optimal search point, the half-pixel optimal search point, and the 1 / 4-pixel optimal search point as the target pixel point.

[0100] In one embodiment, the following steps are also included:

[0101] S8: If the 1 / 4 pixel search is not performed, the search pixel point with the smallest distortion is selected from the integer pixel optimal search point and the half pixel optimal search point as the target pixel point.

[0102] Video consists of a series of continuous frames, each of which is a static image. Inter-frame motion estimation uses the similarity between the previous and next frames to predict a block of the current frame by finding one or more reference blocks in the adjacent reference frames to obtain a predicted block. Through prediction, only the prediction error between the actual block and the predicted block needs to be stored, and there is no need to store the pixel data of the entire video block, so as to reduce the amount of data of the video to be encoded, reduce redundant information, and improve coding efficiency and video quality. The prediction block performs integer pixel search based on the adjacent reference frames to determine the optimal search point for the integer pixel; then a half-pixel search is performed based on the optimal search point for the integer pixel, and it is determined whether to perform a 1 / 4 pixel search based on the half-pixel search result; finally, a 1 / 4 pixel search is performed based on the position and search trend of the optimal half-pixel point to determine the optimal search point; it can effectively reduce the sub-pixel calculation complexity in inter-frame motion estimation, and improve coding efficiency without reducing or slightly reducing coding performance.

[0103] In one embodiment, the step of performing integer pixel search according to the prediction block and determining the integer pixel optimal search point includes:

[0104] Using the motion vectors of the neighboring coding blocks of the prediction block in the spatial domain and the temporal domain, a motion vector set is formed;

[0105] Finding a motion vector with minimum distortion from the motion vector set as the initial vector of the current coding block, and obtaining an integer pixel search start point of the current coding block in the reference frame;

[0106] Taking the integer pixel search starting point as the center, respectively performing diamond searches with a preset step size, and selecting the point with the smallest distortion in the current diamond search as the search center point for the next diamond search;

[0107] Before performing the next diamond search, first calculate the distance between the search center point and the integer pixel search starting point;

[0108] Determining the distance and a preset distance threshold;

[0109] If the distance and the distance threshold meet the preset condition, the next diamond search is performed until the integer pixel search point appears at the search center position, and the integer pixel optimal search point is obtained, and the distortion value of the integer pixel optimal search point is less than or equal to the preset first threshold. The first threshold can be a function of the prediction block size.

[0110] In one embodiment, after the step of determining the distance and the preset distance threshold, the method further includes:

[0111] If the distance and the distance threshold do not satisfy a preset condition, the search center point is used as the integer pixel search starting point, and a full traversal search is performed according to a preset step size to obtain the integer pixel optimal search point.

[0112] Specifically, a motion vector (MV) is a key parameter used to describe inter-frame motion in video coding. It represents the relative displacement between the position of a coding block in a reference frame and the corresponding position in the current frame, and is composed of two displacement components in the horizontal direction (x direction) and the vertical direction (y direction). The motion vector is used to locate the area in the reference frame that is most similar to the current coding block. During the encoding process, the use of motion vectors can reduce inter-frame redundancy. Only the motion vector and prediction error need to be stored, rather than the pixel data of the entire block to be encoded.

[0113] In this embodiment, the whole pixel search process takes the H.265 standard as an example, and the steps are as follows:

[0114] a) When encoding the current block, the MVs of adjacent coding blocks in the spatial and temporal domains are used to form an MV set, and the MV with the smallest distortion is found from this MV set as the initial MV of the current coding block, and the integer pixel search starting point of the current coding block in the reference frame is determined;

[0115] b) Taking the integer pixel search starting point as the center, perform diamond search with step sizes such as 1, 2, 4, 8, 16, 32, and 64, and select the point with the smallest distortion as the center point for the next search;

[0116] c) If the distance between the search center point calculated in step (b) and the integer pixel search starting point in step (a) is greater than step length 3, then take the search center point calculated in step (b) as the starting point and perform a full traversal search with a step length of 3; otherwise, proceed to step (d);

[0117] d) Jump back to step (b) and exit the loop until the optimal integer pixel point appears at the search center.

[0118] It is worth noting that if the distortion value of the integer pixel optimal search point is greater than the first threshold, it is very likely that it is not the optimal prediction mode because the distortion value is large, so the search process of sub-pixel calculation is skipped to avoid useless work.

[0119] In one embodiment, the step of performing half-pixel search using the integer-pixel optimal search point and determining the half-pixel optimal search point includes:

[0120] A rectangular search is performed with the integer pixel optimal search point as the center. The search is performed in the order of (-2,0)→(2,0)→(0,-2)→(0,2)→(-2,-2)→(2,-2)→(-2,2)→(2,2), and the search point with the smallest distortion is selected as the half-pixel optimal search point.

[0121] In one embodiment, the step of determining whether to perform a 1 / 4 pixel search based on the half-pixel optimal search point includes:

[0122] Calculate the difference between the maximum distortion value in each half-pixel search point and the distortion value of the integer-pixel optimal search point;

[0123] If the difference between the maximum distortion value of the half-pixel search point and the distortion value of the integer-pixel optimal search point is greater than or equal to a preset second threshold, determining whether the distortion value of the half-pixel optimal search point is greater than the minimum distortion value of the MERGE mode;

[0124] When the distortion value of the half-pixel optimal search point is greater than the minimum distortion value of the MERGE mode, it is determined to perform a 1 / 4 pixel search;

[0125] When the difference between the maximum distortion value of the half-pixel search point and the distortion value of the integer-pixel optimal search point is less than the second threshold, it is determined not to perform the 1 / 4 pixel search.

[0126] Specifically, the MERGE mode allows the encoder to select the best motion vector MV from adjacent blocks, or directly use the MV of the current block as a candidate vector to build a candidate list. The candidate list is based on the motion information around the block, and the current optimal MERGE mode is selected through motion compensation and residual coding. This process involves the evaluation of candidate MVs and the selection based on rate-distortion optimization (RDO) to ensure that the selected MV can minimize coding distortion and bit rate, thereby avoiding explicitly encoding the MV of each block, which helps to reduce coding time and improve prediction accuracy. After performing a rectangular search with the integer pixel optimal search point as the center and completing the search of 8 points (-2,0)→(2,0)→(0,-2)→(0,2)→(-2,-2)→(2,-2)→(-2,2)→(2,2), if the difference between the maximum distortion value of each half-pixel search point and the distortion value of the optimal integer pixel point is less than the preset second threshold, no 1 / 4 pixel search is performed; if the difference between the maximum distortion value of the half-pixel search point and the distortion value of the optimal integer pixel point is greater than or equal to the second threshold, and the distortion value of the half-pixel optimal search point is greater than the minimum distortion value of the MERGE mode, a 1 / 4 pixel search is required. The second threshold can be a function of the prediction block size. The distortion value of the half-pixel optimal search point is the minimum distortion value of each half-pixel search point.

[0127] In one embodiment, the step of determining the 1 / 4 pixel optimal search point includes:

[0128] Determining the position of the half-pixel optimal search point;

[0129] When the half-pixel optimal search point is located at the midpoint of the pixel block, a 1 / 4 pixel search is performed in the order of (0,-1)→(0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1);

[0130] First calculate the pixel values ​​of (0,-1), (0,1) and (-1,0) to determine the current 1 / 4 pixel search point;

[0131] If the current 1 / 4 pixel search point is (0,-1) or (-1,0), then calculate the pixel value of (-1,-1) to get the 1 / 4 pixel optimal search point;

[0132] If the current 1 / 4 pixel search point is (-1,0) or (0,1), then calculate the pixel value of (-1,1) to obtain the 1 / 4 pixel optimal search point;

[0133] Then calculate the pixel value of (1,0) to determine the current 1 / 4 pixel search point;

[0134] If the current 1 / 4 pixel search point is (0, -1) or (1, 0), the pixel value of (1, -1) is calculated to obtain the 1 / 4 pixel optimal search point.

[0135] In one embodiment, after the step of determining the position of the half-pixel optimal search point, the method further includes:

[0136] When the half-pixel optimal search point is located on the horizontal axis of the pixel block, a 1 / 4 pixel search is performed in the order of (0,-1)→(0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1);

[0137] First calculate the pixel values ​​of (0,-1) and (0,1);

[0138] Determining the position of the half-pixel optimal search point;

[0139] When the position of the half-pixel optimal search point is located on the positive horizontal axis of the pixel block, the pixel value of (-1,0) is calculated to determine the current 1 / 4 pixel search point;

[0140] If the current 1 / 4 pixel search points are (0,-1) and (-1,0), then calculate the pixel value of (-1,-1) to obtain the 1 / 4 pixel optimal search point;

[0141] If the current 1 / 4 pixel search points are (-1,0) and (0,1), then calculate the pixel value of (-1,1) to obtain the 1 / 4 pixel optimal search point;

[0142] When the position of the half-pixel optimal search point is located on the negative horizontal axis of the pixel block, the pixel value of (1,0) is calculated to determine the current 1 / 4 pixel search point;

[0143] If the current 1 / 4 pixel search point is (0,-1) or (1,0), then calculate the pixel value of (1,-1) to get the 1 / 4 pixel optimal search point;

[0144] If the current 1 / 4 pixel search point is (1,0), then the pixel value of (1,1) is calculated to obtain the 1 / 4 pixel optimal search point.

[0145] In one embodiment, after the step of determining the position of the half-pixel optimal search point, the method further includes:

[0146] When the half-pixel optimal search point is located on the vertical axis of the pixel block, a 1 / 4 pixel search is performed in the order of (0,-1) / (0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1);

[0147] If the half-pixel optimal search point is (0,2), then the pixel value of (0,-1) is calculated to determine the current 1 / 4 pixel search point;

[0148] If the half-pixel optimal search point is (0, -2), then the pixel value of (0, 1) is calculated to determine the current 1 / 4 pixel search point;

[0149] Calculate the pixel value of (-1,0) to determine the position of the half-pixel optimal search point and the position of the current 1 / 4-pixel search point;

[0150] When the half-pixel optimal search point is (0, 2) and the current 1 / 4 pixel search point is (0, -1) or (-1, 0), the pixel value of (1, -1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0151] When the half-pixel optimal search point is (0, -2) and the current 1 / 4 pixel search point is (0, 1) or (-1, 0), the pixel value of (-1, 1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0152] Calculate the pixel value of (1,0) to determine the position of the half-pixel optimal search point and the position of the current 1 / 4-pixel search point;

[0153] When the half-pixel optimal search point is (0, 2) and the current 1 / 4-pixel search point is (0, -1) or (1, 0), the pixel value of (1, -1) is calculated to obtain the 1 / 4-pixel optimal search point;

[0154] When the half-pixel optimal search point is (0, -2) and the current 1 / 4 pixel search point is (0, 1) or (1, 0), the pixel value of (1, 1) is calculated to obtain the 1 / 4 pixel optimal search point.

[0155] In one embodiment, after the step of determining the position of the half-pixel optimal search point, the method further includes:

[0156] When the half-pixel optimal search point is located at the vertex position of the pixel block, a 1 / 4 pixel search is performed in the order of (0,-1) / (0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1);

[0157] Determining the position of the half-pixel optimal search point;

[0158] If the vertical coordinate of the half-pixel optimal search point is 2, the pixel value of (0, -1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0159] If the vertical coordinate of the half-pixel optimal search point is not 2, the pixel value of (0,1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0160] If the horizontal coordinate of the half-pixel optimal search point is 2, the pixel value of (-1,0) is calculated to obtain the 1 / 4 pixel optimal search point;

[0161] If the vertical coordinate of the half-pixel optimal search point is 2 and the current 1 / 4 pixel search point is (0, -1) or (-1, 0), then the pixel value of (-1, -1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0162] If the vertical coordinate of the half-pixel optimal search point is -2 and the current 1 / 4 pixel search point is (-1,0) or (0,1), the pixel value of (-1,1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0163] If the horizontal coordinate of the half-pixel optimal search point is -2, the pixel value of (1,0) is calculated to obtain the 1 / 4-pixel optimal search point;

[0164] If the half-pixel optimal search point is (-2, -2) and the current 1 / 4 pixel search point is (0, -1) or (1, 0), then the pixel value of (1, -1) is calculated to obtain the 1 / 4 pixel optimal search point;

[0165] If the current 1 / 4 pixel search point is (0,1) or (1,0), the pixel value of (1,1) is calculated to obtain the 1 / 4 pixel optimal search point.

[0166] Specifically, first, if the optimal half-pixel point is (0,0), that is, the optimal half-pixel point is the midpoint of the pixel block, the order of determining the 1 / 4 pixel search is as follows:

[0167] (0,-1)→(0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1).

[0168] a) First calculate the pixel values ​​of the three points (0,-1), (0,1) and (-1,0), and then determine:

[0169] If the current optimal point is (0,-1) or (-1,0), calculate the pixel value of (-1,-1);

[0170] If the current optimal point is (-1,0) or (0,1), calculate the pixel value of (-1,1);

[0171] b) Calculate the pixel value of (1,0) first, then determine:

[0172] If the current optimal point is (0,-1) or (1,0), calculate the pixel value of (1,-1);

[0173] If the current optimal point is not (1,0), skip the pixel value calculation of (1,1).

[0174] 2. If the optimal half-pixel point is (-2,0) or (2,0), that is, the optimal half-pixel point is the horizontal axis of the pixel block, the order of determining the 1 / 4 pixel search is as follows:

[0175] (0,-1)→(0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1).

[0176] First calculate the pixel values ​​of (0,-1) and (0,1), and then determine:

[0177] a) If the optimal half-pixel search point is (2,0), calculate the pixel value of (-1,0) and then determine:

[0178] If the current optimal point is not (0,-1) and (-1,0), skip the calculation of (-1,-1), otherwise calculate the pixel value of (-1,-1);

[0179] If the current optimal point is not (-1,0) or (0,1), skip the calculation of (-1,1), otherwise calculate the pixel value of (-1,1);

[0180] b) If the optimal half-pixel search point is (-2,0), calculate the pixel value of (1,0) and then determine:

[0181] If the current optimal point is not (0,-1) or (1,0), skip the calculation of (1,-1), otherwise calculate the pixel value of (1,-1);

[0182] If the current optimal point is not (1,0), skip the calculation of (1,1), otherwise calculate the pixel value of (1,1).

[0183] 3. If the optimal half-pixel point is (0, -2) or (0, 2), that is, the optimal half-pixel point is the vertical axis of the pixel block, the order of determining the 1 / 4 pixel search is as follows:

[0184] (0,-1) / (0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1).

[0185] a) If the optimal half-pixel point is (0,2), calculate the pixel value of (0,-1);

[0186] b) If the optimal half-pixel point is (0,-2), calculate the pixel value of (0,1);

[0187] c) First calculate the pixel value of (-1,0), and then determine:

[0188] If the optimal half-pixel point is (0,2) and the current optimal 1 / 4 pixel point is (0,-1) or (-1,0), then calculate the pixel value of (1,-1), otherwise skip the calculation of (1,-1);

[0189] If the optimal half-pixel point is (0,-2) and the current optimal 1 / 4 pixel point is (0,1) or (-1,0), then calculate the pixel value of (-1,1), otherwise skip the calculation of (-1,1);

[0190] d) First calculate the pixel value of (1,0), and then determine:

[0191] If the optimal half-pixel point is (0,2) and the current optimal 1 / 4 pixel point is (0,-1) or (1,0), then calculate the pixel value of (1,-1), otherwise skip the calculation of (1,-1);

[0192] If the optimal half-pixel point is (0,-2) and the current optimal 1 / 4 pixel point is (0,1) or (1,0), the pixel value of (1,1) is calculated, otherwise the calculation of (1,1) is skipped.

[0193] 4. If the optimal half-pixel search point is (-2,-2) or (-2,2) or (2,-2) or (2,2), that is, the optimal half-pixel point is the vertex of the pixel block, the order of determining the 1 / 4 pixel search is as follows:

[0194] (0,-1) / (0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1).

[0195] a) If the vertical coordinate of the optimal half-pixel point is 2, calculate the pixel value of (0,-1); otherwise calculate the pixel value of (0,1);

[0196] b) If the horizontal coordinate of the optimal half-pixel point is 2, calculate the pixel value of (-1,0);

[0197] c) If the vertical coordinate of the optimal half-pixel point is -2, skip the calculation of (-1,-1); otherwise, if the vertical coordinate of the optimal half-pixel point is 2 and the current optimal 1 / 4 pixel point is (0,-1) or (-1,0), calculate the pixel value of (-1,-1);

[0198] d) If the vertical coordinate of the optimal half-pixel point is 2, skip the calculation of (-1,1); otherwise, if the vertical coordinate of the optimal half-pixel point is -2 and the current optimal 1 / 4 pixel point is (-1,0) or (0,1), calculate the pixel value of (-1,1);

[0199] e) If the horizontal coordinate of the optimal half-pixel point is 2, skip the calculation of (1,0) and (1,-1). Otherwise, if the horizontal coordinate of the optimal half-pixel point is -2, calculate the pixel value of (1,0); if the optimal half-pixel point is (-2,-2) and the current optimal 1 / 4 pixel point is (0,-1) or (1,0), calculate the pixel value of (1,-1);

[0200] f) If the current optimal 1 / 4 pixel point is (0,1) or (1,0), calculate the pixel value of (1,1).

[0201] After the integer pixel search, half pixel search and 1 / 4 pixel search, the search pixel point with the smallest distortion is selected from the integer pixel optimal search point, the half pixel optimal search point and the 1 / 4 pixel optimal search point as the optimal search point; or, the search pixel point with the smallest distortion is selected from the integer pixel optimal search point and the half pixel optimal search point as the target pixel.

[0202] Finally, the determined target pixel points are used to perform video compression to obtain real-time coded video. When performing video compression, HEVC and other video compression algorithms, such as H.264, can be used to compress the video to be coded.

[0203] In summary, a target pixel search method for inter-frame motion estimation coding is based on inter-frame prediction. It uses the similarity between the previous and next frames and combines the reference frame to predict a block in the current frame of the acquired video frame to be encoded to obtain a prediction block. By storing the prediction error between the actual video block and the prediction block, there is no need to store the pixel data of the entire video block, so as to reduce the data amount of the video to be encoded and improve the coding efficiency. According to the prediction block, an integer pixel search is performed to determine the integer pixel optimal search point, and the integer pixel optimal search point is used to perform a half-pixel search to determine the half-pixel optimal search point, so as to fully utilize the characteristics of the prediction block and the position and search trend of the optimal half-pixel point to determine the optimal search point. According to the half-pixel optimal search point, it is judged whether to perform a 1 / 4 pixel search, and finally determine the optimal search point. The problem that the optimal search point is easily trapped in the local optimum when using the modeling method to find the optimal search point in the prior art is overcome, thereby effectively reducing the sub-pixel calculation complexity in the inter-frame motion estimation, and improving the coding efficiency without reducing or slightly reducing the coding performance. The inter-frame motion estimation coding is suitable for real-time application scenarios such as video conferencing, which is conducive to the realization of real-time video coding processing.

[0204] This application improves coding efficiency by optimizing the pixel search algorithm in inter-frame motion estimation, and can be applied to video compression standards such as H.264, H.265, and AVS.

[0205] The present application saves a lot of encoding time and reduces encoding complexity without reducing or slightly reducing encoding performance, thus facilitating the implementation of real-time encoding processing.

[0206] It should be understood that the size of the serial numbers of the steps in the above embodiments does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0207] Reference Figure 2 The embodiment of the present application also provides a target pixel point search device for inter-frame motion estimation coding, which corresponds one-to-one to a target pixel point search method for inter-frame motion estimation coding in the above embodiment. The target pixel point search device for inter-frame motion estimation coding includes:

[0208] An acquisition module, used to obtain video frames to be encoded;

[0209] An inter-frame prediction module, configured to predict a block in a current frame of the video frame to be encoded based on the inter-frame prediction and in combination with a reference frame to obtain a predicted block;

[0210] An integer pixel search module, used to perform integer pixel search according to the prediction block and determine an integer pixel optimal search point;

[0211] A half-pixel search module, used to perform a half-pixel search using the integer-pixel optimal search point to determine the half-pixel optimal search point;

[0212] A judgment module, used to judge whether to perform a 1 / 4 pixel search based on the half-pixel optimal search point;

[0213] 1 / 4 pixel search module, used to perform 1 / 4 pixel search and determine the 1 / 4 pixel optimal search point;

[0214] The optimal search point determination module is used to select a search pixel point with the smallest distortion from the integer pixel optimal search point, the half pixel optimal search point and the 1 / 4 pixel optimal search point as a target pixel point.

[0215] The specific definition of a target pixel point search device for inter-frame motion estimation coding can be found in the above definition of a target pixel point search method for inter-frame motion estimation coding, which will not be repeated here.

[0216] Each module in the above-mentioned target pixel search device for inter-frame motion estimation coding can be implemented in whole or in part by software, hardware, or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute operations corresponding to each module above.

[0217] In one embodiment, a computer device is provided, which may be a server. The computer device includes a processor, a memory, a network interface, and a database connected via a system bus. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The network interface of the computer device is used to communicate with an external terminal via a network connection. When the computer program is executed by the processor, any of the above-mentioned target pixel search methods for inter-frame motion estimation encoding is implemented.

[0218] In one embodiment, a computer-readable storage medium is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, and when the processor executes the computer program, any one of the above-mentioned target pixel search methods for inter-frame motion estimation encoding is implemented.

[0219] In one embodiment, a computer program product is provided. The computer program product includes a computer program. When the computer program is executed by a processor, any one of the above-mentioned target pixel point search methods for inter-frame motion estimation coding is implemented.

[0220] Those of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiments can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium, including several instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in each embodiment of the present application. When the computer program is executed, it may include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in the present application may include non-volatile and / or volatile memory. Non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory may include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.

[0221] Those skilled in the art will clearly understand that for the sake of convenience and brevity of description, only the division of the above-mentioned functional units and modules is used as an example. In actual applications, the above-mentioned functions can be distributed and completed by different functional units and modules as needed, that is, the internal structure of the system can be divided into different functional units or modules to complete all or part of the functions described above.

Claims

1. A target pixel search method for inter-frame motion estimation coding, characterized in that: The following steps are included: Get the video frame to be encoded; Based on inter-frame prediction, in combination with a reference frame, predict a block in the current frame of the video frame to be encoded to obtain a predicted block; Performing integer pixel search according to the prediction block to determine an integer pixel optimal search point; Performing a half-pixel search using the integer-pixel optimal search point to determine a half-pixel optimal search point; Determining whether to perform a 1 / 4 pixel search based on the half-pixel optimal search point; If a 1 / 4 pixel search is performed, determine the 1 / 4 pixel optimal search point; A search pixel point with the smallest distortion is selected from the integer-pixel optimal search point, the half-pixel optimal search point and the 1 / 4-pixel optimal search point as a target pixel point.

2. The target pixel search method for inter-frame motion estimation coding according to claim 1, characterized in that: The following steps are also included: If the 1 / 4 pixel search is not performed, the search pixel point with the smallest distortion is selected from the integer pixel optimal search point and the half pixel optimal search point as the target pixel point.

3. The target pixel point search method for inter-frame motion estimation coding according to claim 1, characterized in that: Performing integer pixel search according to the prediction block and determining the integer pixel optimal search point comprises: Using the motion vectors of the neighboring coding blocks of the prediction block in the spatial domain and the temporal domain, a motion vector set is formed; Finding a motion vector with minimum distortion from the motion vector set as the initial vector of the current coding block, and obtaining an integer pixel search start point of the current coding block in the reference frame; Taking the integer pixel search starting point as the center, performing diamond searches with a preset step size, and selecting the point with the smallest distortion in the current diamond search as the search center point for the next diamond search; Before performing the next diamond search, first calculate the distance between the search center point and the integer pixel search start point; Determine the distance and a preset distance threshold; If the distance and the distance threshold satisfy a preset condition, the next diamond search is performed until the integer pixel search point appears at the search center position, and the integer pixel optimal search point is obtained, and the distortion value of the integer pixel optimal search point is less than or equal to the preset first threshold.

4. The target pixel search method for inter-frame motion estimation coding according to claim 3, characterized in that: After the step of determining the distance and the preset distance threshold, the method further includes: If the distance and the distance threshold do not satisfy a preset condition, the search center point is used as the integer pixel search starting point, and a full traversal search is performed according to a preset step size to obtain the integer pixel optimal search point.

5. The target pixel search method for inter-frame motion estimation coding according to claim 1, characterized in that: The step of using the integer pixel optimal search point to perform half pixel search and determining the half pixel optimal search point includes: A rectangular search is performed with the integer-pixel optimal search point as the center. The search is performed in the order of (-2,0)→(2,0)→(0,-2)→(0,2)→(-2,-2)→(2,-2)→(-2,2)→(2,2), and the search point with the smallest distortion is selected as the half-pixel optimal search point.

6. The target pixel search method for inter-frame motion estimation coding according to claim 1, characterized in that: The step of determining the 1 / 4 pixel optimal search point comprises: Determining the position of the half-pixel optimal search point; When the half-pixel optimal search point is located at the midpoint of the pixel block, a 1 / 4 pixel search is performed in the order of (0,-1)→(0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1); First calculate the pixel values ​​of (0,-1), (0,1) and (-1,0) to determine the current 1 / 4 pixel search point; If the current 1 / 4 pixel search point is (0,-1) or (-1,0), then calculate the pixel value of (-1,-1) to get the 1 / 4 pixel optimal search point; If the current 1 / 4 pixel search point is (-1,0) or (0,1), then calculate the pixel value of (-1,1) to obtain the 1 / 4 pixel optimal search point; Then calculate the pixel value of (1,0) to determine the current 1 / 4 pixel search point; If the current 1 / 4 pixel search point is (0, -1) or (1, 0), the pixel value of (1, -1) is calculated to obtain the 1 / 4 pixel optimal search point.

7. The target pixel point search method for inter-frame motion estimation coding according to claim 6, characterized in that: After the step of determining the position of the half-pixel optimal search point, the method further includes: When the half-pixel optimal search point is located on the horizontal axis of the pixel block, a 1 / 4 pixel search is performed in the order of (0,-1)→(0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1); First calculate the pixel values ​​of (0,-1) and (0,1); Determining the position of the half-pixel optimal search point; When the position of the half-pixel optimal search point is located on the positive horizontal axis of the pixel block, the pixel value of (-1,0) is calculated to determine the current 1 / 4 pixel search point; If the current 1 / 4 pixel search points are (0,-1) and (-1,0), then calculate the pixel value of (-1,-1) to obtain the 1 / 4 pixel optimal search point; If the current 1 / 4 pixel search points are (-1,0) and (0,1), then calculate the pixel value of (-1,1) to obtain the 1 / 4 pixel optimal search point; When the position of the half-pixel optimal search point is located on the negative horizontal axis of the pixel block, the pixel value of (1,0) is calculated to determine the current 1 / 4 pixel search point; If the current 1 / 4 pixel search point is (0,-1) or (1,0), then calculate the pixel value of (1,-1) to get the 1 / 4 pixel optimal search point; If the current 1 / 4 pixel search point is (1,0), then the pixel value of (1,1) is calculated to obtain the 1 / 4 pixel optimal search point.

8. The target pixel search method for inter-frame motion estimation coding according to claim 6, characterized in that: After the step of determining the position of the half-pixel optimal search point, the method further includes: When the half-pixel optimal search point is located on the vertical axis of the pixel block, a 1 / 4 pixel search is performed in the order of (0,-1) / (0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1); If the half-pixel optimal search point is (0,2), then the pixel value of (0,-1) is calculated to determine the current 1 / 4 pixel search point; If the half-pixel optimal search point is (0, -2), then the pixel value of (0, 1) is calculated to determine the current 1 / 4 pixel search point; Calculate the pixel value of (-1,0) to determine the position of the half-pixel optimal search point and the position of the current 1 / 4-pixel search point; When the half-pixel optimal search point is (0, 2) and the current 1 / 4 pixel search point is (0, -1) or (-1, 0), the pixel value of (1, -1) is calculated to obtain the 1 / 4 pixel optimal search point; When the half-pixel optimal search point is (0, -2) and the current 1 / 4 pixel search point is (0, 1) or (-1, 0), the pixel value of (-1, 1) is calculated to obtain the 1 / 4 pixel optimal search point; Calculate the pixel value of (1,0) to determine the position of the half-pixel optimal search point and the position of the current 1 / 4-pixel search point; When the half-pixel optimal search point is (0, 2) and the current 1 / 4 pixel search point is (0, -1) or (1, 0), the pixel value of (1, -1) is calculated to obtain the 1 / 4 pixel optimal search point; When the half-pixel optimal search point is (0, -2) and the current 1 / 4 pixel search point is (0, 1) or (1, 0), the pixel value of (1, 1) is calculated to obtain the 1 / 4 pixel optimal search point.

9. The target pixel search method for inter-frame motion estimation coding according to claim 6, characterized in that: After the step of determining the position of the half-pixel optimal search point, the method further includes: When the half-pixel optimal search point is located at the vertex position of the pixel block, a 1 / 4 pixel search is performed in the order of (0,-1) / (0,1)→(-1,0)→(-1,-1) / (-1,1)→(1,0)→(1,-1) / (1,1); Determining the position of the half-pixel optimal search point; If the vertical coordinate of the half-pixel optimal search point is 2, the pixel value of (0, -1) is calculated to obtain the 1 / 4 pixel optimal search point; If the vertical coordinate of the half-pixel optimal search point is not 2, the pixel value of (0,1) is calculated to obtain the 1 / 4 pixel optimal search point; If the horizontal coordinate of the half-pixel optimal search point is 2, the pixel value of (-1,0) is calculated to obtain the 1 / 4 pixel optimal search point; If the vertical coordinate of the half-pixel optimal search point is 2 and the current 1 / 4 pixel search point is (0, -1) or (-1, 0), then the pixel value of (-1, -1) is calculated to obtain the 1 / 4 pixel optimal search point; If the vertical coordinate of the half-pixel optimal search point is -2 and the current 1 / 4 pixel search point is (-1,0) or (0,1), the pixel value of (-1,1) is calculated to obtain the 1 / 4 pixel optimal search point; If the horizontal coordinate of the half-pixel optimal search point is -2, the pixel value of (1,0) is calculated to obtain the 1 / 4-pixel optimal search point; If the half-pixel optimal search point is (-2, -2) and the current 1 / 4 pixel search point is (0, -1) or (1, 0), then the pixel value of (1, -1) is calculated to obtain the 1 / 4 pixel optimal search point; If the current 1 / 4 pixel search point is (0,1) or (1,0), the pixel value of (1,1) is calculated to obtain the 1 / 4 pixel optimal search point.

10. The target pixel search method for inter-frame motion estimation coding according to any one of claims 1 to 9, characterized in that: The step of determining whether to perform a 1 / 4 pixel search based on the half-pixel optimal search point includes: Calculate the difference between the maximum distortion value in each half-pixel search point and the distortion value of the integer-pixel optimal search point; If the difference between the maximum distortion value of the half-pixel search point and the distortion value of the integer-pixel optimal search point is greater than or equal to a preset second threshold, determining whether the distortion value of the half-pixel optimal search point is greater than the minimum distortion value of the MERGE mode; When the distortion value of the half-pixel optimal search point is greater than the minimum distortion value of the MERGE mode, it is determined to perform a 1 / 4 pixel search; When the difference between the maximum distortion value of the half-pixel search point and the distortion value of the integer-pixel optimal search point is less than the second threshold, it is determined not to perform the 1 / 4 pixel search.

Citation Information

Patent Citations

  • A fast mode selection method for hevc interframe coding

    CN105141954B