Video game system using pre-encoded macro-blocks and a reference grid
AssigneeActivevideo Networks, Inc.
InventorsRobert Craig, Clifford Wayne Mercer, Ulrich Sigmund
Life of this patent
Estimating the term…
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.
Claims24
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 macro-blocks in accordance with the user action, or a prior user action, in the video game;
- and
- storing respective pointers to respective entries in a grid distinct from the bank, the respective pointers referencing the dynamically-generated macro-blocks 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, a respective row of entries in the grid corresponding to a slice of the frame of video;
- 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.
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 macro-blocks in accordance with the user action, or a prior user action, in the video game, and storing respective pointers to respective entries in a grid distinct from the bank, the respective pointers referencing the dynamically-generated macro-blocks 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, a respective row of entries in the grid corresponding to a slice of the frame of video;
- 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 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.
A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer, the one or more programs comprising instructions to:
- store pre-encoded macro-blocks in a bank of individually addressable pre-encoded macro-blocks;
- and
- for each of two or more video games:
- receive a request to initiate the video game;
- receive a command corresponding to a user action in the video game;
- generate, in response to the command, a frame of video using a plurality of pre-encoded macro-blocks, wherein generating the frame of video comprises dynamically generating macro-blocks in accordance with the user action, or a prior user action, in the video game, and assigning respective pointers to respective entries in a grid distinct from the bank, the respective pointers referencing the dynamically-generated macro-blocks 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 corresponding to a slice of the frame of video;
- and
- transmit 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.
Dependencies are inferred from the claim text.