IP Library Granted Patent US 8,707,150
Granted Patent B2
US 8,707,150 · App. 12/339,068 · Granted Apr 22, 2014

Applying effects to a video in-place in a document

Inventors: Voicu Anton Albu (Redmond, WA); Robert Emmett Kolba, Jr. (Seattle, WA)
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,707,150
App. No.
12/339,068
Granted
Apr 22, 2014
Kind
B2
Abstract

An application program utilizes a decoding sub-system and a three-dimensional (3D) rendering sub-system to apply effects to a video in-place in a document. The program configures pixel shaders for use with a rendering device for applying pixel-level effects to the decoded frames of the video, generates meshes, and pre-renders textures for use in implementing effects. When a request is received to play back the video in-place in the document, a decoding surface and a rendering surface are allocated. The decoding sub-system decodes frames of the video and copies the decoded frames to the decoding surface on one thread. A separate thread copies decoded frames from the decoding surface to a texture and from the texture to the rendering surface. The rendering device utilizes the pixel shaders, meshes, pre-computed textures, and other data to render the frames of the video to a rendering target.

Claims (47)

1. A computer-implemented method for applying effects to a video in-place in a document on a computing system having a decoding sub-system and a three-dimensional (3D) rendering sub-system, the method comprising:

storing a document with a video embedded therein at the computing system, said document comprising non-video presentation objects and a plurality of slides that sequentially present the video and non-video presentation objects;

applying a theme to the document, the theme including a plurality of grouped properties that simultaneously each apply an effect configured to visually modify the video and non-video presentation objects in the document consistent with the theme;

receiving a request to play the video in-place in the document with an effect consistent with at least one property of the plurality of grouped properties of the theme applied to the video; and

in response to the request,

configuring the decoding sub-system to decode a frame of the video and to copy the decoded frame to a decoding surface on a first thread,

configuring the 3D rendering sub-system to render the decoded frame with the effects applied thereto,

copying the decoded frame from the decoding surface to a texture on a second thread,

copying the texture to a rendering surface, and

instructing the 3D rendering sub-system to render the texture to a 3D shape with the effect consistent with at least one property of the plurality of grouped properties of the theme applied thereto, and displaying the rendered frames of the video in-place in the document,

wherein the first thread is further configured to acquire the decoding surface prior to copying a decoded frame to the decoding surface and to release the decoding surface after the decoded frame has been copied to the decoding surface, and

wherein the second thread is further configured to acquire the decoding surface prior to copying a decoded frame from the decoding surface to a texture and to release the decoding surface after the decoded frame has been copied from the decoding surface to the texture.

2. A computer storage device having computer executable instructions stored thereon which, when executed by a computer, cause the computer to:

create and store a document with a video embedded therein, said document comprising non-video presentation objects and a plurality of slides that sequentially present the video and non-video presentation objects;

apply a theme to the document, the theme including a plurality of grouped properties that simultaneously each apply an effect configured to visually modify the video and non-video presentation objects in the document consistent with the theme;

receive a request to play the video in-place in the stored document with one or more effects consistent with at least one property of the plurality of grouped properties of the theme applied to the video; and

in response to the request, cause the computer to acquire a rendering device, to allocate a decoding surface and a rendering surface on the rendering device, and to release the rendering device, and

to cause a decoding sub-system to decode frames of the video to produce decoded frames, to cause a three-dimensional (3D) rendering sub-system to

copy the decoded frame from the decoding surface to a texture on a second thread,

copy the texture to the rendering surface, and

to render the texture to a 3D shape with the one or more effects consistent with at least one property of the plurality of grouped properties of the theme applied thereto, and

to display the rendered frames of the video in-place in the document,

wherein causing a decoding sub-system to decode frames of the video to produce decoded frames comprises configuring a decoding sub-system to decode a frame of the video and to copy the decoded frame to the decoding surface on a first thread, and

comprising further computer-executable instructions which, when executed by the computer, cause the second thread to acquire the rendering device prior to copying a decoded frame from the decoding surface to a texture and to release the rendering device after the decoded frame has been copied from the decoding surface to the texture.

3. The computer storage device of claim 2 , comprising further computer-executable instructions which, when executed by the computer, cause the first thread to acquire the rendering device prior to copying a decoded frame to the decoding surface and to release the rendering device after the decoded frame has been copied to the decoding surface.

4. The computer storage device of claim 3 , wherein the effects comprise one or more color effects.

5. The computer storage device of claim 4 , wherein configuring the 3D rendering sub-system to render the decoded frame with the effects applied thereto comprises creating one or more pixel shaders for implementing the color effects prior to receiving the request to play the video in-place in the document.

6. The computer storage device of claim 5 , wherein one or more animations are applied to the video while the frames of the video are being decoded and rendered.

7. The computer storage device of claim 6 , wherein the effects comprise one or more of a cropping effect, a reflection effect, or a border effect.

8. The computer storage device of claim 7 , wherein the document comprises a presentation document and wherein the effects are defined by one or more properties.

9. A computing system for rendering a video in-place in a document with effects applied to the video, the computing system comprising:

a decoding sub-system;

a three-dimensional rendering sub-system; and

a presentation application program executing on a processor in the computing system configured

to store a presentation document with the video embedded therein, said document comprising non-video presentation objects and a plurality of slides that sequentially present the video and non-video presentation objects,

to apply a theme to the document, the theme including a plurality of grouped properties that simultaneously each apply an effect configured to visually modify the video and non-video presentation objects in the document consistent with the theme,

to receive a request to play the video in-place in the document with the effects consistent with at least one property of the plurality of grouped properties of the theme applied to the video, and in response to receiving the request,

to configure a decoding sub-system to decode a frame of the video and to copy the decoded frame to a decoding surface on a first thread,

to configure a 3D rendering sub-system to render the decoded frame with the effects consistent with at least one property of the plurality of grouped properties of the theme applied thereto,

to copy the decoded frame from the decoding surface to a texture on a second thread,

to copy the texture to a rendering surface, and

to instruct the 3D rendering sub-system to render the texture to a 3D shape with the effects consistent with at least one property of the plurality of grouped properties of the theme applied thereto, and to display the rendered frames of the video in-place in the document,

wherein the first thread is further configured to acquire the decoding surface prior to copying the decoded frame to the decoding surface and to release the decoding surface after the decoded frame has been copied to the decoding surface, and

wherein the second thread is further configured to acquire the decoding surface prior to copying the decoded frame from the decoding surface to a texture and to release the decoding surface after the decoded frame has been copied from the decoding surface to the texture.

10. The system of claim 9 , wherein the presentation application is further configured to apply one or more animations to the video while the frames of the video are being decoded and rendered.

11. The system of claim 10 , wherein the effects comprise one or more of a color effect, a cropping effect, a reflection effect, or a border effect.

12. The system of claim 11 , wherein configuring the 3D rendering sub-system to render the decoded frame with the effects applied thereto comprises creating a pixel shader for implementing the color effect prior to receiving the request to play the video in-place in the document.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2009
From: ALBU, VOICU ANTON; KOLBA JR., ROBERT EMMETT
To: MICROSOFT CORPORATION
Reel/Frame 023093/0442 →
Continuity (1)
Related Publication 20100162092A1 · Jun 24, 2010