IP Library Patent Application 11498398
Patent Application
App. No. 11/498,398

Motion compensation module and methods for use therewith

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 None
App. No.
11/498,398
Abstract

A motion compensation module, that can be used in a video encoder for encoding a video input signal, includes a motion search module that generates a motion search motion vector for each macroblock of a plurality of macroblocks in a row of the input signal. A motion refinement module generates a refined motion vector for each macroblock of the plurality of macroblocks, based on the motion search motion vector. The motion search module and the motion refinement module are pipelined and operate to process each of the plurality of macroblocks in the row of the video input signal, in parallel.

Claims (46)

1 . A motion compensation module for use in a video encoder for encoding a video input signal, the motion compensation module comprising:

a motion search module, that generates a motion search motion vector for each macroblock of a plurality of macroblocks;

a motion refinement module, coupled to the motion search module, that generates a refined motion vector for each macroblock of the plurality of macroblocks, based on the motion search motion vector;

a direct mode module, that generates a direct mode motion vector for each macroblock of the plurality of macroblocks, based on a plurality of macroblocks that neighbor the macroblock of pixels;

an intra-prediction module that generates a best intra prediction mode for each macroblock of the plurality of macroblocks;

a mode decision module, coupled to the motion refinement module, the direct mode module and the prediction module, that determines a final motion vector for each macroblock of the plurality of macroblocks based on costs associated with the refined motion vector, the direct mode motion vector, and the best intra prediction mode; and

a reconstruction module, coupled to the mode decision module, that generates residual pixel values corresponding to the final motion vector for each macroblock of the plurality of macroblocks;

wherein the motion search module and the motion refinement module are pipelined and operate in parallel to process each of the plurality of macroblocks in the row of the video input signal.

2 . The motion compensation module of claim 1 wherein the cost associated with the refined motion search is calculated based on an estimated predicted motion vector that is based exclusively on neighboring macroblocks from at least one prior row of the video input signal.

3 . The motion compensation module of claim 2 wherein the at least one prior row includes the row above the row of the video input signal.

4 . The motion compensation module of claim 2 wherein the motion refinement module evaluates a plurality of partitions of each macroblock of the plurality of macroblocks into a plurality of subblocks and wherein the estimated predicted motion vector used to calculate a cost for one of the plurality of subblocks is used for each of the remaining plurality of subblocks.

5 . The motion compensation module of claim 1 wherein the motion search motion vector is determined based on a cost calculated based on an estimated predicted motion vector that is based exclusively on neighboring macroblocks from a prior row of the video input signal.

6 . The motion compensation module of claim 5 wherein the at least one prior row includes the row above the row of the video input signal.

7 . The motion compensation module of claim 5 wherein the motion search module evaluates a plurality of partitions of each macroblock of the plurality of macroblocks into a plurality of subblocks and wherein the estimated predicted motion vector used to calculate a cost for one of the plurality of subblocks is used for each of the remaining plurality of subblocks.

8 . A motion compensation module for use in a video encoder for encoding a video input signal, the motion compensation module comprising:

a motion search module, that generates a motion search motion vector for each macroblock of a plurality of macroblocks in a row of the input signal; and

a motion refinement module, coupled to the motion search module, that generates a refined motion vector for each macroblock of the plurality of macroblocks, based on the motion search motion vector;

wherein the motion search module and the motion refinement module are pipelined and operate to process each of the plurality of macroblocks in the row of the video input signal, in parallel.

9 . The motion compensation module of claim 8 further comprising:

a direct mode module, that generates a direct mode motion vector for each macroblock of the plurality of macroblocks, based on a plurality of macroblocks that neighbor the macroblock of pixels;

an intra-prediction module that generates a best intra prediction mode for each macroblock of the plurality of macroblocks; and

a mode decision module, coupled to the motion refinement module, the direct mode module and the prediction module, that determines a final motion vector for each macroblock of the plurality of macroblocks based on costs associated with the refined motion vector, the direct mode motion vector, and the best intra prediction mode.

10 . The motion compensation module of claim 9 further comprising:

