Return-Path: <tiff-bounces@lists.maptools.org>
X-Original-To: info@awaresystems.be
Delivered-To: info@awaresystems.be
Received: from mx-k.b-one.net (mx-k.one.com [91.198.169.58])
	by mail9.b-one.net (Postfix) with ESMTP id 5876640013B
	for <info@awaresystems.be>; Thu, 28 Jul 2011 00:54:49 +0200 (CEST)
Received: by mx-k.b-one.net (Postfix, from userid 106)
	id 4F33E311A4CF; Thu, 28 Jul 2011 00:54:26 +0200 (CEST)
X-Virus-Scanned: by one.com
X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "MIME-Version"
X-Greylist: domain auto-whitelisted by SQLgrey-1.7.4
Received: from lists.maptools.org (lists.maptools.org [65.39.174.144]) by
 mx-k.b-one.net (Postfix) with ESMTP id DDD3925C47 for <info@awaresystems.be>;
 Thu, 28 Jul 2011 00:54:23 +0200 (CEST)
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by
 lists.maptools.org (Postfix) with ESMTP id 64365872C3; Wed, 27 Jul 2011
 17:53:19 -0500 (EST)
Received: from Agile-Automation.com
 (adsl-71-133-201-209.dsl.pltn13.pacbell.net [71.133.201.209]) by
 lists.maptools.org (Postfix) with ESMTP id CE08B872A4 for
 <tiff@lists.maptools.org>; Wed, 27 Jul 2011 17:52:00 -0500 (EST)
Content-class: urn:content-classes:message
MIME-Version: 1.0
Date: Wed, 27 Jul 2011 15:51:59 -0700
X-MimeOLE: Produced By Microsoft Exchange V6.5.7235.2
Message-ID:
 <6EF72F8D2EC2184184FB2204784CBCD31876AA@AgileServer.AgileDomain.local>
In-Reply-To: <4184033CEC434A91985E92483EDAFCB4@AgileDomain.local>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [Tiff] Using photon lists rather than rasters
Thread-Index: AcxMqJNjeLFlrLkRQ++CCDD0lurqtwAAuIUA
References:
 <6EF72F8D2EC2184184FB2204784CBCD318769B@AgileServer.AgileDomain.local>
 <4184033CEC434A91985E92483EDAFCB4@AgileDomain.local>
From: "Terry L. Sprout" <Terry.Sprout@Agile-Automation.com>
To: <tiff@lists.maptools.org>
Subject: Re: [Tiff] Using photon lists rather than rasters
X-BeenThere: tiff@lists.maptools.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TIFF and libtiff discussion <tiff.lists.maptools.org>
List-Unsubscribe: <http://lists.maptools.org/mailman/listinfo/tiff>,
 <mailto:tiff-request@lists.maptools.org?subject=unsubscribe>
List-Archive: <http://lists.maptools.org/mailman/private/tiff>
List-Post: <mailto:tiff@lists.maptools.org>
List-Help: <mailto:tiff-request@lists.maptools.org?subject=help>
List-Subscribe: <http://lists.maptools.org/mailman/listinfo/tiff>,
 <mailto:tiff-request@lists.maptools.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0584105280=="
Mime-version: 1.0
Sender: tiff-bounces@lists.maptools.org
Errors-To: tiff-bounces@lists.maptools.org

This is a multi-part message in MIME format.

--===============0584105280==
Content-class: urn:content-classes:message
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01CC4CAF.CB5FDC50"

This is a multi-part message in MIME format.

------_=_NextPart_001_01CC4CAF.CB5FDC50
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Ryan Wong wrote the following message and accidently sent it directly to
my email:

=20

***************************

Hello Terry,=20

=20

TIFF is a raster image format, not a vector image format. Inside a TIFF
file, each page must contain exactly one raster image. It can contain
vector annotations in metadata, but viewers are not required to render
it. It will most likely be ignored by most TIFF viewers that do not
understand it. A TIFF page can contain thumbnail images, which, like any
other metadata, can be ignored by viewers that do not support it.

