IP Library Granted Patent US 12,189,711
Granted Patent B2
US 12,189,711 · App. 17/697,742 · Granted Jan 7, 2025

Interpolating a sample position value by interpolating surrounding interpolated positions

Inventor: Simon Fenney (St Albans, GB)
Assignee: Imagination Technologies Limited
G06F17/175
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,189,711
App. No.
17/697,742
Granted
Jan 7, 2025
Kind
B2
Abstract

Interpolation logic described herein provides a good approximation to a bicubic interpolation, which is generally smoother than bilinear interpolation, without performing all the calculations normally needed for a bicubic interpolation. This allows an approximation of smooth bicubic interpolation to be performed on devices (e.g. mobile devices) which have limited processing resources. At each of a set of predetermined interpolation positions within an array of data points, a set of predetermined weights represent a bicubic interpolation which can be applied to the data points. For a plurality of the predetermined interpolation positions which surround the sampling position, the corresponding sets of predetermined weights and the data points are used to determine a plurality of surrounding interpolated values which represent results of performing the bicubic interpolation at the surrounding predetermined interpolation positions. A linear interpolation is then performed on the surrounding interpolated values to determine an interpolated value at the sampling position.

Claims (25)

1. An interpolation unit configured to, for a plurality of interpolation positions associated with a sampling position, determine a plurality of associated interpolated values which represent results of performing interpolation at the associated interpolation positions; and

wherein the interpolation unit is further configured to pass the associated interpolated values to a further interpolation unit for performing an interpolation on the plurality of associated interpolated values to determine an interpolated value at the sampling position.

2. The interpolation unit of claim 1 , wherein the interpolation positions that are associated with the sampling position are interpolation positions which surround the sampling position.

3. The interpolation unit of claim 1 , wherein the interpolation unit is configured to determine the plurality of associated interpolated values by performing weighted sums of a plurality of data points using corresponding sets of predetermined weights.

4. The interpolation logic of claim 1 , wherein the sampling position is located within an array of data points, and wherein the data points in the array are graphical data points.

5. The interpolation logic of claim 4 wherein the data points in the array are texels of a texture.

6. The interpolation unit of claim 1 wherein the associated interpolated values represent results of performing not linear interpolation at the associated interpolation positions, and wherein the further interpolation unit is a linear interpolation unit for performing a linear interpolation on the plurality of associated interpolated values to determine the interpolated value at the sampling position.

7. The interpolation unit of claim 4 wherein the array is an n-dimensional array, and the associated interpolation positions are the 2 n positions of the interpolation positions which are closest to the sampling position, wherein n≥1.

8. The interpolation unit of claim 1 being configured in fixed function hardware circuitry.

9. The interpolation unit of claim 1 , wherein the plurality of interpolation positions are predetermined interpolation positions.

10. An interpolation method comprising:

for a plurality of interpolation positions which are associated with a sampling position within an array of data points, determining a plurality of associated interpolated values which represent results of performing interpolation at the associated interpolation positions; and

performing an interpolation on the plurality of associated interpolated values to determine an interpolated value at the sampling position.

11. The interpolation method of claim 10 , wherein the determining of a plurality of associated interpolated values is performed by at least one logic module.

12. Interpolation logic comprising:

a first interpolation unit configured to, for a plurality of interpolation positions associated with a sampling position, determine a plurality of associated interpolated values which represent results of performing interpolation at the associated interpolation positions; and

a second interpolation unit configured to perform an interpolation on the plurality of associated interpolated values to determine an interpolated value at the sampling position.

13. The interpolation logic of claim 12 , wherein the interpolation positions that are associated with the sampling position are interpolation positions which surround the sampling position.

14. The interpolation logic of claim 12 wherein the first interpolation unit is configured to perform weighted sums of data points using corresponding sets of predetermined weights to determine the plurality of associated interpolated values.

15. The interpolation logic of claim 12 , wherein the sampling position is located within an array of data points, and wherein the data points in the array are graphical data points.

16. The interpolation logic of claim 15 wherein the data points in the array are texels of a texture.

17. The interpolation logic of claim 12 wherein the first interpolation unit is a not linear interpolation unit and the second interpolation unit is a linear interpolation unit.

18. The interpolation logic of claim 15 wherein the array is an n-dimensional array, and the associated interpolation positions are the 2 n positions of the interpolation positions which are closest to the sampling position, wherein n≥1.

19. The interpolation logic of claim 12 wherein the first and second interpolation units are implemented in fixed function hardware circuitry.

20. The interpolation logic of claim 12 , wherein the plurality of interpolation positions are predetermined interpolation positions.

Assignments (1)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
Priority Claims (1)
GB 1415144 · Aug 27, 2014 · national
Continuity (5)
Continuation 16905533 · Jun 18, 2020
Continuation 16214919 · Dec 10, 2018
Continuation 15909527 · Mar 1, 2018
Continuation 14835971 · Aug 26, 2015
Related Publication 20220207110A1 · Jun 30, 2022
References Cited (20)
US 4631750A · Gabriel et al. · 1986 [cited by applicant]
US 5018090A · Shiratsuchi · 1991 [cited by applicant]
US 5019903A · Dougall et al. · 1991 [cited by applicant]
US 5125042A · Kerr et al. · 1992 [cited by applicant]
US 5351087A · Christopher et al. · 1994 [cited by applicant]
US 6820074B1 · Simpson · 2004 [cited by applicant]
US 6989843B2 · Naegle et al. · 2006 [cited by applicant]
US 20020050979A1 · Oberoi et al. · 2002 [cited by applicant]
US 20030053687A1 · Bao et al. · 2003 [cited by applicant]
US 20040103132A1 · Zakrzewski · 2004 [cited by applicant]
US 20050203982A1 · Kolibal · 2005 [cited by applicant]
US 20050283516A1 · Fenney · 2005 [cited by applicant]
US 20060094963A1 · Sumanaweera et al. · 2006 [cited by applicant]
US 20130084018A1 · Nystad · 2013 [cited by examiner]
US 20150130819A1 · Peng · 2015 [cited by examiner]
CN 103034973A · 2013 [cited by applicant]
GB 2343579A · 2000 [cited by applicant]
Foley et al., “Computer Graphics Principles and Practice,” pp. 510-511, Addison-Wesley Publishing Company 1995. [cited by applicant]
Mitchell et al., “Reconstruction Filters in Computer Graphics,” Computer Graphics, pp. 221-228, vol. 22, No. 4, Aug. 1988. [cited by applicant]
NOTE: NPL in parent application. [cited by applicant]