Video game system using pre-encoded macro-blocks and a reference grid
First Claim
Patent Images
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.
5 Assignments
0 Petitions
Accused Products
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.
-
Citations
20 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 19)
-
-
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. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 20)
-
Specification