=20

No matter how hard you try, no current software would be able to decode
from your photons list. Even far into the future, mainstream software do
not have a need to support "photon lists", but they will happily render
the raster image part of a processed TIFF file.

=20

My suggestion is to store the coordinates as a metadata tag, which
accompanies with the original (unprocessed) image file. TIFF metadata
tags can store arbitrary byte data and do not have size limits (unless
going into the gigabytes range). This is the recommended way of storing
your coordinates data. And yes, floating point (32-bit, 64-bit and all
IEEE-approved ones) are supported in metadata.

=20

Viewers that do not understand your photons list will simply ignore it,
and will still display the unprocessed image. Similar to the way EXIF
can be added as an optional part of any TIFF file.

=20

If you do not take this approach, I don't think your proposal will be
accepted by the larger TIFF community at all. In particular,
modifications to NewSubFileType, proposals to support a StripByteCount
of zero, will be shot down immediately.

=20

Thanks,

rwong_002@hotmail.com <mailto:rwong_002@hotmail.com>=20

=20

Disclaimer: The opinions expressed here are the views of the writer(s)
and do not necessarily reflect the views and opinions of the writers'
employer(s). Neither the writer(s), nor the writers' employers, make any
claim as to the accuracy of the opinions expressed here.

***************************





Hello Ryan,

=20

Thank you for your comments.

=20

