2011.07.27 16:39 "[Tiff] Using photon lists rather than rasters", by Terry L. Sprout

2011.07.27 23:57 "Re: [Tiff] Using photon lists rather than rasters", by Chris Cox

Tagged Image File Format.

I would rather not see a TIFF “image” that is not an image and is not readable by other software.

TIFF already gets too much abuse with undocumented custom compression types that render the files useless.

In this case you are creating a vector display list, for which there are more appropriate types.

Personally, I’d just apply a better predictor to improve compression and keep the image data. If all you need are locations/centroids of photon hits – you could easily convert the image to a 1 bit/sample representation and compress that.

Chris

On 7/27/11 3:51 PM, "Terry L. Sprout" <Terry.Sprout@Agile-Automation.com> wrote:

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

***************************
Hello Terry,

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.

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.

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.

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.

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.

Thanks,
rwong_002@hotmail.com <mailto:rwong_002@hotmail.com>

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,

Thank you for your comments.

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.

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