Three-dimensional motion mapping for cloud gaming
First Claim
1. A method for three-dimensional motion mapping in video encoding, comprising:
- a) performing a reverse three-dimensional transform for a set of anchor pixels in a current frame of video, thereby producing a set of reverse transformed anchor pixels by mapping two-dimensional coordinates associated with a pixel in the current frame to three-dimensional object coordinates, transforming the three-dimensional object coordinates into three-dimensional object coordinates associated with a corresponding pixel in a previous frame, and mapping the three-dimensional object coordinates associated with the corresponding pixel in the previous frame to two-dimensional coordinates associated with the corresponding pixel in a previous frame;
b) for each reverse transformed anchor pixel, indicating whether the reverse transformed anchor pixel is occluded or visible, whereby the reverse transformed anchor pixel is indicated as occluded if an estimated depth for a corresponding pixel in a previous frame is greater than a real depth for the corresponding pixel in the previous frame, and whereby the reverse transformed anchor pixel is indicated as not occluded and therefore visible if the estimated depth for the corresponding pixel in the previous frame is not greater than a real depth for the corresponding pixel in the previous frame;
c) constructing a motion vector map for at least a subset of the set of reverse transformed anchor pixels;
d) deriving a best target motion vector for each section in a first set of sections in the current frame using the motion vector map or performing motion estimation for each section in a second set of sections in the current frame using the motion vector map, wherein the sections in the second set include occluded pixels;
e) deriving target motion vectors for one or more groups of two or more sections of the current frame, each group comprising two or more adjoining sections each with best target motion vectors; and
f) encoding the current frame using the target motion vectors, the best target motion vector for each section, or motion estimation results.
2 Assignments
0 Petitions
Accused Products
Abstract
Three-dimensional motion mapping is disclosed. A reverse three-dimensional transform for a set of anchor pixels in the current frame is performed using a model-view matrix, a projection matrix, and view parameters associated with the computer game. Reverse transformed anchor pixels are indicated as occluded if the estimated depth for the pixel in the previous frame is greater than a real depth for the pixel in the previous frame or otherwise indicated as visible. A motion vector map for a subset of the reverse transformed pixels is constructed. A best target motion vector for a first set of sections in the current frame is derived or motion estimation is performed for sections in a second set that contain occluded pixels. Target motion vectors for groups of two or more sections of the current frame comprising two or more adjoining sections each with best target motion vectors are derived.
22 Citations
17 Claims
-
1. A method for three-dimensional motion mapping in video encoding, comprising:
-
a) performing a reverse three-dimensional transform for a set of anchor pixels in a current frame of video, thereby producing a set of reverse transformed anchor pixels by mapping two-dimensional coordinates associated with a pixel in the current frame to three-dimensional object coordinates, transforming the three-dimensional object coordinates into three-dimensional object coordinates associated with a corresponding pixel in a previous frame, and mapping the three-dimensional object coordinates associated with the corresponding pixel in the previous frame to two-dimensional coordinates associated with the corresponding pixel in a previous frame; b) for each reverse transformed anchor pixel, indicating whether the reverse transformed anchor pixel is occluded or visible, whereby the reverse transformed anchor pixel is indicated as occluded if an estimated depth for a corresponding pixel in a previous frame is greater than a real depth for the corresponding pixel in the previous frame, and whereby the reverse transformed anchor pixel is indicated as not occluded and therefore visible if the estimated depth for the corresponding pixel in the previous frame is not greater than a real depth for the corresponding pixel in the previous frame; c) constructing a motion vector map for at least a subset of the set of reverse transformed anchor pixels; d) deriving a best target motion vector for each section in a first set of sections in the current frame using the motion vector map or performing motion estimation for each section in a second set of sections in the current frame using the motion vector map, wherein the sections in the second set include occluded pixels; e) deriving target motion vectors for one or more groups of two or more sections of the current frame, each group comprising two or more adjoining sections each with best target motion vectors; and f) encoding the current frame using the target motion vectors, the best target motion vector for each section, or motion estimation results. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for implementing three-dimensional motion mapping, comprising:
-
a processor; a memory; and computer-coded instructions embodied in the memory and executable by the processor, wherein the computer coded instructions are configured to implement a method for three-dimensional motion mapping of a current frame of a video game, the method comprising; a) performing a reverse three-dimensional transform for a set of anchor pixels in a current frame of video, thereby producing a set of transformed anchor pixels by mapping two-dimensional coordinates associated with a pixel in the current frame to three-dimensional object coordinates, transforming the three-dimensional object coordinates into three-dimensional object coordinates associated with a corresponding pixel in a previous frame, and mapping the three-dimensional object coordinates associated with the corresponding pixel in the previous frame to two-dimensional coordinates associated with the corresponding pixel in a previous frame; b) for each reverse transformed anchor pixel, indicating whether the reverse transformed anchor pixel is occluded or visible, whereby the reverse transformed anchor pixel is indicated as occluded if an estimated depth for a corresponding pixel in a previous frame is greater than a real depth for the corresponding pixel in the previous frame, and whereby the reverse transformed anchor pixel is indicated as not occluded and therefore visible if the estimated depth for the corresponding pixel in the previous frame is not greater than a real depth for the corresponding pixel in the previous frame; c) constructing a motion vector map for at least a subset of the set of reverse transformed anchor pixels; d) deriving a best target motion vector for each section in a first set of sections in the current frame using the motion vector map or performing motion estimation for each section in a second set of sections in the current frame using the motion vector map, wherein the sections in the second set include occluded pixels; e) deriving target motion vectors for one or more groups of two or more sections of the current frame, each group comprising two or more adjoining sections each with best target motion vectors; and f) encoding the current frame using the target motion vectors, the best target motion vector for each section, or motion estimation results. - View Dependent Claims (15)
-
-
16. A computer program product comprising:
-
a non-transitory, computer-readable storage medium having computer readable program code embodied in said medium for implementing a method for three-dimensional motion mapping of a current video frame in a computer game, the method comprising; a) performing a reverse three-dimensional transform for a set of anchor pixels in a current frame of video, thereby producing a set of transformed anchor pixels by mapping two-dimensional coordinates associated with a pixel in the current frame to three-dimensional object coordinates, transforming the three-dimensional object coordinates into three-dimensional object coordinates associated with a corresponding pixel in a previous frame, and mapping the three-dimensional object coordinates associated with the corresponding pixel in the previous frame to two-dimensional coordinates associated with the corresponding pixel in a previous frame; b) for each reverse transformed anchor pixel, indicating whether the reverse transformed anchor pixel is occluded or visible, whereby the reverse transformed anchor pixel is indicated as occluded if an estimated depth for a corresponding pixel in a previous frame is greater than a real depth for the corresponding pixel in the previous frame, and whereby the reverse transformed anchor pixel is indicated as not occluded and therefore visible if the estimated depth for the corresponding pixel in the previous frame is not greater than a real depth for the corresponding pixel in the previous frame; c) constructing a motion vector map for at least a subset of the set of reverse transformed anchor pixels; d) deriving a best target motion vector for each section in a first set of sections in the current frame using the motion vector map or performing motion estimation for each section in a second set of sections in the current frame using the motion vector map, wherein the sections in the second set include occluded pixels; e) deriving target motion vectors for one or more groups of two or more sections of the current frame, each group comprising two or more adjoining sections each with best target motion vectors; and f) encoding the current frame using the target motion vectors, the best target motion vector for each section, or motion estimation results. - View Dependent Claims (17)
-
Specification