Including the original image doesn't help since one purpose is to create
smaller files so the drive doesn't fill up so fast. My software can
currently fill up a hard drive at 240 MB/s. Some people are using a
camera that outputs very sparse photons (maybe 100 photons from a 300 KB
image 120 times per second) and they only want to know where the photons
are located. They can then playback the photon list and create images
with different exposures. The original image will consume over 600 KB
per image (they're 2 bytes per pixel) or 73 MB/s; or 4.8 GB/m; or 262
GB/h. In contrast, the photon list will only consume about 400 bytes per
image; or 48 KB/s; or 2.9 MB/m; or 173 MB/h. That's a very good
compression ratio.

=20

I've decided to treat the coordinate list as a new compression type,
since that's basically what it is. When my new compression type is used
(34927), my new coordinate list tag (51098) must be used as well. The
coordinate list tag is a pointer to a linked list of IFDs that will
contain a list of pixel coordinates along with a list of intensity
values (and a timestamp). TIFF readers that don't understand the
compression type should ignore the image. I don't really expect most
people that provide TIFF readers to add this capability, but they can if
they want to view the images. The scientists that use this data will add
this capability because it helps them in their analysis.

=20

=20

Terry L. Sprout

(510) 324-5501

w7-32

=20


------_=_NextPart_001_01CC4CAF.CB5FDC50
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p
	{mso-style-priority:99;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
p.ecxmsonormal, li.ecxmsonormal, div.ecxmsonormal
	{mso-style-name:ecxmsonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
span.ecxmsohyperlink
	{mso-style-name:ecxmsohyperlink;}
span.ecxmsohyperlinkfollowed
	{mso-style-name:ecxmsohyperlinkfollowed;}
span.ecxemailstyle17
	{mso-style-name:ecxemailstyle17;}
p.ecxmsonormal1, li.ecxmsonormal1, div.ecxmsonormal1
	{mso-style-name:ecxmsonormal1;
	mso-margin-top-alt:auto;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.ecxmsohyperlink1
	{mso-style-name:ecxmsohyperlink1;
	color:blue;
	text-decoration:underline;}
span.ecxmsohyperlinkfollowed1
	{mso-style-name:ecxmsohyperlinkfollowed1;
	color:purple;
	text-decoration:underline;}
span.ecxemailstyle171
	{mso-style-name:ecxemailstyle171;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
span.EmailStyle26
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Ryan Wong wrote the following message and accidently sent =
it
directly to my email:<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>***************************<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'>Hello
Terry, <o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'>TIFF
is a raster image format, not a vector image format. Inside a TIFF file, =
each
page must contain exactly one raster image. It can contain vector =
annotations
in metadata, but viewers are not required to render it. It will most =
likely be
ignored by most TIFF viewers that do not understand it. A TIFF page can =
contain
thumbnail images, which, like any other metadata, can be ignored by =
viewers
that do not support it.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'>No
matter how hard you try, no current software would be able to decode =
from your
photons list. Even far into the future, mainstream software do not have =
a need
to support &#8220;photon lists&#8221;, but they will happily render the =
raster
image part of a processed TIFF file.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'>My
suggestion is to store the coordinates as a metadata tag, which =
accompanies with
the original (unprocessed) image file. TIFF metadata tags can store =
arbitrary
byte data and do not have size limits (unless going into the gigabytes =
range).
This is the recommended way of storing your coordinates data. And yes, =
floating
point (32-bit, 64-bit and all IEEE-approved ones) are supported in =
metadata.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'>Viewers
that do not understand your photons list will simply ignore it, and will =
still
display the unprocessed image. Similar to the way EXIF can be added as =
an
optional part of any TIFF file.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'>If
you do not take this approach, I don&#8217;t think your proposal will be
accepted by the larger TIFF community at all. In particular, =
modifications to
NewSubFileType, proposals to support a StripByteCount of zero, will be =
shot
down immediately.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'>Thanks,<o:p></=
o:p></span></p>

<p class=3DMsoNormal><span style=3D'color:#1F497D'><a
href=3D"mailto:rwong_002@hotmail.com"><span =
style=3D'font-family:"Calibri","sans-serif"'>rwong_002@hotmail.com</span>=
</a><o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'>Disclaimer:
The opinions expressed here are the views of the writer(s) and do not
necessarily reflect the views and opinions of the writers&#8217; =
employer(s).
Neither the writer(s), nor the writers&#8217; employers, make any claim =
as to
the accuracy of the opinions expressed here.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>***************************<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'><br>
<br>
</span><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hello Ryan,<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Thank you for your comments.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Including the original image doesn&#8217;t help since one
purpose is to create smaller files so the drive doesn&#8217;t fill up so =
fast. My
software can currently fill up a hard drive at 240 MB/s. Some people are =
using
a camera that outputs very sparse photons (maybe 100 photons from a 300 =
KB
image 120 times per second) and they only want to know where the photons =
are
located. They can then playback the photon list and create images with
different exposures. The original image will consume over 600 KB per =
image
(they&#8217;re 2 bytes per pixel) or 73 MB/s; or 4.8 GB/m; or 262 GB/h. =
In
contrast, the photon list will only consume about 400 bytes per image; =
or 48
KB/s; or 2.9 MB/m; or 173 MB/h. That&#8217;s a very good compression =
ratio.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I&#8217;ve decided to treat the coordinate list as a new
compression type, since that&#8217;s basically what it is. When my new
compression type is used (34927), my new coordinate list tag (51098) =
must be
used as well. The coordinate list tag is a pointer to a linked list of =
IFDs
that will contain a list of pixel coordinates along with a list of =
intensity
values (and a timestamp). TIFF readers that don&#8217;t understand the
compression type should ignore the image. I don&#8217;t really expect =
most
people that provide TIFF readers to add this capability, but they can if =
they
want to view the images. The scientists that use this data will add this
capability because it helps them in their =
analysis.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Terry L. Sprout<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>(510) 324-5501<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>w7-32<o:p></o:p></span></p>

</div>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

</div>

</body>

</html>

------_=_NextPart_001_01CC4CAF.CB5FDC50--

--===============0584105280==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Tiff mailing list: Tiff@lists.maptools.org
http://lists.maptools.org/mailman/listinfo/tiff
http://www.remotesensing.org/libtiff/
--===============0584105280==--
