IP Library › Granted Patent US 10,701,388
Granted Patent B2
US 10,701,388 · App. 16/290,468 · Granted Jun 30, 2020

System and methods for game-generated motion vectors

Inventor: Michael Kopietz (Frankfurt, DE)
Assignee: ZENIMAX MEDIA INC.
H04N19/517E05B77/54E05B79/20E05B83/24E05B85/243E05B85/26G06T9/00G06T15/005H04N19/537H04N19/61E05B81/16F16H59/10F16H63/36H04N19/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,701,388
App. No.
16/290,468
Granted
Jun 30, 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 (24)

1. 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 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, 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, and 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2019
From: KOPIETZ, MICHAEL
To: ZENIMAX MEDIA INC.
Reel/Frame 048504/0893 →
Continuity (4)
Division 15958499 · Apr 20, 2018
Provisional Application 62488526 · Apr 21, 2017
Provisional Application 62596325 · Dec 8, 2017
Related Publication 20190230375A1 · Jul 25, 2019