IP Library Granted Patent US 12,450,753
Granted Patent B2
US 12,450,753 · App. 17/652,272 · Granted Oct 21, 2025

Methods and systems for dual channel transfer of game

Inventors: Miao Sima (Shanghai, CN); Chaohui Lin (Shanghai, CN); Baochen Liu (Shanghai, CN); Zongming Han (Shanghai, CN); Gongxian Liu (Shanghai, CN); Yu Zhao (Shanghai, CN)
Assignee: PIXELWORKS SEMICONDUCTOR TECHNOLOGY (SHANGHAI) CO. LTD.
G06T7/223G06T3/10H04N19/176H04N19/517
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 12,450,753
App. No.
17/652,272
Granted
Oct 21, 2025
Kind
B2
Abstract

Various methods are provided for generating motion vectors in the context of 3D computer-generated images. An example method includes generating, based on a current frame to be rendered, a block-level motion vector with depth (MVD) texture comprising a set of block-level motion vectors each having an associated depth value, outputting the block-level MVD texture for image processing on a first channel, and outputting at least a portion of the current frame on a second channel.

Claims (37)

1. A method, comprising:

generating, based on a current frame to be rendered, a block-level motion vector with depth (MVD) texture that comprises a set of block-level motion vectors each having an associated depth value; and

outputting the block-level MVD texture for image processing on a first channel and outputting at least a portion of the current frame on a second channel, wherein the set of block-level motion vectors includes a first set of block-level 0-phase motion vectors with depth (MVD0s) and a second set of block-level 1-phase motion vectors with depth (MVD1s), each block-level MVD0 and MVD1 having an associated depth value, wherein each block-level MVD1 is generated from a respective group of pixel-level MVD1s, each pixel-level MVD1 representing a change in a position of an object at that pixel from the current frame to a previous frame, and wherein each block-level MVD0 is generated from a respective group of pixel-level MVD0s, each pixel-level MVD0 representing a change in a position of the object at that pixel from the previous frame to the current frame.

2. The method of claim 1 , wherein generating each block-level MVD1 comprises:

identifying, for each pixel block in a plurality of pixel blocks, a distribution of pixel types in that pixel block; and

converting each pixel block to a respective MVD1 block based on the distribution of pixel types.

3. The method of claim 2 , wherein converting each pixel block to a respective MVD1 block based on the distribution of pixel types comprises:

determining that a first selected pixel block has a non-bimodal distribution such that only or predominantly mid-range pixels are present, and in response, calculating an average MVD1 over only mid-range pixels in the first selected pixel block;

determining that a second selected pixel block has a bimodal distribution such that the second selected pixel block includes at least one foreground pixel and at least one background pixel, and in response, calculating an average MVD1 over only foreground pixels in the second selected pixel block; and

setting each average MVD1 as an MVD1 value for the respective MVD1 block.

4. The method of claim 1 , wherein generating each block-level MVD0 comprises:

identifying, for each pixel block in a plurality of pixel blocks, a distribution of pixel types in that pixel block; and

converting each pixel block to a respective MVD0 block based on the distribution of pixel types.

5. The method of claim 4 , wherein converting each pixel block to a respective MVD0 block based on the distribution of pixel types comprises:

determining that a first selected pixel block has a non-bimodal distribution such that only or predominantly mid-range pixels are present, and in response, calculating an average MVD0 over only mid-range pixels in the first selected pixel block;

determining that a second selected pixel block has a bimodal distribution such that the second selected pixel block includes at least one foreground pixel and at least one background pixel, and in response, calculating an average MVD0 over only foreground pixels in the second selected pixel block; and

setting each average MVD0 as an MVD0 value for the respective MVD0 block.

6. The method of claim 1 , wherein the current frame includes objects with motion vectors and objects without motion vectors, and wherein generating the block-level MVD texture comprises generating the block-level MVD texture based only information relating to the objects with motion vectors.

7. The method of claim 6 , wherein outputting the block-level MVD texture for image processing on the first channel and outputting at least the portion of the current frame on the second channel comprises outputting the block-level MVD texture, the objects with motion vectors, and the objects without motion vectors across two or more physically and/or logically separated channels.

8. The method of claim 7 , wherein objects without motion vectors comprise particle effects and static user interface elements, wherein outputting the block-level MVD texture, the objects with motion vectors, and the objects without motion vectors across two or more physically and/or logically separated channels comprises outputting the block-level MVD texture and the objects with motion vectors on the first channel and outputting the objects without motion vectors on the second channel, and wherein the block-level MVD texture is not output on the second channel.

9. The method of claim 1 , wherein the current frame includes objects with motion vectors and objects without motion vectors, and wherein generating the block-level MVD texture comprises generating a masked block-level MVD texture, the masked block-level MVD texture generated by masking MVDs associated with objects without motion vectors.

10. The method of claim 9 , wherein outputting the block-level MVD texture for image processing on the first channel and outputting at least the portion of the current frame on the second channel comprises outputting the block-level MVD and a duplicate of the current frame on the first channel and outputting the current frame on the second channel.

11. A method for sending motion vectors (MVs) to be used in frame rate conversion, comprising:

