IP Library Granted Patent US 11,562,460
Granted Patent B1
US 11,562,460 · App. 17/359,376 · Granted Jan 24, 2023

High performance hardware scaler

Inventors: Handong Li (Union City, CA); Xing Cindy Chen (Los Altos, CA); Tuo Wang (San Jose, CA)
Assignee: Meta Platforms, Inc.
G06T1/20G06T1/60G06T3/40
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,562,460
App. No.
17/359,376
Granted
Jan 24, 2023
Kind
B1
Abstract

Various features of a high performance hardware scaler are disclosed herein. In some embodiments, a hardware scaler comprises a first processing unit configured to perform preparation and scaling operations and a second processing unit configured to perform preparation and scaling operations. The first processing unit and the second processing unit alternatively switch between performing preparation and scaling operations when processing a current input pixel block such that the first processing unit performs scaling operations while the second processing unit performs preparation operations and the second processing unit performs scaling operations while the first processing unit performs preparation operations.

Claims (29)

1. A system, comprising:

a first processing unit configured to perform preparation and scaling operations; and

a second processing unit configured to perform preparation and scaling operations;

wherein the first processing unit and the second processing unit alternatively switch between performing preparation and scaling operations when processing a current input pixel block such that the first processing unit performs scaling operations while the second processing unit performs preparation operations and the second processing unit performs scaling operations while the first processing unit performs preparation operations.

2. The system of claim 1 , wherein processing the current input pixel block comprises scaling the current input pixel block.

3. The system of claim 2 , wherein while the first processing unit performs scaling operations on a prescribed group of the current input pixel block, the second processing unit performs preparation operations including loading neighbor pixels for scaling a next group of the current input pixel block.

4. The system of claim 3 , wherein the second processing unit performs preparation operations including storing neighbor pixels for a next input pixel block.

5. The system of claim 2 , wherein while the second processing unit performs scaling operations on a prescribed group of the current input pixel block, the first processing unit performs preparation operations including loading neighbor pixels for scaling a next group of the current input pixel block.

6. The system of claim 5 , wherein the first processing unit performs preparation operations including storing neighbor pixels for a next input pixel block.

7. The system of claim 1 , wherein preparation operations comprise reading current neighbor pixels and writing future neighbor pixels.

8. The system of claim 1 , wherein a number of neighbor pixels that is read or written during preparation operations is based on a number of filter taps used for scaling corresponding input pixels with respect to which the neighbor pixels are used.

9. The system of claim 1 , wherein the first processing unit performs interleaved preparation and scaling operations corresponding to even rows of the current input pixel block while the second processing unit performs interleaved preparation and scaling operations corresponding to odd rows of the current input pixel block.

10. The system of claim 1 , further comprising a control unit configured to coordinate context switching with respect to the first processing unit and the second processing unit.

11. The system of claim 1 , further comprising a memory configured to store the current input pixel block.

12. The system of claim 1 , further comprising a memory configured to store current neighbor pixels of the current input pixel block that were saved from a previous input pixel block.

13. The system of claim 1 , further comprising a memory configured to store future neighbor pixels to be used by a next input pixel block.

14. The system of claim 1 , wherein scaling operations comprise filtering using a filter.

15. The system of claim 14 , wherein the filter is dynamically configurable.

16. The system of claim 14 , wherein a type, one or more sets of coefficients, and a number of taps of the filter are programmable.

17. The system of claim 14 , wherein a number of filter taps to use during scaling is dynamically adjustable based on an output pixel position, a scaling ratio, and a desired filtering quality.

18. The system of claim 1 , wherein the current input pixel block comprises a frame of a video.

19. A method, comprising:

performing scaling operations using a first processing unit while performing preparation operations using a second processing unit; and

performing preparation operations using the first processing unit while performing scaling operations using the second processing unit;

wherein the first processing unit and the second processing unit alternatively switch between performing preparation and scaling operations when processing a current input pixel block.

20. A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:

performing scaling operations using a first processing unit while performing preparation operations using a second processing unit; and

performing preparation operations using the first processing unit while performing scaling operations using the second processing unit;

wherein the first processing unit and the second processing unit alternatively switch between performing preparation and scaling operations when processing a current input pixel block.

Assignments (2)
CHANGE OF NAME Recorded Nov 19, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058214/0351 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2021
From: LI, HANDONG; CHEN, XING CINDY; WANG, TUO
To: FACEBOOK, INC.
Reel/Frame 057469/0199 →