Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

Publication numberUSRE42473 E1
Publication typeGrant
Application number11/847,894
Publication date21 Jun 2011
Filing date30 Aug 2007
Priority date
30 May 2001
Also published as
Inventors
Original Assignee
U.S. Classification
International Classification
Cooperative Classification
European Classification
H04N1/405B2B
References
External Links
Rendering images utilizing adaptive error diffusion
US RE42473 E1
Abstract

An adaptive halftoning method where the difference between a digital image and a filtered digital image is introduced into the system on a pixel by pixel basis is disclosed. In this method, each input difference pixel has a corresponding error value of the previous pixel added to the input value at a summing node, resulting in modified image difference data; the modified image difference data is passed to a threshold comparator where the modified image difference data is compared to a threshold value, the threshold value varying according to the properties of the digital image, to determine the appropriate output level; the output level is subtracted from the modified image difference value to produce the input to an error filter; the output of the error filter is multiplied by an adaptation coefficient, where the adaptation coefficient varies according to the properties of the digital image, to generate the error level for the subsequent input pixel; and, the cyclical processing of pixels is continued until the end of the input data is reached.

Drawings(6)
Previous page
Next page
Claims

1. A method of generating a halftone image from an input digital image, said input digital image represented by a multiplicity of pixels, each pixel having a given value, said values being stored in a memory, said method comprising the steps of:

(A) determining theone or more properties including local properties of the input digital image;

(B) filtering the input digital image, said filtering having as output a filtered value at each pixel;

(C) obtaining the difference between the value at thea pixel and the filtered value at the pixel, said difference being a threshold input;

(D) generating thean output state for the pixel depending upon the relationship of the value of said threshold input relative to a threshold;

(E) producing an error value, said error value being indicative of the deviation of said threshold input from the output state;

(F) multiplying said error value by a coefficient, the result of said multiplication being stored;

(G) combining the stored value with the difference between the next pixel value and the next filtered value to produce a new threshold input;

(H) repeating steps (D) through (G)the generating an output state, the producing an error value, the multiplying said error value, and the combining the stored error value for each pixel in the input digital image thereby producing a halftone image; and

varying the threshold according to the one or more properties of the input digital image; and

selectively changing the coefficient in step (E) according to the localone or more properties of the input digital image.

2. The method of claim 1 further comprising the step of:

performing a histogram modification of the image pixels, before step (B)filtering the input digital image.

3. The method of claim 1 further comprising the step of:

performing a histogram modification of the difference between the value at the pixel and the filtered value at the pixel, before step (D)generating the output state.

4. The method of claim 1 wherein the selectively changing of the coefficient comprises:

dividing a first function of the localpixel values of the input digital image by a second function of the localpixel values of the input digital image; and

multiplying the absolute value of the result of said division by a first parameter; and

adding a second parameter to the result of the multiplication, thereby obtaining the coefficient.

5. The method of claim 4 wherein said first function is the difference between the value at the pixel and the filtered value at the pixel and said second function is the filtered value at the pixel.

6. The method of claim 4 wherein the threshold is a third function of the localpixel values of the input digital image.

7. The method of claim 6 wherein said third function is a linear function of the localpixel values of the input digital image.

8. The method of claim 6 wherein said third function is a linear function of the local values of the digital image.

9. The method of claim 4 wherein the threshold is the filtered value at the pixel multiplied by a third parameter.

10. The method of claim 9 wherein the filter in step (B) isfiltering comprises using a filter of finite extent, the extent of the filter, the first parameter, the second parametersparameter and the third parametersparameter being selected to produce thean image of highest perceptual quality at a specific output device.

11. The method of claim 9 further comprising the step of:

performing a histogram modification of the difference between the value at the pixel and the filtered value at the pixel, before step (D)generating the output state.

12. The method of claim 1 wherein the input digital image is a monochrome image.

13. The method of claim 1 wherein the input digital image is a color image.

14. A system for generating a halftone image from an input digital image, said input digital image represented by a multiplicity of pixels, each pixel having a given value, said values being stored in a memory, said apparatussystem comprising:

means for determining theone or more properties including local properties of said input digital image; and

means for retrieving the pixel values; and

means for filtering the input digital image, said filtering having as output a filtered value at each pixel; and

means for obtaining the difference between the value at thea pixel and the filtered value at the pixel, said difference being a threshold input; and

means for producing an error value, said error value being indicative of the deviation of said threshold input from thean output state; and

means for multiplying said error value by an adaptation coefficient to obtain a diffused value and

means for storing the diffused value and delaying said stored diffused value by one pixel; and

means for combining the stored delayed diffused value with the difference between the pixel value and the filtered value; and

means for varying thea threshold according to the one or more properties of the input digital image at the pixel value; and

means for selectively changing the adaptation coefficient according to the localone or more properties of the input digital image.

15. The system of claim 14 further comprising:

means performing a histogram modification of the image pixels.

16. The system of claim 14 further comprising:

means for performing a histogram modification of the difference between the value at the pixel and the filtered value at the pixel.

17. The system of claim 14 wherein the means for selectively changing of the adaptation coefficient comprise:

means for dividing a first function of the localpixel values of the input digital image by a second function of the localpixel values of the input digital image; and

means for multiplying the absolute value of the result of said division by a first parameter; and

adding a second parameter to the result of the multiplication, thereby obtaining the adaptation coefficient.

18. A computer program product comprising:

a computer usable storage medium having computer readable code embodied therein for generating a halftone image from an input digital image, said input digital image represented by a multiplicity of pixels, each pixel having a given value, said values being stored in a memory, said code causingcomprising instructions for a computer system to:, the instructions comprising:

instructions to determine theone or more properties including local properties of said input digital image; and

instructions to retrieve the pixel values; and

instructions to filter the input digital image, said filtering having as output a filtered value at each pixel; and

instructions to obtain the difference between the value at thea pixel and the filtered value at the pixel, said difference being a threshold input; and

instructions to produce an error value, said error value being indicative of the deviation of said threshold input from thean output state; and

instructions to multiply said error value by an adaptation coefficient to obtain a diffused value; and

instructions to store the diffused value and delayingdelay said stored diffused value by one pixel; and

instructions to combine the stored delayed diffused value with the difference between the pixel value and the filtered value; and

instructions to vary thea threshold according to the one or more properties of the input digital image at the pixel value; and

