[comp.graphics] Need Half-Toning Algorithm suited for HP-Laserjet

paul@ppgbms (Paul Evan Matz) (06/13/89)

        We are in the process of trying to print a grey-scaled image on
an HP-laserjet, which has an output characteristic of 300 dpi, monochrome.
The image file contains 8 bit/pixel grey scale values.  Although we can
get a printable image using NeWS to do the half-toning, it appears that
a half-toning algorithm used for a CRT display device isn't really cut out
for producing an image tailored for a 300 dpi output device.  Anyone out
there know of a public domain filter that may do this?  A posting or direct
email response would be much appreciated.

        (I did see the recent posting by Ed Falk, containing the two
dithering filters "odither.c" and "fsdither.c".  However, the real question
is, has anyone studied the characteristics of the HP-laserjet and tweeked
a half-toning algorithm accordingly?)

        Thanks (wishful thinking)
        Regards,

        Paul Matz
        PPG Biomedical Systems
        One Campus Drive
        Pleasantville, NY. 10570
        914-741-4685
        path ppgbms!moe!paul@philabs.philips.com

PS: Sorry if this gets posted twice.  Something is not quite right with
    my postnews.

paul@hpldola.HP.COM (Paul Bame) (06/24/89)

I've played with HP laserjet dithering before (logical, since I work for HP)
and have been very pleased with the standard dithers usually used on screens
most of the time.  The time when I was displeased was trying to have the
images look right at 300 dpi.  A test image, white on the left and changing
continuously to black on the right "appeared" wrong even though I counted
some pixels and they were correct (dithered with FS dithering).  I suspect
either or a combination of:

	1) Some phychovisual quirk which is really bad at 300dpi but not so
	   bad at <= 150dpi.  Even though the ratio of pixels is correct to
	   simulate a certain grey level, the perceived level is different
	   from the predicted one in my tests.  A possible solution I did
	   not try is to backlight the printout.  There are definite
	   perception differences between images made of emitted light
	   (CRTs) and those of reflected light (printers).  As a fun test of
	   this, try bringing up two terminal windows on a single
	   (moderately-high resolutio n) display using the same font.  Make
	   one Black on white and the other White on black.  They often
	   appear to be using slightly different fonts (e.g., the black font
	   on white appears "skinnier").  If you can get your printer to do
	   this same test (a window dump at a high dpi might work) you
	   should see the reverse happening.


	2) All laserjets are not equal.  There are adjustments which vary
	   contrast - especially in the LJ2000.



		-Paul Bame

cb@sequoia.UUCP (Christopher D. Brown) (06/29/89)

In article <11390020@hpldola.HP.COM> paul@hpldola.HP.COM (Paul Bame) writes:
>I've played with HP laserjet dithering before (logical, since I work for HP)
>and have been very pleased with the standard dithers usually used on screens
>most of the time.  The time when I was displeased was trying to have the
>images look right at 300 dpi.  A test image, white on the left and changing
>continuously to black on the right "appeared" wrong even though I counted
>some pixels and they were correct (dithered with FS dithering).  I suspect
>either or a combination of:
>
>	1) Some phychovisual quirk which is really bad at 300dpi but not so
   ...
>	2) All laserjets are not equal.  There are adjustments which vary
   ...

I'd like to add that, in a similar situation, I convinced myself of
the following:

        3) Laser printing uses a charge to attract toner.  When a
           pattern like "X X X X " (i.e. 50% grey) is printed at
           sufficiently high resolution, the area between the pixels
           behaves as though it is charged.  If the pattern "XX    XX"
           draws 4 units of toner, than the pattern "X X X X " draws
           5 or 6 units of toner.  I produced nearly linear results
           using dither patterns which avoid alternating pixels.  E.G.
           6 by 6 spiral.

Nice story ... Chris Brown

tuna@athena.mit.edu (Kirk 'UhOh' Johnson) (06/29/89)

In article <11390020@hpldola.HP.COM> paul@hpldola.HP.COM (Paul Bame) writes:
>I've played with HP laserjet dithering before (logical, since I work for HP)
>and have been very pleased with the standard dithers usually used on screens
>most of the time.  The time when I was displeased was trying to have the
>images look right at 300 dpi.  A test image, white on the left and changing
>continuously to black on the right "appeared" wrong even though I counted
>some pixels and they were correct (dithered with FS dithering).  I suspect
>either or a combination of:
>
>	1) Some phychovisual quirk which is really bad at 300dpi but not so
>          ..........
>
>	2) All laserjets are not equal.  There are adjustments which vary
>          ..........

i suspect neither of these is the likely cause of the problem. in the
early part of the _Digital Halftoning_ book by Ulichney (i'm not
positive of this name, but the book has been cited here fairly
recently), the author cites the importance of measuring the physical
reconstruction function of whatever display media you are using and
correcting for it when displaying to that media. he shows a rather
striking example laser-printed corrected and uncorrected images; the
corrected image looks _much_ better.

just what _is_ the physical reconstruction function, you ask? in the
case of the laser printer, if we print nothing, we get out white. call
this intensity 1.0. if we print all the dots ("turn all the pixels
on"), we get out black. call this intensity 0.0. by turning on a ratio
N of the dots (pixels), we are attempting to achieve perceived output
of intensity 1-N. unfortunately, beacuse of dot spacing, size, spread,
overlap, paper quality, and any number of other intangibles, even the
most careful setting of pixels at that ratio may not result in the
desired intensity level.

the physical reconstruction function is a function which maps pixel
ratios (N in the above example) to the actual resulting intensity
level (presumably measured by some type of light-gathering equipment)
for the display media in question. given a desired output intensity,
the inverse of the reconstruction function can be used to determine
what pixel ratio should be used to achieve that intensity.

note that different printers, video displays, etc. are likely to have
different physical reconstruction functions.

i've never actually gotten around to tracking down the hardware for
measuring reconstruction functions myself, but the book does claim
(and, for one example, show) pretty dramatic improvement, as i recall.

unfortunately, i've loaned my copy of the book to a friend, so this is
all off the top of my head. anybody wanting more details should feel
free to drop me e-mail, at which point i can try to track down more
precise info.

kirk

cliff@ficc.uu.net (cliff click) (06/30/89)

In article <578@sequoia.UUCP>, cb@sequoia.UUCP (Christopher D. Brown) writes:
>         3) Laser printing uses a charge to attract toner.  When a
>            pattern like "X X X X " (i.e. 50% grey) is printed at
>            sufficiently high resolution, the area between the pixels
>            behaves as though it is charged.  If the pattern "XX    XX"
>            draws 4 units of toner, than the pattern "X X X X " draws
>            5 or 6 units of toner.  I produced nearly linear results
>            using dither patterns which avoid alternating pixels.  E.G.
>            6 by 6 spiral.

I worked with a company producing a 1200dpi laser printer.  At those
resolutions most dither patterns fail due to:

1) Beating with 60Hz jitter inherent with the driver motor,

2) This pixel/pattern charge problem related above,

3) The non-linearity of how the eye perceives greyshade,

4) The extreme sensitivity of the eye for picking out repeating patterns.

Producing a "nice" set of dithers used some parts of trig & set theory, and
some parts of black magic.  They (the company producing the laser printer)
consider their dithers as very propriatery (sic).  Simple greyshade dithers
are not very simple.

-- 
Cliff Click, Software Contractor at Large
Business: uunet.uu.net!ficc!cliff, cliff@ficc.uu.net, +1 713 274 5368 (w).
Disclaimer: lost in the vortices of nilspace...       +1 713 568 3460 (h).