IP Library Granted Patent US 8,284,842
Granted Patent B2
US 8,284,842 · App. 11/178,183 · Granted Oct 9, 2012

Video game system using pre-encoded macro-blocks and a reference grid

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,284,842
App. No.
11/178,183
Granted
Oct 9, 2012
Kind
B2
Abstract

A method and related system of generating a frame of video is disclosed. In the method, a request is received and a frame of video is generated using a plurality of pre-encoded macro-blocks. Generating the frame of video includes assigning the plurality of pre-encoded macro-blocks to respective positions in a grid. The frame of video may be compatible with an MPEG compression standard. The plurality of pre-encoded macro-blocks are pre-encoded prior to the request.

Claims (43)

1. A method, comprising:

at a video game system comprising one or more video game servers:

storing pre-encoded macro-blocks in a bank of individually addressable pre-encoded macro-blocks; and

for each of two or more video games:

receiving a request to initiate the video game;

receiving a command corresponding to a user action in the video game;

in response to the command, generating a frame of video using a plurality of the pre-encoded macro-blocks, the generating comprising:

dynamically generating a macro-block in accordance with the user action, or a prior user action, in the video game;

storing respective pointers to respective entries in a grid distinct from the bank, the respective pointers referencing the dynamically-generated macro-block and respective pre-encoded macro-blocks in the bank, the respective entries corresponding to respective locations in the frame of video, wherein the grid comprises a 2-dimensional array of entries having multiple rows of entries, each row of entries in the grid corresponds to a slice of the frame of video, and each entry in the grid stores a pointer to a-corresponding macro-block of the frame of video;

comparing a previous state of the grid with a current state of the grid and selectively including in the data stream corresponding to the frame of video intra macro-blocks and predictive macro-blocks in accordance with the comparing; and

transmitting a data stream corresponding to the frame of video to a user device for display;

wherein the frame of video is compatible with an MPEG compression standard, the pre-encoded macro-blocks are pre-encoded and stored in the bank prior to receiving the requests to initiate the two or more video games, and respective pre-encoded macro-blocks in the bank are shared between the two or more video games.

2. The method of claim 1 , wherein a respective state of the grid is in accordance with a game state in the video game.

3. The method of claim 1 , further including selectively including in the data stream corresponding to the frame of video one or more skipped predictive macro-blocks corresponding to regions of the frame of video that are substantially unchanged with respect to a previous frame of video.

4. The method of claim 1 , further including selectively including in the data stream corresponding to the frame of video one or more empty predictive macro-blocks corresponding to regions of the frame of video that are substantially unchanged with respect to a previous frame of video.

5. The method of claim 1 , wherein a respective pre-encoded macro-block includes meta data, and wherein the meta data includes a quantization factor.

6. The method of claim 1 , wherein a subset of the plurality of the pre-encoded macro-blocks include un-compressed pixel information.

7. The method of claim 1 , further comprising dynamically generating a plurality of macro-blocks, wherein the plurality of dynamically-generated macro-blocks include a combination of the subset of the plurality of the pre-encoded macro-blocks that include un-compressed pixel information and image information corresponding to an object.

8. The method of claim 7 , wherein the combination includes blending at least a portion of the subset of the plurality of the pre-encoded macro-blocks that includes un-compressed pixel information and the image information corresponding to the object.

9. The method of claim 7 , wherein the combination includes superposition of the image information corresponding to the object on a region of the frame of video corresponding to at least a portion of the subset of the plurality of the pre-encoded macro-blocks that include un-compressed pixel information.

10. An apparatus, comprising:

at least one processor; and

a memory storing one or more programs configured to be executed by the at least one processor, the one or more programs comprising:

instructions for storing pre-encoded macro-blocks in a bank of individually addressable pre-encoded macro-blocks; and

for each of two or more video games:

instructions for receiving a request to initiate the video game;

instructions for receiving a command corresponding to a user action in the video game;

instructions for generating, in response to the command, a frame of video using a plurality of pre-encoded macro-blocks, the generating comprising:

