IP Library Granted Patent US 10,567,788
Granted Patent B2
US 10,567,788 · App. 15/958,499 · Granted Feb 18, 2020

Systems and methods for game-generated motion vectors

Inventor: Michael Kopietz (Frankfurt, DE)
Assignee: ZeniMax Media Inc.
H04N19/517G06T9/00G06T15/005H04N19/537H04N19/61H04N19/527H04N19/56
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,567,788
App. No.
15/958,499
Granted
Feb 18, 2020
Kind
B2
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.

Claims (31)

1. A computer-implemented method for generating graphics, comprising the steps of:

generating one or more per-pixel motion vectors computed based on known object-movement 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. The method of claim 1 , wherein the one or more per-pixel motion vectors are stored in a velocity buffer prior to conversion.

3. The method of claim 1 , wherein generation of the one or more per-pixel motion vectors comprises the steps of:

combining, at a compute shader, the one or more per-pixel motion vectors to a camera velocity to obtain a per-pixel result; and

storing the per-pixel result in a motion vector buffer.

4. The method of claim 1 , wherein a graphics engine injects the per-block motion vector data into the video encoding engine in real-time, concurrently with one or more chroma subsampled video frames.

5. The method of claim 1 , wherein the encoded video data is decoded for playback on a remote client computer system.

6. The method of claim 1 , wherein the video encoding engine performs motion compensation and residual transformation to convert the one or more per-block motion vectors into encoded video data.

7. The method of claim 1 , wherein the video encoded data is prepared for transmission to the remote client coding engine by applying one or more inverse quantization algorithms, inverse transform and scale, and/or deblocking.

8. The method of claim 1 , wherein the one or more per-pixel vectors are converted to one or more per-block motion vectors using a transformation method that applies an arithmetic mean.

9. The system of claim 8 , wherein the graphics engine injects the per-block motion vector data into the video codec engine in real-time, concurrently with one or more chroma subsampled video frames.

10. 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, wherein

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 (I-frame) generation is not altered.

11. The system of claim 10 , wherein the one or more per-pixel motion vectors are stored in a velocity buffer prior to conversion.

12. The system of claim 10 , wherein the one or more per-pixel motion vectors are generated by adding, at a compute shader, the one or more per-pixel motion vectors to a camera velocity to obtain a per-pixel result, and storing the per-pixel result in a motion vector buffer.

13. The system of claim 10 , wherein the video codec engine performs motion compensation and residual transformation to convert the one or more per-block motion vectors into encoded video data.

14. The system of claim 10 , wherein the video encoded data is prepared for transmission to the remote client coding engine by applying one or more inverse quantization algorithms, inverse transform and scale, and/or deblocking.

15. The system of claim 10 , wherein the encoded video data is configured to be decoded and played back on a display driven by a display controller.

16. The system of claim 10 , wherein the graphics engine converts the one or more per-pixel vectors to one or more per-block motion vectors using a transformation method that applies an arithmetic mean.

17. A computer-implemented method for generating graphics, comprising the steps of:

converting the one or more per-pixel motion vectors into one or more per-block motion vectors in a graphics engine wherein the per-block motion vector data is transmitted to a codec engine upon receipt; and

receiving one or more chroma subsampled video frames at a graphics engine, wherein the chroma subsampled video frames are transmitted to the codec engine upon receipt,

wherein the codec engine combines the per-block motion vector data and the chroma sub sampled video frames to encode video data for transmission to a remote client computer system, and wherein motion estimation calculations are disabled during encoding of the video data.

18. The method of claim 17 , wherein the combined per-block motion vector data and the chroma subsampled video frames form a residual image.

19. The method of claim 18 , wherein the residual image is further processed by residual transformation and scaling, quantization, and/or scanning prior to encoding.

20. The method of claim 18 , further comprising the steps of: calculating an inverse quantization, inverse transform and scale; and deblocking the residual image.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2018
From: KOPIETZ, MICHAEL
To: ZENIMAX MEDIA INC.
Reel/Frame 047359/0045 →
Continuity (3)
Provisional Application 62488526 · Apr 21, 2017
Provisional Application 62596325 · Dec 8, 2017
Related Publication 20180310016A1 · Oct 25, 2018