Processing

Please wait...

Settings

Settings

1. WO2007008356 - VIDEO GAME SYSTEM USING PRE-ENCODED MACRO-BLOCKS

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

WHAT IS CLAIMED IS:

1. A method, comprising
receiving a request; and
generating a frame of video using a plurality of pre-encoded macro-blocks,
wherein the frame of video is compatible with an MPEG compression standard, and wherein the plurality of pre-encoded macro-blocks are pre-encoded prior to the request.
2. The method of claim 1 , wherein a respective pre-encoded macro-block corresponds to a set of pixels, pre-encoding of the respective pre-encoded macro-block includes performing discrete cosine transformation, quantization and run-length encoding operations, and the generating includes inter-relating adjacent pre-encoded macro-blocks in the frame of video.

3. The method of claim 2, wherein the pre-encoding includes calculating a motion vector and correction data.
4. The method of claim 2, wherein the inter-relating includes determining a first DC-coefficient value for a first block including luminance information, a second DC-coefficient value for a second block including chrominance information and a third DC-coefficient value for a third block including chrominance information.
5. The method of claim 1, wherein the plurality of pre-encoded macro-blocks are stored in a bank of individually addressable pre-encoded macro-blocks and a subset of the plurality of pre-encoded macro-blocks are shared between two or more video games.
6. The method of claim 1 , wherein the plurality of pre-encoded macro-blocks are stored in a bank of pre-encoded macro-blocks and a subset of the plurality of pre-encoded macro-blocks are shared between two or more frames of video.
7. The method of claim 1, wherein the plurality of pre-encoded macro-blocks are shared between two or more instances of a video game.
8. The method of claim 1, wherein the request initiates a video game.
9. The method of claim 1, wherein a subset of the stored plurality of pre-encoded macro-blocks include un-compressed pixel information.

10. The method of claim 9, further comprising dynamically generating a plurality of macro-blocks, wherein the dynamically generated plurality of macro-blocks include a combination of the subset of the stored plurality of pre-encoded macro-blocks that include un-compressed pixel information and image information corresponding to an object.
11. An apparatus for generating video, comprising:
a memory;
a processor; and
a program, wherein the program is stored in the memory and configured to be executed by the processor, the program including:
instructions for receiving a request; and
instructions for generating a frame of video using a plurality of pre-encoded macro-blocks,
wherein the frame of video is compatible with an MPEG compression standard, and wherein the plurality of pre-encoded macro-blocks are pre-encoded prior to the request.
12. A method, comprising:
receiving a request;
receiving a command; and
generating a frame of video using a plurality of pre-encoded macro-blocks pre-encoded prior to the request, a plurality of post-request-encoded macro-blocks encoded after the request and prior to the command, and a plurality of dynamically encoded macro-blocks encoded after the command.
13. An apparatus for generating video, comprising:
a memory;
a processor; and
a program, wherein the program is stored in the memory and configured to be executed by the processor, the program including:
instructions for receiving a request;
instructions for receiving a command; and
instructions for generating a frame of video using a plurality of pre-encoded macro-blocks pre-encoded prior to the request, a plurality of post-request-encoded macro- blocks encoded after the request and prior to the command, and a plurality of dynamically encoded macro-blocks encoded after the command.
14. A method, comprising:
receiving a request;
receiving a command; and
generating a frame of video using a plurality of pre-encoded macro-blocks pre-encoded prior to the request and a plurality of post-request-encoded macro-blocks encoded after the request and prior to the command.
15. An apparatus for generating video, comprising:
a memory;
a processor; and
a program, wherein the program is stored in the memory and configured to be executed by the processor, the program including:
instructions for receiving a request;
instructions for receiving a command; and
instructions for generating a frame of video using a plurality of pre-encoded macro-blocks pre-encoded prior to the request and a plurality of post-request-encoded macro-blocks encoded after the request and prior to the command.
16. A method, comprising:
generating a plurality of pre-encoded macro-blocks compatible with an MPEG compression standard; and
storing the plurality of pre-encoded macro-blocks in a bank of individually accessible pre-encoded macro-blocks, for use in generating multiple distinct frames of video.
17. The method of claim 16, further comprising generating a frame of video using a subset of the plurality of pre-encoded macro-blocks stored in the bank.
18. An apparatus, comprising:
a memory;
a processor; and
a program, wherein the program is stored in the memory and configured to be executed by the processor, the program including: instructions for generating a plurality of pre-encoded macro-blocks corresponding to a frame of video, wherein the frame of video is compatible with an MPEG compression standard; and
instructions for storing the plurality of pre-encoded macro-blocks in a bank of pre-encoded macro-blocks.
19. An apparatus, comprising:
a memory means;
a processor means; and
a program mechanism, wherein the program mechanism is stored in the memory means and configured to be executed by the processor means, the program mechanism including:
instructions for generating a plurality of pre-encoded macro-blocks corresponding to a frame of video, wherein the frame of video is compatible with an MPEG compression standard; and
instructions for storing the plurality of pre-encoded macro-blocks in a bank of pre-encoded macro-blocks.
20. A method, comprising:
receiving a request; and
generating a frame of video using a plurality of pre-encoded macro-blocks, including assigning the plurality of pre-encoded macro-blocks to respective positions in a grid,
wherein the frame of video is compatible with an MPEG compression standard, and wherein the plurality of pre-encoded macro-blocks are pre-encoded prior to the request.

