IP Library Granted Patent US 8,009,923
Granted Patent B2
US 8,009,923 · App. 11/376,703 · Granted Aug 30, 2011

Method and system for motion estimation with multiple vector candidates

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,009,923
App. No.
11/376,703
Granted
Aug 30, 2011
Kind
B2
Abstract

A method and system for performing motion estimation for a frame associated with a video signal. The method includes receiving at least a reference frame, a first frame, and a second frame, and providing a first plurality of vectors. The first plurality of vectors intersects the first frame within a first block and intersects the reference frame within a first plurality of blocks respectively. Additionally, the method includes determining a second plurality of vectors based on at least information associated with the first plurality of vectors. The second plurality of vectors intersects the second frame within a second block and intersecting the reference frame at a plurality of locations. Moreover, the method includes processing information associated with the plurality of locations, and determining a plurality of search areas corresponding to the plurality of locations in the second frame.

Claims (113)

1. A method for performing motion estimation for a frame associated with a video signal, the method comprising:

receiving at least a reference frame, a first frame, and a second frame;

providing a first plurality of vectors, the first plurality of vectors intersecting the first frame within a first block and intersecting the reference frame within a first plurality of blocks respectively;

determining a second plurality of vectors based on at least information associated with the first plurality of vectors, the second plurality of vectors intersecting the second frame within a second block and intersecting the reference frame at a plurality of locations;

processing information associated with the plurality of locations;

determining a plurality of search areas corresponding to the plurality of locations in the second frame, each of the plurality of locations being located within at least one of the plurality of search areas;

processing information associated with the second block and the plurality of search areas;

determining a second plurality of blocks within the plurality of search areas respectively based on at least information associated with the second block and the plurality of search areas, each of the second plurality of blocks being located within at least one of the plurality of search areas;

processing information associated with the second plurality of blocks;

selecting a third block from at least the second plurality of blocks based on at least information associated with the second plurality of blocks; and

determining a motion vector based on at least information associated with the third block and the second block.

2. The method of claim 1 wherein each of the second plurality of vectors follows parallel paths with one of the first plurality of vectors between the second frame and the reference frame.

3. A method for performing motion estimation for a frame associated with a video signal, the method comprising:

receiving at least a reference frame, a first frame, and a second frame;

providing a first plurality of vectors, the first plurality of vectors intersecting the first frame within a first block and intersecting the reference frame within a first plurality of blocks respectively;

determining a second plurality of vectors based on at least information associated with the first plurality of vectors, the second plurality of vectors intersecting the second frame within a second block and intersecting the reference frame at a plurality of locations;

processing information associated with the plurality of locations;

determining a plurality of search areas corresponding to the plurality of locations in the second frame, each of the plurality of locations being located within at least one of the plurality of search areas;

processing information associated with the second block and the plurality of search areas;

determining a second plurality of blocks within the plurality of search areas respectively based on at least information associated with the second block and the plurality of search areas, each of the second plurality of blocks being located within at least one of the plurality of search areas;

processing information associated with the second plurality of blocks;

selecting a third block from at least the second plurality of blocks based on at least information associated with the second plurality of blocks;

determining a motion vector based on at least information associated with the third block and the second block;

wherein the reference frame includes a plurality of reference blocks; and

wherein the providing the first plurality of vectors comprises:

processing information associated with the plurality of reference blocks and the first block;

determining a plurality of indicators for the plurality of reference blocks respectively based on at least information associated with the plurality of reference blocks and the first block, the plurality of indicators indicating degrees of similarity between the first block and the plurality of reference blocks respectively;

processing information associated with the plurality of indicators and the plurality of reference blocks;

determining at least two blocks most similar to the first block among all of the plurality of reference blocks based on at least information associated with the plurality of indicators; and

selecting the first plurality of blocks from the plurality of reference blocks, the first plurality of blocks including the two blocks.

4. The method of claim 3 wherein the reference frame, the first frame, and the second frame are associated with a stream of frames related to a video signal.

5. The method of claim 3 wherein:

the first block is associated with a first location in the first frame;

the second block is associated with a second location in the second frame;

the first location and the second location are the same.

6. The method of claim 3 wherein at least one of the second plurality of vectors is not parallel with anyone of the first plurality of vectors.

7. The method of claim 3 wherein the reference frame includes a plurality of reference blocks.

