CA3059740C

Systems and methods for game-generated motion vectors

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.

CA3059740C, drawing sheet 1
Sheet 1 of 4

Term

11.6 yearsleft in the term

Expires 20 April 2038.

  1. Priority and filed
  2. Granted
  3. Today
  4. Expires

52 claims: 6 independent, 46 dependent

  1. 1
    88301872 CLAIMS:1. A computer-implemented method for generating graphics, comprising the steps of: generating one or more per-pixel motion vectors computed based on known objectmovement data, wherein the per-pixel motion vectors are pixel-perfect;converting the one or more per-pixel motion vectors into one or more per-block motion vectors in a graphics engine;and injecting the per-block motion vectors into a video encoding engine, wherein the video encoding engine converts the one or more per-block motion vectors into encoded video data for transmission to a remote client coding engine, and wherein block-based motion compensation is skipped and intra frame (I-frame) generation is not altered.
  2. 9
    A computer-implemented graphics generation system comprised of one or more graphics engines and a video codec engine, wherein the graphics engine generates one or more per-pixel motion vectors computed based on known object-movement data, wherein the per-pixel motion vectors are pixel-perfect, converts said per-pixel motion vectors into one or more per-block motion vectors, and directly injects said per-block motion vectors into the video codec engine;and the video codec engine converts the per-block motion vectors into encoded video data and transmits the encoded video data to a remote client coding engine running on a remote client computer system, wherein block-based motion compensation is skipped and intra frame (Iframe) generation is not altered.
  3. 17
    A computer-implemented method for generating graphics, comprising the steps of:generating one or more per-pixel motion vectors;converting the one or more per-pixel motion vectors into one or more per-block motion vectors in a graphics engine;and injecting the per-block motion vectors into a video encoding engine, wherein the video encoding engine converts the one or more per-block motion vectors into encoded video data for transmission to a remote client coding engine, and wherein block-based motion compensation is skipped.
  4. 25
    A computer-implemented graphics generation system comprised of one or more graphics engines and a video codec engine, wherein the graphics engine generates one or more per-pixel motion vectors, converts said per-pixel motion vectors into one or more per-block motion vectors, and directly injects said per-block motion vectors into the video codec engine;and the video codec engine converts the per-block motion vectors into encoded video data and transmits the encoded video data to a remote client coding engine running on a remote client computer system, and wherein block-based motion compensation is skipped.
  5. 33
    A computer-implemented method for generating graphics, comprising:converting one or more motion vectors into one or more per-block motion vectors;transmitting the per-block motion vectors to an encoder, wherein motion compensation is disabled;and converting the one or more per-block motion vectors into encoded video data.
  6. 43
    A graphics generation system wherein:a graphics engine converts one or more motion vectors into one or more per-block motion vectors;the graphics engine injects the one or more per-block motion vectors into an encoder, wherein motion compensation is disabled;and wherein the encoder converts the one or more per-block motion vectors into encoded video data.