instructions to selectively change the adaptation coefficient according to the localone or more properties of the input digital image.

19. The computer program product of claim 18where, the computer readable code further causes the computer system towherein the instructions further comprise:

instructions to perform a histogram modification of the image pixels.

20. The computer program product of claim 18where, the computer readable code further causes the computer system towherein the instructions further comprise:

instructions to perform a histogram modification of the difference between the value at the pixel and the filtered value at the pixel.

21. The computer program product of claim 18where, the computer readable code in causing the computer systemwherein the instructions to selectively change the adaptation coefficient, further causes the computer system tocomprise:

instructions to divide a first function of the localpixel values of the input digital image by a second function of the localpixel values of the input digital image; and

instructions to multiply the absolute value of the result of said division by a first parameter; and

instructions to add a second parameter to the result of the multiplication, thereby obtaining the adaptation coefficient.

22. The computer program product of claim 21 wherein said first function is the difference between the value at the pixel and the filtered value at the pixel and said second function is the filtered value at the pixel.

23. The computer program product of claim 22 wherein said the threshold is the filtered value at the pixel multiplied by a third parameter.

24. The computer program product of claim 23 wherein the filter used to filter the input digital image is a filter of finite extent, the extent of the filter, the first parameter, the second parametersparameter and third parametersparameter being selected to produce thean image of highest quality at a specific output device.

25. The computer program product of claim 25 where, the computer readable code further causes the computer system to18 wherein the instructions further comprise:

instructions to perform a histogram modification of the difference between the value at the pixel and the filtered value at the pixel.

26. The computer program product of claim 21 wherein the threshold is a third function of the localpixel values of the input digital image.

27. The computer program product of claim 26 wherein said third function is a linear function of the localpixel values of the input digital image.

28. The computer program product of claim 26 wherein said third function is a linear function of the local values of the digital image.

29. The computer program product of claim 18 wherein the input digital image is a color image.

30. The computer program product of claim 18 wherein the input digital image is a monochrome image.

31. The system of claim 14, further comprising: a rendering device.

32. The system of claim 31, wherein said rendering device is a binary output device.

33. The system of claim 31, wherein said rendering device is a M-ary display or a M-ary rendering device.

34. The system of claim 31, wherein said rendering device is a mobile phone display.

35. A mobile device capable of generating a halftone image from an input digital image, said input digital image represented by a multiplicity of pixels, each pixel having a given value, said mobile device comprising:

means for determining one or more properties of said input digital image;

means for retrieving the pixel values;

means for filtering the input digital image, said filtering having as output a filtered value at each pixel;

means for obtaining the difference between the value at a pixel and the filtered value at the pixel, said difference being a threshold input;

means for producing an error value, said error value being indicative of the deviation of said threshold input from an output state;

means for multiplying said error value by an adaptation coefficient to obtain a diffused value and means for storing the diffused value and delaying said stored diffused value by one pixel;

means for combining the stored delayed diffused value with the difference between the pixel value and the filtered value;

means for varying a threshold according to the one or more properties of the input digital image at the pixel value;

means for selectively changing the adaptation coefficient according to the one or more properties of the input digital image; and

a rendering device.

Description
BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the rendering of digital image data, and in particular, to the binary or multilevel representation of images for printing or display purposes

2. Background Description

Since images constitute an effective means of communicating information, displaying images should be as convenient as displaying text. However, many display devices, such as laser and ink jet printers, print only in a binary fashion. Furthermore, some image format standards only allow binary images. For example, the WAP1.1 (Wireless Application Protocol) protocol specification allows only for one graphic format, WBMP, a one (1) bit version of the BMP (bitmap) format. Besides allowing only binary images, some image format standards and some displays only allow images of a limited number of pixels. In the WAP 1.1 standard, a WBMP image should not be larger than 150×150 pixels. Some WAP devices have screens that are very limited in terms of the number of pixels. For example, one WAP device has a screen that is 96 pixels wide by 65 pixels high. In order to render a digitized continuous tone input image using a binary output device, the image has to be converted to a binary image.

The process of converting a digitized continuous tone input image to a binary image so that the binary image appears to be a continuous tone image is known as digital halftoning.

In one type of digital halftoning processes, ordered dither digital halftoning, the input digitized continuous tone image is compared, on a pixel by pixel basis, to a threshold taken from a threshold array. Many ordered dither digital halftoning methods suffer from low frequency artifacts. Because the human vision system has greater sensitivity at low frequencies (less than 12 cycles/degree), such low frequency artifacts are very noticeable.

The visibility of low frequency artifacts in ordered dither digital halftoning methods has led to the development of methods producing binary images with a power spectrum having mostly higher frequency content, the so called “blue noise methods”.

The most frequently used “blue noise method” is the error diffusion method. In an error diffusion halftoning system, an input digital image In (the digitized continuous tone input image) is introduced into the system on a pixel by pixel basis, where n represents the input image pixel number. Each input pixel has its corresponding error value En−1, where En−1 is the error value of the previous pixel (n−1), added to the input value In at a summing node, resulting in modified image data. The modified image data, the sum of the input value and the error value of the previous pixel (In+En−1), is passed to a threshold comparator. The modified image data is compared to the constant threshold value T.O, to determine the appropriate output level On. Once the output level On is determined, it is subtracted from the modified image value to produce the input to an error filter. The error filter allocates its input, In−On, to subsequent pixels based upon an appropriate weighting scheme. Various weighting techniques may be used generate the error level E.n for the subsequent input pixel. The cyclical processing of pixels is continued until the end of the input data is reached. (For a more complete description of error diffusion see, for example, “Digital Halftoning”, by Robert Ulichney, MIT Press, Cambridge, Mass. and London, England, 1990, pp. 239-319).

Although the error diffusion method presents an improvement over many ordered dither methods, artifacts are still present. There is an inherent edge enhancement in the error diffusion method. Other known artifacts produced by the error diffusion method include artifacts called “worms” and “snowplowing” which degrade image quality.

In U.S. Pat. No. 5,045,952, Eschbach disclosed selectively modifying the threshold level on a pixel by pixel basis in order to increase or decrease the edge enhancement of the output digital image. The improvements disclosed by Eschbach do not allow the control of the edge enhancement by controlling the high frequency portion of the error. Also, the improvements disclosed by Eschbach do not introduce parameters that can be selected to produce the image of the highest perceptual quality at a specific output device.

