IP Library Granted Patent US 8,411,749
Granted Patent B1
US 8,411,749 · App. 12/572,151 · Granted Apr 2, 2013

Optimized motion compensation and motion estimation for video coding

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,411,749
App. No.
12/572,151
Granted
Apr 2, 2013
Kind
B1
Abstract

A system (and a method) are disclosed for intelligently fetch one or multiple reference blocks from memory for each block to be motion compensated or motion estimated within a video processing system. The system includes a reference block configuration evaluation unit and a motion compensation memory fetching unit. The reference block configuration evaluation unit analyzes the reference block configuration of the block being motion compensated with a plurality of reference block configurations of its neighboring blocks. In response to a reference block configuration evaluation result, the reference block configuration evaluation unit decides the configuration of reference blocks to be fetched from a memory. The motion vector memory fetching unit fetches the number of reference blocks for motion compensation accordingly.

Claims (31)

1. A method for optimizing memory access of motion compensation for a block of video data which is one of a plurality of blocks of a picture of video data, comprising:

receiving a plurality of motion compensation references, a motion compensation reference including at least a motion vector of the block being motion compensated and a memory address of a reference block which is associated with the block being motion compensated;

evaluating configurations of the plurality of motion compensation references, wherein evaluating configurations of the plurality of motion compensation references comprises comparing the configuration of a reference block of the block being motion compensated with the configuration of a reference block of a neighboring block of the block being motion compensated; and

determining the configuration of reference blocks to be fetched from a memory collectively based on the evaluation of the configurations of the corresponding reference blocks of the plurality of motion compensation references.

2. The method of claim 1 , wherein comparing the configuration of the reference block of the block being motion compensated and the configuration of the reference block of the neighboring block comprises determining whether the two configurations are identical.

3. The method of claim 1 , wherein comparing the configuration of the reference block of the block being motion compensated and the configuration of the reference block of the neighboring block further comprises determining whether the magnitude of the vector difference of the two configurations overlap.

4. The method of claim 3 , wherein the reference block comprises a sub-pixel accuracy motion compensation support block of the block being motion compensated and a sub-pixel accuracy motion compensation support block of the neighboring block, the dimensions of sub-pixel accuracy motion compensation support blocks being determined by a sub-pixel accuracy pixel interpolation filter.

5. The method of claim 3 , wherein the reference block comprises a motion vector refinement support block of the block being motion compensated and a motion vector refinement support block of the neighboring block, the dimensions of motion vector refinement support blocks being determined by a configurable threshold.

6. The method of claim 1 , wherein determining the configuration of reference blocks to be fetched from a memory collectively comprises marking the reference block of the block being motion compensated and the reference block of the neighboring block responsive to the reference block configurations of the block being motion compensated and the neighboring block being identical.

7. The method of claim 1 , wherein determining the configuration of reference blocks to be fetched from a memory collectively further comprises marking the reference block of the block being motion compensated and the reference block of the neighboring block responsive to the reference block configuration of the block being motion compensated overlapping the reference block configuration of the neighboring block.

8. The method of claim 1 , wherein comparing the configuration of a reference block of the block being motion compensated with the configuration of a reference block of a neighboring block of the block being motion compensated comprises:

determining whether difference between motion vector of the reference block of the block being motion compensated and motion vector of the reference block of the neighboring block of the block being motion compensated is at least equal to number of pixels of an overlapping region between the reference blocks.

9. A system for optimizing memory access of motion compensation for a block of video data which is one of a plurality of blocks of a picture of video data, comprising:

a receiving module for receiving a plurality of motion compensation references, a motion compensation reference including at least a motion vector of the block being motion compensated and a memory address of a reference block which is associated with the block being motion compensated;

a reference block configuration evaluation unit for evaluating reference block configurations of the plurality of motion compensation references, wherein evaluating reference block configurations of the plurality of motion compensation references comprises comparing the configuration of a reference block of the block being motion compensated with the configuration of a reference block of a neighboring block of the block being motion compensated; and

