IP Library Granted Patent US 8,897,355
Granted Patent B2
US 8,897,355 · App. 13/307,393 · Granted Nov 25, 2014

Cache prefetch during motion estimation

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 8,897,355
App. No.
13/307,393
Granted
Nov 25, 2014
Kind
B2
Abstract

An apparatus having a cache and a processor. The cache may be configured to (i) buffer a first subset of reference samples of a reference picture to facilitate a motion estimation of a current block and (ii) prefetch a second subset of the reference samples while a first search pattern is being tested. The first search pattern used in the motion estimation generally defines multiple motion vectors to test. The reference samples of the second subset may be utilized by a second search pattern in the motion estimation of the current block. The prefetch of the second subset may be based on a geometry of the first search pattern and scores of the motion vectors already tested. The processor may be configured to calculate the scores of the motion vectors by a block comparison of the reference samples to the current block according to the first search pattern.

Claims (33)

1. An apparatus comprising:

a cache configured to (i) buffer a first subset of a plurality of reference samples of a reference picture to facilitate a motion estimation of a current block and (ii) prefetch a second subset of said reference samples while a first search pattern is being tested, wherein (a) said first search pattern used in said motion estimation defines a plurality of motion vectors to test, (b) said reference samples of said second subset are utilized by a second search pattern in said motion estimation of said current block and (c) said prefetch of said second subset is based on a geometry of said first search pattern and a plurality of scores of said motion vectors already tested; and

a processor configured to calculate said scores of said motion vectors by a block comparison of said reference samples to said current block according to said first search pattern.

2. The apparatus according to claim 1 , wherein said second subset is utilized by said second search pattern independent of which one of said motion vectors in said first search pattern is determined to have a best of said scores when testing of said first search pattern completes.

3. The apparatus according to claim 1 , wherein said first search pattern is one of (i) a diamond search pattern and (ii) a small diamond search pattern.

4. The apparatus according to claim 1 , wherein while said first search pattern is being tested said cache is further configured to calculate a probability that a given one of said motion vectors will have a best of said scores when testing of said first search pattern completes.

5. The apparatus according to claim 4 , wherein said cache is further configured to (i) compare said probability against a threshold and (ii) prefetch a third subset of said reference sample to said cache in response to said probability exceeding said threshold.

6. The apparatus according to claim 1 , wherein (i) said processor is further configured to continue said motion estimation using said second search pattern and (ii) an initial one of said motion vectors tested in said second search pattern is scored based on said reference samples in said second subset.

7. The apparatus according to claim 6 , wherein (i) said cache is further configured to fetch a third subset of said reference samples to said cache while said initial motion vector in said second search pattern is being scored and (ii) said third subset facilitates testing an additional at least one of said motion vectors in said second search pattern.

8. The apparatus according to claim 1 , wherein said reference samples of said second subset are spatially outside an areas established by said reference samples of said first subset.

9. The apparatus according to claim 1 , wherein said apparatus forms part of a video encoder.

10. The apparatus according to claim 1 , wherein said apparatus is implemented as one or more integrated circuits.

11. A method for cache prefetch during a motion estimation, comprising the steps of:

(A) buffering in a cache a first subset of a plurality of reference samples of a reference picture to facilitate said motion estimation of a current block, wherein a first search pattern used in said motion estimation defines a plurality of motion vectors to test;

(B) calculating a plurality of scores of said motion vectors by a block comparison of said reference samples to said current block according to said first search pattern; and

(C) prefetching a second subset of said reference samples to said cache while said first search pattern is being tested, wherein (i) said reference samples of said second subset are utilized by a second search pattern in said motion estimation of said current block and (ii) said prefetching of said second subset is based on a geometry of said first search pattern and said scores of said motion vectors already tested.

12. The method according to claim 11 , wherein said second subset is utilized by said second search pattern independent of which one of said motion vectors in said first search pattern is determined to have a best of said scores when testing of said first search pattern completes.

13. The method according to claim 11 , wherein said first search pattern is one of (i) a diamond search pattern and (ii) a small diamond search pattern.

14. The method according to claim 11 , wherein while said first search pattern is being tested the method further comprises the step of:

calculating a probability that a given one of said motion vectors will have a best of said scores when testing of said first search pattern completes.

15. The method according to claim 14 , further comprising the steps of:

comparing said probability against a threshold; and

prefetching a third subset of said reference sample to said cache in response to said probability exceeding said threshold.

16. The method according to claim 11 , further comprising the step of:

continuing said motion estimation using said second search pattern, wherein an initial one of said motion vectors tested in said second search pattern is scored based on said reference samples in said second subset.

17. The method according to claim 16 , further comprising the step of:

fetching a third subset of said reference samples to said cache while said initial motion vector in said second search pattern is being scored, wherein said third subset facilitates testing an additional at least one of said motion vectors in said second search pattern.

18. The method according to claim 11 , wherein said reference samples of said second subset are spatially outside an areas established by said reference samples of said first subset.

19. The method according to claim 11 , wherein said method is implemented in a video encoder.

20. An apparatus comprising:

means for buffering a first subset of a plurality of reference samples of a reference picture to facilitate a motion estimation of a current block, wherein a first search pattern used in said motion estimation defines a plurality of motion vectors to test;

means for calculating a plurality of scores of said motion vectors by a block comparison of said reference samples to said current block according to said first search pattern; and

means for prefetching a second subset of said reference samples to said means for buffering while said first search pattern is being tested, wherein (i) said reference samples of said second subset are utilized by a second search pattern in said motion estimation of said current block and (ii) said prefetching of said second subset is based on a geometry of said first search pattern and said scores of said motion vectors already tested.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded May 29, 2015
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION
Reel/Frame 035797/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2011
From: AMITAY, AMICHAY; RABINOVITCH, ALEXANDER; DUBROVIN, LEONID
To: LSI CORPORATION
Reel/Frame 027339/0963 →