In U.S. Pat. No. 5,757,976, Shu disclosed utilizing a set of error filters having different sizes for diffusing the input of the error filter among neighboring pixels in predetermined tonal areas of an image and adding “noise” to the threshold in order to achieve a smooth halftone image quality. The improvements disclosed by Shu do not introduce parameters that can be selected to produce the image of the highest perceptual quality at a specific output device.

SUMMARY OF THE INVENTION

It is the primary object of this invention to provide a method for generating a halftone image from a digitized continuous tone input image that provides adjustment of the local contrast of the resulting halftone image, minimizes artifacts and is easily implemented.

It is also an object of this invention to provide a method for generating a halftone image with parameters that can be selected to produce the image of highest quality at a specific output device.

To achieve the objects of this invention, one aspect of this invention includes an adaptive halftoning method where the difference between a digital image and a filtered digital image is introduced into the system on a pixel by pixel basis; each input difference pixel having a corresponding error value, generated from the previous pixels, added to the input value at a summing node, resulting in modified image difference data; the modified image difference data being passed to a threshold comparator where the modified image difference data is compared to a threshold value, the threshold value varying according to the properties of the digital image, to determine the appropriate output level; the output level is subtracted from the modified image difference value to produce the input to an error filter; the output of the error filter is multiplied by a adaptation coefficient, where the adaptation coefficient varies according to the properties of the digital image, to generate the error level for the subsequent input pixel; and, the cyclical processing of pixels is continued until the end of the input data is reached.

In another aspect of this invention, in the method described above, a histogram modification is performed on the image, and the difference between the histogram modified digital image and the filtered digital image is introduced into the system on a pixel by pixel basis.

In still another aspect of this invention, in the method described above, the histogram modification is performed on the difference between the digital image and the filtered digital image and the histogram modified difference is introduced into the system on a pixel by pixel basis.

In a further aspect of this invention, in the method described above, the selectively changing of the adaptation coefficient comprises dividing the difference between the value at the pixel and the filtered value at the pixel by the filtered value at the pixel, multiplying the absolute value of the result of the division by a first parameter, and adding a second parameter to the result of the multiplication, thereby obtaining the coefficient.

In still another aspect of this invention, in the method described above, the threshold calculation comprises multiplying the filtered value at the pixel by a third parameter.

In still another aspect of this invention, in the method described above and including the adaptation coefficient and threshold calculated as in the two preceding paragraphs, where the filter is a filter of finite extent, the extent of the filter, the first, second parameters and third parameters are selected to produce the image of the highest perceptual quality at a specific output device.

The methods, systems and computer readable code of this invention can be used to generate halftone images in order to obtain images of the highest perceptual quality when rendered on displays and printers. The methods, systems and computer readable code of this invention can also be used to for the design of computer generated holograms and for the encoding of the continuous tone input data.

DESCRIPTION OF THE DRAWINGS

The novel features that are considered characteristic of the invention are set forth with particularity in the appended claims. The invention itself, however, both as to its organization and its method of operation, together with other objects and advantages thereof will be best understood from the following description of the illustrated embodiment when read in connection with the accompanying drawings wherein:

FIG. 1a depicts a block diagram of selected components of an embodiment of a system, of this invention for generating a halftone image from a digitized continuous tone input image, where the histogram modification block is included after the summing node; and,

FIG. 1b depicts a block diagram of selected components of an embodiment of a system of this invention for generating a halftone image from a digitized continuous tone input image, where the histogram modification block is included before the summing node; and,

FIG. 1c depicts a block diagram of selected components of an embodiment of a system of this invention for generating a halftone image from a digitized continuous tone input image, where the adaptation coefficient multiplies the input to the error filter block; and

FIG. 2 depicts a block diagram of selected components of another embodiment of the system of this invention for generating a halftone image from a digitized continuous tone input image; and

FIG. 2a depicts a block diagram of selected components of another embodiment of the system of this invention for generating a halftone image from a digitized continuous tone input image, where the adaptation coefficient multiplies the input to the error filter block.

DETAILED DESCRIPTION

A method and system, for generating a halftone image from a digitized continuous tone input image, that provide adjustment of the local contrast of the resulting halftone image, minimizes artifacts, are easily implemented and contain parameters that can be selected on the basis of device characteristics like brightness, dynamic range, and pixel count, to produce the image of highest perceptual quality at a specific output device are disclosed.

A block diagram of selected components of an embodiment of a system of this invention for generating a halftone image from a digitized continuous tone input image (also referred to as a digital image) is shown in FIG. 1a. Referring to FIG. 1a, image input block 10 introduces an input digital image In into the system on a pixel by pixel basis, where n represents the input image pixel number. The input image is also provided to the filtering block 20. The output of filtering block 20 has the form
Avn32 h( . . . ,Ik, . . . , I.n, . . . )   (1)
where h is a functional form spanning a number of pixels. It should be apparent that the input digital image 10 can be a two dimensional array of pixel values and that the array can be represented as a linear array by using such approaches as raster representations or serpentine representation. For a two dimensional array of pixel values, the filter 20 will also be a two dimensional array of filter coefficients and can also be represented as a linear array. The functional forms will be shown in the one dimensional form for ease of interpretation.

In one embodiment: the output of the filtering block 20 has the form
Avn={Σn−N n+NIj}/(2N+1)   (2)
If the filtering block 20 comprises a linear filter, Avn will be given by a sum of terms, each term comprising the product of an input image pixel value multiplied by a filter coefficient.

It should be apparent that special consideration has to be given to the pixels at the boundaries of the image. For example, the calculations can be started N pixels from the boundary in equation (2). In that case the calculated and halftone image are smaller than the input image. In another case, the image is continued at the boundaries, the continuation pixels having the same value as the boundary pixel. It should be apparent that other methods of taking into account the effect of the boundaries can be used.

