ntwain/Spec/Kodak/TWAIN_DualStream.htm
2014-04-15 20:05:44 -04:00

995 lines
44 KiB
HTML
Raw Blame History

<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=Generator content="Microsoft Word 10 (filtered)">
<title>Single Document Multiple Images</title>
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
h1
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
text-align:justify;
page-break-before:always;
page-break-after:avoid;
font-size:18.0pt;
font-family:"Times New Roman";}
h2
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:0in;
page-break-after:avoid;
font-size:14.0pt;
font-family:"Times New Roman";}
h3
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Times New Roman";}
h4
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
page-break-after:avoid;
font-size:14.0pt;
font-family:"Times New Roman";}
p.MsoBodyText2, li.MsoBodyText2, div.MsoBodyText2
{margin-top:0in;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:0in;
line-height:200%;
font-size:12.0pt;
font-family:"Times New Roman";}
p.MsoBodyText3, li.MsoBodyText3, div.MsoBodyText3
{margin-top:0in;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:0in;
font-size:8.0pt;
font-family:"Times New Roman";}
pre
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
p.style4, li.style4, div.style4
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
text-align:justify;
page-break-before:always;
page-break-after:avoid;
font-size:18.0pt;
font-family:"Times New Roman";
font-weight:bold;}
p.style2, li.style2, div.style2
{margin-top:6.0pt;
margin-right:0in;
margin-bottom:6.0pt;
margin-left:0in;
page-break-after:avoid;
font-size:14.0pt;
font-family:"Times New Roman";
font-weight:bold;
font-style:italic;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
{page:Section1;}
/* List Definitions */
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
</head>
<body lang=EN-US>
<div class=Section1>
<p class=MsoNormal><b><span style='font-family:Arial'>Single Document Multiple
Images</span></b></p>
<p class=MsoNormal>25-Aug-2004</p>
<p class=MsoNormal>Updated: 15-Aug-2006</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal><b><span style="font-family: Arial">Table of Contents</span></b></p>
<blockquote>
<p class=MsoNormal><b><span style='font-family:Arial'><a href="#OVERVIEW">Overview</a></span></b></p>
<p class=MsoNormal><font size="3"><b><span style="font-family: Arial">
<a href="#ICAP_PIXELTYPE_and_DAT_FILESYSTEM_Overview">ICAP_PIXELTYPE and
DAT_FILESYSTEM Overview</a></span></b></font></p>
<p class=MsoNormal><b><span
style='font-size:12.0pt;font-family:Arial'><a href="#ICAP_PIXELTYPE">
ICAP_PIXELTYPE</a></span></b></p>
<p class=MsoNormal><b><span
style='font-size:12.0pt;font-family:Arial'><a href="#DAT_FILESYSTEM">DAT_FILESYSTEM</a></span></b></p>
<p class=MsoNormal><b><span
style='font-size:12.0pt;font-family:Arial'>
<a href="#DAT_FILESYSTEM_vs._ICAP_PIXELTYPE">DAT_FILESYSTEM vs. ICAP_PIXELTYPE</a></span></b></p>
<p class=MsoNormal><b><span
style='font-size:12.0pt;font-family:Arial'>
<a href="#CAP_CAMERAENABLE_vs._CAP_DUPLEXENABLED">CAP_CAMERAENABLE vs. CAP_DUPLEXENABLED</a></span></b></p>
<p class=MsoNormal><b><span
style='font-size:12.0pt;font-family:Arial'><a href="#CAP_CAMERAORDER">CAP_CAMERAORDER</a></span></b></p>
<p class=MsoNormal><font size="3"><b><span style="font-family: Arial">
<a href="#Entire_session_(i.e._machine)_vs._a_single_camera">Entire session
(i.e. machine) vs. a single &quot;camera&quot;</a></span></b></font></p>
<p class=MsoNormal><b><span
style='font-size:12.0pt;font-family:Arial'><a href="#METADATA">METADATA</a></span></b></p>
</blockquote>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal><b><span style='font-family:Arial'><a name="OVERVIEW">Overview</a></span></b></p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>This document talks about the Single Document Multiple
Images (SDMI) behavior in TWAIN, describing how it is negotiated and what
additional metadata associated with the image needs to be collected during
image capture.&nbsp; Since this is a moderately complex subject a number of
other capabilities that have uses beyond SDMI will be discussed as well.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>SDMI behavior is easy to view graphically:</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>Original<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Color<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Bitonal</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>Document<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Image<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Image</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>+-------+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
+-------+<2B><> +-------+</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>|<7C><><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>|<7C> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<7C><><EFBFBD> <20><><EFBFBD>|<7C><> |<7C><><EFBFBD> <20><><EFBFBD>|</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>|<7C><> <b><span
style='color:red'>R</span></b> <20><>|<7C><> <20><><EFBFBD><EFBFBD><EFBFBD>|<7C><> <b><span style='color:red'>R</span></b>
<EFBFBD><EFBFBD>|<7C><> |<7C><> <b>R</b> <20><>|</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>|<7C><> <20><><EFBFBD><EFBFBD>|<7C>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<7C><> <20><><EFBFBD><EFBFBD>|<7C><> |<7C><> <20><><EFBFBD><EFBFBD>|</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>|<7C><> <b><span
style='color:lime'>G</span> </b><EFBFBD><EFBFBD>| <20>---&gt;<EFBFBD> |<7C><> <b><span style='color:lime'>G</span>
</b><EFBFBD><EFBFBD>| + |<7C><> <b>G </b><EFBFBD><EFBFBD>|</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>|<7C><> <20><><EFBFBD><EFBFBD>|<7C><><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<7C><> <20><><EFBFBD><EFBFBD>|<7C><> |<7C><> <20><><EFBFBD><EFBFBD>|</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>|<7C><> <b><span
style='color:blue'>B</span> <20></b><EFBFBD>|<7C> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<7C><> <b><span style='color:blue'>B</span>
<EFBFBD></b><EFBFBD>|<7C><> |<7C><> <b>B <20></b><EFBFBD>|</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>|<7C><><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>|<7C><> <20><><EFBFBD><EFBFBD><EFBFBD>|<7C><><EFBFBD> <20><><EFBFBD>|<7C><> |<7C><><EFBFBD> <20><><EFBFBD>|</span></p>
<pre><span style='font-size:8.0pt'>+-------+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> +-------+<2B><> +-------+</span></pre><pre><span
style='font-size:8.0pt'>&nbsp;</span></pre>
<p class=MsoNormal>In this example a color document results in the capture of
two images, one that is color and one that is bitonal (black &amp; white). Configurations of
this form have a variety of applications, but the most common is when the
application needs a faithful replication of the document for archival purposes
and an image suitable for data collection, such as OCR.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>SDMI puts no limit on the number of images that can result
from a document.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>SDMI is not the same as image segmentation.&nbsp; Image
segmentation divides a document into sub-images that are optimized for quality
and compression.&nbsp; In this example the driver could save the text images as
Group-4 and the picture as JPEG:</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>Original</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>Document</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>+-------+</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>| a
bit |<7C> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Segment 1<><31> Segment 2<><32> Segment 3</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>|of
text|<7C><> <20><><EFBFBD><EFBFBD><EFBFBD>Text<78><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Picture<72><65><EFBFBD><EFBFBD> Text</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>| <span
style='color:#CC99FF'>$#$#$</span> |<7C> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+-------+<2B><> +-------+<2B><> +-------+</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>| <span
style='color:#CC99FF'>#$#$#</span> | <20>---&gt;<EFBFBD> | a bit |<7C><> | <span
style='color:#CC99FF'>#$#$#</span> |<7C><> | more <20>|</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>| <span
style='color:#CC99FF'>$#$#$</span> |<7C><><EFBFBD> <20><><EFBFBD><EFBFBD>|of text| + | <span
style='color:#CC99FF'>#$#$#</span> | + | text <20>|</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>|
more <20>|<7C> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+-------+<2B><> | <span style='color:#CC99FF'>#$#$#</span> |<7C><> +-------+</span></p>
<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>| text<78>
|<7C><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+-------+</span></p>
<pre><span style='font-size:8.0pt'>+-------+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></pre><pre>&nbsp;</pre>
<p class=MsoNormal>Image segmentation is typically used to efficiently store
images.&nbsp; SDMI is used to capture images that are then directed to
different parts of the workflow.&nbsp; It is possible to mix image segmentation
with SDMI (ex: using image segmentation to produce the faithful replication
image).&nbsp; The two technologies have different goals, though, so it<69>s not
advisable to use one to replace the other.</p>
<pre>&nbsp;</pre>
<pre>&nbsp;</pre><pre>&nbsp;</pre><pre><font size="3"><b><span style="font-family: Arial"><a name="ICAP_PIXELTYPE_and_DAT_FILESYSTEM_Overview">ICAP_PIXELTYPE and DAT_FILESYSTEM Overview</a></span></b></font></pre>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>TWAIN did not start with duplex scanning built into the
standard; this was added in version 1.7.&nbsp; So prior to 1.7
<a href="#ICAP_PIXELTYPE">ICAP_PIXELTYPE</a> selected the pixel type (i.e. color
vs. grayscale vs. bitonal) for the entire session. This could also be considered
the &quot;color space&quot;. An application could configure a driver to output
color or grayscale or bitonal images, but only one of the three, so you can not
get multiple images for a side via ICAP_PIXELTYPE. </p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>TWAIN 1.8 introduced <a href="#DAT_FILESYSTEM">DAT_FILESYSTEM</a>.&nbsp; This
allows an application to setup multiple images for a side. It also
helps support setting of different values for the front and rear. For example,
getting color on the front and grayscale on the rear.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>To help maintain backwards compatibility, ICAP_PIXELTYPE needs to
continue to apply to the entire session. This means ICAP_PIXELTYPE should
never be negotiated with DAT_FILESYSTEM.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>&nbsp;</p>
<pre><b><span
style='font-size:12.0pt;font-family:Arial'><a name="ICAP_PIXELTYPE">ICAP_PIXELTYPE</a></span></b></pre><pre><span
style='font-family:Arial'>&nbsp;</span></pre>
<p class=MsoNormal>Setting ICAP_PIXELTYPE will set both the front and rear
images to the given TWPT_ value and automatically set CAP_DUPLEXENABLED to true.
Use ICAP_BITDEPTH to determine how many bits make a single pixel, such as 8 for 8-bit
grayscale or 24 for 3-channel/8-bits-per-channel RGB.&nbsp; </p><pre>&nbsp;</pre>
<pre>&nbsp;</pre>
<pre>&nbsp;</pre>
<pre><b><span
style='font-size:12.0pt;font-family:Arial'><a name="DAT_FILESYSTEM">DAT_FILESYSTEM</a></span></b></pre><pre><span
style='font-family:Arial'>&nbsp;</span></pre>
<p class=MsoNormal>DAT_FILESYSTEM addresses individual <20>cameras<61>.&nbsp; The term <20>camera<72> doesn<73>t
mean that the image capture device uses a camera; rather it<69>s a generic term
for an image capture source.&nbsp; DAT_FILESYSTEM calls the front side of the
paper as the 'top' &quot;camera&quot;, and the rear as 'bottom'. This doesn't have
anything to do with the physical position of the camera, it is being used to describe what the user
considers the top (i.e. front) of the sheet of paper versus the bottom (i.e. rear).</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>The driver will output images based on CAP_CAMERAENABLED. So
while a &quot;camera&quot; can be individually set via DAT_FILESYSTEM, you must also set
CAP_CAMERAENABLED to true for each &quot;camera&quot; you want the driver to actually
produce.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>The values for DAT_FILESYSTEM are typically:</p>
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0
style='border-collapse:collapse' id="table1">
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'><pre>Camera name</pre></td>
<td width=150 valign=top style='width:112.8pt;border:solid windowtext 1.0pt;
border-left:none;background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'><pre>Side</pre></td>
<td width=150 valign=top style='width:112.8pt;border:solid windowtext 1.0pt;
border-left:none;background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'><pre>Image</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'><pre>/Camera_Color_Top</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>front</td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt' align="left">color or grayscale</td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'><pre>/Camera_Color_Bottom</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>rear</td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt' align="left">color or grayscale</td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'><pre>/Camera_Color_Both</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>front and rear</td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt' align="left">color or grayscale</td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'><pre>/Camera_Bitonal_Top</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>front</td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt' align="left">bitonal</td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'><pre>/Camera_Bitonal_Bottom</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>rear</td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt' align="left">bitonal</td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'><pre>/Camera_Bitonal_Both</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>front and rear</td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt' align="left">bitonal</td>
</tr>
</table>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>Using a camera that ends in '_Both' means future settings
will be applied to both the front and rear images.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal><a href="TWAIN_FileSystem.htm">Sample source code</a></p>
<pre>&nbsp;</pre>
<pre>&nbsp;</pre>
<p class=MsoNormal>&nbsp;</p><pre><b><span
style='font-size:12.0pt;font-family:Arial'><a name="DAT_FILESYSTEM_vs._ICAP_PIXELTYPE">DAT_FILESYSTEM vs. ICAP_PIXELTYPE</a></span></b></pre><pre>&nbsp;</pre>
<p class=MsoNormal>If DAT_FILESYSTEM is set, then ICAP_PIXELTYPE must
reflect the current value of the &quot;camera&quot;.&nbsp; For instance, if DAT_FILESYSTEM
is set to /Camera_Color_Both, then ICAP_PIXELTYPE should be set to TWPT_RGB
(this is a basic sanity check for the driver to prevent DAT_FILESYSTEM and ICAP_PIXELTYPE from ever reporting conflicting values).</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>However, if ICAP_PIXELTYPE is set, then the following things
must happen to DAT_FILESYSTEM and CAP_CAMERAENABLE:</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal style='margin-left:.5in'>If ICAP_PIXELTYPE is set to
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
TWPT_RGB</p>
<p class=MsoNormal style='margin-left:.5in'>DAT_FILESYSTEM changes to
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /Camera_Color_Both</p>
<p class=MsoNormal style='margin-left:.5in'>CAP_CAMERAENABLE changes to:</p>
<p class=MsoNormal style='margin-left:1.0in'>/Camera_Color_Top:&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
TRUE</p>
<p class=MsoNormal style='margin-left:1.0in'>/Camera_Color_Bottom:&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
TRUE</p>
<p class=MsoNormal style='margin-left:1.0in'>/Camera_Bitonal_Top:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FALSE</p>
<p class=MsoNormal style='margin-left:1.0in'>/Camera_Bitonal_Bottom:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FALSE</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal style='margin-left:.5in'>If ICAP_PIXELTYPE is set to
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
TWPT_BW</p>
<p class=MsoNormal style='margin-left:.5in'>DAT_FILESYSTEM changes to
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /Camera_Bitonal_Both</p>
<p class=MsoNormal style='margin-left:.5in'>CAP_CAMERAENABLE changes to:</p>
<p class=MsoNormal style='margin-left:1.0in'>/Camera_Color_Top:&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FALSE</p>
<p class=MsoNormal style='margin-left:1.0in'>/Camera_Color_Bottom:&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FALSE</p>
<p class=MsoNormal style='margin-left:1.0in'>/Camera_Bitonal_Top:&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRUE</p>
<p class=MsoNormal style='margin-left:1.0in'>/Camera_Bitonal_Bottom:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRUE</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>The behavior guarantees that older applications and newer
applications can work with the same driver.&nbsp; Application writers need to
decide if they want to use ICAP_PIXELTYPE or DAT_FILESYSTEM
when negotiating with a particular driver, never use both together.&nbsp; As a
guideline, if DAT_FILESYSTEM are supported by a driver, use them,
since they offer more functionality than ICAP_PIXELTYPE.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>&nbsp;</p>
<pre><b><span
style='font-size:12.0pt;font-family:Arial'><a name="CAP_CAMERAENABLE_vs._CAP_DUPLEXENABLED">CAP_CAMERAENABLE vs. CAP_DUPLEXENABLED</a></span></b></pre><pre>&nbsp;</pre>
<p class=MsoNormal>Care needs to be taken when mixing CAP_CAMERAENABLE and
CAP_DUPLEXENABLED. The recommendation is to use one or the other. Here is an
example of the interdependency:</p>
<blockquote>
<p class=MsoNormal>Table-1 shows an example of creating one color and one
bitonal image from the front of every sheet of paper fed during the scanning
session. In this case, CAP_DUPLEXENABLED would have been set to False.</p>
<pre>&nbsp;</pre>
<pre>Table-1</pre>
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0
style='border-collapse:collapse' id="table2">
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'>
<pre>DAT_FILESYSTEM</pre></td>
<td width=150 valign=top style='width:112.8pt;border:solid windowtext 1.0pt;
border-left:none;background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'>
<pre>CAP_CAMERAENABLE</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<pre>/Camera_Color_Top</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<pre style='text-align:center'>TRUE</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<pre>/Camera_Color_Bottom</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<pre style='text-align:center'>FALSE</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<pre>/Camera_Bitonal_Top</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<pre style='text-align:center'>TRUE</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<pre>/Camera_Bitonal_Bottom</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<pre style='text-align:center'>FALSE</pre></td>
</tr>
</table>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>If the application then sets CAP_DUPLEXENABLED to True, we
would expect the table to change to the following:</p>
<pre>&nbsp;</pre>
<pre>Table-2</pre>
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0
style='border-collapse:collapse'>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'>
<pre>DAT_FILESYSTEM</pre></td>
<td width=150 valign=top style='width:112.8pt;border:solid windowtext 1.0pt;
border-left:none;background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'>
<pre>CAP_CAMERAENABLE</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<pre>/Camera_Color_Top</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<pre style='text-align:center'>TRUE</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<pre>/Camera_Color_Bottom</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<pre style='text-align:center'>TRUE</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<pre>/Camera_Bitonal_Top</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<pre style='text-align:center'>TRUE</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<pre>/Camera_Bitonal_Bottom</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<pre style='text-align:center'>TRUE</pre></td>
</tr>
</table>
</blockquote>
<pre>&nbsp;</pre>
<p class=MsoNormal>NOTE: Rear only scanning is considered to be a special duplex
operation.&nbsp; So for the following table CAP_DUPLEXENABLED would be True:</p>
<blockquote>
<pre>Table-3</pre>
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0
style='border-collapse:collapse'>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'>
<pre>DAT_FILESYSTEM</pre></td>
<td width=150 valign=top style='width:112.8pt;border:solid windowtext 1.0pt;
border-left:none;background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'>
<pre>CAP_CAMERAENABLE</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<pre>/Camera_Color_Top</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<pre style='text-align:center'>FALSE</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<pre>/Camera_Color_Bottom</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<pre style='text-align:center'>TRUE</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<pre>/Camera_Bitonal_Top</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<pre style='text-align:center'>FALSE</pre></td>
</tr>
<tr>
<td width=190 valign=top style='width:142.8pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<pre>/Camera_Bitonal_Bottom</pre></td>
<td width=150 valign=top style='width:112.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<pre style='text-align:center'>TRUE</pre></td>
</tr>
</table>
</blockquote>
<pre>&nbsp;</pre>
<pre>&nbsp;</pre>
<pre><b><span
style='font-size:12.0pt;font-family:Arial'><a name="CAP_CAMERAORDER">CAP_CAMERAORDER</a></span></b></pre><pre>&nbsp;</pre>
<p class=MsoNormal>The output order of the images can be adjusted using
CAP_CAMERAORDER (using the CAP_CAMERA TWCM_*_BOTH values).&nbsp; This is a TW_ARRAY
container that has the name of each of the cameras in the order they will be
transferred from the driver to the application.&nbsp; For example, if
CAP_CAMERAORDER is set to TWCM_BW_BOTH TWCM_CL_BOTH, then the bitonal image
will be transferred before the color image.&nbsp; For a duplex session this
would look like the following:</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bitonal Front</p>
<p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color Front</p>
<p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bitonal Rear</p>
<p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color Rear</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>To simplify the validation rules between CAP_CAMERAENABLED and
CAP_CAMERAORDER do the following:</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal style='margin-left:.5in'>1)<span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;
</span>If CAP_CAMERAORDER includes a &quot;camera&quot; that is set to False, then the
driver will ignore it.</p>
<p class=MsoNormal style='margin-left:.5in'>2)<span style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;
</span>If CAP_CAMERAORDER does not include a &quot;camera&quot; that is set to True,
then the driver is free to output the images in whatever ordering it wants.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>&nbsp;</p>
<pre>&nbsp;</pre>
<pre><font size="3"><b><span style="font-family: Arial"><a name="Entire_session_(i.e._machine)_vs._a_single_camera">Entire session (i.e. machine) vs. a single &quot;camera&quot;</a></span></b></font></pre><pre><span
style='font-family:Arial'>&nbsp;</span></pre>
<p class=MsoNormal>The addition of independent front and rear capability
negotiation immediately raises the question: which capabilities belong to the
machine (like CAP_DUPLEX) and which ones belong to a &quot;camera&quot; (like CAP_COMPRESSION).&nbsp; There is no easy answer to this, since the hardware of
the device dictates the capabilities.&nbsp; For instance scanner ABC may allow
independent selection of ICAP_COMPRESSION for front and rear cameras because
the designers put in dedicated compression chips for each side.&nbsp; Whereas
scanner XYZ, in an effort to save costs, only used one chip for this operation,
and they have no way to independently set the front from the rear for this one
capability.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>So, to help figure out where each capability goes, Kodak
scanners have enhancement DG_CONTROL / DAT_CAPABILITY /
MSG_QUERYSUPPORT with additional TWQC_ flags:</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal style='margin-left:.5in'>
<span style='font-size:10.0pt;
font-family:"Courier New";color:blue'>#define</span><span style='font-size:
10.0pt;font-family:"Courier New"'> TWQC_MACHINE&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x1000&nbsp;&nbsp;&nbsp; // applies to
entire session/machine</span></p>
<p class=MsoNormal style='margin-left:.5in'>
<span style='font-size:10.0pt;
font-family:"Courier New";color:blue'>#define</span><span style='font-size:
10.0pt;font-family:"Courier New"'> TWQC_BITONAL&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;0x2000&nbsp;&nbsp;&nbsp; // applies to Bitonal &quot;cameras&quot;</span></p>
<p class=MsoNormal style='margin-left:.5in'>
<span style='font-size:10.0pt;
font-family:"Courier New";color:blue'>#define</span><span style='font-size:
10.0pt;font-family:"Courier New"'> TWQC_COLOR&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;0x4000&nbsp;&nbsp;&nbsp; // applies to Color &quot;cameras&quot;</span></p>
<blockquote>
<p class=MsoNormal>A
capability cannot mix TWQC_MACHINE with any of the other items listed above; otherwise all
combinations are valid (e.g. a capability could have TWQC_BITONAL and TWQC_COLOR).</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>Capabilities
that describe themselves as TWQC_MACHINE are accessible at all times,
regardless of the current setting of DAT_FILESYSTEM.&nbsp; This
means that a capability like CAP_DUPLEXENABLED can always be negotiated, (i.e.,
even if the current camera is set to something like /Camera_Bitonal_Rear).</p>
</blockquote>
<pre>&nbsp;</pre><pre>&nbsp;</pre><pre><b><span
style='font-size:12.0pt;font-family:Arial'><a name="METADATA">METADATA</a></span></b></pre><pre>&nbsp;</pre>
<p class=MsoNormal>Metadata is the descriptive data that accompanies an
image.&nbsp; TWAIN has two primary ways of communicating this information to an
application: DAT_IMAGEINFO and DAT_EXTIMAGEINFO.&nbsp; Since DAT_EXTIMAGEINFO
is extensible it<69>s the only way to introduce new metadata items to the TWAIN
specification without creating a new DAT operation (and we don<6F>t really need
any more of those right now).</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>SDMI presents a bit of a problem for the application because
the stream of images makes it difficult to tell which ones go with which
document.&nbsp; This problem becomes compounded with things like
automatic color detection (imagine not knowing if the
application will get color or bitonal data on the next image).</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>Since the problem takes the form of a lack-of-communication
problem, the solution is more data.&nbsp; With the Kodak drivers the following
additional items are added to the list of DAT_EXTIMAGEINFO fields:</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#define</span><span
style='font-size:10.0pt;font-family:"Courier New"'>
TWEI_HDR_PAGESIDE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x8001</span></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#define</span><span
style='font-size:10.0pt;font-family:"Courier New"'>
TWEI_HDR_IMAGENUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x8017</span></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#define</span><span
style='font-size:10.0pt;font-family:"Courier New"'>
TWEI_HDR_PAGENUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x8018</span></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>#define</span><span
style='font-size:10.0pt;font-family:"Courier New"'> TWEI_HDR_PAGEIMAGENUMBER&nbsp;&nbsp;
0x8019</span></p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>TWEI_HDR_PAGESIDE returns 0 for a front image and 1 for a
rear image.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>TWEI_HDR_IMAGENUMBER counts from 1 to 2^32-1 the number of
images captured since the application first MSG_OPENDS<44>d the driver.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>TWEI_HDR_PAGENUMBER counts from 1 to 2^32-1 the number of
pages of paper captures since the application first MSG_OPENDS<44>d the driver.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>TWEI_HDR_PAGEIMAGENUMBER counts from 1 to the number of
images captured from the document.&nbsp; For instance, given an SDMI session
where the driver is transferring a color and a bitonal image for the front and
a bitonal image for the rear we get the following sequence:</p>
<p class=MsoNormal>&nbsp;</p>
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0
style='border-collapse:collapse'>
<tr>
<td width=71 valign=top style='width:53.6pt;border:solid windowtext 1.0pt;
background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal>Image</p>
</td>
<td width=84 valign=top style='width:63.0pt;border:solid windowtext 1.0pt;
border-left:none;background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal>Page Side</p>
</td>
<td width=108 valign=top style='width:81.0pt;border:solid windowtext 1.0pt;
border-left:none;background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal>Image Number</p>
</td>
<td width=108 valign=top style='width:81.0pt;border:solid windowtext 1.0pt;
border-left:none;background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal>Page Number</p>
</td>
<td width=132 valign=top style='width:99.0pt;border:solid windowtext 1.0pt;
border-left:none;background:#E0E0E0;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal>PageImageNumber</p>
</td>
</tr>
<tr>
<td width=71 valign=top style='width:53.6pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal>Color</p>
</td>
<td width=84 valign=top style='width:63.0pt;border-top:none;border-left:none;
border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>Front</p>
</td>
<td width=108 valign=top style='width:81.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>1</p>
</td>
<td width=108 valign=top style='width:81.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>1</p>
</td>
<td width=132 valign=top style='width:99.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>1</p>
</td>
</tr>
<tr>
<td width=71 valign=top style='width:53.6pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal>Bitonal</p>
</td>
<td width=84 valign=top style='width:63.0pt;border-top:none;border-left:none;
border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>Front</p>
</td>
<td width=108 valign=top style='width:81.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>2</p>
</td>
<td width=108 valign=top style='width:81.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>1</p>
</td>
<td width=132 valign=top style='width:99.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>2</p>
</td>
</tr>
<tr>
<td width=71 valign=top style='width:53.6pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal>Color</p>
</td>
<td width=84 valign=top style='width:63.0pt;border-top:none;border-left:none;
border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>Rear</p>
</td>
<td width=108 valign=top style='width:81.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>3</p>
</td>
<td width=108 valign=top style='width:81.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>1</p>
</td>
<td width=132 valign=top style='width:99.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>3</p>
</td>
</tr>
<tr>
<td width=71 valign=top style='width:53.6pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal>Color</p>
</td>
<td width=84 valign=top style='width:63.0pt;border-top:none;border-left:none;
border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>Front</p>
</td>
<td width=108 valign=top style='width:81.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>4</p>
</td>
<td width=108 valign=top style='width:81.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>2</p>
</td>
<td width=132 valign=top style='width:99.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>1</p>
</td>
</tr>
<tr>
<td width=71 valign=top style='width:53.6pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal>Bitonal</p>
</td>
<td width=84 valign=top style='width:63.0pt;border-top:none;border-left:none;
border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>Front</p>
</td>
<td width=108 valign=top style='width:81.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>5</p>
</td>
<td width=108 valign=top style='width:81.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>2</p>
</td>
<td width=132 valign=top style='width:99.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>2</p>
</td>
</tr>
<tr>
<td width=71 valign=top style='width:53.6pt;border:solid windowtext 1.0pt;
border-top:none;padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal>Color</p>
</td>
<td width=84 valign=top style='width:63.0pt;border-top:none;border-left:none;
border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>Rear</p>
</td>
<td width=108 valign=top style='width:81.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>6</p>
</td>
<td width=108 valign=top style='width:81.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>2</p>
</td>
<td width=132 valign=top style='width:99.0pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0in 5.4pt 0in 5.4pt'>
<p class=MsoNormal align=center style='text-align:center'>3</p>
</td>
</tr>
</table>
<p class=MsoNormal>&nbsp;</p>
<ul style='margin-top:0in' type=disc>
<li class=MsoNormal>- note, if TWAIN standardizes on these names it will most
likely lose the _HDR in the names.</li>
</ul>
<p class=MsoNormal>&nbsp;</p>
</div>
</body>
</html>