IP Library › Granted Patent US 8,174,620
Granted Patent B2
US 8,174,620 · App. 11/935,519 · Granted May 8, 2012

High definition media content processing

Assignee: Microsoft 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,174,620
App. No.
11/935,519
Granted
May 8, 2012
Kind
B2
Abstract

High definition media content processing techniques are described in which enhanced media content rendering techniques may be performed to output high definition media content. In an implementation, luma keying may be provided to define clear pixels in a composite output using an optimum set of graphics processing instructions. In another implementation, techniques are described which may provide clear rectangles in a composite output of one or more video streams. Clear rectangles to appear in the composite output are configured by a media playback application. A texture is arrived at to represent a union of each of the clear rectangles and is applied to form the clear rectangles in the composite output. In another implementation, capture techniques are described in which an image to capture is resolved as strips to an intermediate texture and then from the texture to a capture buffer in system memory.

Claims (74)

1. A method to provide luma keying to render media content including one or more video streams by a client device comprising:

compositing one or more video streams to form a frame of the media content; and

for each pixel of the one or more video streams in the frame, instructing a graphics processing unit of the client device to perform processing operations to:

subtract an upper luma threshold from a luma value of the pixel to obtain a first value;

subtract the luma value of the pixel from a lower luma threshold to obtain a second value;

determine a maximum value from the first value and the second value; and

when the maximum value is less than zero, set the pixel as transparent.

2. The method as recited in claim 1 , wherein:

when the maximum value is greater than or equal to zero, the luma value of the pixel remains unchanged; and

when the maximum value is less than zero, the pixel is set as transparent using the luma value of the pixel.

3. The method as recited in claim 1 , wherein the client device is configured as a game console.

4. The method as recited in claim 1 , wherein the graphic processing unit includes a pixel shader component to perform the processing operations for each pixel.

5. The method as recited in claim 1 , the graphics processing unit is operated to perform the processing operations under influence of a rendering module of the client device.

6. The method as recited in claim 1 , wherein:

the client device is configured as a game console;

the graphics processing unit includes a pixel shader to perform the processing operations;

the graphics processing unit is operated under influence of a rendering module of the game console; and

the rendering module is incorporated in a console application of the game console.

7. The method as recited in claim 1 , wherein:

the graphics processing unit is operated to perform the processing operations under influence of a rendering module of the client device; and

the rendering module is a component of a media playback application of the client device configured to output high definition media content from a high definition media source.

8. The method as recited in claim 1 , wherein:

the client device includes a rendering module as a component of an operating system of the client device; and

the rendering module is configured to perform the compositing and the instructing to output high definition media content from a high definition media source for display on a display device associated with the client device.

9. A game console comprising:

a processor;

memory;

a graphics processing unit (GPU); and

a capture module stored in the memory and executable via the processor to:

initiate processing to combine video streams into a composite output, the processing including successively compositing the video streams into a back buffer of the GPU to form each frame of the composite output;

receive a capture request from a requesting entity to capture a frame of the composite output;

allocate a capture buffer in the memory to store the frame;

resolve contents of the back buffer into a plurality of strips after processing of a main said video stream and before compositing other said video streams in the back buffer;

transfer each said strip, one at a time, into a texture and copy the each said strip from the texture to the capture buffer to form a captured frame; and

output the captured frame to the requesting entity.

10. A game console as recited in claim 9 , wherein:

access to the back buffer is restricted to the graphics processing unit (GPU);

the texture is accessible to the GPU and the capture module;

the GPU operates under influence of the capture module to transfer the plurality of strips into the texture; and

the capture module operates to copy the plurality of strips from the texture to the capture buffer.

11. A game console as recited in claim 9 , wherein the texture is sized to hold a single said strip, one at a time, such that the single said strip is copied from the texture to the capture buffer before another said strip is transferred to the texture.

12. A game console as recited in claim 9 further comprising a luma keying module to:

for each pixel of a frame, instruct the graphics processing unit (GPU) of the game console to:

subtract an upper luma threshold from a luma value of the pixel to obtain a first value;

subtract the luma value of the pixel from a lower luma threshold to obtain a second value;

determine a maximum value as the greater of the first value and the second value; and

when the maximum value is less than zero, set the luma value to make the pixel transparent in the frame.

13. A game console as recited in claim 9 further comprising a clear rectangle module to:

receive data describing one or more clear rectangles to include in the composite output;

form another texture to represent a union of the one or more clear rectangles; and

instruct the graphics processing unit (GPU) of the game console to apply the other texture on a pixel-by-pixel basis to the video streams to form the clear rectangles in the composite output of the video streams.

14. One or more computer-readable media other than a signal per se storing instructions that, when executed by a client device, implement a rendering module configured to perform luma keying operations to render media content including one or more video streams including:

compositing one or more video streams to form a frame of the media content; and

for each pixel of the one or more video streams in the frame, instructing a graphics processing unit of the client device to perform processing operations to:

subtract an upper luma threshold from a luma value of the pixel to obtain a first value;

subtract the luma value of the pixel from a lower luma threshold to obtain a second value;

determine a maximum value from the first value and the second value; and

when the maximum value is less than zero, set the pixel as transparent.

15. One or more computer-readable media as recited in claim 14 , wherein:

when the maximum value is greater than or equal to zero, the luma value of the pixel remains unchanged; and

when the maximum value is less than zero, the pixel is set as transparent using the luma value of the pixel.

16. One or more computer-readable media as recited in claim 14 , wherein the client device is configured as a game console.

17. One or more computer-readable media as recited in claim 14 , wherein the graphic processing unit includes a pixel shader component to perform the processing operations.

18. One or more computer-readable media as recited in claim 14 , wherein:

the client device is configured as a game console;

the graphics processing unit includes a pixel shader to perform the processing operations;

the graphics processing unit is operated under influence of the rendering module of the game console; and

the rendering module is incorporated in a console application of the game console.

19. One or more computer-readable media as recited in claim 14 , wherein:

the graphics processing unit is operated to perform the processing operations under influence of the rendering module; and

the rendering module is a component of a media playback application of the client device configured to output high definition media content from a high definition media source.

20. One or more computer-readable media as recited in claim 14 , wherein:

the client device includes the rendering module as a component of an operating system of the client device; and

the rendering module is configured to perform the compositing and the instructing to output high definition media content from a high definition media source for display on a display device associated with the client device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2007
From: ESTROP, STEPHEN; HOWARD, MATTHEW C
To: MICROSOFT CORPORATION
Reel/Frame 020071/0650 →
Continuity (1)
Related Publication 20090115905A1 · May 7, 2009