The output of the filtering block 20, Avn, is subtracted from the input digital image I.n at node 25, resulting in a difference value, Dn. In the embodiment in which histogram modification is not included, Dn is the input to a summing node 70. At the summing node 70, a corresponding error value En−1, where En−1 is the error value accumulated from the previous pixels, is added to the input value Dn resulting in a modified image datum. The modified image data, Dn+En−1, is compared to the output of the threshold calculation block 30 in the threshold comparison block 40 to produce the halftoning output, On. (In the case of a binary output device, if the modified image datum is above the threshold, the output level is the white level. Otherwise, the output level is the black level.) Once the output level On is determined, it is subtracted from the modified image value to produce the input to an error filter block 50. The error filter block 50 allocates its input, Dn+En−1−On, to subsequent pixels based upon an appropriate weighting scheme. The weighted contributions of the error filter block 50 input are stored and all the contributions to the next input pixel are summed to produce the output of the error filter block 50, the error value. The output of the error filter block 50, the error value, is multiplied by the adaptation coefficient in block 60 to generate the error level E.n for the subsequent input pixel. The cyclical processing of pixels, as further described below, is continued until the end of the input data is reached.

Referring again to FIG. 1, the input image is also provided to the threshold calculation block 30. The output of the threshold calculation block 30 has the form
t( . . . , Ik, . . . , I.n, . . . )   (3)
where t is a functional form spanning a number of pixels. The form in equation (3) allows the varying of the threshold according to properties of the digital image.

In one embodiment,
t( . . . ,Ik, . . . , I.n, . . . )=C0n−N n+NIj}/(2N+1)   (4)
In another embodiment, the output of the threshold calculation block is a linear combination of terms, each term comprising the product of an input image pixel value multiplied by a coefficient. It should be apparent that this embodiment can also be expressed as a function times a parameter.
The output of the threshold calculation block 30 is the threshold.

The first pixel value to be processed, IO, produces a difference value DO from summing node 25 and produces a value of DO out of summing node 70 (since E−1 is equal to 0). DO is then compared to the threshold producing an output of OO. At summing node 45, OO is subtracted from DO to produce the input to the error filter 50. The error filter 50 allocates its input, DO−OO, to subsequent pixels based upon an appropriate weighting scheme which determines how much the current input contributes to each subsequent pixel. Various weighting techniques may be used (see, for example, “Digital Halftoning” by Robert Ulichney, MIT Press, Cambridge, Mass. and London, England, 1990, pp. 239-319). The output of error filter 50 is multiplied by a adaptation coefficient 60. The adaptation coefficient 60 is the output of the coefficient calculation block 80. In one embodiment, the output of the coefficient calculation block 80 has the form
C1+C2abs{f( . . . ,Ik, . . . , I.n, . . . ,)/g( . . . ,Ik, . . . , I.n, . . . )}  (5)
where f and g are functional forms spanning a number of pixels. The form of Equation (5) allows the selective changing, of the coefficient according to the local properties of the digital image. C1 and C2 and the parameter in the threshold expression can be selected to produce the image of highest perceptual quality at a specific output device.

In another embodiment, the output of the coefficient calculation block 80 has the form
C1+C2{abs((I.n−({Σn−N n+NIj}/(2N+1)))/({Σn−N n+NIj}/(2N+1))))}  (6)

The input of error filter block 50 is multiplied by weighting coefficients and stored. All the contributions from the stored weighted values to the next pixel are summed to produce the out put of the error filter block 50. The output of the error filter block 50 is multiplied by the adaptation coefficient 60. The delay block 65 stores the result of the product of the adaptation coefficient 60 and the output of the error filter block 50. (In one embodiment, the Floyd-Steinberg filter, the input to the error filter is distributed according to the filter weights to the next pixel in the processing line and to neighboring pixels in the following line.) The output of delay block 65 is En−1 and is delayed by one pixel. (When the first pixel is processed, the output of the delay, EO, is added to the subsequent difference, D1.)

It should be apparent that the sequence order of error filter block 50 and the adaptation coefficient block 60 can be interchanged with similar results. In the embodiment in which the adaptation coefficient 60 multiplies the difference between the modified image datum and the output level, shown in FIG. 1c, the delay block 65 stores the output of the error filter block.

When the next pixel, I1, is introduced into the system from the image input block 10, it produces a difference value D1 from summing node 25 and produce a value of (D1+EO) out of summing node 70.

The above steps repeat for each subsequent pixel in the digital image thereby producing a halftone image, the sequence OO, O1, . . . , On. The modification of the threshold level and the adaptation coefficient allows control of the amount of edge enhancement and provides the opportunity to reduce artifacts.

In the embodiment in which histogram modification is included after the summing node 25, Dn is the input to the histogram modification block 75 and the output of the histogram modification block 75 is the input to the summing node 70. The above description follows if Dn is replaced by the output of the histogram modification block 75. It should be apparent that histogram modification operates on the entire difference image. (Histogram modification is well known to those skilled in the art. For a discussion of histogram modification, see, for example, Digital Image Processing, by William K. Pratt, John Wiley and Sons, 1978, ISBN 0-471-01888-0, pp. 311-318. For a discussion of histogram equalization, a form of histogram modification, see, for example, Digital Image Processing, by R. C. Gonzalez and P. Wintz, Addison-Wesley Publishing Co., 1977, ISBN 0-201-02596-3, pp. 119-126.)

In the embodiment in which histogram modification is included after the image input block 10, Dn is the difference between the output of the histogram modification block 75 (FIG. 1b) and the filtered image. The above description follows if In is replaced by the output of the histogram modification block.

The method described above produces improvements of the error diffusion method by utilizing the difference between the digital image and the filtered digital image as input into the system instead of the digital image, by multiplying the .the output of the error filter by the adaptation coefficient, where the adaptation coefficient varies according to the properties of the digital image, and by using a threshold value that varies according to the properties of the digital image to determine the appropriate output level.

Sample Embodiment

In a specific embodiment, shown in FIG. 2, the output of the filtering block 20, Avn, is given by Equation (2). The threshold calculation 30 is a function of the output of the filtering block 20 and is given by
t( . . . ,Ik, . . . , I.n, . . . )=COAvn   (7)
which is the same function as in Equation 4 when the output of the filtering block 20, Avn, is given by Equation (2). The output of the coefficient calculation block 80 depends on the output of the filtering block 20, Avn, and the difference Dn and is given by
C1+C2{abs((Dn−Avn)/Avn)}  (8)
When the output of the filtering block 20, Avn, is given by Equation (2), Equation (8) is the same as Equation (6).

Histogram equalization is included after the summing node 25. The processing of the input image pixels 10 occurs as described in the preceding section.