a motion compensation memory fetching unit for determining the configuration of reference blocks to be fetched from a memory collectively responsive to an evaluation result.

10. The system of claim 9 , wherein the reference block configuration evaluation unit is configured to determine whether the configuration of the reference block of the block being motion compensated and the configuration of the reference block of the neighboring block are identical.

11. The system of claim 9 , wherein reference block configuration evaluation unit is further configured to determine whether the configuration of the reference block of the block being motion compensated and the configuration of the reference block of the neighboring block overlap.

12. The system of claim 11 , wherein the reference block comprises a sub-pixel accuracy motion compensation support block of the block being motion compensated and a sub-pixel accuracy motion compensation support block of the neighboring block, the dimensions of sub-pixel accuracy motion compensation support blocks being determined by a sub-pixel accuracy pixel interpolation filter.

13. The system of claim 11 , wherein the reference block comprises a motion vector refinement support block of the block being motion compensated and a motion vector refinement support block of the neighboring block, the dimensions of motion vector refinement support blocks being determined by a configurable threshold.

14. The system of claim 9 , wherein the motion vector memory fetching unit is configured to mark the reference block of the block being motion compensated and the reference block of the neighboring block responsive to the reference block configuration of the block being motion compensated and the reference block configuration of the neighboring block being identical.

15. The system of claim 9 , wherein the motion vector memory fetching unit is further configured to mark the reference block of the block being motion compensated and the reference block of the neighboring block responsive to the reference block configuration of the block being motion compensated and the reference block configuration of the neighboring block overlapping.

16. A computer program product for optimizing memory access of motion compensation for a block of video data which is one of a plurality of blocks of a picture of video data, the computer program product comprising a non-transitory computer-readable medium containing computer program code for:

receiving a plurality of motion compensation references, a motion compensation reference including at least a motion vector of the block being motion compensated and a memory address of a reference block which is associated with the block being motion compensated;

evaluating reference block configurations of the plurality of motion compensation references, wherein evaluating reference block configurations of the plurality of motion compensation references comprises comparing the configuration of a reference block of the block being motion compensated with the configuration of a reference block of a neighboring block of the block being motion compensated; and

determining the configuration of reference blocks to be fetched from a memory collectively responsive to an evaluation result.

17. A system for optimizing memory access of motion estimation for a block of video data which is one of a plurality of blocks of a picture of video data, comprising:

a receiving module for receiving a plurality of motion estimation references, a motion estimation reference including at least a memory address of a reference block which is associated with the block being motion estimated;

a reference block configuration unit for evaluating reference block configurations of the plurality of motion estimation references, wherein evaluating reference block configurations of the plurality of motion compensation references comprises comparing the configuration of a reference block of the block being motion compensated with the configuration of a reference block of a neighboring block of the block being motion compensated; and

a motion estimation memory fetching unit for determining the configuration of reference blocks to be fetched from a memory collectively responsive to an evaluation result.

18. The system of claim 17 , wherein the reference block comprises the search range and the region of support of the block being motion estimated and the search range and the region of support block of the neighboring block, the dimensions of the search range and the region of support blocks being determined by a configurable threshold.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE LISTED CHANGE OF NAME SHOULD BE MERGER AND CHANGE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0180. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 12, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 041354/0148 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040652/0180 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
CHANGE OF NAME Recorded Jan 27, 2015
From: ZENVERGE, INC.
To: ZENVERGE, LLC
Reel/Frame 034817/0375 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: ZENVERGE LLC
To: FREESCALE SEMICONDUCTOR INC.
Reel/Frame 034766/0476 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2009
From: JACOB, ROJIT; KIPNIS, ALEXANDER; SAYYAH, BEHZAD R.
To: ZENVERGE, INC.
Reel/Frame 023318/0627 →