IP Library Granted Patent US 8,249,140
Granted Patent B2
US 8,249,140 · App. 11/323,173 · Granted Aug 21, 2012

Direct macroblock mode techniques for high performance hardware motion compensation

Assignee: Intel Corporation
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,249,140
App. No.
11/323,173
Granted
Aug 21, 2012
Kind
B2
Abstract

Direct macroblock mode techniques for high performance hardware motion compensation are described. An embodiment includes a hardware motion compensation graphics display device driver. More specifically, an embodiment mitigates a macroblock data parsing bottleneck in the display device driver by directly generating macroblock instructions and storing them in a dedicated buffer. For example, an embodiment includes an independent direct memory access instruction execution buffer for macroblock instructions separate from the direct memory access instruction execution buffer for all other hardware motion compensation instructions. Other embodiments are described and claimed.

Claims (28)

1. An apparatus comprising:

a media processing node comprising:

a direct memory access instruction execution buffer for macroblock instructions in kernel space, the macroblock instructions comprising motion vectors;

a separate direct memory access instruction execution buffer for other hardware motion compensation instructions, the other hardware motion compensation instructions comprising instructions related to hardware configuration;

a hardware motion compensation module to add macroblock data to a hardware motion compensation user library, to generate in user space, by the hardware motion compensation user library, a hardware macroblock instruction for a graphics processing unit, to store the hardware macroblock instruction in a macroblock data buffer in user space, and to map the hardware macroblock instruction in the macroblock data buffer in user space to the direct memory access instruction execution buffer for macroblock instructions in kernel space; and

an instruction generator to generate, in kernel space, other hardware motion compensation instructions for the graphics processing unit.

2. The apparatus of claim 1 , the hardware motion compensation module to further cause the graphics processing unit to execute the hardware macroblock instruction from the direct memory access instruction execution buffer for macroblock instructions for the graphics processing unit.

3. The apparatus of claim 2 , the hardware motion compensation module to further cause the graphics processing unit to execute another hardware motion compensation instruction from the direct memory access instruction execution buffer for other hardware motion compensation instructions for the graphics processing unit.

4. A system comprising:

a communications medium; and

a media processing node comprising:

a direct memory access instruction execution buffer for macroblock instructions in kernel space, the macroblock instructions comprising motion vectors;

a separate direct memory access instruction execution buffer for other hardware motion compensation instructions, the other hardware motion compensation instructions comprising instructions related to hardware configuration;

a hardware motion compensation module to add macroblock data to a hardware motion compensation user library, to generate in user space, by the hardware motion compensation user library, a hardware macroblock instruction for a graphics processing unit, to store the hardware macroblock instruction in a macroblock data buffer in user space, and to map the hardware macroblock instruction in the macroblock data buffer in user space to the direct memory access instruction execution buffer for macroblock instructions in kernel space; and

an instruction generator to generate, in kernel space, other hardware motion compensation instructions for the graphics processing unit.

5. The system of claim 4 , the hardware motion compensation module to further cause the graphics processing unit to execute the hardware macroblock instruction from the direct memory access instruction execution buffer for macroblock instructions for the graphics processing unit.

6. The system of claim 5 , the hardware motion compensation module to further cause the graphics processing unit to execute another hardware motion compensation instruction from the direct memory access instruction execution buffer for other hardware motion compensation instructions for the graphics processing unit.

7. A method comprising:

adding macroblock data to a hardware motion compensation user library;

generating in user space, by the hardware motion compensation user library, a hardware macroblock instruction for a graphics processing unit, the hardware macroblock instruction comprising a motion vector;

storing the hardware macroblock instruction in a macroblock data buffer in user space;

mapping the hardware macroblock instruction in the macroblock data buffer in user space to a direct memory access instruction execution buffer for macroblock instructions in kernel space; and

generating in kernel space, by an instruction generator, other hardware motion compensation instructions for the graphics processing unit, the other hardware motion compensation instructions comprising instructions related to hardware configuration.

8. The method of claim 7 further comprising executing, by the graphics processing unit, the hardware macroblock instruction from the graphics processing unit direct memory access instruction execution buffer.

9. The method of claim 8 further comprising executing, by the graphics processing unit, another hardware motion compensation instruction from another graphics processing unit direct memory access instruction execution buffer.

10. An article of manufacture comprising a machine-readable storage medium containing instructions that if executed by a processor enable a system to add macroblock data to a hardware motion compensation user library, generate in user space, by the hardware motion compensation user library, a hardware macroblock instruction for a graphics processing unit, the hardware macroblock instruction comprising a motion vector, store the hardware macroblock instruction in a macroblock data buffer in user space, map the hardware macroblock instruction in the macroblock data buffer in user space to a direct memory access instruction execution buffer for macroblock instructions in kernel space; and generate in kernel space, by an instruction generator, other hardware motion compensation instructions for the graphics processing unit, the other hardware motion compensation instructions comprising instructions related to hardware configuration.

11. The article of manufacture of claim 10 further comprising instructions that if executed enable the system to execute, by the graphics processing unit, the hardware macroblock instruction from the graphics processing unit direct memory access instruction execution buffer.

12. The article of manufacture of claim 11 , further comprising instructions that if executed enable the system to execute, by the graphics processing unit, another hardware motion compensation instruction from another graphics processing unit direct memory access instruction execution buffer.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE RE-RECORD ASSIGNMENT PREVIOUSLY RECORDED AT REEL/FRAME 019587/0540 TO CORRECT THE ASSIGNOR FROM WENGENG LIU TO WENFGEN LIU PREVIOUSLY RECORDED ON REEL 019587 FRAME 0540. ASSIGNOR(S) HEREBY CONFIRMS THE RE-RECORD ASSIGNMENT PREVIOUSLY RECORDED AT REEL/FRAME 019587/0540 TO CORRECT THE ASSIGNOR FROM WENGENG LIU TO WENFGEN LIU. Recorded Oct 2, 2007
From: SONG, QINGJIAN; TANG, XIANG; LIU, WENFENG
To: INTEL CORPORATION
Reel/Frame 019908/0399 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2007
From: SONG, QINGJIAN; TANG, XING; LIU, WENGENG
To: INTEL CORPORATION
Reel/Frame 019587/0540 →
Continuity (1)
Related Publication 20070153008A1 · Jul 5, 2007