The value of N in Equation (2) (the extent of the filter), CO, C1, and C2 (first, second parameters and third parameters) can be selected to produce the image of highest perceptual quality at a specific output device. For a WBMP image on a specific monochrome mobile phone display, utilizing a Floyd-Steinberg error filter, the following parameters yield images of high perceptual quality:
N=7,
CO=−20,
C1=0.05, and
C2=1.
In another embodiment, shown in FIG. 2a, the sequence order of error filter block 50 and the adaptation coefficient block 60 are interchanged. In the embodiment of FIG. 2a, in which the adaptation coefficient 60 multiplies the difference between the modified image datum and the output level, the delay block 65 stores the output of the error filter block.

The embodiments described herein can also be expanded to include composite images, such as color images, where each color component might be treated individually by the algorithm. In the case of color input images, the value of N in Equation (2) (the extent of the filter), CO, C1, and C2 (first, second parameters and third parameters) can be selected to control the color difference at a color transition while minimizing any effects on the brightness at that location. Other possible applications of these embodiments include the design of computer generated holograms and the encoding of the continuous tone input data.

Although the embodiments described herein are most easily understood for binary output devices, the embodiments described herein can also be expanded to include rendering an output image when the number of gray levels in the image exceeds that of obtainable in the rendering device. It should be apparent how to expand the embodiments described herein to M-ary displays or M-ary rendering devices (see, for example, “Digital Halftoning” by Robert Ulichney, MIT Press, Cambridge, Mass., and London, England, 1990, p. 341).

It should be appreciated that the various embodiments described above are provided merely for purposes of example and do not constitute limitations of the present invention. Rather, various other embodiments are also within the scope of the claims, such as the following. The filter 20 can be selected to impart the desired functional behavior of the difference. The filter 20 can, for example, be a DC preserving filter. The threshold 40 and the adaptation coefficient 60 can also be selected to impart the desired characteristics of the image.

It should be apparent that Equations (4) and (5) are exemplary forms of functional expressions with parameters that can be adjusted. Functional expressions for the threshold and the adaptation coefficient ,where the expressions include parameters that can be adjusted, will satisfy the object of this invention.

