Systems and methods for game-generated motion vectors
AssigneeZeniMax Media Inc.
InventorMichael Kopietz
Life of this patent
Estimating the term…
Abstract
Systems and methods for integrated graphics rendering are disclosed. In certain embodiments, the systems and methods utilize a graphics engine, a video encoding engine, and remote client coding engine to render graphics over a network. The systems and methods involve the generation of per-pixel motion vectors, which are converted to per-block motion vectors at the graphics engine. The graphics engine injects these per-block motion vectors into a video encoding engine, such that the video encoding engine may convert those vectors into encoded video data for transmission to the remote client coding engine.
Claims20
A computer-implemented method for encoding video in a system comprising a graphics engine and a video encoder, the method comprising:
- receiving, at the video encoder, motion information from the graphics engine;
- receiving, at the video encoder, a video frame to be encoded;
- and
- with the video encoder, encoding the video frame, thereby producing encoded video data, wherein the encoding the video frame includes:
- responsive to the receiving the motion information from the graphics engine, skipping at least some operations of motion estimation by using the motion information from the graphics engine to determine one or more per-block motion vectors for one or more blocks of the video frame, thereby reducing encoding time for the one or more blocks of the video frame;
- using the one or more per-block motion vectors in motion compensation for the one or more blocks of the video frame;
- and
- outputting, in a bitstream, the encoded video data.
A graphics generation system comprising a graphics engine and a video encoder, wherein the video encoder is configured to perform operations comprising:
- receiving motion information from the graphics engine;
- receiving a video frame to be encoded;
- and
- encoding the video frame, thereby producing encoded video data, wherein the encoding the video frame includes:
- skipping at least some operations of motion estimation by using the motion information from the graphics engine to determine one or more per-block motion vectors for one or more blocks of the video frame, thereby reducing encoding time due to motion estimation for the one or more blocks of the video frame;
- using the one or more per-block motion vectors in motion compensation for the one or more blocks of the video frame;
- and
- outputting, in a bitstream, the encoded video data.
One or more non-transitory computer-readable media having stored thereon computer-executable instructions for causing a computer system, when programmed thereby, to perform operations, the computer system comprising a graphics engine and a video encoder, the operations comprising:
- with the graphics engine, generating per-pixel motion vectors;
- with the graphics engine, converting the per-pixel motion vectors into one or more per-block motion vectors;
- providing the one or more per-block motion vectors from the graphics engine to the video encoder for use in encoding a video frame, thereby producing encoded video data, wherein the encoding the video frame includes:
- responsive to receiving the one or more per-block motion vectors from the graphics engine, skipping at least some operations of motion estimation, thereby reducing encoding time for one or more blocks of the video frame;
- and
- using the one or more per-block motion vectors in motion compensation for the one or more blocks of the video frame.
Dependencies are inferred from the claim text.