8. The method of claim 3 wherein the plurality of indicators is associated with sum of absolute differences.

9. The method of claim 3 wherein the plurality of indicators is associated with rate distortion.

10. The method of claim 3 wherein each of the plurality of search areas includes a plurality of reference blocks.

11. The method of claim 3 wherein the second plurality of blocks is associated with a plurality of indicators respectively, the plurality of indicators indicating degrees of similarity between the second block and the second plurality of blocks respectively.

12. The method of claim 11 wherein the plurality of indicators is associated with sum of absolute differences.

13. The method of claim 11 wherein the plurality of indicators is associated with rate distortion.

14. The method of claim 3 wherein each of the plurality of search areas does not overlap with any other of the plurality of search areas.

15. The method of claim 3 wherein at least one of the plurality of search areas overlaps with at least another of the plurality of search areas.

16. A method for performing motion estimation for a frame associated with a video signal, the method comprising:

receiving at least a reference frame, a first frame, and a second frame;

providing a first plurality of vectors, the first plurality of vectors intersecting the first frame within a first block and intersecting the reference frame within a first plurality of blocks respectively;

determining a second plurality of vectors based on at least information associated with the first plurality of vectors, the second plurality of vectors intersecting the second frame within a second block and intersecting the reference frame at a plurality of locations;

processing information associated with the plurality of locations;

determining a plurality of search areas corresponding to the plurality of locations in the second frame, each of the plurality of locations being located within at least one of the plurality of search areas;

processing information associated with the second block and the plurality of search areas;

determining a second plurality of blocks within the plurality of search areas respectively based on at least information associated with the second block and the plurality of search areas, each of the second plurality of blocks being located within at least one of the plurality of search areas;

processing information associated with the second plurality of blocks;

selecting a third block from at least the second plurality of blocks based on at least information associated with the second plurality of blocks;

determining a motion vector based on at least information associated with the third block and the second block;

wherein each of the plurality of search areas includes a plurality of reference blocks; and

wherein the determining the second plurality of blocks within the plurality of search areas respectively comprises:

for each of the plurality of search areas,

processing information associated with the plurality of reference blocks and the second block;

determining a plurality of indicators for the plurality of reference blocks respectively based on at least information associated with the plurality of reference blocks and the second block, the plurality of indicators indicating degrees of similarity between the second block and the plurality of reference blocks respectively;

processing information associated with the plurality of indicators and the plurality of reference blocks; and

determining one block most similar to the second block among all of the plurality of reference blocks based on at least information associated with the plurality of indicators, the second plurality of blocks including the one block.

17. The method of claim 16 wherein the plurality of indicators is associated with sum of absolute differences.

18. The method of claim 16 wherein the plurality of indicators is associated with rate distortion.

19. A method for performing motion estimation for a frame associated with a video signal, the method comprising:

receiving at least a reference frame, a first frame, and a second frame;

providing a first plurality of vectors, the first plurality of vectors intersecting the first frame within a first block and intersecting the reference frame within a first plurality of blocks respectively;

determining a second plurality of vectors based on at least information associated with the first plurality of vectors, the second plurality of vectors intersecting the second frame within a second block and intersecting the reference frame at a plurality of locations;

processing information associated with the plurality of locations;

determining a plurality of search areas corresponding to the plurality of locations in the second frame, each of the plurality of locations being located within at least one of the plurality of search areas;

processing information associated with the second block and the plurality of search areas;

determining a second plurality of blocks within the plurality of search areas respectively based on at least information associated with the second block and the plurality of search areas, each of the second plurality of blocks being located within at least one of the plurality of search areas;

processing information associated with the second plurality of blocks;

selecting a third block from at least the second plurality of blocks based on at least information associated with the second plurality of blocks;

determining a motion vector based on at least information associated with the third block and the second block;

wherein the second plurality of blocks is associated with a plurality of indicators respectively, the plurality of indicators indicating degrees of similarity between the second block and the second plurality of blocks respectively; and

wherein the selecting the third block from the second plurality of blocks comprises:

processing information associated with the plurality of indicators and the second plurality of blocks; and

determining one block most similar to the second block among all of the second plurality of blocks based on at least information associated with the plurality of indicators, the one block being the third block.

20. A method for performing motion estimation for a frame associated with a video signal, the method comprising:

