IP Library Granted Patent US 10,484,721
Granted Patent B2
US 10,484,721 · App. 14/659,122 · Granted Nov 19, 2019

Method for motion estimation of non-natural video data

Inventors: Krishnakanth Rapaka (San Diego, CA); Joel Sole Rojals (La Jolla, CA); Li Zhang (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: Qualcomm Incorporated
H04N19/96H04N19/198H04N19/52H04N19/53H04N19/557H04N19/56H04N19/57H04N19/567
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,484,721
App. No.
14/659,122
Granted
Nov 19, 2019
Kind
B2
Abstract

A method for motion estimation for screen and non-natural content coding is disclosed. In one aspect, the method may include selecting a candidate block of a first frame of the video data for matching with a current block of a second frame of the video data, calculating a first partial matching cost for matching a first subset of samples of the candidate block to the current block, and determining whether the candidate block has a lowest matching cost with the current block based at least in part on the first partial matching cost.

Claims (128)

1. A method for motion estimation of non-natural video data, the method comprising:

determining whether to skip motion estimation based only on a residual of a merge motion vector; and

responsive to determining not to skip motion estimation:

selecting a candidate block of a first frame of the non-natural video data for matching to a current block of a second frame of the non-natural video data, the candidate block being selected from a first diamond pattern surrounding a previous candidate block of the first frame of the non-natural video data, wherein the non-natural video data comprises computer-generated video data not captured through a camera having an optical system;

obtaining a previously calculated lowest matching difference value based on matching the previous candidate block of the first frame of the non-natural video data to the current block of the second frame of the non-natural video data;

calculating a first partial matching difference value of matching a first subset of samples of the candidate block to the current block;

estimating, based on the first partial matching difference value, a total matching difference value of matching the candidate block to the current block;

comparing the estimated total matching difference value of the candidate block to the lowest matching difference value of the previous candidate block;

determining, based on the comparison, whether the candidate block does not have a lowest matching difference value to the current block; and

selecting, in response to the candidate block not having the lowest matching difference value to the current block, a subsequent candidate block of the first frame of the non-natural video data for matching to the current block from a second diamond pattern that is at least one of horizontally or vertically displaced from the first diamond pattern.

2. The method of claim 1 , further comprising:

calculating an estimate of a matching difference value for matching the remaining samples of the candidate block to the current block based on the first partial matching difference value,

wherein the estimated total matching difference value is further based on the estimate of the matching difference value for matching the remaining samples.

3. The method of claim 2 , further comprising:

calculating a second partial difference value for matching a second subset of the samples of the candidate block to the current block;

updating the remaining samples of the candidate block by removing the second subset of samples of the candidate block;

refining the estimate of the matching difference value for matching the remaining samples via calculating a refined estimate for matching the updated remaining samples of the candidate block to the current block;

refining the estimated total matching difference value via summing the first partial difference value, the second partial difference value, and the refined estimate; and

determining whether the candidate block has the lowest matching difference value to the current block based at least in part on the refined estimated total matching difference value.

4. The method of claim 3 , further comprising:

selecting a previous candidate block of the first frame of the non-natural video data for matching to the current block;

calculating a previous total matching difference value for matching the previous candidate block to the current block;

determining that the candidate block does not have the lowest matching difference value to the current block when the refined estimated total matching difference value is greater than the previous total matching difference value; and

determining that the candidate block has the lowest matching difference value to the current block when the refined estimated total matching difference value is less than the previous total matching difference value.

5. The method of claim 2 , further comprising calculating a motion vector bit value for matching the candidate block to the current block, wherein the estimating the total matching difference value further comprises summing the first partial difference value, the estimate of the matching difference value for matching the remaining samples, and the motion vector bit value.

6. The method of claim 1 , further comprising performing a modified initial search, wherein the first and second diamond patterns are located within an initial search area that is a sub-portion of an entire search area.

7. The method of claim 1 , further comprising:

determining a first distance between the candidate having the lowest matching difference value and the current block;

determining a second distance between a predictor and the current block; and

determining whether to perform a refinement search or a full search with error approximation based on the difference between the first and second distances.

8. A device for motion estimation of non-natural video data, the device comprising:

a memory configured to store the non-natural video data, the non-natural video data comprising video data not captured through a camera having an optical system; and

a processor in communication with the memory and configured to:

determine whether to skip motion estimation based only on a residual of a merge motion vector; and

responsive to determining not to skip motion estimation:

select, from a first diamond pattern surrounding a previous candidate block of a first frame of the non-natural video data, a candidate block of the first frame of the non-natural video data for matching to a current block of a second frame of the non-natural video data;

obtain a previously calculated lowest matching difference value based on matching the previous candidate block of the first frame of the non-natural video data to the current block of the second frame of the non-natural video data;

calculate a first partial matching difference value of matching a first subset of samples of the candidate block to the current block;

estimate, based on the first partial matching difference value, a total matching difference value of matching the candidate block to the current block;

compare the estimated total matching difference value of the candidate block to the lowest matching difference value of the previous candidate block;

determine whether the candidate block does not have a lowest matching difference value to the current block based on the comparison; and

select, in response to the candidate block not having the lowest matching difference value to the current block and from a second diamond pattern that is at least one of horizontally or vertically displaced from the first diamond pattern, a subsequent candidate block of the first frame of the non-natural video data for matching to the current block.

9. The device of claim 8 , wherein the processor is further configured to:

calculate an estimate of a matching difference value for matching the remaining samples of the candidate block to the current block,

wherein estimating the total matching difference value is further based on the estimate of the matching difference value for matching the remaining samples.

10. The device of claim 9 , wherein the processor is further configured to:

calculate a second partial difference value for matching a second subset of the samples of the candidate block to the current block;

update the remaining samples of the candidate block by removing the second subset of samples of the candidate block;

refine the estimate of the matching difference value for matching the remaining samples via calculating a refined estimate for matching the updated remaining samples of the candidate block to the current block;

refine the estimated total matching difference value via summing the first partial difference value, the second partial difference value, and the refined estimate; and

determine whether the candidate block has the lowest matching difference value to the current block based at least in part on the refined estimated total matching difference value.

11. The device of claim 10 , wherein the processor is further configured to:

select a previous candidate block of the first frame of the non-natural video data for matching to the current block;

calculate a previous total matching difference value for matching the previous candidate block to the current block;

determine that the candidate block does not have the lowest matching difference value to the current block when the refined estimated total matching difference value is greater than the previous total matching difference value; and

determine that the candidate block has the lowest matching difference value to the current block when the refined estimated total matching difference value is less than the previous total matching difference value.

12. The device of claim 9 , wherein the processor is further configured to:

calculate a motion vector bit value for matching the candidate block to the current block,

estimate the total matching difference value via summing the first partial difference value, the estimate of the matching difference value for matching the remaining samples, and the motion vector bit value.

13. The device of claim 8 , wherein the processor is further configured to perform a modified initial search, wherein the first and second diamond patterns are located within an initial search area that is a sub-portion of an entire search area.

14. An apparatus for motion estimation of non-natural video data, comprising:

means for determining whether to skip motion estimation based only on a residual of a merge motion vector;

means for selecting, from a first diamond pattern surrounding a previous candidate block of a first frame of the non-natural video data, a candidate block of the first frame of the non-natural video data for matching to a current block of a second frame of the non-natural video data, wherein the non-natural video data comprises video data not captured through a camera having an optical system;

means for obtaining a previously calculated lowest matching difference value based on matching the previous candidate block of the first frame of the non-natural video data to the current block of the second frame of the non-natural video data;

means for calculating a first partial matching difference value for matching a first subset of samples of the candidate block to the current block;

means for estimating, based on the first partial matching difference value, a total matching difference value of matching the candidate block to the current block;

means for comparing the estimated total matching difference value of the candidate block to the lowest matching difference value of the previous candidate block;

means for determining whether the candidate block does not have a lowest matching difference value to the current block based on the comparison; and

means for selecting, in response to the candidate block not having the lowest matching difference value to the current block and from a second diamond pattern that is at least one of horizontally or vertically displaced from the first diamond pattern, a subsequent candidate block of the first frame of the non-natural video data for matching to the current block.

15. The apparatus of claim 14 , further comprising:

means for calculating an estimate of a matching difference value for matching the remaining samples of the candidate block to the current block,

wherein estimating the total matching difference value is further based on the estimate of the matching difference value for matching the remaining samples.

16. The apparatus of claim 15 , further comprising:

means for calculating a second partial difference value for matching a second subset of the samples of the candidate block to the current block;

means for updating the remaining samples of the candidate block by removing the second subset of samples of the candidate block;

means for refining the estimate of the matching difference value for matching the remaining samples via calculating a refined estimate for matching the updated remaining samples of the candidate block to the current block;

means for refining the estimated total matching difference value via summing the first partial difference value, the second partial difference value, and the refined estimate; and

means for determining whether the candidate block has the lowest matching difference value to the current block based at least in part on the refined estimated total matching difference value.

17. The apparatus of claim 16 , further comprising:

means for selecting a previous candidate block of the first frame of the non-natural video data for matching to the current block;

means for calculating a previous total matching difference value for matching the previous candidate block to the current block;

means for determining that the candidate block does not have the lowest matching difference value to the current block when the refined estimated total matching difference value is greater than the previous total matching difference value; and

means for determining that the candidate block has the lowest matching difference value to the current block when the refined estimated total matching difference value is less than the previous total matching difference value.

18. The apparatus of claim 15 , further comprising means for calculating a motion vector bit value for matching the candidate block to the current block, wherein the means for estimating the total matching difference value further comprises means for summing the first partial difference value, the estimate of the matching difference value for matching the remaining samples, and the motion vector bit value.

19. The apparatus of claim 14 , further comprising means for performing a modified initial search, wherein the first and second diamond patterns are located within an initial search area that is a sub-portion of an entire search area.

20. A non-transitory computer readable storage medium having stored thereon instructions that, when executed, cause a processor of a device configured for motion estimation of non-natural video data to:

determine whether to skip motion estimation based only on a residual of a merge motion vector;

select, from a first diamond pattern surrounding a previous candidate block of a first frame of the non-natural video data, a candidate block of the first frame of the non-natural video data for matching to a current block of a second frame of the non-natural video data, wherein the non-natural video data comprises video data not captured through a camera having an optical system;

obtain a previously calculated lowest matching difference value based on matching the previous candidate block of the first frame of the non-natural video data to the current block of the second frame of the non-natural video data;

calculate a first partial matching difference value for matching a first subset of samples of the candidate block to the current block;

estimate, based on the first partial matching difference value, a total matching difference value of matching the candidate block to the current block;

compare the estimated total matching difference value of the candidate block to the lowest matching difference value of the previous candidate block;

determine whether the candidate block does not have a lowest matching difference value to the current block based on the comparison; and

in response to the candidate block not having the lowest matching difference value to the current block, select, from a second diamond pattern that is at least one of horizontally or vertically displaced from the first diamond pattern, a subsequent candidate block of the first frame of the non-natural video data for matching to the current block.

21. The non-transitory computer readable storage medium of claim 20 , further having stored thereon instructions that, when executed, cause the processor to:

calculate an estimate of a matching difference value for matching the remaining samples of the candidate block to the current block,

wherein estimating the total matching difference value is further based on the estimate of the matching difference value for matching the remaining samples.

22. The non-transitory computer readable storage medium of claim 21 , further having stored thereon instructions that, when executed, cause the processor to:

calculate a second partial difference value for matching a second subset of the samples of the candidate block to the current block;

update the remaining samples of the candidate block by removing the second subset of samples of the candidate block;

refine the estimate of the matching difference value for matching the remaining samples via calculating a refined estimate for matching the updated remaining samples of the candidate block to the current block;

refine the estimated total matching difference value via summing the first partial difference value, the second partial difference value, and the refined estimate; and

determine whether the candidate block has the lowest matching difference value to the current block based at least in part on the refined estimated total matching difference value.

23. The non-transitory computer readable storage medium of claim 22 , further having stored thereon instructions that, when executed, cause the processor to:

select a previous candidate block of the first frame of the non-natural video data for matching to the current block;

calculate a previous total matching difference value for matching the previous candidate block to the current block;

determine that the candidate block does not have the lowest matching difference value to the current block when the refined estimated total matching difference value is greater than the previous total matching difference value; and

determine that the candidate block has the lowest matching difference value to the current block when the refined estimated total matching difference value is less than the previous total matching difference value.

24. The non-transitory computer readable storage medium of claim 21 , further having stored thereon instructions that, when executed, cause the processor to:

calculate a motion vector bit value for matching the candidate block to the current block, estimate the total matching difference value via summing the first partial difference value, the estimate of the matching difference value for matching the remaining samples, and the motion vector bit value.

25. The non-transitory computer readable storage medium of claim 20 , further having stored thereon instructions that, when executed, cause the processor to perform a modified initial search, wherein the first and second diamond patterns are located within an initial search area that is a sub-portion of an entire search area.

26. The method of claim 1 , wherein the second diamond pattern and the first diamond pattern are the same size.

27. The method of claim 26 , wherein the second diamond pattern is displaced from the first diamond pattern with a step size of four.

28. The device of claim 8 , wherein the second diamond pattern and the first diamond pattern are the same size.

29. The device of claim 28 , wherein the second diamond pattern is displaced from the first diamond pattern with a step size of four.

30. A device for motion estimation of non-natural video data, the device comprising:

a memory configured to store the non-natural video data, the non-natural video data comprising video data not captured through a camera having an optical system; and

a processor in communication with the memory and configured to:

select, from a first diamond pattern surrounding a previous candidate block of a first frame of the non-natural video data, a candidate block of the first frame of the non-natural video data for matching to a current block of a second frame of the non-natural video data;

obtain a previously calculated lowest matching difference value based on matching the previous candidate block of the first frame of the non-natural video data to the current block of the second frame of the non-natural video data;

calculate a first partial matching difference value of matching a first subset of samples of the candidate block to the current block;

estimate, based on the first partial matching difference value, a total matching difference value of matching the candidate block to the current block;

compare the estimated total matching difference value of the candidate block to the lowest matching difference value of the previous candidate block;

determine whether the candidate block does not have a lowest matching difference value to the current block based on the comparison;

select, in response to the candidate block not having the lowest matching difference value to the current block and from a second diamond pattern that is at least one of horizontally or vertically displaced from the first diamond pattern, a subsequent candidate block of the first frame of the non-natural video data for matching to the current block;

determine a first distance between the candidate having the lowest matching difference value and the current block;

determine a second distance between a predictor and the current block; and

determine whether to perform a refinement search or a full search with error approximation based on the difference between the first and second distances.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE SECOND INVENTOR'S NAME PREVIOUSLY RECORDED AT REEL: 035313 FRAME: 0838. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 12, 2016
From: RAPAKA, KRISHNAKANTH; SOLE ROJALS, JOEL; ZHANG, LI; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 039669/0055 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2015
From: RAPAKA, KRISHNAKANTH; SOLE ROJALS, JOEL; ZHANG, LI; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 035313/0838 →
Continuity (2)
Provisional Application 61954296 · Mar 17, 2014
Related Publication 20150264387A1 · Sep 17, 2015
Cited By (1)
US 12,464,142