IP Library Granted Patent US 7,206,001
Granted Patent B1
US 7,206,001 · App. 10/874,796 · Granted Apr 17, 2007

Fractal-dithering technique for image display

Assignee: Apple Computer, Inc.
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,206,001
App. No.
10/874,796
Granted
Apr 17, 2007
Kind
B1
Abstract

Rapid dithering of an RGB image from a higher order to a lower order number of bits is provided while introducing fewer undesirable artifacts than are visible in conventional dithering technology. A compact, deterministic method enables the elimination of banding, for example as is seen in 24-bit monitors when viewing color images with greater color depth. A fractal dithering engine selects a threshold matrix appropriate for an input stream, and using the threshold matrix, dithers images of the input stream to output images having a lower order number of color bits. In one embodiment, the threshold matrix is obtained by traversing 2-by-2 sub-regions of an N-by-N matrix according to a traversal pattern, and then applying a reverse binary function to the values in the original matrix to yield the threshold matrix. The threshold matrix preferably tessellates the pixel plane, subject to certain constraints.

Claims (29)

1. A method for dithering an image having a plurality of 16-bit color channel pixel planes, each pixel plane having a plurality of pixels, each pixel having a 16-bit value, the method comprising:

for each pixel, dividing the pixel value into a first portion including the 8 most-significant bits of the pixel value and a second portion including the 8 least-significant bits of the pixel value channel;

dividing the bits of the second portion into a third portion, including the 4 most-significant bits of the second portion, and a fourth portion, including the 4 least-significant bits of the second portion;

comparing the bits of the third portion to a first entry in a 4-by-4 matrix A, accessed by A x%4,y%4 ; where x and y represent coordinates of the pixel within the pixel plane;

responsive to the bits of the third portion being greater than the first entry in the matrix, incrementing the value of the first portion of the pixel value;

responsive to the bits of the third portion equaling the first entry in the matrix:

comparing the bits of the fourth portion to a second entry in the matrix A, accessed by a different scaling of the pixel plane; and

responsive to the bits of the fourth portion being greater than the second entry, incrementing the value of the first portion of the pixel value.

2. The method of claim 1 further comprising:

rendering the dithered image by, for each pixel, rendering the bits of the first portion of the pixel value.

3. A system for dithering an image, the image having a plurality of 16-bit color channel pixel planes, each pixel plane having a plurality of pixels, each pixel having a 16-bit value, the system comprising:

a fractal dithering engine adapted to receive an input stream including the image to be dithered, and for each pixel, further adapted to:

divide the pixel value into a first portion including the 8 most-significant bits of the pixel value and a second portion including the 8 least-significant bits of the pixel value channel;

divide the bits of the second portion into a third portion, including the 4 most-significant bits of the second portion, and a fourth portion, including the 4 least-significant bits of the second portion;

compare the bits of the third portion to a first entry in a 4-by-4 matrix A, accessed by A x%4,y%4 ; where x and y represent coordinates of the pixel within the pixel plane;

responsive to the bits of the third portion being greater than the first entry in the matrix, to increment the value of the first portion of the pixel value;

responsive to the bits of the third portion equaling the first entry in the matrix:

to compare the bits of the fourth portion to a second entry in the matrix A, accessed by a different scaling of the pixel plane; and

responsive to the bits of the fourth portion being greater than the second entry, to increment the value of the first portion of the pixel value.

4. The system of claim 3 , wherein the fractal dithering engine is further configured to render the dithered image by, for each pixel, rendering the bits of the first portion of the pixel value.

5. A computer program product for dithering an image having a plurality of 16-bit color channel pixel planes, each pixel plane having a plurality of pixels, each pixel having a 16-bit value, the computer program product stored on a computer readable medium and including code for causing a computer to carry out the steps of:

for each pixel, dividing the pixel value into a first portion including the 8 most-significant bits of the pixel value and a second portion including the 8 least-significant bits of the pixel value channel;

dividing the bits of the second portion into a third portion, including the 4 most-significant bits of the second portion, and a fourth portion, including the 4 least-significant bits of the second portion;

comparing the bits of the third portion to a first entry in a 4-by-4 matrix A, accessed by A x%4,y%4 ; where x and y represent coordinates of the pixel within the pixel plane;

responsive to the bits of the third portion being greater than the first entry in the matrix, incrementing the value of the first portion of the pixel value;

responsive to the bits of the third portion equaling the first entry in the matrix:

comparing the bits of the fourth portion to a second entry in the matrix A, accessed by a different scaling of the pixel plane; and

responsive to the bits of the fourth portion being greater than the second entry, incrementing the value of the first portion of the pixel value.

6. The computer program product of claim 5 further comprising code to cause a computer to carry out the step of rendering the dithered image by, for each pixel, rendering the bits of the first portion of the pixel value.

Assignments (2)
CHANGE OF NAME Recorded Mar 7, 2008
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 020638/0127 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2004
From: CRANDALL, RICHARD EUGENE; JONES, EVAN T.; KLIVINGTON, JASON
To: APPLE COMPUTER, INC.
Reel/Frame 015262/0329 →