IP Library Granted Patent US 7,126,604
Granted Patent B1
US 7,126,604 · App. 09/925,127 · Granted Oct 24, 2006

Efficiently determining storage locations for the levels of detail of a MIP map of an image

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 7,126,604
App. No.
09/925,127
Granted
Oct 24, 2006
Kind
B1
Abstract

A method, apparatus, and computer program product for determining an amount of storage for a level of detail in a MIP map. It includes identifying a given level of detail; identifying a size for an immediately larger level of detail and a magnitude for each dimension of the immediately larger level of detail; and calculating the amount of storage based on the size and magnitudes without using a multiply operation or a precomputed table of offsets.

Claims (54)

1. A method for determining an amount of storage for a level of detail other than the base image in a MIP map, comprising:

identifying a first level of detail other than the base image;

identifying a size for an immediately larger level of detail and a magnitude for each dimension of the immediately larger level of detail; and

calculating the amount of storage to be used for storing the first level of detail based on the size and magnitudes without using a multiply operation.

2. The method of claim 1 , wherein calculating comprises:

scaling the size.

3. The method of claim 2 , wherein scaling comprises:

dividing each of the magnitudes by two and discarding any remainders; and

dividing the size by 2 n and discarding any remainder, where n is the number of non-zero magnitudes remaining after dividing each of the magnitudes;

wherein the size after dividing the size is the amount of storage for the first level of detail.

4. The method of claim 3 , further comprising:

adding one to the amount of storage when any of the n least significant bits of the size of the immediately larger level of detail is non-zero.

5. The method of claim 3 , wherein dividing each of the magnitudes comprises:

shifting the binary value of the magnitude to the right by one bit.

6. The method of claim 3 , wherein dividing the size comprises:

shifting the binary value of the size to the right by n bits.

7. The method of claim 1 , wherein a storage alignment restriction requires the starting address for each level of detail to be a multiple of m pixels from a predetermined address, wherein identifying a size and magnitudes comprises:

identifying the size and magnitudes in units such that each unit contains m pixels.

8. An apparatus for determining an amount of storage for a level of detail other than the base image in a MIP map, comprising:

means for identifying first level of detail exclusive of the base image;

means for identifying a size for an immediately larger level of detail and a magnitude for each dimension of the immediately larger level of detail; and

means for calculating the amount of storage to store the first level of detail based on the size and magnitudes without using a multiply operation.

9. The apparatus of claim 8 , wherein means for calculating comprises:

means for scaling the size.

10. The apparatus of claim 9 , wherein means for scaling comprises:

means for dividing each of the magnitudes by two and discarding any remainders; and

means for dividing the size by 2 n and discarding any remainder, where n is the number of non-zero magnitudes remaining after dividing each of the magnitudes;

wherein the size after dividing the size is the amount of storage for the first level of detail.

11. The apparatus of claim 10 , further comprising:

means for adding one to the amount of storage when any of the n least significant bits of the size of the immediately larger level of detail is non-zero.

12. The apparatus of claim 10 , wherein means for dividing each of the magnitudes comprises:

means for shifting the binary value of the magnitude to the right by one bit.

13. The apparatus of claim 10 , wherein means for dividing the size comprises:

means for shifting the binary value of the size to the right by n bits.

14. The apparatus of claim 8 , wherein a storage alignment restriction requires the starting address for each level of detail to be a multiple of m pixels from a predetermined address, wherein means for identifying a size and magnitudes comprises:

means for identifying the size and magnitudes in units such that each unit contains m pixels.

15. A computer program product, tangibly stored on a computer-readable medium, for determining an amount of storage for a level of detail other than the base image in a MIP map, comprising instructions operable to cause a programmable processor to:

identify a first level of detail other than the base image;

identify a size for an immediately larger level of detail and a magnitude for each dimension of the immediately larger level of detail; and

calculate the amount of storage to store the first level of detail based on the size and magnitudes without using a multiply operation.

16. The computer program product of claim 15 , wherein instructions operable to cause a programmable processor to calculate comprise instructions operable to cause a programmable processor to:

scale the size.

17. The computer program product of claim 16 , wherein instructions operable to cause a programmable processor to scale comprise instructions operable to cause a programmable processor to:

divide each of the magnitudes by two and discarding any remainders; and

divide the size by 2 n and discarding any remainder, where n is the number of non-zero magnitudes remaining after dividing each of the magnitudes;

wherein the size after dividing the size is the amount of storage for the first level of detail.

18. The computer program product of claim 17 , further comprising instructions operable to cause a programmable processor to:

add one to the amount of storage when any of the n least significant bits of the size of the immediately larger level of detail is non-zero.

19. The computer program product of claim 17 , wherein instructions operable to cause a programmable processor to divide each of the magnitudes comprise instructions operable to cause a programmable processor to:

shift the binary value of the magnitude to the right by one bit.

20. The computer program product of claim 17 , wherein instructions operable to cause a programmable processor to divide the size comprises:

shift the binary value of the size to the right by n bits.

21. The computer program product of claim 15 , wherein a storage alignment restriction requires the starting address for each level of detail to be a multiple of m pixels from a predetermined address, wherein instructions operable to cause a programmable processor to identify a size and magnitudes comprise instructions operable to cause a programmable processor to:

identify the size and magnitudes in units such that each unit contains m pixels.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDRESS OF THE RECEIVING PARTY PREVIOUSLY RECORDED AT REEL: 036684 FRAME: 587. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 2, 2015
From: PASTERNAK SOLUTIONS LLC
To: ZARBAÑA DIGITAL FUND LLC
Reel/Frame 036745/0324 →
MERGER Recorded Sep 29, 2015
From: PASTERNAK SOLUTIONS LLC
To: ZARBAÑA DIGITAL FUND LLC
Reel/Frame 036684/0587 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2004
From: BELIEVE, INC.
To: PASTERNAK SOLUTIONS LLC
Reel/Frame 014708/0364 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2001
From: PURCELL, STEPHEN CLARK; KARTCH, DANIEL A.
To: BELIEVE, INC.
Reel/Frame 012085/0884 →