summaryrefslogtreecommitdiff
path: root/doc/developer/reference-html/c1968.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/developer/reference-html/c1968.html')
-rw-r--r--doc/developer/reference-html/c1968.html99
1 files changed, 51 insertions, 48 deletions
diff --git a/doc/developer/reference-html/c1968.html b/doc/developer/reference-html/c1968.html
index ad12784..e03ce26 100644
--- a/doc/developer/reference-html/c1968.html
+++ b/doc/developer/reference-html/c1968.html
@@ -1,24 +1,27 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Dithering</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="The Developer's Guide to Gutenprint"
-HREF="book1.html"><LINK
+HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Weaving algorithms"
HREF="x1734.html"><LINK
REL="NEXT"
TITLE="GNU General Public License"
-HREF="gpl.html"><META
-http-equiv="Content-Type"
-content="text/html; charset=UTF-8"></HEAD
+HREF="a2122.html"></HEAD
><BODY
CLASS="chapter"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
@@ -53,7 +56,7 @@ WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="gpl.html"
+HREF="a2122.html"
ACCESSKEY="N"
>Next</A
></TD
@@ -102,9 +105,9 @@ CLASS="filename"
CLASS="variablelist"
><DL
><DT
-><VAR
+><TT
CLASS="literal"
->dither_fastblack</VAR
+>dither_fastblack</TT
></DT
><DD
><P
@@ -116,9 +119,9 @@ CLASS="literal"
</P
></DD
><DT
-><VAR
+><TT
CLASS="literal"
->dither_black</VAR
+>dither_black</TT
></DT
><DD
><P
@@ -129,9 +132,9 @@ CLASS="literal"
</P
></DD
><DT
-><VAR
+><TT
CLASS="literal"
->dither_cmyk</VAR
+>dither_cmyk</TT
></DT
><DD
><P
@@ -146,7 +149,7 @@ CLASS="literal"
><P
>&#13; There is a choice of dithering algorithms. Four of them are
based on a basic error diffusion, with a few tweaks of my own.
- The other one is ‘ordered’. However, they all share
+ The other one is &#8216;ordered&#8217;. However, they all share
the basic operation in common. First, the algorithm picks what
kind of dot (if there are multiple dot sizes and/or tones that
may be picked) is the candidate to be printed. This decision is
@@ -183,7 +186,7 @@ CLASS="literal"
</P
><P
>&#13; Error diffusion works by taking the output error at a given
- pixel and “diffusing” it into surrounding pixels.
+ pixel and &#8220;diffusing&#8221; it into surrounding pixels.
Output error is the difference between the amount of ink output
and the input level at each pixel. For simple printers, with
one or four ink colors and only one dot size, the amount of ink
@@ -205,7 +208,7 @@ CLASS="literal"
</P
><P
>&#13; There are two sub-classes of error diffusion that we use here,
- ‘random’ and ‘hybrid’. One of the
+ &#8216;random&#8217; and &#8216;hybrid&#8217;. One of the
techniques that we use to ameliorate the artifacts is to use a
fuzzy threshold rather than the hard threshold of half of the
output level. Random error diffusion uses a pseudo-random
@@ -216,7 +219,7 @@ CLASS="literal"
</P
><P
>&#13; There is one additional variant (on both sub-classes), called
- ‘adaptive hybrid’ and ‘adaptive random’.
+ &#8216;adaptive hybrid&#8217; and &#8216;adaptive random&#8217;.
The adaptive variant takes advantage of the fact that the
patterns that ordered dithering create are less visible at very
low densities, while the artifacts created by error diffusion
@@ -237,7 +240,7 @@ CLASS="literal"
>&#13; The next question: how do we handle black when printing in
color? Black ink is much darker than colored inks. It's
possible to produce black by adding some mixture of cyan,
- magenta, and yellow—in principle. In practice, the black
+ magenta, and yellow&#8212;in principle. In practice, the black
really isn't very black, and different inks and different papers
will produce different color casts. However, by using CMY to
produce gray, we can output a lot more dots! This makes for a
@@ -322,7 +325,7 @@ TYPE="1"
></LI
><LI
><P
->&#13; Compute the “virtual value”. The virtual value
+>&#13; Compute the &#8220;virtual value&#8221;. The virtual value
is the distance between the value of the lighter and the
value of the darker ink. So if the value of the light ink
is 32768 and the dark ink is 65536, we compute a virtual
@@ -363,7 +366,7 @@ HREF="mailto:ttonino@bio.vu.nl"
requires careful selection of initial points to achieve good
results, and is very time consuming. For best results, a
different matrix must be used for modes with 2:1 aspect ratio
- (e.g. 1440×720) than for 1:1 (e. g. 720×720). It is
+ (e.g. 1440720) than for 1:1 (e. g. 720720). It is
essential with any of these matrices that every point be used.
Skipping points generates low-frequency noise.
</P
@@ -482,16 +485,16 @@ CLASS="emphasis"
></LI
><LI
><P
->&#13; Oversampling. This is how to print 1440×720 with Epson
- Stylus printers. Printing full density at 1440×720 will
+>&#13; Oversampling. This is how to print 1440720 with Epson
+ Stylus printers. Printing full density at 1440720 will
result in excess ink being laid down. The trick is to print
only every other dot. We still compute the error as though we
printed every dot. It turns out that randomizing which dots
are printed results in very speckled output. This can be
- taken too far; oversampling at 1440×1440 or
- 1440×2880 virtual resolution results in other problems.
- However, at present 1440×1440 (which is more accurately
- called "1440×720 enhanced", as the Epson printers cannot
+ taken too far; oversampling at 14401440 or
+ 14402880 virtual resolution results in other problems.
+ However, at present 14401440 (which is more accurately
+ called "1440720 enhanced", as the Epson printers cannot
print 1440 rows per inch) does quite well, although it's slow.
</P
></LI
@@ -816,23 +819,23 @@ CLASS="function"
CLASS="function"
>dither_set_X_ranges_simple</CODE
>
- (<VAR
+ (<TT
CLASS="literal"
->X</VAR
-> = <VAR
+>X</TT
+> = <TT
CLASS="literal"
->c</VAR
+>c</TT
>,
- <VAR
+ <TT
CLASS="literal"
->m</VAR
->, <VAR
+>m</TT
+>, <TT
CLASS="literal"
->y</VAR
+>y</TT
> or
- <VAR
+ <TT
CLASS="literal"
->k</VAR
+>k</TT
>) describes the ink choices available
for each color. This is useful in typical cases where a
four color printer with variable dot sizes is in use. It is
@@ -861,23 +864,23 @@ CLASS="function"
CLASS="function"
>dither_set_X_ranges</CODE
>
- (<VAR
+ (<TT
CLASS="literal"
->X</VAR
-> = <VAR
+>X</TT
+> = <TT
CLASS="literal"
->c</VAR
+>c</TT
>,
- <VAR
+ <TT
CLASS="literal"
->m</VAR
->, <VAR
+>m</TT
+>, <TT
CLASS="literal"
->y</VAR
+>y</TT
> or
- <VAR
+ <TT
CLASS="literal"
->k</VAR
+>k</TT
>) describes in a more general way the
ink choices available for each color. For each possible ink
choice, a bit pattern, dot size, value (i. e. relative
@@ -912,7 +915,7 @@ WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
-HREF="book1.html"
+HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
@@ -921,7 +924,7 @@ WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
-HREF="gpl.html"
+HREF="a2122.html"
ACCESSKEY="N"
>Next</A
></TD