IP Library › Granted Patent US 11,381,835
Granted Patent B2
US 11,381,835 · App. 16/847,493 · Granted Jul 5, 2022

Systems 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 11,381,835
App. No.
16/847,493
Granted
Jul 5, 2022
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 (50)

1. A computer-implemented method for encoding video, the method comprising:

receiving, at a video encoder, one or more chroma subsampled video frames;

receiving, at the video encoder, motion vector data from a graphics engine;

with the video encoder, encoding the one or more chroma subsampled video frames, wherein the encoding includes:

based on the receiving of the motion vector data from the graphics engine, bypassing motion estimation for blocks of the one or more chroma subsampled video frames; and

using one or more per-block motion vectors, provided in the motion vector data from the graphics engine, in motion compensation for the blocks of the one or more chroma subsampled video frames; and

outputting, in a bitstream, encoded video data for the one or more chroma subsampled video frames, the encoded video data including the one or more per-block motion vectors.

2. The method of claim 1 , wherein the encoding further comprises:

combining results of the motion compensation, performed using the one or more per-block motion vectors, and the blocks of the one or more chroma subsampled video frames to form blocks of one or more residual images; and

encoding the blocks of the one or more residual images.

3. The method of claim 1 , wherein the one or more per-block motion vectors are converted to an appropriate macroblock size.

4. The method of claim 1 , further comprising:

with the graphics engine, converting per-pixel motion vectors to the one or more per-block motion vectors using object-movement data.

5. The method of claim 1 , wherein the encoded video data is compatible with H.264/MPEG-4 AVC standard.

6. The method of claim 1 , further comprising:

with the graphics engine, performing vector median filtering techniques on per-pixel motion vectors to generate the one or more per-block motion vectors.

7. The method of claim 1 , wherein the one or more per-block motion vectors are based on per-pixel motion vectors that are stored at a velocity buffer.

8. The method of claim 1 , further comprising:

transmitting the encoded video data to a remote gaming client for decoding.

9. A system for encoding video, the system being implemented using one or more processing units and memory, the system comprising:

a video encoder, wherein the video encoder is configured to perform operations comprising:

receiving one or more chroma subsampled video frames;

receiving motion vector data from a graphics engine;

encoding the one or more chroma subsampled video frames, wherein the encoding includes:

based on the receiving of the motion vector data from the graphics engine, bypassing motion estimation for blocks of the one or more chroma subsampled video frames; and

using one or more per-block motion vectors, provided in the motion vector data from the graphics engine, in motion compensation for the blocks of the one or more chroma subsampled video frames; and

outputting, in a bitstream, encoded video data for the one or more chroma subsampled video frames, the encoded video data including the one or more per-block motion vectors.

10. The system of claim 9 , wherein the encoding further comprises:

combining results of the motion compensation, performed using the one or more per-block motion vectors, and the blocks of the one or more chroma subsampled video frames to form blocks of one or more residual images; and

encoding the blocks of the one or more residual image.

11. The system of claim 9 , wherein the one or more per-block motion vectors are converted to an appropriate macroblock size.

12. The system of claim 9 , wherein the system further comprises the graphics engine, the graphics engine being configured to convert per-pixel motion vectors to the one or more per-block motion vectors using object-movement data.

13. The system of claim 9 , wherein the encoded video data is compatible with H.264/MPEG-4 AVC standard.

14. The system of claim 9 , wherein the system further comprises the graphics engine, the graphics engine being configured to perform vector median filtering techniques on per-pixel motion vectors to generate the one or more per-block motion vectors.

15. The system of claim 9 , wherein the one or more per-block motion vectors are based on per-pixel motion vectors that are stored at a velocity buffer.

16. The system of claim 9 , wherein the operations further comprise transmitting the encoded video data to a remote gaming client for decoding.

17. A computer system comprising:

a graphics engine, implemented at least in part using a graphics processing unit (“GPU”), configured to produce motion vector data; and

a video encoder, implemented at least in part using a central processing unit (“CPU”), configured to perform operations comprising:

receiving one or more chroma subsampled video frames;

receiving motion vector data from the graphics engine;

encoding the one or more chroma subsampled video frames, wherein the encoding includes:

based on the receiving of the motion vector data from the graphics engine, bypassing motion estimation for blocks of the one or more chroma subsampled video frames;

using one or more per-block motion vectors, provided in the motion vector data from the graphics engine, in motion compensation for the blocks of the one or more chroma subsampled video frames; and

outputting, in a bitstream, encoded video data for the one or more chroma subsampled video frames, the encoded video data including the one or more per-block motion vectors.

18. The computer system of claim 17 , wherein the encoding further comprises:

combining results of the motion compensation, performed using the one or more per-block motion vectors, and the blocks of the one or more chroma subsampled video frames to form blocks of one or more residual images; and

encoding the blocks of the one or more residual images.

19. The computer system of claim 17 , wherein the graphics engine is further configured to convert per-pixel motion vectors to the one or more per-block motion vectors using object-movement data.

20. The computer system of claim 17 , wherein the graphics engine is further configured to perform vector median filtering techniques on per-pixel motion vectors to generate the one or more per-block motion vectors.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2020
From: KOPIETZ, MICHAEL
To: ZENIMAX MEDIA INC.
Reel/Frame 052394/0972 →
Continuity (5)
Continuation 16290468 · Mar 1, 2019
Division 15958499 · Apr 20, 2018
Provisional Application 62596325 · Dec 8, 2017
Provisional Application 62488526 · Apr 21, 2017
Related Publication 20200404317A1 · Dec 24, 2020