A method and device for generating a predicted value of image to generate a predicted value of a current block during image encoding or decoding is disclosed, where the method includes determining a searching scope, wherein a plurality of motion vectors are included in the searching scope, performing up-sampling interpolations on first reference blocks corresponding to the motion vector in the searching scope, in a reference image of the current block using a first filter to obtain up-sampled first reference blocks, obtaining, using the up-sampled first reference blocks, at least one candidate motion vector corresponding to the current block, performing up-sampling interpolations on second reference blocks, corresponding to the at least one candidate motion vector, in the reference image of the current block using a second filter to obtain up-sampled second reference blocks, combining the up-sampled second reference blocks to obtain a predicted value of the current block.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method performed by a device for generating a predicted value of an image block based on a forward reference image and a backward reference image, comprising: obtaining a template using preset reconstructed pixels around the image block; obtaining an up-sampled template by performing up-sample interpolation on the obtained template using a first filter; obtaining candidate motion vectors for the image block, the candidate motion vectors comprising known motion vectors from neighboring blocks of the image block; obtaining a first forward reference block and a first backward reference block, for each of the candidate motion vectors, from the forward reference image and the backward reference image, respectively, a location of the first forward reference block in the forward reference image and a location of the first backward reference block in the backward reference image are indicated by each of the candidate motion vectors; obtaining an up-sampled forward reference image by performing the up-sample interpolation on a corresponding forward template of the first forward reference block using the first filter; obtaining an up-sampled backward reference image by performing the up-sample interpolation on a corresponding backward template of the backward reference image using the first filter; calculating a matching difference corresponding to each of the candidate motion vectors, the matching difference indicating a forward difference, a backward difference, or a sum of the forward difference and the backward difference, the forward difference comprising a difference between the up-sampled template of the image block and the corresponding forward template of the first forward reference block, and the backward difference comprising a difference between the up-sampled template of the image block and the corresponding backward template of the first backward reference block; selecting a target candidate motion vector from the candidate motion vectors, the target candidate motion vector corresponding to a minimal calculated matching difference; obtaining a second forward reference block and a second backward reference block, for the target candidate motion vector, from the forward reference image and the backward reference image, respectively, a location of the second forward reference block in the forward reference image and a location of the second backward reference block in the backward reference image are indicated by the target candidate motion vector; obtaining an up-sampled second forward reference block by performing the up-sample interpolation on the second forward reference block using a second filter; obtaining an up-sampled second backward reference block by performing the up-sample interpolation on the second backward reference block using the second filter; and generating the predicted value of the image block by averaging a value of the up-sampled second forward reference block and a value of the up-sampled second backward reference block.
2. The method according to claim 1 , wherein a tap number of the first filter is less than a tap number of the second filter.
3. The method according to claim 2 , wherein the first filter comprises a bilinear filter, and wherein the second filter comprises a 6-tap filter.
4. The method according to claim 2 , wherein the first filter comprises a bilinear filter, and the second filter comprises an adaptive filter.
5. An apparatus for generating a predicted value of an image block based on a forward reference image and a backward reference image, comprising: a memory storing instructions; and a processor coupled to the memory, the instructions causing the processor to be configured to: obtain a template using preset reconstructed pixels around the image block; obtain an up-sampled template by performing up-sample interpolation on the obtained template using a first filter; obtain candidate motion vectors for the image block, the candidate motion vectors comprising known motion vectors from neighboring blocks of the image block; obtain a first forward reference block and a first backward reference block, for each of the candidate motion vectors, from the forward reference image and the backward reference image, respectively, a location of the first forward reference block in the forward reference image and a location of the first backward reference block in the backward reference image are indicated by each of the candidate motion vectors; obtain an up-sampled forward reference image by performing the up-sample interpolation on a corresponding forward template of the first forward reference block using the first filter; obtain an up-sampled backward reference image by performing the up-sample interpolation on a corresponding backward template of the backward reference image using the first filter; calculate a matching difference corresponding to each of the candidate motion vectors, the matching difference indicating a forward difference, a backward difference, or a sum of the forward difference and the backward difference, the forward difference comprising a difference between the up-sampled template of the image block and the corresponding forward template of the first forward reference block, and the backward difference comprising a difference between the up-sampled template of the image block and the corresponding backward template of the first backward reference block; select a target candidate motion vector from the candidate motion vectors, the target candidate motion vector corresponding to a minimal calculated matching difference; obtain a second forward reference block and a second backward reference block, for the target candidate motion vector, from the forward reference image and the backward reference image, respectively, a location of the second forward reference block in the forward reference image and a location of the second backward reference block in the backward reference image are indicated by the target candidate motion vector; obtain an up-sampled second forward reference block by performing the up-sample interpolation on the second forward reference block using a second filter; obtain an up-sampled second backward reference block by performing the up-sample interpolation on the second backward reference block using the second filter; and generate the predicted value of the image block by averaging a value of the up-sampled second forward reference block and a value of the up-sampled second backward reference block.
6. The apparatus according to claim 5 , wherein a tap number of the first filter is less than a tap number of the second filter.
7. The apparatus according to claim 6 , wherein the first filter comprises a bilinear filter, and the second filter comprises a 6-tap filter.
8. The apparatus according to claim 6 , wherein the first filter comprises a bilinear filter, and the second filter comprises an adaptive filter.
9. A computer program product comprising a non-transitory computer readable storage medium storing program code thereon for generating a predicted value of an image block based on a forward reference image and a backward reference image, the program code comprising instructions for executing a method that comprises: obtaining a template using preset reconstructed pixels around the image block; obtaining an up-sampled template by performing up-sample interpolation on the obtained template using a first filter; obtaining candidate motion vectors for the image block, the candidate motion vectors comprising known motion vectors from neighboring blocks of the image block; obtaining a first forward reference block and a first backward reference block, for each of the candidate motion vectors, from the forward reference image and the backward reference image, respectively, a location of the first forward reference block in the forward reference image and a location of the first backward reference block in the backward reference image are indicated by each of the candidate motion vectors; obtaining an up-sampled forward reference image by performing the up-sample interpolation on a corresponding forward template of the first forward reference block using the first filter; obtaining an up-sampled backward reference image by performing the up-sample interpolation on a corresponding backward template of the backward reference image using the first filter; calculating a matching difference corresponding to each of the candidate motion vectors, the matching difference indicating a forward difference, a backward difference, or a sum of the forward difference and the backward difference, the forward difference comprising a difference between the up-sampled template of the image block and the corresponding forward template of the first forward reference block, and the backward difference comprising a difference between the up-sampled template of the image block and the corresponding backward template of the first backward reference block; selecting a target candidate motion vector from the candidate motion vectors, the target candidate motion vector corresponding to a minimal calculated matching difference; obtaining a second forward reference block and a second backward reference block, for the target candidate motion vector, from the forward reference image and the backward reference image, respectively, a location of the second forward reference block in the forward reference image and a location of the second backward reference block in the backward reference image are indicated by the target candidate motion vector; obtaining an up-sampled second forward reference block by performing the up-sample interpolation on the second forward reference block using a second filter; obtaining an up-sampled second backward reference block by performing the up-sample interpolation on the second backward reference block using the second filter; and generating the predicted value of the image block by averaging a value of the up-sampled second forward reference block and a value of the up-sampled second backward reference block.
10. The computer program product according to claim 9 , wherein a tap number of the first filter is less than a tap number of the second filter.
11. The computer program product according to claim 10 , wherein the first filter comprises a bilinear filter, and the second filter comprises a 6-tap filter.
12. The computer program product according to claim 10 , wherein the first filter comprises a bilinear filter, and the second filter comprises an adaptive filter.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
January 8, 2018
October 9, 2018
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.