receiving, from a game engine configured to output a current frame of a video game to be rendered on a display device, a pixel-level 1-phase motion vector (MV1) texture comprising, for each pixel, a change in a position of an object at that pixel from the current frame to a previous frame, a pixel-level 0-phase motion vector (MV0) texture comprising, for each pixel, a change in a position of the object at that pixel from the previous frame to the current frame, and a depth texture of one or more objects of the current frame;

generating, based on the pixel-level MV1 texture, the pixel-level MV0 texture, and the depth texture, a block-level motion vector with depth (MVD) texture comprising a set of block-level motion vectors each having an associated depth value; and

outputting the block-level MVD texture, the one or more objects of the current frame, and additional objects not having motion vectors of the current frame for image processing across two or more physically and/or logically separated channels, including outputting the block-level MVD texture along with the one or more objects of the current frame on a first channel and outputting the additional objects on a second channel.

12. The method of claim 11 , wherein the additional objects not having motion vectors include particle effects and static user interface elements.

13. The method of claim 11 , wherein an operating system graphical user interface is blended with the additional objects on the second channel.

14. The method of claim 11 , wherein the block-level MVD texture and the one or more objects of the current frame are usable to interpolate a frame between the current frame and the previous frame generated by the game engine.

15. The method of claim 14 , wherein the additional objects not having motion vectors are blended with the interpolated frame.

16. A system for motion vectors (MVs) to be used in frame rate conversion, comprising:

one or more processors; and

memory storing instructions executable by the one or more processors to:

receive, from a game engine configured to output a current frame of a video game to be rendered on a display device, a pixel-level 1-phase motion vector (MV1) texture comprising, for each pixel, a change in a position of an object at that pixel from the current frame to a previous frame, a pixel-level 0-phase motion vector (MV0) texture comprising, for each pixel, a change in a position of the object at that pixel from the previous frame to the current frame, and a depth texture of one or more objects of the current frame;

generate, a block-level motion vector with depth (MVD) texture comprising a set of block-level motion vectors each having an associated depth value based on the pixel-level MV1 texture, the pixel-level MV0 texture, and the depth texture; and

output the block-level MVD texture, the one or more objects of the current frame, and additional objects not having motion vectors of the current frame for image processing across two or more physically and/or logically separated channels, including outputting the one or more objects of the current frame and the additional objects on a first physical channel and outputting the block-level MVD texture on a second physical channel.

17. The system of claim 16 , wherein the block-level MVD texture, the one or more objects of the current frame, and the additional objects not having motion vectors of the current frame are output to an image processing module configured to interpolate a frame between the current frame and a previous frame generated by the game engine using the block-level MVD texture.

Assignments (3)
CHANGE OF ASSIGNEE ADDRESS Recorded Mar 19, 2026
From: PIXELWORKS SEMICONDUCTOR TECHNOLOGY (SHANGHAI) CO. LTD.
To: PIXELWORKS SEMICONDUCTOR TECHNOLOGY (SHANGHAI) CO. LTD.
Reel/Frame 075146/0897 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 59083 FRAME 256. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 2, 2025
From: SIMA, MIAO; LIN, CHAOHUI; LIU, BAOCHEN; HAN, ZONGMING; LIU, GONGXIAN; ZHAO, YU
To: PIXELWORKS SEMICONDUCTOR TECHNOLOGY (SHANGHAI) CO. LTD.
Reel/Frame 071828/0564 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2022
From: SIMA, MIAO; LIN, CHAOHUI; LIU, BAOCHEN; HAN, ZONGMING; LIU, GONGXIAN; ZHAO, YU
To: PIXELWORKS SEMICONDUCTOR TECHNOLOGY (SHANGHAI) CO. LTD
Reel/Frame 059083/0256 →
Priority Claims (1)
CN 202210113599.4 · Jan 30, 2022 · national
Continuity (1)
Related Publication 20230245326A1 · Aug 3, 2023
References Cited (18)
US 8358379B1 · Woodall · 2013 [cited by applicant]
US 9094561B1 · Cheng · 2015 [cited by examiner]
US 9106926B1 · Li · 2015 [cited by examiner]
US 9357161B1 · Cheng · 2016 [cited by examiner]
US 9736456B1 · Chen · 2017 [cited by examiner]
US 20040218626A1 · Tyldesley · 2004 [cited by examiner]
US 20110096832A1 · Zhang · 2011 [cited by examiner]
US 20110222602A1 · Sung · 2011 [cited by examiner]
US 20110249188A1 · Cheng · 2011 [cited by examiner]
US 20120236934A1 · Chen · 2012 [cited by examiner]
US 20130038686A1 · Chen · 2013 [cited by examiner]
US 20130044183A1 · Jeon · 2013 [cited by examiner]
US 20180352138A1 · Takanashi · 2018 [cited by examiner]
US 20200322625A1 · Abe · 2020 [cited by examiner]
US 20210067798A1 · Chujoh · 2021 [cited by examiner]
US 20220101504A1 · Cheng · 2022 [cited by examiner]
US 20230274489A1 · Zhang · 2023 [cited by examiner]
“Pixel Perfection®: Bringing TV features and quality to projection systems across all market segments,” Pixelworks Website, Available Online at https://www.pixelworks.com/en, Available as Early as May 17, 2019, 4 pages. [cited by applicant]