dynamically generating a macro-block in accordance with the user action, or a prior user action, in the video game;

storing respective pointers to respective entries in a grid distinct from the bank, the respective pointers referencing the dynamically-generated macro-block and respective pre-encoded macro-blocks in the bank, the respective entries corresponding to respective locations in the frame of video, wherein the grid comprises a 2-dimensional array of entries having multiple rows of entries, each row of entries in the grid corresponds to a slice of the frame of video, and each entry in the grid stores a pointer to a corresponding macro-block of the frame of video; and

comparing a previous state of the grid with a current state of the grid and selectively including in the data stream corresponding to the frame of video intra macro-blocks and predictive macro-blocks in accordance with the comparing; and

instructions for transmitting the frame of video to a user device for display;

wherein the frame of video is compatible with an MPEG compression standard, the pre-encoded macro-blocks are re-encoded and stored in the bank nor to receiving the requests to initiate the two or more video games, and respective pre-encoded macro-blocks in the bank are shared between the two or more video games.

11. The apparatus of claim 10 , wherein a respective state of the grid is in accordance with a game state in the video game.

12. The apparatus of claim 10 , the one or more programs further include instructions for selectively including in the data stream corresponding to the frame of video one or more skipped predictive macro-blocks corresponding to regions of the frame of video that are substantially unchanged with respect to a previous frame of video.

13. The apparatus of claim 10 , the one or more programs further include instructions for selectively including in the data stream corresponding to the frame of video one or more empty predictive macro-blocks corresponding to regions of the frame of video that are substantially unchanged with respect to a previous frame of video.

14. The apparatus of claim 10 , wherein a respective pre-encoded macro-block includes meta data, and wherein the meta data includes a quantization factor.

15. The apparatus of claim 10 , wherein a subset of the plurality of the pre-encoded macro-blocks include un-compressed pixel information.

16. The apparatus of claim 10 , the one or more programs further include instructions for dynamically generating a plurality of macro-blocks, wherein the plurality of dynamically-generated macro-blocks include a combination of the subset of the plurality of the pre-encoded macro-blocks that include un-compressed pixel information and image information corresponding to an object.

17. The apparatus of claim 16 , wherein the instructions for dynamically generating a plurality of macro-blocks include instructions for blending at least a portion of the subset of the plurality of the pre-encoded macro-blocks that includes un-compressed pixel information and the image information corresponding to the object.

18. The apparatus of claim 16 , wherein the combination includes superposition of the image information corresponding to the object on a region of the frame of video corresponding to at least a portion of the subset of the plurality of the pre-encoded macro-blocks that include un-compressed pixel information.

19. The method of claim 7 , wherein generating the frame of video further comprises storing, in at least a plurality of entries in the grid for a respective video game of the two or more video games, pointers referencing the plurality of dynamically-generated macro-blocks, generated after initiation of the respective video game.

20. The apparatus of claim 16 , wherein the instructions for generating the frame of video further comprise instructions for storing, in at least a plurality of entries in the grid for a respective video game of the two or more video games, pointers referencing a plurality of dynamically-generated macro-blocks, generated after initiation of the respective video game.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Mar 11, 2015
From: VENTURE LENDING & LEASING IV, LLC
To: ACTIVEVIDEO NETWORKS, INC.
Reel/Frame 035139/0986 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2011
From: TAG NETWORKS, INC.
To: ACTIVEVIDEO NETWORKS, INC.
Reel/Frame 027457/0683 →
SECURITY AGREEMENT Recorded Apr 24, 2007
From: TV HEAD, INC.
To: VENTURE LENDING & LEASING IV, INC.
Reel/Frame 019227/0368 →
CHANGE OF NAME Recorded Mar 26, 2007
From: TVHEAD, INC.
To: TAG NETWORKS, INC.
Reel/Frame 019066/0636 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2005
From: CRAIG, ROBERT; MERCER, CLIFFORD WAYNE; SIGMUND, ULRICH
To: TVHEAD, INC.
Reel/Frame 016595/0986 →