In general, the techniques described above may be implemented, for example, in hardware, software, firmware, or any combination thereof. The techniques described above may be implemented in one or more computer programs executing on a programmable computer including a processor, a storage medium readable by the processor (including, for example, volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. Program code may be applied to data entered using the input device to perform the functions described and to generate output information. The output information may be applied to one or more output devices.

Elements and components described herein may be further divided into additional components or joined together to form fewer components for performing the same functions.

Each computer program within the scope of the claims below may be implemented in any programming language, such as assembly language, machine language, a high-level procedural programming language, or an object-oriented programming language. The programming language may be a compiled or interpreted programming language. Each computer program may be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a computer processor. Method steps of the invention may be performed by a computer processor executing a program tangibly embodied on a computer-readable medium to perform functions of the invention by operating on input and generating output.

The generation of the halftone image can occur at a location remote from the rendering printer or display. The operations performed in software utilize instructions (“code”) that are stored in computer-readable media and store results and intermediate steps in computer-readable media.

Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CDROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read. Electrical, electromagnetic or optical signals that carry digital data streams representing various types of information are exemplary forms of carrier waves transporting the information.

Other embodiments of the invention, including combinations, additions, variations and other modifications of the disclosed embodiments will be obvious to those skilled in the art and are within the scope of the following claims.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US382013324 Jul 197225 Jun 1974Adorney C,UsTeaching device
US38647084 Dec 19734 Feb 1975Allen; Brian S.Automatic photographic apparatus and postcard vending machine
US407058719 Mar 197624 Jan 1978Canon Kabushiki KaishaEnergizing control system for an intermittently energized device
US407297326 Jan 19767 Feb 1978Mayo; William D.Camera signal system for portrait taking
US40890177 Sep 19769 May 1978Polaroid CorporationAutomatic photostudio
US415452331 May 197715 May 1979Eastman Kodak CompanyExposure determination apparatus for a photographic printer
US416812017 Apr 197818 Sep 1979Pako CorporationAutomatic exposure corrections for photographic printer
US42848767 Apr 198018 Aug 1981Oki Electric Industry Co., Ltd.Thermal printing system
US430971220 Dec 19795 Jan 1982Canon Kabushiki KaishaThermal printer
US434751829 May 198131 Aug 1982Gould Inc.Thermal array protection apparatus
US436406326 Feb 198114 Dec 1982Tokyo Shibaura Denki Kabushiki KaishaThermal recording apparatus
US438530216 Oct 198124 May 1983Fuji Xerox Co., Ltd.Multicolor recording apparatus
US439153510 Aug 19815 Jul 1983Intermec CorporationMethod and apparatus for controlling the area of a thermal print medium that is exposed by a thermal printer
US44159082 Jul 198215 Nov 1983Canon Kabushiki KaishaThermal printer
US44431211 Mar 198317 Apr 1984Sony CorporationThermal printing apparatus with reference gray scale comparator
US444781817 Feb 19828 May 1984Fuji Xerox Co., Ltd.Multicolor heat-sensitive recording apparatus
US446466916 Jun 19827 Aug 1984Tokyo Shibaura Denki Kabushiki KaishaThermal printer
US451473822 Nov 198330 Apr 1985Tokyo Shibaura Denki Kabushiki KaishaThermal recording system
US452436830 Mar 198418 Jun 1985Fuji Xerox Co., Ltd.Thermal head drive circuit
US45409927 Apr 198310 Sep 1985Kabushiki Kaisha Daini SeikoshaThermal color transfer system
US456369124 Dec 19847 Jan 1986Fuji Xerox Co., Ltd.Thermo-sensitive recording apparatus
US460726210 Jan 198419 Aug 1986Fuji Xerox Co., Ltd.Thermal head drive circuit
US463837226 Sep 198420 Jan 1987Fuji Xerox Co., Ltd.Color copier
US468654916 Dec 198511 Aug 1987Minnesota Mining And Manufacturing CompanyReceptor sheet for thermal mass transfer printing
US46880518 May 198518 Aug 1987Ricoh Company, Ltd.Thermal print head driving system
US470462028 Aug 19863 Nov 1987Canon Kabushiki KaishaTemperature control system and ink jet printer utilizing the temperature control system
US473852621 Nov 198619 Apr 1988Autostudio CorporationAuto-portrait photo studio
US473934427 Feb 198719 Apr 1988Astro-Med, Inc.Chart recorded having multiple thermal print heads
US477749626 May 198711 Oct 1988Sony CorporationThermal printer with printing plate making mode
US48050334 Apr 198814 Feb 1989Olympus Optical Co., Ltd.Method of forming oblique dot pattern
US480906326 May 198828 Feb 1989Fuji Xerox Co., Ltd.Multicolor printing method using rectangular dither matrices of different size, shape, and arrangement of threshold values to minimize overlap of differently colored inks at lower gradations
US48840802 Jun 198728 Nov 1989Kabushiki Kaisha ToshibaColor image printing apparatus
US490701418 May 19896 Mar 1990Calcomp Inc.Safely retracting paper-cutting apparatus for a roll paper printer
US493370925 Sep 198912 Jun 1990Eastman Kodak CompanyAdjusting photographic printer color exposure determination algorithms
US496240311 Dec 19899 Oct 1990Eastman Kodak CompanyAdjusting photographic printer color exposure determination algorithms
US500686612 Oct 19899 Apr 1991Kabushiki Kaisha ToshibaThermal printing apparatus responsive to estimated stored heat of the heating element
US504595221 Aug 19893 Sep 1991Xerox CorporationMethod for edge enhanced error diffusion
US50461186 Feb 19903 Sep 1991Eastman Kodak CompanyTone-scale generation method and apparatus for digital x-ray images
US506696112 Feb 199019 Nov 1991Matsushita Electric Industrial Co., Ltd.Tonal printer utilizing heat prediction and temperature detection means
US50863065 Jul 19904 Feb 1992Ricoh Company, Ltd.Line head driving apparatus
US508648421 Aug 19894 Feb 1992Canon Kabushiki KaishaImage processing apparatus with fixed or variable threshold
US51092351 Aug 198928 Apr 1992Ricoh Company, Ltd.Recording density correcting apparatus
US511525230 Jan 199019 May 1992Ricoh Company, Ltd., 3-6, 1-Chome Nakamagome, Ota-Ku, Tokyo/Japan, A Joint-Stock Company Of JapanThermal head drive apparatus correcting for the influence on a printing element of heat from other printing elements
US513082116 Apr 199014 Jul 1992Eastman Kodak CompanyMethod and apparatus for digital halftoning employing density distribution for selection of a threshold template
US51327038 Mar 199121 Jul 1992Yokogawa Electric CorporationThermal history control in a recorder using a line thermal head
US513270926 Aug 199121 Jul 1992Zebra Technologies CorporationApparatus and method for closed-loop, thermal control of printing head
US516281330 Aug 199010 Nov 1992Fuji Photo Film Co., Ltd.Method of and device for driving thermal head in printer
US51841503 Aug 19902 Feb 1993Sharp Kabushiki KaishaThermal printer for providing printed characters with a uniform density
US520868424 Apr 19914 May 1993Fujitsu LimitedHalf-tone image processing system
US524486131 Jul 199214 Sep 1993Eastman Kodak CompanyReceiving element for use in thermal dye transfer
US524899524 Feb 199228 Sep 1993Alps Electric Co., Ltd.Heat control method of a thermal head
US526870612 Feb 19927 Dec 1993Alps Electric Co., Ltd.Actuating control method of thermal head
US528522025 Jun 19928 Feb 1994Canon Kabushiki KaishaImage recording apparatus with tone correction for individual recording heads
US53074251 Sep 199226 Apr 1994Rohm Co., Ltd.Bi-level halftone processing circuit and image processing apparatus using the same
US532324519 Feb 199321 Jun 1994Minnesota Mining And Manufacturing CompanyPerpendicular, unequal frequency non-conventional screen patterns for electronic halftone generation
US53332465 Apr 199126 Jul 1994Seiko Epson CorporationPage-description language interpreter for a parallel-processing system
US542266225 Mar 19936 Jun 1995Nec CorporationThermal printer head having current sensors connected to heating elements
US54500998 Apr 199312 Sep 1995Eastman Kodak CompanyThermal line printer with staggered head segments and overlap compensation
US545568531 Aug 19923 Oct 1995Fuji Photo Film Co., Ltd.Video camera exposure control apparatus for controlling iris diaphragm and automatic gain control operating speed
US546920324 Nov 199221 Nov 1995Eastman Kodak CompanyParasitic resistance compensation for a thermal print head
US54792631 Jul 199326 Dec 1995Xerox CorporationGray pixel halftone encoder
US549717411 Mar 19945 Mar 1996Xerox CorporationVoltage drop correction for ink jet printer
US552162612 Oct 199328 May 1996Victor Company Of Japan, Ltd.Fusion-type thermal transfer printing system
US55394432 Jul 199323 Jul 1996Matsushita Electric Industrial Co., Ltd.Printer utilizing temperature evaluation and temperature detection
US556934720 Dec 199429 Oct 1996Fujicopian Co., Ltd.Thermal transfer material
US557674524 May 199419 Nov 1996Canon Kabushiki KaishaRecording apparatus having thermal head and recording method
US56026538 Nov 199411 Feb 1997Xerox CorporationPixel pair grid halftoning for a hyperacuity printer
US561722328 Jun 19951 Apr 1997Eastman Kodak CompanyImage scanner system and method for improved microfilm image quality
US56232977 Jul 199322 Apr 1997Intermec CorporationMethod and apparatus for controlling a thermal printhead
US562358122 Jan 199622 Apr 1997Apbi Interactive Kiosk SystemsDirect view interactive photo kiosk and image forming process for same
US562539931 Jan 199229 Apr 1997Intermec CorporationMethod and apparatus for controlling a thermal printhead
US564214829 Nov 199424 Jun 1997Nec CorporationThermal head apparatus with integrated circuits and current detection
US564435130 Nov 19931 Jul 1997Matsushita Electric Industrial Co., Ltd.Thermal gradation printing apparatus
US564667214 Dec 19958 Jul 1997Nec CorporationThermal head apparatus
US56642534 Apr 19962 Sep 1997Eastman Kodak CompanyStand alone photofinishing apparatus
US566863827 Jun 199616 Sep 1997Xerox CorporationError diffusion method with symmetric enhancement
US569448415 May 19952 Dec 1997Polaroid CorporationSystem and method for automatically processing image data to provide images of optimal perceptual quality
US570364420 May 199330 Dec 1997Matsushita Electric Industrial Co., Ltd.Automatic exposure control apparatus
US570604420 Dec 19956 Jan 1998Nec CorporationThermal head apparatus
US570708218 Jul 199513 Jan 1998Moore Business Forms, Inc.Thermally imaged colored baggage tags
US571162026 Sep 199627 Jan 1998Fuji Photo Film Co., Ltd.Color thermal printer
US57196151 May 199617 Feb 1998Kyocera CorporationApparatus for driving heating elements of a thermal head
US572157827 Dec 199424 Feb 1998Sharp Kabushiki KaishaMethods of gradation control and picture quality improvement in a thermal printer which adapts a staggered printing system
US572445631 Mar 19953 Mar 1998Polaroid CorporationBrightness adjustment of images using digital scene analysis
US572927417 Apr 199617 Mar 1998Fuji Photo Film Co., Ltd.Color direct thermal printing method and thermal head of thermal printer
US57579768 Aug 199626 May 1998Seiko Epson CorporationAdaptive filtering and thresholding arrangement for reducing graininess of images
US577759914 Feb 19927 Jul 1998Oki Electric Industry Co., Ltd.Image generation device and method using dithering
US57813158 Nov 199614 Jul 1998Fuji Photo Film Co., Ltd.Image processing method for photographic printer
US578409223 Dec 199421 Jul 1998Shinko Electric Co., Ltd.Thermal printer in which head energization period is controlled based on number of heads to be energized
US57868377 Nov 199528 Jul 1998Agfa-Gevaert N.V.Method and apparatus for thermal printing with voltage-drop compensation
US578690017 Feb 199528 Jul 1998Fuji Photo Film Co., Ltd.Image recording device for recording multicolor images with dot pitch pattern randomly arranged only in the sub-scanning direction
US58000759 Apr 19971 Sep 1998Fuji Photo Film Co., Ltd.Data processing method for eliminating influence of heat accumulating in thermal head
US58086538 Apr 199715 Sep 1998Matsushita Electric Industrial Co., Ltd.Thermal gradation printing apparatus
US58091647 Mar 199615 Sep 1998Polaroid CorporationSystem and method for color gamut and tone compression using an ideal mapping function
US58091776 Jun 199615 Sep 1998Xerox CorporationHybrid error diffusion pattern shifting reduction using programmable threshold perturbation
US581847427 Jun 19946 Oct 1998Canon Kabushiki KaishaInk-jet recording apparatus and method using asynchronous masks
US581897528 Oct 19966 Oct 1998Eastman Kodak CompanyMethod and apparatus for area selective exposure adjustment
US58352447 Oct 199610 Nov 1998Linotype-Hell AgMethod and apparatus for the conversion of color values
US583562720 May 199710 Nov 1998Higgins; Eric W.System and method for automatically optimizing image quality and processing time
Non-Patent Citations
Reference
1"Adaptive Error Diffusion And Its Application In Multiresolution Rendenring", P. W. Wong, pp. 1184-1196, Jul. 1996, IEEE Trans. On Image Processing, vol. 5, No. 7, IEEE.
2"Adaptive Threshold Modulation For Error Diffusion Halftoning", N. Damera-Venkata and B. L. Evans, pp. 104-116, Jan. 2001, IEEE Trans. On Image Processing, vol. 10, No. 1, IEEE.
3"Digital Halftoning", R. Ulichney, pp. 239-319, pp. 341, 1987, Cambridge, MA, MIT Press.
4"Digital Image Processing", R. C. Gonzalez and P. Wintz, pp. 119-126, 1977, Reading, MA, Addison-Wesley.
5"Digital Image Processing", W.K. Pratt, pp. 311-318, 1978, New York, NY, J. Wiley & Sons.
6"Threshold Modulation In Error Diffusion", K. T. Know and R. Eschbach,pp. 185-192, Jul. 1993, vol. 2, No. 3, SPIE.
7Bhukhanwala et al., "Automated Global Enhancement of Digitalized Photographs," IEEE Transactions on Consumer Electronics, Feb. 1994.
8Damera-Venkata et al., "Adaptive Threshold Modulation for Error Diffusion Halftoning," IEEE Trans. On Image Processing, 2001, 10(1), 104-116.
9EP Communication issued by the Examining Division Apr. 2, 2004, EP1392514.
10EP Communication issued by the Examining Division Jan. 11, 2006, EP1597911.
11EP Communication issued by the Examining Division Jul. 7, 2009, EP1374557.
12EP Communication issued by the Examining Division May 23, 2006, EP1597911.
13EP Communication issued by the Examining Division May 29, 2009, EP1479220.
14EPC Application No. 1393544: Communication issued by the Examining Division dated Jan. 15, 2009, 7 pages.
15EPC Application No. 1597911: Communication issued by the Examining Division dated May 26, 2010, 8 pages.
16Gonzalez et al., "Digital Image Processing," Addison-Wesley, 1977, 119-126.
17Hann, R.A. et al., "Chemical Technology in Printing and Imaging Systems", The Royal Society of Chemistry, Special Publication. 133 (1993), pp. 73-85.
18Hann, R.A. et al., "Dye Diffusion Thermal Transfer (D2T2) Color Printing", Journal of Imaging Technology., 16 (6). (1990), pp. 238-241.
19International Application No. PCT/US02/015913: International Search Report mailed Oct. 11, 2002, 2 pages.
20International Application No. PCT/US02/018528: International Search Report mailed Oct. 31, 2002, 3 pages.
21International Application No. PCT/US02/18528: International Preliminary Examination Report (IPER) dated Apr. 4, 2003, 2 pages.
22International Application No. PCT/US04/020981: International Search Report mailed Mar. 15, 2005, 6 pages.
23International Preliminary Examination Report (IPER) dated Jan. 29, 2003, PCT/US02/008954.
24International Preliminary Examination Report (IPER) dated Jun. 30, 2003, PCT/US02/015546.
25International Preliminary Examination Report (IPER) dated Sep. 17, 2003, PCT/US02/015913.
26International Preliminary Examination Report (IPER) issued Jan. 3, 2006, PCT/US04/020981.
27International Preliminary Examination Report (IPER) issued Sep. 2, 2005, PCT/US04/004964.
28Japanese Application No. 2003-501190: Notice of Reasons of Rejection dated Dec. 15, 2006, 5 pages.
29Japanese Application No. 2008-096460: Notice of Reasons of Rejection dated Jul. 30, 2010, 4 pages.
30Japanese Application No. 2008-213280: Notice of Reasons of Rejection dated Feb. 5, 2010, 6 pages.
31Kearns et al., "Algorithmic Stability and Sanity-Check Bounds for Leave-One-Out Cross-Validation," XP-002299710, Jan. 1997, 1-20.
32Know et al., "Threshold Modulation In Error Diffusion," SPIE, 1993, 2(3), 185-192.
33Pratt, W.K., "Digital Image Processing," Wiley & Sons, 1978, 311-318.
34Taguchi et al., "New Thermal Offset Printing Employing Dye Transfer Technology (Tandem TOP-D)," NIP17: International Conference on Digital Printing Technologies, Sep. 2001, vol. 17, pp. 499-503.
35Ulichney, R., "Digital Halftoning," MIT Press, 1987, 239-319 p. 341.
36United States Patent and Trademark Office: Final Office Action dated Dec. 4, 2006, U.S. Appl. No. 10/375,440, filed Feb. 27, 2003.
37United States Patent and Trademark Office: Final Office Action dated Jan. 28, 2009, U.S. Appl. No. 10/611,737, filed Jul. 1, 2003.
38United States Patent and Trademark Office: Final Office Action dated Jul. 9, 2009, U.S. Appl. No. 11/546,633, filed Oct. 12, 2006.
39United States Patent and Trademark Office: Final Office Action dated Sep. 12, 2008, U.S. Appl. No. 10/844,286, filed May 12, 2004.
40United States Patent and Trademark Office: Non-Final Office Action dated Jan. 30, 2009, U.S. Appl. No. 11/546,633, filed Oct. 12, 2006.
41United States Patent and Trademark Office: Non-Final Office Action dated Jul. 13, 2006, U.S. Appl. No. 10/375,440, filed Feb. 27, 2003.
42United States Patent and Trademark Office: Non-Final Office Action dated Jul. 31, 2009, U.S. Appl. No. 12/031,151, filed Feb. 14, 2008.
43United States Patent and Trademark Office: Non-Final Office Action dated Jun. 10, 2009, U.S. Appl. No. 10/611,737, filed Jul. 1, 2003.
44United States Patent and Trademark Office: Non-Final Office Action dated Jun. 18, 2008, U.S. Appl. No. 10/611,737, filed Jul. 1, 2003.
45United States Patent and Trademark Office: Non-Final Office Action dated Mar. 20, 2008, U.S. Appl. No. 10/844,286, filed May 12, 2005.
46United States Patent and Trademark Office: Non-Final Office Action dated May 21, 2009, U.S. Appl. No. 10/844,286, filed May 12, 2004.
47United States Patent and Trademark Office: Non-Final Office Action dated Nov. 14, 2007, U.S. Appl. No. 10/844,286, filed May 12, 2004.
48United States Patent and Trademark Office: Non-Final Office Action dated Nov. 29, 2004, U.S. Appl. No. 09/817,932, filed Mar. 27, 2001.
49United States Patent and Trademark Office: Non-Final Office Action dated Nov. 29, 2004, U.S. Appl. No. 09/870,537, filed May 30, 2001.
50United States Patent and Trademark Office: Non-Final Office Action dated Oct. 2, 2004, U.S. Appl. No. 10/080,833, filed Feb. 22, 2003.
51United States Patent and Trademark Office: Non-Final Office Action dated Oct. 4, 2007, U.S. Appl. No. 10/611,737, filed Jul. 1, 2003.
52United States Patent and Trademark Office: Non-Final Office Action dated Sep. 22, 2003, U.S. Appl. No. 10/078,644, filed Feb. 19, 2002.
53United States Patent and Trademark Office: Notice of Allowance dated Aug. 31, 2005, U.S. Appl. No. 09/817,932, filed Mar. 27, 2001.
54United States Patent and Trademark Office: Notice of Allowance dated Feb. 22, 2005, U.S. Appl. No. 10/078,644, filed Feb. 19, 2002.
55United States Patent and Trademark Office: Notice of Allowance dated May 29, 2007, U.S. Appl. No. 10/375,440, filed Feb. 27, 2003.
56United States Patent and Trademark Office: Notice of Allowance dated May 9, 2005, U.S. Appl. No. 09/870,537, filed May 30, 2001.
57United States Patent and Trademark Office: Notice of Allowance dated Sep. 23, 2004, U.S. Appl. No. 10/080,883, filed Feb. 22, 2003.
58United States Patent and Trademark Office: Notice of Allowance dated Sep. 6, 2007, U.S. Appl. No. 10/375,440, filed Feb. 27, 2003.
59United States Patent and Trademark Office: Restriction Requirement dated Jun. 29, 2007, U.S. Appl. No. 10/611,737, filed Jul. 1, 2003.
60United States Patent and Trademark Office: Restriction Requirement dated May 26, 2009, U.S. Appl. No. 11/546,633, filed Oct. 12, 2006.
61United States Patent and Trademark Office: Restriction Requirement dated Oct. 2, 2003, U.S. Appl. No. 10/080,883, filed Feb. 2, 2002.
62United States Patent and Trademark Office: Restriction Requirement dated Oct. 8, 2008, U.S. Appl. No. 11/546,633, filed Oct. 12, 2006.
63United States Patent and Trademark Office: Restriction Requirement dated Sep. 30, 2003, U.S. Appl. No. 10/078,644, filed Feb. 19, 2002.
64United States Patent and Trademark Office: Restriction Requirement dated Sep. 4, 2007, U.S. Appl. No. 10/844,286, filed May 12, 2004.
65United States Patent and Trademark Office: U.S. Appl. No. 12/031,151, filed Feb. 14, 2008, Bybell.
66Weston et al., "Adaptive Margin Support Vector Machines," Advances in Large Margin Classifiers, 2000, 281-296.
67Wong, P.W., "Adaptive Error Diffusion and Its Application in Multiresolution Rendering," IEEE Trans. On Image Processing, 1996, 5(7), 1184-1196.