a reconstruction module, coupled to the mode decision module, that generates residual pixel values corresponding to the final motion vector for each macroblock of the plurality of macroblocks.

11 . The motion compensation module of claim 8 wherein motion refinement module calculates a cost associated with the refined motion vector based on an estimated predicted motion vector that is based exclusively on neighboring macroblocks from at least one prior row of the video input signal.

12 . The motion compensation module of claim 11 wherein the at least one prior row includes the row above the row of the video input signal.

13 . The motion compensation module of claim 11 wherein the motion refinement module evaluates a plurality of partitions of each macroblock of the plurality of macroblocks into a plurality of subblocks and wherein the estimated predicted motion vector used to calculate a cost for one of the plurality of subblocks is used for each of the remaining plurality of subblocks.

14 . The motion compensation module of claim 8 wherein the motion search motion vector is determined based on a cost calculated based on an estimated predicted motion vector that is based exclusively on neighboring macroblocks from a prior row of the video input signal.

15 . The motion compensation module of claim 14 wherein the at least one prior row includes the row above the row of the video input signal.

16 . The motion compensation module of claim 14 wherein the motion search module evaluates a plurality of partitions of each macroblock of the plurality of macroblocks into a plurality of subblocks and wherein the estimated predicted motion vector used to calculate a cost for one of the plurality of subblocks is used for each of the remaining plurality of subblocks.

17 . A method for use in a video encoder for encoding a video input signal, method comprising:

generating a motion search motion vector for each macroblock of a plurality of macroblocks in a row of the input signal; and

generating a refined motion vector for each macroblock of the plurality of macroblocks, based on the motion search motion vector;

wherein the generation of the motion search motion vector and the generation of the refined motion search vector are pipelined and operate to process each of the plurality of macroblocks in the row of the video input signal, in parallel.

18 . The method of claim 17 further comprising:

generating a direct mode motion vector for each macroblock of the plurality of macroblocks, based on a plurality of macroblocks that neighbor the macroblock of pixels;

generating a best intra prediction mode for each macroblock of the plurality of macroblocks; and

determining a final motion vector for each macroblock of the plurality of macroblocks based on costs associated with the refined motion vector, the direct mode motion vector, and the best intra prediction mode.

19 . The method of claim 18 further comprising:

generating residual pixel values corresponding to the final motion vector for each macroblock of the plurality of macroblocks.

20 . The method of claim 17 wherein the step of generating a refined motion vector includes calculating a cost based on an estimated predicted motion vector that is based exclusively on neighboring macroblocks from at least one prior row of the video input signal.

21 . The method of claim 20 wherein the at least one prior row includes the row above the row of the video input signal.

22 . The method of claim 20 wherein the step of generating a refined motion vector includes evaluating a plurality of partitions of each macroblock of the plurality of macroblocks into a plurality of subblocks and wherein the estimated predicted motion vector used to calculate a cost for one of the plurality of subblocks is used for each of the remaining plurality of subblocks.

23 . The method of claim 17 wherein the step of generating a motion search motion vector includes calculating a cost based on an estimated predicted motion vector that is based exclusively on neighboring macroblocks from a prior row of the video input signal.

24 . The method of claim 23 wherein the at least one prior row includes the row above the row of the video input signal.

25 . The method of claim 23 wherein the step of generating a motion search motion vector includes evaluating a plurality of partitions of each macroblock of the plurality of macroblocks into a plurality of subblocks and wherein the estimated predicted motion vector used to calculate a cost for one of the plurality of subblocks is used for each of the remaining plurality of subblocks.

Assignments (3)
SECURITY AGREEMENT Recorded Feb 11, 2009
From: VIXS SYSTEMS INC.
To: COMERICA BANK
Reel/Frame 022240/0446 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CHANGE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 018157 FRAME 0115. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 9, 2007
From: LI, XINGHAI; ZHAO, XU GANG; QIU, GANG
To: VIXS SYSTEMS, INC.
Reel/Frame 018991/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2006
From: LI, XINGHAI (BILLY); ZHAO, XU GANG (WILF); QIU, GANG
To: VIXS, INC., A CORPORATION
Reel/Frame 018157/0115 →