I have always tried to make VLIV as simple as possible, while keeping it as powerful as possible.
So the number of features is quite limited, compared with other Viewers such as IrfanView.
I would like to keep the initial idea, that is focusing on Very Large Images, but like to know what you, users have found missing in VLIV.
I have some ideas myself, but time is missing for large improvements.
So please do not hesitate to ask for features in this article comments, I will consider all propositions.
Wednesday, January 31, 2007
Wednesday, January 24, 2007
Printing size of very large images
Imagine we have a Very Large Image (such as the one generated from NASA Blue Marble NG).
The dimensions in pixels are 86400 x 43200 (remember it's the Earth at 500 m/pixel).
My screen (20 inches 16/10 DELL 2005 FPW) dimensions are about 44 cm x 27 cm (17 x 10.6 inches) for 1680 x 1050 pixels.
Simple math gives us 86400 / 1680 = 52 and 43200 / 1050 = 41.
This means that in order to view the complete image, we would need a matrix of 52 x 41 = 2132 monitors !!
Now lets' go to printing. Maximal resolution the eye can distinguish is about 254 DPI (100 pixels / cm). Now this means that the printed size of the image is : 86400 / 100 = 864 cm and
43200 / 100 = 432 cm (340 x 170 inches). This is huge, it would require more than 640 A4 sheets of paper !!
I have a poster printed from the NASA image. It's about 122 x 76 cm and has been printed at 254 DPI. While it's already very nice, it's only 1/8 of the possible printed size at full resolution.
Here is a small version :
The dimensions in pixels are 86400 x 43200 (remember it's the Earth at 500 m/pixel).
My screen (20 inches 16/10 DELL 2005 FPW) dimensions are about 44 cm x 27 cm (17 x 10.6 inches) for 1680 x 1050 pixels.
Simple math gives us 86400 / 1680 = 52 and 43200 / 1050 = 41.
This means that in order to view the complete image, we would need a matrix of 52 x 41 = 2132 monitors !!
Now lets' go to printing. Maximal resolution the eye can distinguish is about 254 DPI (100 pixels / cm). Now this means that the printed size of the image is : 86400 / 100 = 864 cm and
43200 / 100 = 432 cm (340 x 170 inches). This is huge, it would require more than 640 A4 sheets of paper !!
I have a poster printed from the NASA image. It's about 122 x 76 cm and has been printed at 254 DPI. While it's already very nice, it's only 1/8 of the possible printed size at full resolution.
Here is a small version :

Tuesday, January 23, 2007
VLIV, The Very Large Image Viewer for Windows
In my spare time, I have coded VLIV as an exercise in programming Windows.
The idea was to create a minimal viewer for very large TIFF (tiled).
It uses a very simple idea : only visible tiles are loaded in memory, as soon as a tile is no more visible, it is discarded.
This works very well, because in no more than the visible tiles have to be loaded, so that panning is fast, and zooming also.
VLIV has no advanced features you could think of, such as a caching, or loading tiles in advance, mostly because on local files, performance is already very good.
TIFF has built in support for tiles, but VLIV also creates Virtual Tiles for some formats that have no native tile support (such as PPM or BMP). It manages only parts of the images instead of loading completely the image, even if the format does not support natively tiling.
It also uses a special capability of the JPEG format to allow instant unzooming.
Here is a screendump of VLIV in action on a 86400x43200 pixels image:

VLIV is Shareware, and the price is 10$ (or Euros). I give instructions on VLIV site to build the shown image.
The idea was to create a minimal viewer for very large TIFF (tiled).
It uses a very simple idea : only visible tiles are loaded in memory, as soon as a tile is no more visible, it is discarded.
This works very well, because in no more than the visible tiles have to be loaded, so that panning is fast, and zooming also.
VLIV has no advanced features you could think of, such as a caching, or loading tiles in advance, mostly because on local files, performance is already very good.
TIFF has built in support for tiles, but VLIV also creates Virtual Tiles for some formats that have no native tile support (such as PPM or BMP). It manages only parts of the images instead of loading completely the image, even if the format does not support natively tiling.
It also uses a special capability of the JPEG format to allow instant unzooming.
Here is a screendump of VLIV in action on a 86400x43200 pixels image:

VLIV is Shareware, and the price is 10$ (or Euros). I give instructions on VLIV site to build the shown image.
Image formats capabilities
While most image formats are able to store very large images, not all formats are suitable for displaying these images.
The most important capability is a way to directly access a small subsection of the complete image. This is generally achieved by tiling, but some formats allow arbitrary access, so that the tiling feature can be implemented.
Another capability is a way of storing multiple sub-resolutions, thus allowing zooming. Some formats have this built-in, others give a way to compute sub-resolutions using special capability of the format.
The last capability is support for very large file sizes, because Very Large Images require large file size.
Here is a sum-up of these capabilities:
The most important capability is a way to directly access a small subsection of the complete image. This is generally achieved by tiling, but some formats allow arbitrary access, so that the tiling feature can be implemented.
Another capability is a way of storing multiple sub-resolutions, thus allowing zooming. Some formats have this built-in, others give a way to compute sub-resolutions using special capability of the format.
The last capability is support for very large file sizes, because Very Large Images require large file size.
Here is a sum-up of these capabilities:
TIFF 32 bit file size limit and consequences
The existing TIFF format is limited in size to 4 gigabytes (because of 32 bit offsets). This format allows data to be compressed using various methods, the most used are deflate (Zip), JPEG and Packbits.
Deflate and Packbits are so-called lossless compression, while JPEG achieves high compression ratios using a lossy method.
Deflate compression rates are about 4:1 on typical photographic images, while JPEG is more in the 10:1 using minimal loss of perceptual quality.
The following table shows what dimensions can be achieved with different compression ratios:
There is an ongoing project called BigTIFF that will break these limitations by a large amount, as it is expected to use 64 bit sizes.
Subscribe to:
Posts (Atom)