Variable rate rendering based on motion estimation
Abstract
A rendering processor assigns varying logical pixel dimensions to regions of an image frame and rendering pixels of the image frame based on the logical pixel dimensions. The rendering processor renders in highest resolution (i.e., with smaller logical pixel dimensions) those areas of the image that are more important (on which the viewer is expected to focus (the “foveal region”), or regions with little-to-no motion), and renders in lower resolution (i.e., with larger logical pixel dimensions) those areas of the image outside the region of interest, or regions that are speedily moving, so that loss of detail in those regions will be less noticeable to the viewer. For regions with less detail or greater magnitude of motion, larger logical pixel dimensions reduce the computational workload without affecting the quality of the displayed graphics as perceived by a user.
Claims
exact text as granted — not AI-modified1 - 20 . (canceled)
21 . A device, comprising:
a processor configured to:
render each tile of a plurality of tiles of a first frame at a resolution that is based on at least one of: a magnitude and direction of a motion vector for each tile, and a presence of an object or portion of an object within each tile.
22 . The device of claim 21 , further comprising:
a motion estimator engine configured to generate a motion vector field comprising a motion vector for each tile of the first frame, the motion vectors based on a comparison between corresponding tiles of a second frame immediately preceding the first frame in a sequence of rendered frames and a third frame immediately preceding the second frame in the sequence of rendered frames; and wherein the processor is to render each tile at a resolution based on at least in part on the magnitude and direction of the motion vector for each tile.
23 . The device of claim 22 , wherein the motion estimator engine is further to:
estimate magnitudes of differences in pixel values for each corresponding tile of the first, second, and third frames; and wherein the processor is configured to render each tile at a resolution that is based at least in part on the magnitudes of differences in pixel values.
24 . The device of claim 21 , wherein the processor is configured to render a group of pixels along a direction of motion with the same pixel value for a tile having a motion vector larger than a threshold value.
25 . The device of claim 21 , wherein the processor is configured to render less than one pixel along a direction of motion with the same pixel value for a tile having a motion vector smaller than a threshold value.
26 . The device of claim 21 , wherein the processor is configured to render each tile at a resolution that is based at least in part on a presence of skin color within each tile.
27 . The device of claim 21 , wherein the processor is configured to render each tile at a resolution that is based at least in part based on a frame rate requirement for an application executing at the processor.
28 . A processing system comprising:
a memory to store a sequence of rendered frames; a motion estimator engine configured to generate a motion vector field comprising a plurality of motion vectors for a first frame based on a comparison of the first frame with at least one frame of the sequence of rendered frames; and a processor configured to render each tile of a plurality of tiles of the first frame at a resolution that is based on at least one of: a magnitude and direction of a motion vector for each tile, and a presence of an object or portion of an object within each tile.
29 . The processing system of claim 28 , wherein:
the motion estimator engine is configured to generate a motion vector field comprising a motion vector for each tile of the first frame, the motion vectors based on a comparison between corresponding tiles of a second frame immediately preceding the first frame in a sequence of rendered frames and a third frame immediately preceding the second frame in the sequence of rendered frames; and wherein the processor is to render each tile at a resolution based on at least in part on the magnitude and direction of the motion vector for each tile.
30 . The processing system of claim 28 , wherein the processor is configured to render a group of pixels along a direction of motion with the same pixel value for a tile having a motion vector larger than a threshold value.
31 . The processing system of claim 28 , wherein the processor is configured to render less than one pixel along a direction of motion with the same pixel value for a tile having a motion vector smaller than a threshold value.
32 . The processing system of claim 28 , wherein the motion estimator engine is further to:
estimate magnitudes of differences in pixel values for each corresponding tile of the first, second, and third frames; and wherein the processor is configured to render each tile at a resolution that is based on the magnitudes of differences in pixel values.
33 . The processing system of claim 28 , wherein the processor is configured to render each tile at a resolution that is based at least in part on a presence of skin color within each tile.
34 . The processing system of claim 28 , wherein the processor is configured to render each tile at a resolution that is based at least in part based on a frame rate requirement for an application executing at a processing unit of the processing system.
35 . A method comprising:
estimating, at a motion estimator engine of a processing system, a motion vector for each of a plurality of tiles of a first frame; and rendering, at a processor of the processing system, pixels of each tile of the first frame at a resolution that is based at least in part on a magnitude and direction of the motion vector for each tile.
36 . The method of claim 35 , further comprising:
identifying, at the processor, objects in the first frame based on geometrical data provided by an application; and rendering each tile of the first frame at a resolution that is based at least in part on a presence of an object or portion of an object within the tile.
37 . The method of claim 35 , wherein rendering comprises rendering a group of pixels along a direction of motion with the same pixel value for a tile having a motion vector larger than a threshold value.
38 . The method of claim 35 , wherein rendering comprises rendering less than one pixel along a direction of motion with the same pixel value for a tile having a motion vector smaller than a threshold value.
39 . The method of claim 35 , further comprising:
estimating magnitudes of differences in pixel values for each corresponding tile of the first frame, a second frame and a third frame, the second frame immediately preceding the first frame in a sequence of rendered frames and the third frame immediately preceding the second frame in the sequence of rendered frames; and wherein rendering comprises rendering each tile at a resolution that is based at least in part on the magnitudes of differences in pixel values.
40 . The method of claim 35 , wherein rendering comprises rendering each tile at a resolution that is based at least in part on a presence of skin color within each tile.Join the waitlist — get patent alerts
Track US2023102620A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.