21. The method of claim 20, wherein the grid comprises a 2-dimensional array, each position in the grid is assigned a corresponding macro-block when generating a frame of video, and wherein at least a plurality of positions in the grid are assigned to corresponding pre-encoded macro-blocks.
22. The method of claim 20, wherein the generating includes comparing a previous state of the grid with a current state of the grid and selectively including in a data stream corresponding to the frame of video intra macro-blocks and predictive macro-blocks in accordance with the comparing.

23. The method of claim 22, wherein a respective state of the grid is in accordance with a game state in a video game.
24. The method of claim 22, further including selectively including in a 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.
25. The method of claim 22, further including selectively including in a 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.
26. The method of claim 20, wherein a respective pre-encoded macro-block includes meta data, and wherein the meta data includes a quantization factor.
27. The method of claim 20, wherein a subset of the plurality of pre-encoded macro-blocks include un-compressed pixel information.
28. The method of claim 27, further comprising dynamically generating a plurality of macro-blocks, wherein the dynamically generated plurality of macro-blocks include a combination of the subset of the stored plurality of pre-encoded macro-blocks that include un-compressed pixel information and image information corresponding to an object.
29. The method of claim 28, wherein the combination includes blending at least a portion of the subset of the stored plurality of pre-encoded macro-blocks that includes un-compressed pixel information and the image information corresponding to the object.
30. The method of claim 28, 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 stored plurality of pre-encoded macro-blocks that include un-compressed pixel information.
31. The method of claim 20, wherein the request initiates a video game.
32. An apparatus, comprising:
a memory;
a processor; and
a program, wherein the program is stored in the memory and configured to be executed by the processor, the program including: instructions for receiving a request; and
instructions for generating a frame of video using a plurality of pre-encoded macro-blocks, including assigning the plurality of pre-encoded macro-blocks to respective positions in a grid,
wherein the frame of video is compatible with an MPEG compression standard, and wherein the plurality of pre-encoded macro-blocks are pre-encoded prior to the request.
33. A method, comprising:
receiving a request; and
transmitting a first plurality of macro-blocks,
wherein the first plurality of macro-blocks correspond to a first frame of video and constitute an I-frame and are compatible with an MPEG compression standard, and wherein at least a subset of the first plurality of macro-blocks are pre-encoded prior to the request.

34. The method of claim 33, further including transmitting a second plurality of macro-blocks corresponding to a second video frame, wherein ac coefficients in a subset of the second plurality of macro-blocks are substantially unchanged with respect to ac coefficients in a corresponding subset of the pre-encoded macro-blocks in the first plurality of macro-blocks.
35. The method of claim 33, further including transmitting a second plurality of macro-blocks corresponding to a second video frame, wherein quantization factors for a subset of the second plurality of macro-blocks are substantially unchanged with respect to quantization factors for a corresponding subset of the pre-encoded macro-blocks in the first plurality of macro-blocks.
36. The method of claim 33 , further comprising
receiving a command,
transmitting a second plurality of macro-blocks corresponding to a second video frame, the second plurality of macro-blocks including a plurality of dynamically encoded macro-blocks are encoded after the command, and a plurality of post-request-encoded macro-blocks encoded after the request and prior to the command.
37. The method of claim 33, wherein the request initiates a video game.

38. The method of claim 33 , further comprising repeatedly transmitting additional pluralities of macro-blocks, wherein each set of macro-blocks in the additional pluralities of macro-blocks correspond to updates to the frame of video and constitute a P-frame compatible with an MPEG compression standard, and wherein at least a subset of the macro-blocks in the additional pluralities of macro-blocks are pre-encoded prior to the request.

39. The method of claim 38, wherein subsets of macro-blocks in the additional pluralities of macro-blocks correspond to slices, and wherein at least a subset of the slices includes one or more skipped predictive macro-blocks corresponding to regions of the frame of video that remain substantially unchanged.
40. The method of claim 38, wherein subsets of macro-blocks in the additional pluralities of macro-blocks correspond to slices, and wherein at least a subset of the slices includes one or more empty predictive macro-blocks corresponding to regions of the frame of video that remain substantially unchanged.
41. The method of claim 38, further comprising transmitting, after a time interval, one or more intra-frame slices in a respective set of macro-blocks in the additional pluralities of macro-blocks, wherein a respective intra-frame slice includes a plurality of intra macro-blocks.
42. The method of claim 41 , wherein the transmitting of the one or more intra-frame slices occurs even if the frame of video remains substantially unchanged.
43. An apparatus, comprising:
a memory means;
a processor means; and
a program mechanism, wherein the program mechanism is stored in the memory means and configured to be executed by the processor means, the program mechanism including:
instructions for receiving a request; and
instructions for transmitting a first plurality of macro-blocks,
wherein the first plurality of macro-blocks correspond to a frame of video and constitute an I-frame and are compatible with an MPEG compression standard, and wherein at least a subset of the first plurality of macro-blocks are pre-encoded prior to the request.

44. A method, comprising: transmitting a request; and
receiving a first plurality of macro-blocks,
wherein the first plurality of macro-blocks correspond to a frame of video and constitute an I-frame and are compatible with an MPEG compression standard, and wherein at least a subset of the first plurality of macro-blocks are pre-encoded prior to the request.

45. An apparatus, comprising:
a memory means;
a processor means; and
a program mechanism, wherein the program mechanism is stored in the memory means and configured to be executed by the processor means, the program mechanism including:
instructions for transmitting a request; and
instructions for receiving a first plurality of macro-blocks,
wherein the first plurality of macro-blocks correspond to a frame of video and constitute an I-frame and are compatible with an MPEG compression standard, and wherein at least a subset of the first plurality of macro-blocks are pre-encoded prior to the request.