receiving at least a reference frame, a first frame, and a second frame, the reference frame, the first frame, and the second frame being associated with a stream of frames related to a video signal;

providing a first plurality of vectors intersecting the first frame within a first block;

determining a second plurality of vectors based on at least information associated with the first plurality of vectors, the second plurality of vectors intersecting the second frame within a second block and intersecting the reference frame at a plurality of locations;

processing information associated with the plurality of locations;

determining a plurality of search areas corresponding to the plurality of locations in the second frame respectively;

processing information associated with the second block and the plurality of search areas;

determining a second plurality of blocks within the plurality of search areas respectively based on at least information associated with the second block and the plurality of search areas;

processing information associated with the second plurality of blocks;

selecting a third block from at least the second plurality of blocks based on at least information associated with the second plurality of blocks;

determining a motion vector based on at least information associated with the third block and the second block;

wherein:

the first block is associated with a first location in the first frame;

the second block is associated with a second location in the second frame;

the first location and the second location are the same.

21. A computer program product including a nontransitory computer-readable storage medium including instructions for performing motion estimation in one or more processors for a frame associated with a video signal, the nontransitory computer-readable storage medium comprising:

one or more instructions to cause the processor to receive at least a reference frame, a first frame, and a second frame;

one or more instructions to cause the one or more processors to receive a first plurality of vectors, the first plurality of vectors intersecting the first frame within a first block and intersecting the reference frame within a first plurality of blocks respectively;

one or more instructions to cause the one or more processors to determine a second plurality of vectors based on at least information associated with the first plurality of vectors, the second plurality of vectors intersecting the second frame within a second block and intersecting the reference frame at a plurality of locations;

one or more instructions to cause the one or more processors to process information associated with the plurality of locations;

one or more instructions to cause the one or more processors to determine a plurality of search areas corresponding to the plurality of locations in the second frame, each of the plurality of locations being located within at least one of the plurality of search areas;

one or more instructions to cause the one or more processors to process information associated with the second block and the plurality of search areas;

one or more instructions to cause the one or more processors to a second plurality of blocks within the plurality of search areas respectively based on at least information associated with the second block and the plurality of search areas, each of the second plurality of blocks being located within at least one of the plurality of search areas;

one or more instructions to cause the one or more processors to process information associated with the second plurality of blocks;

one or more instructions to cause the one or more processors to select a third block from at least the second plurality of blocks based on at least information associated with the second plurality of blocks;

one or more instructions to cause the one or more processors to determine a motion vector based on at least information associated with the third block and the second block;

wherein the reference frame includes a plurality of reference blocks; and

wherein the instructions to provide the first plurality of vectors comprises:

one or more instructions to cause the one or more processors to process information associated with the plurality of reference blocks and the first block;

one or more instructions to cause the one or more processors to determine a plurality of indicators for the plurality of reference blocks respectively based on at least information associated with the plurality of reference blocks and the first block, the plurality of indicators indicating degrees of similarity between the first block and the plurality of reference blocks respectively;

one or more instructions to cause the one or more processors to process information associated with the plurality of indicators and the plurality of reference blocks;

one or more instructions to cause the one or more processors to determine at least two blocks most similar to the first block among all of the plurality of reference blocks based on at least information associated with the plurality of indicators; and

one or more instructions to cause the one or more processors to select the first plurality of blocks from the plurality of reference blocks, the first plurality of blocks including the two blocks.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Jan 11, 2019
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 049367/0717 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
RELEASE OF SECURITY INTEREST Recorded Jan 26, 2017
From: VENTURE LENDING & LEASING IV, INC.
To: CELESTIAL SEMICONDUCTOR, LTD
Reel/Frame 041513/0188 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
CHANGE OF NAME Recorded Jun 19, 2012
From: CAVIUM NETWORKS, INC.
To: CAVIUM, INC.
Reel/Frame 028401/0382 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2011
From: CELESTIAL SEMICONDUCTOR LTD.
To: CAVIUM NETWORKS, INC.
Reel/Frame 026375/0778 →
SECURITY AGREEMENT Recorded Oct 24, 2006
From: CELESTIAL SEMICONDUCTOR, LTD.
To: VENTURE LENDING & LEASING IV, INC.
Reel/Frame 018454/0035 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2006
From: LI, GE; YU, YANBIN
To: CELESTIAL SEMICONDUCTOR, LTD.
Reel/Frame 018051/0657 →