IP Library Granted Patent US 7,336,275
Granted Patent B2
US 7,336,275 · App. 10/236,127 · Granted Feb 26, 2008

Pseudo random number generator and method

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,336,275
App. No.
10/236,127
Granted
Feb 26, 2008
Kind
B2
Abstract

A pseudo random number generator that generates a plurality of intermediate values, where each successive intermediate value is based, at least in part, on one of the succeeding intermediate values, where a final value based on a subset of the plurality of intermediate values. In application, the final value is based on performing a logical operation on the penultimate and last generated intermediate values.

Claims (54)

1. A method for generating noise for a pixel, comprising:

receiving a plurality of pixel values;

receiving pixel position information;

generating a plurality of intermediate values, with each successive intermediate value being based on a preceding intermediate value, wherein generating the plurality of intermediate values comprises fetching information from a permutation table based on the pixel position information for at least one of the intermediate values;

generating a final value representing a random number based on a subset of the plurality of intermediate values;

using the random number to index at least one of a plurality of gradient noise tables;

applying noise information from the at least one of the plurality of gradient noise tables to at least one pixel for later display; and

storing in memory one or more of: the noise information and the at least one pixel to which the noise information was applied.

2. The method of claim 1 , wherein generating a plurality of intermediate values further comprises:

logically scrambling a first portion of the pixel position information;

selecting from a plurality of values a first intermediate value indexed by the first logically scrambled data;

logically scrambling a second portion of the pixel position information;

selecting from the plurality of values a second intermediate value indexed by the second logically scrambled data;

logically scrambling the pixel position information; and

selecting from the plurality of values a third intermediate value indexed by the logically scrambled data.

3. The method of claim 2 , further comprising:

generating a fourth intermediate value from the third intermediate value; and

manipulating the third intermediate value by the fourth intermediate value.

4. The method of claim 3 , wherein the manipulation step further comprises performing a logical exclusive-OR operation between the third intermediate value and the fourth intermediate value.

5. The method of claim 1 , wherein generating the final value comprises performing a logical exclusive-OR operation between a first respective one of the plurality of intermediate values and a second respective one of the plurality of intermediate values.

6. The method of claim 2 , wherein the first logical scrambling comprises:

performing an exclusive-OR operation on a first portion of pixel position information; and

masking off the lowest order bits from the result of the exclusive-OR operation.

7. The method of claim 2 , wherein the second logical scrambling comprises:

performing an exclusive-OR operation on a second portion of the pixel position information; and

masking off the lowest order bits from the result of the exclusive-OR operation.

8. The method of claim 2 , wherein the third logical scrambling comprises:

generating a fifth value based on the first intermediate value;

generating a sixth value based on the second intermediate value;

performing an exclusive-OR operation between the fifth value and the sixth value; and

masking off the lowest order bits from the result of the exclusive-OR operation.

9. Memory containing instructions executable by one or more processing devices that cause the one or more processing devices to:

receive a plurality of pixel values;

receive pixel position information;

generate a plurality of intermediate values, with each successive intermediate value being based on a preceding intermediate value, wherein generating the plurality of intermediate values comprises fetching information from a permutation table based on the pixel position information for at least one of the intermediate values;

generate a final value representing a random number based on a subset of the plurality of intermediate values;

use the random number to index at least one of a plurality of gradient noise tables; and

apply noise information from the at least one of the plurality of gradient noise tables to at least one pixel for later display.

10. The memory of claim 9 containing executable instructions that cause the one or more processing devices to:

logically scramble a first portion of the pixel position information;

select from a plurality of values a first intermediate value indexed by the first logically scrambled data;

logically scramble a second portion of the pixel position information;

select from the plurality of values a second intermediate value indexed by the second logically scrambled data;

logically scramble the pixel position information; and

select from the plurality of values a third intermediate value indexed by the logically scrambled data.

11. An apparatus for generating noise for a pixel comprising:

a circuit operative to:

receive a plurality of values;

receive pixel position information;

generate a plurality of intermediate values, with each successive intermediate value being based on a preceding intermediate value;

wherein the plurality of intermediate values is generated by fetching information from a permutation table based on the pixel position information for at least one of the intermediate values;

generating a final value representing a random number based on a subset of the plurality of intermediate values;

using the random number to index at least one of the plurality of gradient noise tables; and

apply noise information from the at least one of the plurality of gradient noise tables to at least one pixel for later display.

Assignments (2)
CHANGE OF NAME Recorded May 12, 2011
From: ATI TECHNOLOGIES INC.
To: ATI TECHNOLOGIES ULC
Reel/Frame 026270/0027 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2002
From: LEFEBVRE, LAURENT; MOREIN, STEPHEN L.
To: ATI TECHNOLOGIES, INC.
Reel/Frame 013270/0606 →