<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6824624922053452329</id><updated>2012-01-26T16:53:30.583-08:00</updated><category term='fractals'/><category term='VLIV'/><category term='Technical'/><category term='hacking'/><category term='jpeg2000'/><category term='Advertising'/><category term='usb'/><category term='3d'/><category term='Images'/><category term='hardware'/><category term='OpenGL'/><title type='text'>Very Large Images Blog</title><subtitle type='html'>This blog is dedicated to nothing in particular (but focuses on very large images, 3d fractals and anything I find interesting)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>62</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-8045525846745305935</id><published>2011-05-24T07:58:00.001-07:00</published><updated>2011-05-24T08:03:13.598-07:00</updated><title type='text'>Vliv support for WebP format</title><content type='html'>Now that WebP is supported widely, I have created the little plugin for Vliv that allows loading a webp image.&lt;br /&gt;It is very simple, as only two API calls are necessary, &lt;span style="font-weight:bold;"&gt;WebPGetInfo &lt;/span&gt;and &lt;span style="font-weight:bold;"&gt;WebPDecodeBGRInto&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On a sample image found on the web it seem to work fine, and is quite fast. The final plugin dll is only 106496 bytes thanks to a precompiled webp library for Windows (libwebp-0.1.2-windows).&lt;br /&gt;&lt;br /&gt;Vliv framework is an ideal way of testing new formats as its API is very simple, the entire code for loading WebP images is 85 lines of C.&lt;br /&gt;&lt;br /&gt;Source code is available on demand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-8045525846745305935?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/8045525846745305935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=8045525846745305935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/8045525846745305935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/8045525846745305935'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2011/05/vliv-support-for-webp-format.html' title='Vliv support for WebP format'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-3774947306630867578</id><published>2011-02-09T11:45:00.000-08:00</published><updated>2011-02-09T11:51:57.291-08:00</updated><title type='text'>Google Art Project</title><content type='html'>&lt;a href="http://www.googleartproject.com/"&gt;Google Art Project&lt;/a&gt; is a collection of very high resolution images of paintings/photos.&lt;br /&gt;Unfortunately it is only available through the Web...&lt;br /&gt;So I made a quick hack to generate offline images suitable for display with my viewer, VLIV.&lt;br /&gt;It is incredibly easy to get the data, but I will not disclose how, since the Google Art Project license prevents it.&lt;br /&gt;&lt;br /&gt;Here is a screendump of Van Gogh's Starry Night in Vliv.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_C2zixREHR-k/TVLwBhhVm5I/AAAAAAAADg4/foEuwHxBimw/s1600/starrynight.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 324px;" src="http://4.bp.blogspot.com/_C2zixREHR-k/TVLwBhhVm5I/AAAAAAAADg4/foEuwHxBimw/s400/starrynight.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5571779597979458450" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-3774947306630867578?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/3774947306630867578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=3774947306630867578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3774947306630867578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3774947306630867578'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2011/02/google-art-project.html' title='Google Art Project'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C2zixREHR-k/TVLwBhhVm5I/AAAAAAAADg4/foEuwHxBimw/s72-c/starrynight.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-6675105998757078784</id><published>2010-07-30T05:34:00.000-07:00</published><updated>2010-07-30T05:41:25.526-07:00</updated><title type='text'>New world record for panoramic image</title><content type='html'>&lt;a href="http://70gigapixel.cloudapp.net/index_en.html"&gt;This &lt;/a&gt;one is 70 gigapixels (590508 x 120750).&lt;br /&gt;Very impressive.&lt;br /&gt;They are using Silverligh to display on the Web.&lt;br /&gt;Such a large image should be viewable by VLIV, it just need the file (actual format is unknown, looks to be PPM) to be converted to TIFF (actually a 64 bit TIFF).&lt;br /&gt;Final image size is about 200 Gigabytes, not something you download or store easily !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-6675105998757078784?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/6675105998757078784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=6675105998757078784' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6675105998757078784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6675105998757078784'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2010/07/new-world-record-for-panoramic-image.html' title='New world record for panoramic image'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-5487976541174017379</id><published>2010-07-28T12:48:00.000-07:00</published><updated>2010-07-28T23:34:41.706-07:00</updated><title type='text'>Download VLIV latest version 2.5.2</title><content type='html'>&lt;a href="http://dl.dropbox.com/u/2335720/vliv252.zip"&gt;Here &lt;/a&gt;is the direct DropBox link, and some sample images :&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://dl.dropbox.com/u/2335720/antartica.tif"&gt;a very large one&lt;/a&gt; (850 megabytes)&lt;/li&gt;&lt;li&gt;&lt;a href="http://dl.dropbox.com/u/2335720/flower.tif"&gt;a small one&lt;/a&gt; (8 megabytes)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;These are tiff images that have pyramidal organization. You can also load normal Jpegs (preferably large ones), so that you can see virtual tiling in action.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://dl.dropbox.com/u/2335720/heic0502a.jpg"&gt;Here &lt;/a&gt;is a medium one (15 megabytes)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-5487976541174017379?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/5487976541174017379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=5487976541174017379' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/5487976541174017379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/5487976541174017379'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2010/07/download-vliv-latest-version-252.html' title='Download VLIV latest version 2.5.2'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-23372481728703695</id><published>2009-10-22T07:36:00.000-07:00</published><updated>2009-10-23T00:43:25.322-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technical'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>OpenGL Vertex Buffer Objects</title><content type='html'>I recently updated my 3d object rendering code to &lt;a href="http://www.opengl.org/wiki/Vertex_Buffer_Objects"&gt;VBO&lt;/a&gt;, introduced in OpenGL 1.5. Using them is very simple, and only need 4 additional API calls. Basically, the vertex data, normals and indexes are sent to the graphics card, stored in there, and accessed through an ID. At draw time, only one or two call with  IDs are sufficient and performance is very much improved over using previous Vertex Arrays API, because no data is transfered. My frame rate was multiplied by 2 at least and I can now display up to 150 000 000 tris/s on my GeForce 8800 GTS, hardly the fastest card these days. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I also found &lt;a href="http://glew.sourceforge.net/"&gt;GLEW&lt;/a&gt; library during this work, very nice and useful to develop OpenGL applications, because of poor header support in MS SDK. It allows using API calls without bothering if they are in headers or not, thanks to clever dynamic loading features at runtime and extensive coverage of OpenGL extensions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Update: After some tests, the number of tris/s is about 230 000 000 on my 8800 GTS.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-23372481728703695?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/23372481728703695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=23372481728703695' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/23372481728703695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/23372481728703695'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2009/10/opengl-vertex-buffer-objects.html' title='OpenGL Vertex Buffer Objects'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-8692826104336261899</id><published>2009-10-01T12:58:00.000-07:00</published><updated>2009-10-01T13:11:00.065-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><title type='text'>Chmutov surface 3d printed</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;I received today a new object I have computed, it is a Chmutov 8 order surface (see &lt;a href="http://mathworld.wolfram.com/ChmutovSurface.html"&gt;this&lt;/a&gt; for a description). I used &lt;a href="http://www.shapeways.com/"&gt;Shapeways &lt;/a&gt;service and the object is 5cm square. The material is called "white glaze" and was actually quite cheap thanks to a promotion. The result is very nice, with a glossy finish and handling the object is a pleasure.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is a picture.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://4.bp.blogspot.com/_C2zixREHR-k/SsULoEPAdPI/AAAAAAAAAxk/Jvd-mCTFx3s/s400/chmutov.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 358px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5387725312178025714" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-8692826104336261899?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/8692826104336261899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=8692826104336261899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/8692826104336261899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/8692826104336261899'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2009/10/chmutov-surface-3d-printed.html' title='Chmutov surface 3d printed'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C2zixREHR-k/SsULoEPAdPI/AAAAAAAAAxk/Jvd-mCTFx3s/s72-c/chmutov.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-9182945191994891751</id><published>2009-09-25T05:39:00.000-07:00</published><updated>2009-09-25T05:48:20.385-07:00</updated><title type='text'>Parallelizing code</title><content type='html'>I have modified my fractal generation code to use Intel TBB.  While before, on an 8 core machine I was only able to get 13% CPU usage, I now have almost 100%.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The first part I did was layer generation. This means a single &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;parallel_for.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; "&gt;I have then parallelized the triangle generation part (the so-called marching cubes). To do so I have a simple &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;parallel_for&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; "&gt; and each thread writes its computed triangles to a shared &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;concurrent_vector&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; "&gt;. Very simple and impressively effective.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So this scales quite well and I was able to achieve an overall speedup of 6x on a 8 core machine, over a single core.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-9182945191994891751?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/9182945191994891751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=9182945191994891751' title='43 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/9182945191994891751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/9182945191994891751'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2009/09/parallelizing-code.html' title='Parallelizing code'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>43</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-1794682278697804947</id><published>2009-07-27T06:43:00.000-07:00</published><updated>2009-07-27T07:28:31.443-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jpeg2000'/><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>Support for JPEG2000 in VLIV</title><content type='html'>&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I have added minimal support for JPEG2000 in VLIV using &lt;/span&gt;&lt;a href="http://www.ece.uvic.ca/~mdadams/jasper/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Jasper&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;. Current support is not very well tested, but I have been able to load sample images. They come from &lt;/span&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:-webkit-sans-serif;"&gt;&lt;a href="http://memory.loc.gov/ammem/browse/ListSome.php?category=Maps"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;The Library of Congress American Memory Maps&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;, and take quite a while to load (at least one minute, for 5000x2700 pixel image).&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:-webkit-sans-serif;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:-webkit-sans-serif;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;The implementation takes the form a a very simple C plugin, source is available on request. It can certainly be improved much, for example I use &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;jas_image_readcmptsample&lt;/span&gt; 3 times for every pixel.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:-webkit-sans-serif;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:-webkit-sans-serif;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;Please advise if you have ideas for performance or feature improvements.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:-webkit-sans-serif;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: -webkit-sans-serif; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;UPDATE&lt;/b&gt;: it is now much faster using&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; jas_image_readcmpt&lt;/span&gt; on whole image width...&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-1794682278697804947?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/1794682278697804947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=1794682278697804947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/1794682278697804947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/1794682278697804947'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2009/07/support-for-jpeg2000-in-vliv.html' title='Support for JPEG2000 in VLIV'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-9020693306302530315</id><published>2009-07-08T00:27:00.000-07:00</published><updated>2009-07-08T00:33:40.576-07:00</updated><title type='text'>New version of IJG JPEG library</title><content type='html'>A new version has appeared on &lt;a href="http://www.ijg.org/"&gt;IJG web site&lt;/a&gt;. It looks like new version called 7 (dated 27-Jun-2009) has few changes from previous one (6b dated 27-Mar-1998 !). Mostly it says that scaled DCT are implemented, I have found that this version is not binary compatible with previous one wrt scaling. I will have to experiment a little more before using this version in Vliv.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the other libs I use is zlib, latest version 1.2.3, dated July 18, 2005.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;LibPng has not been updated for a while, only libtiff seems to be work in progress.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am still looking for a JPEG2000 C library that is as good and simple as these ones.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-9020693306302530315?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/9020693306302530315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=9020693306302530315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/9020693306302530315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/9020693306302530315'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2009/07/new-version-of-ijg-jpeg-library.html' title='New version of IJG JPEG library'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-6956867725266563288</id><published>2009-07-06T07:09:00.000-07:00</published><updated>2009-07-06T07:13:25.723-07:00</updated><title type='text'>Another impressive large image</title><content type='html'>Very large images do not have to be panoramas. &lt;a href="http://www.gigapan.org/viewGigapanFullscreen.php?id=27105"&gt;This &lt;/a&gt;one is created by stitching hundreds of images coming from a Scanning Electron Microscope. You can find more information &lt;a href="http://nanogigapan.blogspot.com/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-6956867725266563288?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/6956867725266563288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=6956867725266563288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6956867725266563288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6956867725266563288'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2009/07/another-impressive-large-image.html' title='Another impressive large image'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-2939437490483263269</id><published>2009-01-26T05:35:00.001-08:00</published><updated>2009-01-26T05:45:22.233-08:00</updated><title type='text'>Gigapixel images becoming mainstream on the web</title><content type='html'>&lt;a href="http://davidbergman.net/Obama.html"&gt;Here &lt;/a&gt;is the latest gigapixel image available on the web. As it is related to Barack Obama's inaugural address, it has received all possible attention and reviews. Image credit goes to David Bergman.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While not new, such a large image is very interesting because of how it has been made, and how it is distributed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The process for image creation involves a robotic arm called &lt;a href="http://gigapansystems.com/index.php?page=system-page"&gt;Gigapan Imager&lt;/a&gt;, that automatizes completely the process of taking an array of pictures. Having such almost perfectly aligned images allows their custom software to stitch the images with a very impressive quality. Device price is about $279 as Beta ($379 otherwise).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The image is then made available on the Web using a Google Maps like interface provided by &lt;a href="http://gigapan.org/"&gt;Gigapan.org&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This makes creating and distributing giant images much easier than it was before.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-2939437490483263269?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/2939437490483263269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=2939437490483263269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/2939437490483263269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/2939437490483263269'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2009/01/gigapixel-images-becoming-mainstream-on.html' title='Gigapixel images becoming mainstream on the web'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-3535254459562811928</id><published>2008-11-27T10:45:00.000-08:00</published><updated>2008-11-27T11:10:13.661-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='usb'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Hacking the Webmail Notifier USB device</title><content type='html'>Some time ago I ordered the &lt;a href="http://usb.brando.com.hk/prod_detail.php?prod_id=00681"&gt;USB Webmail Notifier&lt;/a&gt; (only $17). When I received it, I was disapointed to find that the bundled software was very limited, only using the POP3 protocol. This protocol for example has no way of returning number unread mails, so the use cases are rather small.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I decided to look at how I could code for this device. I found &lt;a href="http://www.edn.com/article/CA243218.html"&gt;this &lt;/a&gt;very useful (albeit quite old) article on USB HID devices, a wery well though standard for this kind of devices (and keyboards, mouses, joysticks).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I also used a &lt;a href="http://www.usblyzer.com/"&gt;USB protocol analyzer&lt;/a&gt; to see what data was sent to the device. I managed to make it accept any color I want (whereas the bundled software only has green, red and blinking blue).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Each component is 5 bits, that makes some noticable transitions between adjacent colors. Also not all colors we use to get on LCD displays are available, because there is no black.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is a small image of an orange notifier.&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_C2zixREHR-k/SS7uFnl76JI/AAAAAAAAAJg/MRqRZtDnqXM/s1600-h/notifierOrange.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_C2zixREHR-k/SS7uFnl76JI/AAAAAAAAAJg/MRqRZtDnqXM/s320/notifierOrange.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5273413993992284306" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I made 3 command line programs (building them requires the Windows DDK):&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;a simple color setter, arguments are R G B&lt;/li&gt;&lt;li&gt;a HUE wheel switcher&lt;/li&gt;&lt;li&gt;a CPU usage related color, green beeing 0%, red 100%&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;There is certainly many other possible uses for this cheap device:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;An IMAP4 mail notifier, making use of all IMAP4 features&lt;/li&gt;&lt;li&gt;An automatic build indicator, for example for CruiseControl&lt;/li&gt;&lt;li&gt;an event remainder&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;As usual source code will be send on request.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-3535254459562811928?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/3535254459562811928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=3535254459562811928' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3535254459562811928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3535254459562811928'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2008/11/hacking-webmail-notifier-usb-device.html' title='Hacking the Webmail Notifier USB device'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_C2zixREHR-k/SS7uFnl76JI/AAAAAAAAAJg/MRqRZtDnqXM/s72-c/notifierOrange.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-8403097196840305127</id><published>2008-11-21T00:28:00.001-08:00</published><updated>2008-11-21T00:42:18.894-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Images'/><category scheme='http://www.blogger.com/atom/ns#' term='Technical'/><category scheme='http://www.blogger.com/atom/ns#' term='fractals'/><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>Biggest image I have ever created created</title><content type='html'>While browsing Wikipedia I found some code to generate &lt;a href="http://en.wikipedia.org/wiki/Image:Demj.jpg"&gt;nice fractals&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have adapted the code to create really huge images.&lt;br /&gt;&lt;br /&gt;The largest I have to date is computed at 512000 x 300000 pixels. The image is black and white, I use a binary fromat to save space (1 bit/pixel), that still makes the uncompressed file about 20 Gigabytes. Computation time on a Core2Duo 2 Ghz is about 4 days (with some pausing).&lt;br /&gt;&lt;br /&gt;I then compute a multiresultion tiff of half size (because it looks better). The final image is about 256000 x 150000.&lt;br /&gt;&lt;br /&gt;Here is a detail:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_C2zixREHR-k/SSZyQgiLRLI/AAAAAAAAAJY/dEbypuW9Wu8/s1600-h/bigfract.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 279px;" src="http://2.bp.blogspot.com/_C2zixREHR-k/SSZyQgiLRLI/AAAAAAAAAJY/dEbypuW9Wu8/s320/bigfract.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5271026041820497074" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Code I have wrtitten uses OpenMP #pragma. I had the opportunity of trying this code in a new Intel machine that has a total of 16 threads (2 CPUs x 4 Cores x 2 Hyperthreads).  Using a single  parallelfor  instruction allowed me to gain a factor of 10 over single threaded code. Not too bad.  Of course dynamic threads ala Intel TBB would have allowed further gains, but at the expense of more code.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-8403097196840305127?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/8403097196840305127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=8403097196840305127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/8403097196840305127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/8403097196840305127'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2008/11/biggest-image-i-have-ever-created.html' title='Biggest image I have ever created created'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_C2zixREHR-k/SSZyQgiLRLI/AAAAAAAAAJY/dEbypuW9Wu8/s72-c/bigfract.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-538492764047542821</id><published>2008-08-22T01:37:00.000-07:00</published><updated>2008-08-22T01:44:39.406-07:00</updated><title type='text'>Massive mesh</title><content type='html'>In order to generate the 3d objects for my fractals, a large number of triangles have to be generated, so that very detailed areas are not badly rendered.&lt;br /&gt;I can generate up to 2 Billion triangles, more than 50 Gigabytes of data.&lt;br /&gt;&lt;br /&gt;In order to see the result, I have modified my small viewer so that drawing is done reading directly the triangles on disk. This takes about 1 hour on my machine, but virtually unlimited number of triangles can be displayed, even on a basic computer.&lt;br /&gt;&lt;br /&gt;The following object has exactly 1 447 147 377 triangles.&lt;br /&gt;&lt;br /&gt;Of course for interactive display the number of triangles is reduced to about 10 000 000.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_C2zixREHR-k/SK58Gc4lPRI/AAAAAAAAAI4/-qZgtBD96SM/s1600-h/massive.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_C2zixREHR-k/SK58Gc4lPRI/AAAAAAAAAI4/-qZgtBD96SM/s400/massive.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5237259866953039122" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-538492764047542821?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/538492764047542821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=538492764047542821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/538492764047542821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/538492764047542821'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2008/08/massive-mesh.html' title='Massive mesh'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_C2zixREHR-k/SK58Gc4lPRI/AAAAAAAAAI4/-qZgtBD96SM/s72-c/massive.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-177338251873925263</id><published>2008-08-03T05:17:00.000-07:00</published><updated>2008-08-13T11:49:40.907-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='fractals'/><title type='text'>Fractal 3d Object Video</title><content type='html'>Here is a small video I made from one of my objects.&lt;br /&gt;It is a real 3d object, not a ray-traced rendered animation.&lt;br /&gt;My graphics card is a GeForce 7600GT (not very fast these days).&lt;br /&gt;This card is capable to display about 5 000 000 tris/s lit, shaded.&lt;br /&gt;As I have objects with up to 10 000 000 triangles for the most detailed objects, and about 3 000 000 for standard objects, framerate is not very high. I am thinking of upgrading to a more recent card, such as an ATI 4850.&lt;br /&gt;&lt;br /&gt;I am using custom software to display the object.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/NlHp0JEm04U&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/NlHp0JEm04U&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-177338251873925263?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/177338251873925263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=177338251873925263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/177338251873925263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/177338251873925263'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2008/08/fractal-3d-object-video.html' title='Fractal 3d Object Video'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-6271694367797553981</id><published>2008-08-02T10:58:00.000-07:00</published><updated>2008-08-13T11:49:01.697-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fractals'/><title type='text'>Quaternion Fractal Slices Video</title><content type='html'>I have uploaded to Youtube a video that shows slices from one of my quaternion fractal 3d object.&lt;br /&gt;&lt;br /&gt;It is created by the same code that is used to create the 3d object.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Gib9VdWgdZ8&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Gib9VdWgdZ8&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-6271694367797553981?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/6271694367797553981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=6271694367797553981' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6271694367797553981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6271694367797553981'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2008/08/quaternion-fractal-slices-video.html' title='Quaternion Fractal Slices Video'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-2745503678262559735</id><published>2008-07-15T12:28:00.000-07:00</published><updated>2008-08-13T11:50:28.948-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>VLIV on a powerful machine</title><content type='html'>I had the pleasure to test VLIV on a bi-quad core Xeon 2.5 Ghz.&lt;br /&gt;OS was Windows XP 64 bits.&lt;br /&gt;It is very smooth (who would have guessed ?).&lt;br /&gt;Note that recent VLIV version use multiple threads when possible.&lt;br /&gt;&lt;br /&gt;I am now dreaming of a 30 inches display...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-2745503678262559735?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/2745503678262559735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=2745503678262559735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/2745503678262559735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/2745503678262559735'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2008/07/vliv-on-powerful-machine.html' title='VLIV on a powerful machine'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-7548414431917907331</id><published>2008-07-15T12:26:00.000-07:00</published><updated>2008-08-13T11:50:28.949-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>Vliv web site is down</title><content type='html'>It looks like VLIV web site is down.&lt;br /&gt;As I have no time to check what happens, if you are interested in getting VLIV, please send a request to &lt;a href="mailto:delhoume@yahoo.com"&gt;me&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-7548414431917907331?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/7548414431917907331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=7548414431917907331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7548414431917907331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7548414431917907331'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2008/07/vliv-web-site-is-down.html' title='Vliv web site is down'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-4609951084788103462</id><published>2008-02-10T04:33:00.000-08:00</published><updated>2008-08-13T11:50:28.949-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>VLIV plugin for Windows HD images</title><content type='html'>Following the recent &lt;a href="http://www.jpeg.org/newsrel20.html"&gt;announcement &lt;/a&gt;of standardization of HD Photo by the JPEG group as JPEG XR, I have investigated implementation of this format as a &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV &lt;/a&gt;plugin.&lt;br /&gt;&lt;br /&gt;My code uses the COM API called &lt;a href="http://msdn2.microsoft.com/en-us/library/ms737408.aspx"&gt;Windows Imaging Component&lt;/a&gt;, available in Windows XP SP2 and Windows Vista. In theory, any image codec supported by WIC should be accessible by VLIV now, but I have only tested HD Photo images.&lt;br /&gt;&lt;br /&gt;The API supports tile loading, even if the native format does not support it.&lt;br /&gt;&lt;br /&gt;Microsoft also has a porting kit for non-Windows platforms.&lt;br /&gt;&lt;br /&gt;As always, please contact me for plugin code sample, it consists of very few lines of C++.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-4609951084788103462?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/4609951084788103462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=4609951084788103462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/4609951084788103462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/4609951084788103462'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2008/02/vliv-plugin-for-windows-hd-images.html' title='VLIV plugin for Windows HD images'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-7182278383272237566</id><published>2008-01-27T12:24:00.000-08:00</published><updated>2008-08-13T11:50:38.692-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>Vliv first support for 3D Connexion SpaceNavigator</title><content type='html'>I have implemented the necessary code to take advantage of my new &lt;a href="http://www.3dconnexion.com/3dmouse/spacenavigator.php"&gt;Space Navigator&lt;/a&gt; USB device.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_C2zixREHR-k/R5zpXvUFNCI/AAAAAAAAAGw/vO1bPnze6OM/s1600-h/spacenav.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_C2zixREHR-k/R5zpXvUFNCI/AAAAAAAAAGw/vO1bPnze6OM/s400/spacenav.png" alt="" id="BLOGGER_PHOTO_ID_5160255867106702370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Right now, only panning is supported, but it is yet incredibly fun...&lt;br /&gt;The Personal Edition of the device is quite affordable at $59.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-7182278383272237566?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/7182278383272237566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=7182278383272237566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7182278383272237566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7182278383272237566'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2008/01/vliv-first-support-for-3d-connexion.html' title='Vliv first support for 3D Connexion SpaceNavigator'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_C2zixREHR-k/R5zpXvUFNCI/AAAAAAAAAGw/vO1bPnze6OM/s72-c/spacenav.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-4618765472537428217</id><published>2008-01-27T10:16:00.000-08:00</published><updated>2008-08-13T11:49:40.908-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='fractals'/><title type='text'>Where are the cheap 3d printers ?</title><content type='html'>In 2007, there has been a rage about cheap 3d printers.&lt;br /&gt;&lt;br /&gt;Two have been announced, with early 2008 availability. One is even taking advance order !&lt;br /&gt;&lt;br /&gt;The first one is &lt;a href="http://www.desktopfactory.com/"&gt;Desktop Factory&lt;/a&gt;, advertised at $4995&lt;br /&gt;&lt;br /&gt;The second one is 3D System's &lt;a href="http://www.modelin3d.com/"&gt;VFlash&lt;/a&gt;, advertised at $9900&lt;br /&gt;&lt;br /&gt;None of them is available, and I am starting to wonder if they really exist, as it's now been several months nothing very new has appeared on their Web sites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-4618765472537428217?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/4618765472537428217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=4618765472537428217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/4618765472537428217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/4618765472537428217'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2008/01/where-are-cheap-3d-printers.html' title='Where are the cheap 3d printers ?'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-1728302129644036037</id><published>2008-01-08T12:38:00.000-08:00</published><updated>2008-08-13T11:50:28.952-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>Fun with plugins</title><content type='html'>In a &lt;a href="http://verylargeimages.blogspot.com/2007/06/complete-movie-in-one-image.html"&gt;previous post&lt;/a&gt;, I was talking about an image that contained all frames of a movie, with precalculated zoom levels.&lt;br /&gt;&lt;br /&gt;I have now created a specific plugin, that reads AVI files, thanks to Win32's &lt;a href="http://msdn2.microsoft.com/en-us/library/ms706540%28VS.85%29.aspx"&gt;AVIFile&lt;/a&gt; API.&lt;br /&gt;&lt;br /&gt;The image from the AVI is now completely virtual, and tiles are created on demand.&lt;br /&gt;It is even possible to zoom out 3 levels, at a performance cost because each time you zoom out, 4 times the previous number of tiles have to be loaded.&lt;br /&gt;On a sample movie (640x352), this does not look so bad and complete movie is browsable.&lt;br /&gt;&lt;br /&gt;Here is a screendump:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_C2zixREHR-k/R4PhZEDhTlI/AAAAAAAAAGg/RobJdZXkgYg/s1600-h/avi.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_C2zixREHR-k/R4PhZEDhTlI/AAAAAAAAAGg/RobJdZXkgYg/s400/avi.png" alt="" id="BLOGGER_PHOTO_ID_5153210219343466066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As usual, source code or dll for this plugin is available on-demand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-1728302129644036037?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/1728302129644036037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=1728302129644036037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/1728302129644036037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/1728302129644036037'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2008/01/fun-with-plugins.html' title='Fun with plugins'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_C2zixREHR-k/R4PhZEDhTlI/AAAAAAAAAGg/RobJdZXkgYg/s72-c/avi.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-4678446155035928889</id><published>2008-01-06T06:24:00.000-08:00</published><updated>2008-08-13T11:50:28.953-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>A sample plugin for Markus-Lyapunov fractals</title><content type='html'>Happy New Year !&lt;br /&gt;&lt;br /&gt;I have implemented a very simple plugin for displaying Markus-Lyapunov fractals in &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV&lt;/a&gt;.&lt;br /&gt;For more information, see &lt;a href="http://en.wikipedia.org/wiki/Lyapunov_fractal"&gt;Wikipedia entry.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;They are very simple to implement, but are very CPU intensive, so I have limited the number of iterations to a very low number, and the formula is the simplest (AB) by default.&lt;br /&gt;&lt;br /&gt;As usual the image can be zoomed at very high levels.&lt;br /&gt;This plugin benefits very much from multi-core CPUs.&lt;br /&gt;&lt;br /&gt;Here is a screendump:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_C2zixREHR-k/R4DlWUDhTkI/AAAAAAAAAGY/pAzqSyN04LQ/s1600-h/lyapunov.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_C2zixREHR-k/R4DlWUDhTkI/AAAAAAAAAGY/pAzqSyN04LQ/s400/lyapunov.png" alt="" id="BLOGGER_PHOTO_ID_5152370145215204930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Please send me a message if you are interested in this plugin.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-4678446155035928889?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/4678446155035928889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=4678446155035928889' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/4678446155035928889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/4678446155035928889'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2008/01/sample-plugin-for-markus-lyapunov.html' title='A sample plugin for Markus-Lyapunov fractals'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_C2zixREHR-k/R4DlWUDhTkI/AAAAAAAAAGY/pAzqSyN04LQ/s72-c/lyapunov.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-3916180784989989346</id><published>2007-12-14T07:19:00.000-08:00</published><updated>2008-08-13T11:50:28.954-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>Vliv 2.5.1 handles plugins</title><content type='html'>The new version of &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV &lt;/a&gt;supports dynamic loading of plugins.&lt;br /&gt;&lt;br /&gt;Plugins are easy to write and I provide two samples.&lt;br /&gt;A plugin for BMP, TIF, PPM, PNG and JPEG images is delivered, and now vliv.exe has no knowledge of image formats.&lt;br /&gt;&lt;br /&gt;So if you feel that VLIV should know XXX format or that your implementation of YYY format is the best,  all you have to do is write a plugin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-3916180784989989346?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/3916180784989989346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=3916180784989989346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3916180784989989346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3916180784989989346'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/12/vliv-251-handles-plugins.html' title='Vliv 2.5.1 handles plugins'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-1559943255253936119</id><published>2007-12-11T02:48:00.000-08:00</published><updated>2008-08-13T11:50:28.954-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>Vliv 2.5.0 is out</title><content type='html'>&lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;This &lt;/a&gt;new version includes a much improved memory manager that allows really huge images to be loaded at very little memory cost.&lt;br /&gt;&lt;br /&gt;It also includes a .new sample virtual image loading.&lt;br /&gt;&lt;br /&gt;Also included is experimental multi threading support for tile loading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-1559943255253936119?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/1559943255253936119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=1559943255253936119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/1559943255253936119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/1559943255253936119'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/12/vliv-250-is-out.html' title='Vliv 2.5.0 is out'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-8458887179691059397</id><published>2007-12-08T12:00:00.000-08:00</published><updated>2008-08-13T11:50:28.955-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>The Last Supper 16 gigapixel image</title><content type='html'>The team from Haltadefinizione has once again created a very detailed image of a large painting, this time it's &lt;a href="http://www.haltadefinizione.com/en/cenacolo/look.asp"&gt;The Last Supper&lt;/a&gt; by Leonardo da Vinci.&lt;br /&gt;&lt;br /&gt;While always impressive, I think a limit has been reached, because higher resolution (and thus more gigapixels) would not allow for a better detail, as they have reached the point where at maximum zoom, we can only almost see molecules of paint...&lt;br /&gt;&lt;br /&gt;To give an idea, the painting is 880x460 cm while the image is 172181x93611 pixels, so each pixel is only 0.05x0.05 millimeter...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-8458887179691059397?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/8458887179691059397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=8458887179691059397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/8458887179691059397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/8458887179691059397'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/12/last-supper-16-gigapixel-image.html' title='The Last Supper 16 gigapixel image'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-7646506644441580750</id><published>2007-12-05T00:45:00.000-08:00</published><updated>2008-08-13T11:50:28.955-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>Vliv as a fractal viewer</title><content type='html'>In a &lt;a href="http://verylargeimages.blogspot.com/2007/03/virtual-very-large-images.html"&gt;previous &lt;/a&gt;post, I was talking about dynamically generated tiles.&lt;br /&gt;I have prototyped this and implemented a simple algorithm for generating dynamically tiles, a Newton fractal generator.&lt;br /&gt;&lt;br /&gt;The idea is simple, given a point in the complex plane, and a polynomial, apply the Newton method to find out where the point ends. Each starting point eventually converges to one of the roots of the polynomial, that gives the base color. This color is then shaded using the number of iterations it takes to be around the root (there are of course other coloring algorithms, I choose this one because it is really simple to implement). Computation is done at a single tile level.&lt;br /&gt;&lt;br /&gt;The beauty of this is that, using &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV &lt;/a&gt;tiling features, the image size is virtually not limited, so &lt;span style="font-style: italic;"&gt;viewing&lt;/span&gt; an image of size 256000x256000 is possible, and even not slower than a smaller size.&lt;br /&gt;&lt;br /&gt;The complete source code for my sample implementation is less than 200 lines of code, most of it beeing my not optimal Newton method implementation.&lt;br /&gt;&lt;br /&gt;Here is the result:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_C2zixREHR-k/R1Znn553VwI/AAAAAAAAAC4/DV_VXaZi-44/s1600-h/vlivnewton.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_C2zixREHR-k/R1Znn553VwI/AAAAAAAAAC4/DV_VXaZi-44/s400/vlivnewton.png" alt="" id="BLOGGER_PHOTO_ID_5140409959946082050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Imagine if the idea was implemented in Google Earth (or Maps), using Google storage and computation capabilities, it would make a nice feature...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Newton_fractal"&gt;This Wikipedia&lt;/a&gt; page has more information on Newton Fractals.&lt;br /&gt;Simon Tatham has also a very &lt;a href="http://www.chiark.greenend.org.uk/%7Esgtatham/newton/"&gt;detailed page&lt;/a&gt; on this topic.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-7646506644441580750?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/7646506644441580750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=7646506644441580750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7646506644441580750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7646506644441580750'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/12/vliv-as-fractal-viewer.html' title='Vliv as a fractal viewer'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_C2zixREHR-k/R1Znn553VwI/AAAAAAAAAC4/DV_VXaZi-44/s72-c/vlivnewton.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-167956400427469192</id><published>2007-11-16T10:51:00.000-08:00</published><updated>2008-08-13T11:49:40.909-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='fractals'/><title type='text'>A picture of my new fractal object</title><content type='html'>Next to my new iPod Touch for a size comparison:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_C2zixREHR-k/Rz3nItRHigI/AAAAAAAAACs/jUYRbZ2GbZU/s1600-h/fractaltouch.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_C2zixREHR-k/Rz3nItRHigI/AAAAAAAAACs/jUYRbZ2GbZU/s400/fractaltouch.png" alt="" id="BLOGGER_PHOTO_ID_5133513287048595970" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-167956400427469192?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/167956400427469192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=167956400427469192' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/167956400427469192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/167956400427469192'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/11/picture-of-my-new-fractal-object.html' title='A picture of my new fractal object'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_C2zixREHR-k/Rz3nItRHigI/AAAAAAAAACs/jUYRbZ2GbZU/s72-c/fractaltouch.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-419316349236278493</id><published>2007-11-16T00:27:00.000-08:00</published><updated>2008-08-13T11:49:40.910-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='fractals'/><title type='text'>3d fractal object generation process</title><content type='html'>These objects, as I said &lt;a href="http://verylargeimages.blogspot.com/2007/11/more-3d-fractal-objects.html"&gt;previously&lt;/a&gt;,&lt;br /&gt;have very small details, so the polygonization grid should be very fine.&lt;br /&gt;&lt;br /&gt;The result is that in order to get sufficient detail, a huge number of triangles is generated, even for regions where the surface is locally flat, and in theory a much larger grid could have been used.&lt;br /&gt;&lt;br /&gt;I have not found any way of implementing adaptive refinement, so I am left with billions (literally) of triangles. In addition to take a large disk space (1 triangle equals 3 vertices, 1 vertex equals 3 floating point values, this makes 36 bytes per triangle), this amount of triangles is far beyond what is possible to display interactively (I think current limit of graphics hardware is about 10 million tris/second).&lt;br /&gt;&lt;br /&gt;The solution is called &lt;span style="font-weight: bold;"&gt;decimation &lt;/span&gt;. It simply consists of generating an object with less triangles, taking into account the fact that some areas are almost flat, and thus require less triangles. Of course this usually comes with variable loss of original shape, but it maybe not noticeable, depending on the quality of the implementation.&lt;br /&gt;&lt;br /&gt;Over the years I have found many implementations of meshes decimation, &lt;a href="http://lodbook.com/source/"&gt;here &lt;/a&gt;is a survey of common ones.&lt;br /&gt;&lt;br /&gt;The real key point for me is that the decimation implementation must be &lt;span style="font-weight: bold;"&gt;Out Of Core&lt;/span&gt;, that is it must work on data (much) larger than available memory. Not all implementation support this, but I found a little Gem, &lt;a href="http://axes.informatik.uni-leipzig.de/%7Ewir95day/interests/"&gt;cluspartred &lt;/a&gt;by Heiko Lippmann.&lt;br /&gt;Heiko has been kind enough to send me the Linux executable of his program, and I must say it works very well for my purposes.&lt;br /&gt;&lt;br /&gt;Starting from a 1 billion triangle mesh, it can generate a 5 million triangle mesh that is almost perfect looking and usable (displayable) on standard machines.&lt;br /&gt;It creates partitions on disk and loads on demand these partitions to decimate them in memory, handling all the details of contiguous partitions. On a recent machine (Xeon 3.2Ghz, see below full specs), this process only takes a few hours.&lt;br /&gt;&lt;br /&gt;I then convert the resulting triangle soup to a custom format that I wrote a viewer for, and eventually convert it to the &lt;a href="http://en.wikipedia.org/wiki/STL_%28file_format%29"&gt;STL &lt;/a&gt;format suitable for 3d Printers.&lt;br /&gt;&lt;br /&gt;The generation of the initial triangle soup is multi threaded using Intels'&lt;a href="http://threadingbuildingblocks.org/"&gt;TBB &lt;/a&gt;parallel_for, and is very efficient, using a grid size of 12000x9671x8417 only takes a few hours on a 8 core 3.2Ghz  2x6 MB cache 16 GB memory Xeon machine (cpuinfo x5482, not a bad machine...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-419316349236278493?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/419316349236278493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=419316349236278493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/419316349236278493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/419316349236278493'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/11/3d-fractal-object-generation-process.html' title='3d fractal object generation process'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-6286438341665165010</id><published>2007-11-15T08:08:00.000-08:00</published><updated>2008-08-13T11:49:40.910-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='fractals'/><title type='text'>More 3d fractal objects</title><content type='html'>I have ordered and received another object.&lt;br /&gt;&lt;br /&gt;These 3d printed objects are the result of some heavy computation.&lt;br /&gt;&lt;br /&gt;The basic idea is that the object is an isosurface, where a mathematical function is used to compute values. An introduction to isosurfaces can be found at &lt;a href="http://www.hyperfun.org/"&gt;Hyperfun&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You can find information on the type of 3d fractals used for my objects at &lt;a href="http://local.wasp.uwa.edu.au/~pbourke/fractals/quatjulia/"&gt;Paul Bourke's&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;While quaternion fractal images have been around for a long time because they are very well suited to the Ray Tracing method, and have been available in the &lt;a href="http://www.povray.org/"&gt;PovRay&lt;/a&gt; raytracer for a while now (Hi Skal!), it is much harder to get a polygonal representation of these objects.&lt;br /&gt;&lt;br /&gt;A common method to obtain 3d triangles for this kind of objects is called &lt;blockquote&gt;Polygonization of scalar fields&lt;/blockquote&gt;. &lt;br /&gt;&lt;br /&gt;It consists of computing values on a grid in 3d space, then determining triangles for a given unit cell. Once again Paul Bourke describes &lt;a href="http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/index.html"&gt;this &lt;/a&gt; very well.&lt;br /&gt;&lt;br /&gt;The problem is that fractal objects have very small details, so the grid should be very fine, requiring huge memory requirement, both for computation and storage. &lt;br /&gt;&lt;br /&gt;As an example let's look at an object that is polygonized with a coarse grid (150x120x105). The result is not very nice looking, but already has more than 160 000 triangles.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_C2zixREHR-k/Rzx4N9RHidI/AAAAAAAAACU/gqXtgJd0_0o/s1600-h/printed1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_C2zixREHR-k/Rzx4N9RHidI/AAAAAAAAACU/gqXtgJd0_0o/s400/printed1.png" border="0" alt=""id="Grid 150" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Going to a grid of 500x402x350 makes the object nicer but gives 1 834 396 triangles, so that we are starting to reach the limits what most graphics cards are capable of.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_C2zixREHR-k/Rzx4bdRHieI/AAAAAAAAACc/eqSdg4_nXT4/s1600-h/printed2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_C2zixREHR-k/Rzx4bdRHieI/AAAAAAAAACc/eqSdg4_nXT4/s400/printed2.png" border="0" alt=""id="Grid 500" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Refining the grid further would only give minimal aesthetic gains, while increasing storage and lowering framerate to an unsusable level. So this is not the way to go.&lt;br /&gt;&lt;br /&gt;Next post will unveil the method I use to get nice looking objects as this one, that has less than 5 million triangles (this one can be printed on a 3d printer):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_C2zixREHR-k/Rzx4mNRHifI/AAAAAAAAACk/LxzPJOFG144/s1600-h/printed3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_C2zixREHR-k/Rzx4mNRHifI/AAAAAAAAACk/LxzPJOFG144/s400/printed3.png" border="0" alt=""id="Nice one" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-6286438341665165010?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/6286438341665165010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=6286438341665165010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6286438341665165010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6286438341665165010'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/11/more-3d-fractal-objects.html' title='More 3d fractal objects'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_C2zixREHR-k/Rzx4N9RHidI/AAAAAAAAACU/gqXtgJd0_0o/s72-c/printed1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-1183598693264826440</id><published>2007-10-28T09:35:00.001-07:00</published><updated>2008-08-13T11:49:40.910-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='fractals'/><title type='text'>3d Fractals for real</title><content type='html'>For a while, I have been interested in 3d fractals.&lt;br /&gt;Recent 3d printing technology development has allowed me to get some of these printed for real, and for relatively cheap.&lt;br /&gt;&lt;br /&gt;Getting a file suitable to a 3d printer is a very complicated process.&lt;br /&gt;&lt;br /&gt;Here is a picture of me at my home desk holding a &lt;a href="http://www.3dsystems.com/products/sls/sinterstation_pro/index.asp"&gt;SLS &lt;/a&gt;object of size 15 cm, printed by &lt;a href="http://www.3dprod.com/index.php"&gt;3DProd &lt;/a&gt;for 269 euros.&lt;br /&gt;&lt;br /&gt;On the desk is an older smaller object (the same that is on the screen), printed on a &lt;a href="http://www.zcorp.com/"&gt;ZCorp &lt;/a&gt;printer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_C2zixREHR-k/RyS8Aq_DUmI/AAAAAAAAACM/Ydmy3kdvKwE/s1600-h/fractalobjsmall.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_C2zixREHR-k/RyS8Aq_DUmI/AAAAAAAAACM/Ydmy3kdvKwE/s400/fractalobjsmall.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5126428995579236962" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-1183598693264826440?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/1183598693264826440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=1183598693264826440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/1183598693264826440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/1183598693264826440'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/10/3d-fractals-for-real.html' title='3d Fractals for real'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C2zixREHR-k/RyS8Aq_DUmI/AAAAAAAAACM/Ydmy3kdvKwE/s72-c/fractalobjsmall.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-5184801455390435953</id><published>2007-09-30T07:01:00.000-07:00</published><updated>2008-08-13T11:50:28.956-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>Integrating your own gigapixel images in Google Earth</title><content type='html'>I have found that the processing necessary to integrate very large images in Google Earth 4.2 is, if not easy, possible.&lt;br /&gt;&lt;br /&gt;All you need is create a version of your image padded to a power of two in both dimensions, then scale by 2 recursively until image fits in a 256x256 pixels tile.&lt;br /&gt;&lt;br /&gt;Then you have to subdivide each image in single tiles.&lt;br /&gt;&lt;br /&gt;Finally you have to create a suitable KML file.&lt;br /&gt;&lt;br /&gt;The documentation for this feature can be found &lt;a href="http://code.google.com/apis/kml/documentation/photos.html#megapixelPhotos"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have some scripts that automate the process for a given TIFF image.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-5184801455390435953?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/5184801455390435953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=5184801455390435953' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/5184801455390435953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/5184801455390435953'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/09/integrating-your-own-gigapixel-images.html' title='Integrating your own gigapixel images in Google Earth'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-7960403457334180464</id><published>2007-09-22T11:33:00.000-07:00</published><updated>2008-08-13T11:50:28.957-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>Google Maps like nagivation of images</title><content type='html'>Viewing images on the Web is not always very user friendly, mainly because Web Browsers do not allow arbitrary zooming and panning in images. &lt;br /&gt;&lt;br /&gt;A more and more common way to solve this problem is the use of JavaScript with custom nagigation of images, using concepts such as pyramidal organization of images.&lt;br /&gt;&lt;br /&gt;A well known implementation of this concept is &lt;a href="http://maps.google.com/"&gt;Google Maps&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;While not directly related to very large images, because zooming does not refine information (images are not so-called very large), an interesting work has been conducted by &lt;a href="http://www.dirisala.net/nasa/nia/"&gt;Siva Dirisala&lt;/a&gt;, on a variety of Nasa images.&lt;br /&gt;&lt;br /&gt;By using more and more of these ideas, we should expect more and more very large images (and more generally all images) to be really in-place zoomable, a nice addition to content of Web pages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-7960403457334180464?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/7960403457334180464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=7960403457334180464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7960403457334180464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7960403457334180464'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/09/google-maps-like-nagivation-of-images.html' title='Google Maps like nagivation of images'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-6392620184296188553</id><published>2007-08-26T03:38:00.000-07:00</published><updated>2008-08-13T11:50:28.957-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>Gigapxl images now available in Google Earth</title><content type='html'>Everybody has noticed that &lt;a href="http://earth.google.com/"&gt;Google Earth 4.2&lt;/a&gt; now allows sky view. But few have noticed that it also allows all &lt;a href="http://www.gigapxl.org/"&gt;Gigapxl &lt;/a&gt; images viewing.&lt;br /&gt;&lt;br /&gt;All you have to do is to allow "selected content" and choose Gigapixl Photos.&lt;br /&gt;&lt;br /&gt;Locations are dispatched all around the United States.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-6392620184296188553?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/6392620184296188553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=6392620184296188553' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6392620184296188553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6392620184296188553'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/08/gigapxl-images-now-available-in-google.html' title='Gigapxl images now available in Google Earth'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-7008858680055585665</id><published>2007-08-15T06:33:00.001-07:00</published><updated>2008-08-13T11:50:28.958-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>Vliv source code for sale</title><content type='html'>During the 3 or 4 years I have proposed &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;Vliv &lt;/a&gt; as Shareware, I had exactly 4 registering customers. So I decided to make Vliv Freeware and not crippled in any way. Since then I have had 3 people interested in buying the source code (that is available at a reasonable price), so my revenues have been much more important.&lt;br /&gt;&lt;br /&gt;It should be noted that these demands are not regular at all, and since the 3 I had at the beginning, I had no more request for source code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-7008858680055585665?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/7008858680055585665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=7008858680055585665' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7008858680055585665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7008858680055585665'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/08/vliv-source-code-for-sale.html' title='Vliv source code for sale'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-8673805446263206321</id><published>2007-07-12T04:52:00.001-07:00</published><updated>2007-07-12T05:13:06.690-07:00</updated><title type='text'>Looking for IJG specialists</title><content type='html'>When I added the support of JPEg to VLIV, I tried to follow the "large images" philosophy, that is I am creating virtual tiles (in fact virtual strips), so only visible part of the file needs to be loaded.&lt;br /&gt;&lt;br /&gt;Unfortunately the &lt;a href="http://www.ijg.org/"&gt;IJG &lt;/a&gt;library does not allow as is arbitrary positioning in the image, so I have to decompress the complete image up to the strip start position.&lt;br /&gt;&lt;br /&gt;I subdivide the image in 256 pixels strips.&lt;br /&gt;&lt;br /&gt;This is quite costly, as for example the more you go to towards the end, the more you have to decode "for nothing".&lt;br /&gt;Imagine you have a 10000x10000 pixels image and a 1000x1000 display, and you want to display the bottom of the image.&lt;br /&gt;&lt;br /&gt;This corresponds to 4 (or 5) strips, each requiring between 9000 and 10000 lines decoding&lt;br /&gt;"for nothing", only to go to beginning of strip, so that while the memory used is  much lower than storing the complete image, the CPU used is like 5 times the CPU used for loading the complete image.&lt;br /&gt;&lt;br /&gt;There is clearly room for improvement.&lt;br /&gt;&lt;br /&gt;Here is my code (repeated for each virtual strip):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// reading up to strip start, discarding results&lt;br /&gt;for (idx = 0; idx &lt; stripstarty; ++idx)&lt;br /&gt;    jpeg_read_scanlines(&amp;cinfo, &amp;dstptr, 1);&lt;br /&gt;// reading stripheight&lt;br /&gt;for (idx = 0; idx &lt; stripheight &amp;&amp; idxt &lt; imageheight ; ++idx)&lt;br /&gt;    jpeg_read_scanlines(&amp;cinfo, &amp;dstptr, 1);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So if you are aware of any method that would speed up the first loop, that would be incredibly useful, and very large JPEG loading would be MUCH faster.&lt;br /&gt;&lt;br /&gt;Or of course if you know a JPEG (preferably free) library that supports arbitrary region decoding, feel free to contact me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-8673805446263206321?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/8673805446263206321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=8673805446263206321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/8673805446263206321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/8673805446263206321'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/07/looking-for-ijg-specialists.html' title='Looking for IJG specialists'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-9164648215108163842</id><published>2007-07-11T05:09:00.000-07:00</published><updated>2007-07-11T05:14:36.509-07:00</updated><title type='text'>Experimental support in VLIV for BigTIFF</title><content type='html'>I have checkout-ed this morning the libtiff CVS and compiled &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV &lt;/a&gt;using this version (it's 4.0 beta I think).&lt;br /&gt;&lt;br /&gt;This should allow BigTIFF files support.&lt;br /&gt; I have tested on a few files, but did not  go as far as getting large (huge, more than 4 gigabytes) files to better test.&lt;br /&gt;&lt;br /&gt;Remember this is a giant step in supporting really large image, I cannot see a real limit other than disk space now, as a 1 Terabyte image only scratches the surface of possible file size with BigTIFF.&lt;br /&gt;&lt;br /&gt;If you have large BigTIFF images, please test VLIV support for them and report any problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-9164648215108163842?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/9164648215108163842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=9164648215108163842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/9164648215108163842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/9164648215108163842'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/07/experimental-support-in-vliv-for.html' title='Experimental support in VLIV for BigTIFF'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-4024898645658644078</id><published>2007-07-08T09:21:00.000-07:00</published><updated>2007-07-08T09:30:59.602-07:00</updated><title type='text'>A specific application for Vliv</title><content type='html'>The sources for large images seems to be more and more diverse.&lt;br /&gt;&lt;br /&gt;I had some satellite data, scanned images from medical devices,  numeric  photographic stiched images.&lt;br /&gt;&lt;br /&gt;A customer contacted me to get the Vliv source code and adapt it to a very specific usage : a kiosk mode for displaying digital art in a gallery. That means removing all the interface and binding functionnality to trackball and buttons.&lt;br /&gt;&lt;br /&gt;The image he gave me is not that large (24000x12000) but try opening this in a standard viewer...&lt;br /&gt;&lt;br /&gt;I have specifically written for him a script that creates a special pyramidal TIFF from his original painting, with the difference to standard pyramids beeing that the zooming ratio between different levels is not 1/2 but 9/10. That allows very smooth (un)zooming in the image, and classic tiling allows panning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-4024898645658644078?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/4024898645658644078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=4024898645658644078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/4024898645658644078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/4024898645658644078'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/07/specific-application-for-vliv.html' title='A specific application for Vliv'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-243599807964297795</id><published>2007-06-20T11:20:00.000-07:00</published><updated>2007-06-20T11:34:04.591-07:00</updated><title type='text'>Implementing JPEG2000 in Vliv</title><content type='html'>The &lt;a href="http://en.wikipedia.org/wiki/JPEG_2000"&gt;JPEG2000 &lt;/a&gt;format looks quite promising, because of its compression ratios and also because of features such as Regions Of Interest . So I am looking at implementing support in &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are few libraries available (I am not counting professional and expensive ones):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.ece.uvic.ca/%7Emdadams/jasper/"&gt;Jasper&lt;/a&gt;, free&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.openjpeg.org/"&gt;OpenJPEG &lt;/a&gt;free, OpenSource&lt;/li&gt;&lt;li&gt;&lt;a href="http://j2k-codec.com/"&gt;J2K-Codec&lt;/a&gt;, commercial&lt;/li&gt;&lt;/ol&gt;I have registered and tested J2K-Codec. The API is very simple and well adapted to Windows usage, in fact I have been able to integrate it in a few 10's lines of code. It is also very fast. However the LITE version (49$ + VAT) does not allow loading images with more than 5 resolutions. That is a problem because I cannot afford the Pro version that does (199$ + VAT). I would rather have a slower LITE version than a one I cannot use at all on some images.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I have not yet understood how tiling works with resolutions in JPEG2000, all I need is a simple way to load part of the image, per-resolution. Right now large images cannot be loaded because complete resolution takes too much memory.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you wish to help on getting JPEG2000 support in Vliv, then contact me for source code. I am particularly interested on Very Large Images handling (aka tiling or ROI).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-243599807964297795?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/243599807964297795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=243599807964297795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/243599807964297795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/243599807964297795'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/06/implementing-jpeg2000-in-vliv.html' title='Implementing JPEG2000 in Vliv'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-655238780251377189</id><published>2007-06-20T07:07:00.000-07:00</published><updated>2007-06-20T07:12:51.750-07:00</updated><title type='text'>Another source of very large images (but not gigapixel)</title><content type='html'>Here is another source of Very Large Images (largest I found is 26267 x 20676, about 1/2 Gigapixel).&lt;br /&gt;&lt;br /&gt;The images are taken with      Onboard NASA’s Mars Reconnaissance Orbiter, the HiRISE camera.&lt;br /&gt;&lt;br /&gt;They are available in the JPEG2000 format that I am experimentally adding to &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV&lt;/a&gt;&lt;br /&gt;Next post will discuss the JPEG2000 library I am using now.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hirise.lpl.arizona.edu/index.php"&gt;HiRISE Web site&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-655238780251377189?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/655238780251377189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=655238780251377189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/655238780251377189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/655238780251377189'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/06/another-source-of-very-large-images-but.html' title='Another source of very large images (but not gigapixel)'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-3464284519567828711</id><published>2007-06-04T05:31:00.000-07:00</published><updated>2007-06-04T05:59:07.682-07:00</updated><title type='text'>A complete movie in one image</title><content type='html'>A friend of mine had this idea : make an image containing all frames from a movie.&lt;br /&gt;So I have experimented a little and I have found it's quite easy to do this.&lt;br /&gt;&lt;br /&gt;I am starting from an AVI that is about 700 Megabytes.&lt;br /&gt;&lt;br /&gt;The first step is to reduce the size of the movie (so that size is 320x176 for example), using &lt;a href="http://www.virtualdub.org/"&gt;VirtualDub &lt;/a&gt;and a non-compressed RGB destination.&lt;br /&gt;&lt;br /&gt;Next step is generation of individual frames. I use a two line &lt;a href="http://avisynth.org/mediawiki/Main_Page"&gt;AVISynth &lt;/a&gt;script, run the script in VirtualDub, and voila, 144499 jpeg images, each beeing a frame of the movie.&lt;br /&gt;&lt;br /&gt;Next I use some custom code to recreate a single TIFF file with all images appended in a  250x166 tiling (64000x42416 pixels). Actually I take only 1/3 of the images because it would not fit in 32 bits.&lt;br /&gt;&lt;br /&gt;Then I use my custom software to generate the TIFF pyramid.&lt;br /&gt;&lt;br /&gt;The result is a 1 761 000 bytes file that allows zooming/panning in the movie.&lt;br /&gt;&lt;br /&gt;Here is the most unzoomed image (reduced 50% from original size). Can you guess the movie I used ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_C2zixREHR-k/RmQI6ggnYgI/AAAAAAAAABk/dA5gVRrETec/s1600-h/movietiff.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_C2zixREHR-k/RmQI6ggnYgI/AAAAAAAAABk/dA5gVRrETec/s400/movietiff.png" alt="" id="BLOGGER_PHOTO_ID_5072188881578189314" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-3464284519567828711?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/3464284519567828711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=3464284519567828711' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3464284519567828711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3464284519567828711'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/06/complete-movie-in-one-image.html' title='A complete movie in one image'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C2zixREHR-k/RmQI6ggnYgI/AAAAAAAAABk/dA5gVRrETec/s72-c/movietiff.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-464372934229779038</id><published>2007-06-04T05:28:00.000-07:00</published><updated>2007-06-04T05:31:14.670-07:00</updated><title type='text'>Another Gigapixel by Scott Howard</title><content type='html'>This time it's &lt;a href="http://www.docbert.org/ChicagoByNight/"&gt;Chicago at night&lt;/a&gt;. Viewable through a Zoomify Flash interface.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-464372934229779038?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/464372934229779038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=464372934229779038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/464372934229779038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/464372934229779038'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/06/another-gigapixel-by-scott-howard.html' title='Another Gigapixel by Scott Howard'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-5745110139011197434</id><published>2007-05-11T12:18:00.000-07:00</published><updated>2007-05-11T12:22:04.756-07:00</updated><title type='text'>New multi Gigapixel image available</title><content type='html'>&lt;a href="http://www.harlem-13-gigapixels.com/index.html"&gt;This one&lt;/a&gt; has 13 real Gigapixels and detail is impressive. It is available through a Zoomify interface.&lt;br /&gt;It looks like we really need &lt;a href="http://www.aperio.com/bigtiff/"&gt;BigTIFF&lt;/a&gt; because of file size.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-5745110139011197434?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/5745110139011197434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=5745110139011197434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/5745110139011197434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/5745110139011197434'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/05/new-multi-gigapixel-image-available.html' title='New multi Gigapixel image available'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-3829572150127926375</id><published>2007-04-28T09:51:00.000-07:00</published><updated>2007-04-28T09:55:22.326-07:00</updated><title type='text'>Release of very large Hubble image</title><content type='html'>NASA has released a very large image with dimensions          29566 X 14321.&lt;br /&gt;&lt;a href="http://hubblesite.org/newscenter/archive/releases/2007/16/image/a/warn/"&gt;Here &lt;/a&gt;is a the link to the page.&lt;br /&gt;&lt;br /&gt;It opens quite well in &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV &lt;/a&gt;(prefer the tiff version).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-3829572150127926375?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/3829572150127926375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=3829572150127926375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3829572150127926375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3829572150127926375'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/04/release-of-very-large-hubble-image.html' title='Release of very large Hubble image'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-3131556544231408659</id><published>2007-04-04T06:33:00.000-07:00</published><updated>2007-04-04T06:39:46.934-07:00</updated><title type='text'>Fast image processing</title><content type='html'>Another side effect of using tiles for  very large images is that , as you only load what is visible on the screen, you can apply special effect to a very small subset of the complete image, while maintaining real time.&lt;br /&gt;&lt;br /&gt;A simple filter can be inverting the colors of the image, or displaying only the red component of the image.&lt;br /&gt;&lt;br /&gt;Some filters that deal with multiple pixels are not easily applicable to single tiles, for example blurring would require data from adjacent tile maybe not in memory.&lt;br /&gt;&lt;br /&gt;This filter could be easily implemented in &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV &lt;/a&gt;by small plugins, just like Photoshop plugins.&lt;br /&gt;It may even be possible to use already written plugins as the Photoshop plugin API is widely used and documented.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-3131556544231408659?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/3131556544231408659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=3131556544231408659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3131556544231408659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3131556544231408659'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/04/fast-image-processing.html' title='Fast image processing'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-5194962943172414374</id><published>2007-03-26T07:31:00.000-07:00</published><updated>2007-03-26T07:37:22.186-07:00</updated><title type='text'>Virtual Very Large Images</title><content type='html'>While very large image typically waste a large amount of Hard Disk space, there is a category of very large images that are Virtual, that is &lt;span style="font-weight: bold;"&gt;computed on the fly&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The most common type of this is Fractal images. At a given resolution (zoom level) and position, you can get the tile image by computation.&lt;br /&gt;&lt;br /&gt;Other that come to my mind are :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Algorithmic images, such as an image that displays all possible 8 bits RGB colors.&lt;/li&gt;&lt;li&gt;An image that displays all characters from the Unicode table. Each character can be made to fit one tile and rendered on the fly as it is needed.&lt;/li&gt;&lt;li&gt;Rasterized images from vectorial description.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-5194962943172414374?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/5194962943172414374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=5194962943172414374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/5194962943172414374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/5194962943172414374'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/03/virtual-very-large-images.html' title='Virtual Very Large Images'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-946564402022763573</id><published>2007-03-18T06:08:00.000-07:00</published><updated>2007-03-18T06:15:23.062-07:00</updated><title type='text'>The Virtual Microscope</title><content type='html'>I have found another source for Very Large Images (or relatively large), NASA's funded project &lt;a href="http://virtual.itg.uiuc.edu/"&gt;The Virtual Microscope&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It provides a large set of images, obtained through various microscopy methods, such as &lt;a href="http://en.wikipedia.org/wiki/Scanning_electron_microscope"&gt;SEM.&lt;/a&gt;&lt;br /&gt;The application is written in Java, with a nice small set of features (and an ugly look). The project images are delivered as Jars (aka Zip files), with subresolutions in subfolders, and individual tiles as single files. I have no idea why they did not use pyramidal TIFFs.&lt;br /&gt;&lt;br /&gt;I do not know the data license, so I will not post VLIV images created from theirs, but it is easy to convert the Jars to single TIFFs suitable for &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-946564402022763573?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/946564402022763573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=946564402022763573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/946564402022763573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/946564402022763573'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/03/virtual-microscope.html' title='The Virtual Microscope'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-6611868524710283715</id><published>2007-03-13T10:14:00.000-07:00</published><updated>2007-03-13T10:18:58.147-07:00</updated><title type='text'>VLIV released as freeware</title><content type='html'>The number of registered (paying) customers of &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV &lt;/a&gt;is quite low (4 people in fact).&lt;br /&gt;So I have decided to make it &lt;span style="font-weight: bold;"&gt;freeware&lt;/span&gt;, that is there is no need to register and the downloadable version is not limited in any way.&lt;br /&gt;&lt;br /&gt;Registering is always possible and donations are encouraged if of course you like the program.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-6611868524710283715?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/6611868524710283715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=6611868524710283715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6611868524710283715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6611868524710283715'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/03/vliv-released-as-freeware.html' title='VLIV released as freeware'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-6427524972841287195</id><published>2007-02-21T00:59:00.000-08:00</published><updated>2007-02-21T01:07:46.009-08:00</updated><title type='text'>Estimating the dimension of Google Earth full resolution image</title><content type='html'>Above my home, the smallest detail I can spot on Google Earth for a pixel is about 10 cm.&lt;br /&gt;The Earth equatorial circumference is about 40 000 kilometers.&lt;br /&gt;This makes 40 000 * 10 000 = 400 000 000 pixels.&lt;br /&gt;Assuming the Earth is spheric and the Google has all data, this makes 400 000 000 * 200 000 000 = 80 000 000 000 000 000 pixels, much more Gigapixels that I can imagine.&lt;br /&gt;&lt;br /&gt;Of course I do not think data is available at this resolution for the whole Earth, and my estimation of precision can be wrong, but these numbers are mind-boggling.&lt;br /&gt;&lt;br /&gt;The most &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;precise satellite  image of the Earth&lt;/a&gt; I have is about 1 pixel for 500 meters, this already makes a 86400 * 43200 image.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-6427524972841287195?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/6427524972841287195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=6427524972841287195' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6427524972841287195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/6427524972841287195'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/02/estimating-dimension-of-google-earth.html' title='Estimating the dimension of Google Earth full resolution image'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-7314508079355229613</id><published>2007-02-14T05:57:00.000-08:00</published><updated>2007-02-14T06:03:59.018-08:00</updated><title type='text'>Download the NASA Blue Marble NG pyramidal TIFF</title><content type='html'>I know seeing is believing. Unless you actually see one gigapixel pyramidal image viewed by &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV&lt;/a&gt;, you will not really understand how nice it is. This is why I have made the NASA Blue Marble NG image downloadable &lt;a href="http://vlivviewer.free.fr/world.tif"&gt;here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Be warned, it's a large image (427,582,365 bytes). It contains all 8 resolutions from 86400x43200 pixels down to 675x337 pixels.&lt;br /&gt;&lt;br /&gt;In order to keep the image size reasonable, an aggressive JPEG compression has been conducted, so there are some artifact you would not experience on lossless compressed image.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-7314508079355229613?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/7314508079355229613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=7314508079355229613' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7314508079355229613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7314508079355229613'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/02/download-nasa-blue-marble-ng-pyramidal.html' title='Download the NASA Blue Marble NG pyramidal TIFF'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-3577062230324903542</id><published>2007-02-13T01:00:00.000-08:00</published><updated>2007-02-13T01:11:20.577-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technical'/><category scheme='http://www.blogger.com/atom/ns#' term='VLIV'/><title type='text'>External libraries and tools used to build VLIV</title><content type='html'>VLIV is written in pure C (about 3000 lines, not counting resource file). I am using numerous external libraries to load some image types, as well as other tools.&lt;br /&gt;&lt;br /&gt;Libraries are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.libtiff.org/"&gt;libtiff &lt;/a&gt;for TIFF files handling&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ijg.org/"&gt;IJG&lt;/a&gt; JPEG library for JPEG amd JPEG-in-TIFF handling&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.libpng.org/pub/png/libpng.html"&gt;libpng &lt;/a&gt;for PNG handling&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.zlib.net/"&gt;zlib &lt;/a&gt;(indirect usage through libpng) for Deflate compression in TIFF images&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gipsysoft.com/articles/ownd/ownd.shtml"&gt;OWND &lt;/a&gt;library for intellimouse handling&lt;/li&gt;&lt;/ul&gt;External tools I use are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://upx.sourceforge.net/"&gt;UPX &lt;/a&gt;for compacting the VLIV executable&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://nsis.sourceforge.net/Main_Page"&gt;NSIS &lt;/a&gt;for the installer&lt;/li&gt;&lt;/ul&gt;All these tools are very well designed, and have saved me lot of time in getting VLIV done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-3577062230324903542?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/3577062230324903542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=3577062230324903542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3577062230324903542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3577062230324903542'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/02/external-libraries-and-tools-used-to.html' title='External libraries and tools used to build VLIV'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-3864099894165799053</id><published>2007-02-10T04:12:00.000-08:00</published><updated>2007-03-04T08:36:45.051-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Images'/><title type='text'>What is your largest image ?</title><content type='html'>The largest images I have on my machine, viewable by &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV &lt;/a&gt;are  86400 x 43200 = 3.7 Gigapixels&lt;br /&gt;(It's the NASA Blue Marble NG) and 96512 x 88832 = 8.6 Gigapixels.&lt;br /&gt;&lt;br /&gt;What are the largest images you have been able to view with VLIV ?&lt;br /&gt;Please post them in comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-3864099894165799053?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/3864099894165799053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=3864099894165799053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3864099894165799053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/3864099894165799053'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/02/what-is-your-largest-image.html' title='What is your largest image ?'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-35759579102735911</id><published>2007-01-31T12:11:00.000-08:00</published><updated>2007-01-31T12:17:03.748-08:00</updated><title type='text'>Request for features</title><content type='html'>I have always tried to make VLIV as simple as possible, while keeping it as powerful as possible.&lt;br /&gt;So the number of features is quite limited, compared with other Viewers such as IrfanView.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;I have some ideas myself, but time is missing for large improvements.&lt;br /&gt;&lt;br /&gt;So please do not hesitate to ask for features in this article comments, I will consider all propositions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-35759579102735911?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/35759579102735911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=35759579102735911' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/35759579102735911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/35759579102735911'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/01/request-for-features.html' title='Request for features'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-5036010947532545494</id><published>2007-01-24T00:31:00.000-08:00</published><updated>2007-01-24T00:55:44.080-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Images'/><category scheme='http://www.blogger.com/atom/ns#' term='Technical'/><title type='text'>Printing size of very large images</title><content type='html'>Imagine we have a Very Large Image (such as the one generated from &lt;a href="http://verylargeimages.blogspot.com/2007/01/very-large-images-on-your-disk.html"&gt;NASA Blue Marble NG&lt;/a&gt;).&lt;br /&gt;The dimensions in pixels are 86400 x 43200 (remember it's the Earth at 500 m/pixel).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;Simple math gives us 86400 / 1680 = 52 and 43200 / 1050 = 41.&lt;br /&gt;This means that in order to view the complete image, we would need a matrix of 52 x 41 = &lt;span style="font-weight: bold;"&gt;2132  &lt;/span&gt;monitors !!&lt;br /&gt;&lt;br /&gt;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 = &lt;span style="font-weight: bold;"&gt;864 &lt;/span&gt;cm and&lt;br /&gt;43200 / 100 = &lt;span style="font-weight: bold;"&gt;432 &lt;/span&gt;cm (340 x  170 inches). This is huge, it would require more than &lt;span style="font-weight: bold;"&gt;640 &lt;/span&gt;A4 sheets of paper !!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;Here is a small version :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_C2zixREHR-k/Rbce6-Qqa7I/AAAAAAAAABI/fDwvpEFht2A/s1600-h/posterfinal_verysmall.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_C2zixREHR-k/Rbce6-Qqa7I/AAAAAAAAABI/fDwvpEFht2A/s400/posterfinal_verysmall.jpg" alt="" id="BLOGGER_PHOTO_ID_5023517907849210802" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-5036010947532545494?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/5036010947532545494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=5036010947532545494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/5036010947532545494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/5036010947532545494'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/01/printing-size-of-very-large-images.html' title='Printing size of very large images'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_C2zixREHR-k/Rbce6-Qqa7I/AAAAAAAAABI/fDwvpEFht2A/s72-c/posterfinal_verysmall.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-7661781989191326345</id><published>2007-01-23T06:05:00.000-08:00</published><updated>2007-01-23T09:33:59.623-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advertising'/><title type='text'>VLIV, The Very Large Image Viewer for Windows</title><content type='html'>In my spare time, I have coded &lt;a href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV&lt;/a&gt; as an exercise in programming Windows.&lt;br /&gt;The idea was to create a minimal viewer for very large TIFF (tiled).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;This works very well, because in no more than the visible tiles have to be loaded, so that panning is fast, and zooming also.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;TIFF has built in support for tiles, but VLIV also creates &lt;span style="font-style: italic;"&gt;Virtual Tiles&lt;/span&gt; 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.&lt;br /&gt;&lt;br /&gt;It also uses a special capability of the JPEG format to allow instant unzooming.&lt;br /&gt;&lt;br /&gt;Here is a screendump of VLIV in action on a 86400x43200 pixels image:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_C2zixREHR-k/RbZGv-Qqa6I/AAAAAAAAAA8/wSZvdcwUMio/s1600-h/vlivnasa.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_C2zixREHR-k/RbZGv-Qqa6I/AAAAAAAAAA8/wSZvdcwUMio/s400/vlivnasa.png" alt="" id="BLOGGER_PHOTO_ID_5023280224359050146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;VLIV is Shareware, and the price is 10$ (or Euros). I give instructions on VLIV site to build the shown image.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-7661781989191326345?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/7661781989191326345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=7661781989191326345' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7661781989191326345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7661781989191326345'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/01/vliv-very-large-image-viewer-for.html' title='VLIV, The Very Large Image Viewer for Windows'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_C2zixREHR-k/RbZGv-Qqa6I/AAAAAAAAAA8/wSZvdcwUMio/s72-c/vlivnasa.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-2965717118640527746</id><published>2007-01-23T05:14:00.000-08:00</published><updated>2007-01-23T05:32:56.203-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technical'/><title type='text'>Image formats capabilities</title><content type='html'>While most image formats are able to store very large images, not all formats are suitable for displaying these images.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;The last capability is support for very large file sizes, because Very Large Images require large file size.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is a sum-up of these capabilities:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_C2zixREHR-k/RbYNyOQqa4I/AAAAAAAAAAk/ImyHE3V6hZ0/s1600-h/imagecap.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_C2zixREHR-k/RbYNyOQqa4I/AAAAAAAAAAk/ImyHE3V6hZ0/s320/imagecap.png" alt="" id="BLOGGER_PHOTO_ID_5023217590850972546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-2965717118640527746?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/2965717118640527746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=2965717118640527746' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/2965717118640527746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/2965717118640527746'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/01/image-formats-capabilities.html' title='Image formats capabilities'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_C2zixREHR-k/RbYNyOQqa4I/AAAAAAAAAAk/ImyHE3V6hZ0/s72-c/imagecap.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-5449891218841083098</id><published>2007-01-23T05:12:00.001-08:00</published><updated>2007-01-23T05:38:05.038-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technical'/><title type='text'>TIFF 32 bit file size limit and consequences</title><content type='html'>&lt;p&gt;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. &lt;/p&gt;&lt;p&gt;Deflate and Packbits are so-called lossless compression, while JPEG achieves high compression ratios using a lossy method.&lt;/p&gt;  &lt;p&gt; 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. &lt;/p&gt;  &lt;p&gt;The following table shows what dimensions can be achieved with different  compression ratios:&lt;/p&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_C2zixREHR-k/RbYNbeQqa3I/AAAAAAAAAAU/9xwal22MXRI/s1600-h/tiffsize.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_C2zixREHR-k/RbYNbeQqa3I/AAAAAAAAAAU/9xwal22MXRI/s320/tiffsize.png" alt="" id="BLOGGER_PHOTO_ID_5023217200008948594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-5449891218841083098?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/5449891218841083098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=5449891218841083098' title='47 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/5449891218841083098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/5449891218841083098'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/01/existing-tiff-format-is-limited-in-size.html' title='TIFF 32 bit file size limit and consequences'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C2zixREHR-k/RbYNbeQqa3I/AAAAAAAAAAU/9xwal22MXRI/s72-c/tiffsize.png' height='72' width='72'/><thr:total>47</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-4000749764145792104</id><published>2007-01-23T05:11:00.002-08:00</published><updated>2007-01-23T05:12:05.151-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Images'/><title type='text'>Very Large Images on your disk</title><content type='html'>&lt;div class="storycontent"&gt;          &lt;p&gt;While there are quite many images you can view on the Web (see previous post), there are actually very few you can download to your machine.&lt;/p&gt;  &lt;p&gt;You can find few on my &lt;a title="Very Large Image Viewer" target="_self" href="http://vlivviewer.free.fr/vliv.htm"&gt;VLIV viewer&lt;/a&gt; page, and instructions to create the NASA Blue Marble Next Generation from NASA dataset&lt;/p&gt;  &lt;p&gt;As most technologies to provide Web viewing are HTTP based, it is quite easy to use a mass downloader to download individual tiles just like the Web viewing techonogy does. Rejoining them to recreate the full image is easy then. Because of copyrights and intellectual property, I will not disclose how to do, but so far I have successfully recreated images originating from the Google Maps API (easy) and Zoomify (harder), even multiple Gigapixel ones.&lt;/p&gt;  &lt;p&gt;The most common format for tiles is JPEG, and the largest image I have is about 360x350 tiles of 256x256 pixels.&lt;/p&gt;  &lt;p&gt;Needless to say,  viewing very large images stored on a local disk is impressive, because of the speed compared to Web viewing. There is no delay when panning and zooming.&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-4000749764145792104?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/4000749764145792104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=4000749764145792104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/4000749764145792104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/4000749764145792104'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/01/very-large-images-on-your-disk.html' title='Very Large Images on your disk'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-26466861273886852</id><published>2007-01-23T05:11:00.001-08:00</published><updated>2007-01-23T05:11:33.151-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Images'/><title type='text'>Large images on the Web</title><content type='html'>&lt;p&gt;Giving a public access to gigapixel images requires that you have a way to make them accessible through the web.&lt;/p&gt;  &lt;p&gt;There are quite a few technologies that allow this, here are the ones I know about:&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;The Google Maps API, written in Javascript + DHTML&lt;/li&gt;&lt;li&gt;Google Earth, a standalone application using HTTP to retrieve tiles.&lt;/li&gt;&lt;li&gt;Zoomify, written in Flash&lt;/li&gt;&lt;li&gt;FSI viewer, also written in Flash I think.  &lt;/li&gt;&lt;/ol&gt;  &lt;p&gt;With these technologies, a few very large images can be viewed on your browser:&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;The Earth, on &lt;a href="http://maps.google.com/" target="_self" title="Google Maps"&gt;Google Maps&lt;/a&gt;, using a mix of satellite images and maps&lt;a href="http://maps.google.com/" target="_self" title="Google Maps"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The &lt;a href="http://earthobservatory.nasa.gov/Newsroom/BlueMarble/" target="_self" title="Blue Marble Next Generation Dataset"&gt;Blue Marble Next Generation Dataset&lt;/a&gt; from NASA on &lt;a href="http://www.yawah.com/bmng/" target="_self" title="Yawah"&gt;Yawah&lt;/a&gt; (resolution is 500 meters/pixel, so the complete image is about 86400x43200 pixels)&lt;/li&gt;&lt;li&gt;Digital photography, such as&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.xrez.com/" target="_self" title="xRez"&gt;xRez&lt;/a&gt; (stitching a large array of digital images)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gigapxl.org/" target="_self" title="Gigapxl"&gt;The Gigapxl Project&lt;/a&gt; (scanning a very large format argentic film)&lt;a href="http://www.gigapxl.org/" target="_self" title="Gigapxl"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://haltadefinizione.deagostini.it/" target="_self" title="Hal9000 Ikonos"&gt;Hal9000 Ikonos&lt;/a&gt; (stitching a large array of digital images) &lt;a href="http://haltadefinizione.deagostini.it/" target="_self" title="Hal9000 Ikonos"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Scott Howard (&lt;a href="http://www.docbert.org/MP/" target="_self" title="Machu Picchu"&gt;Machu Picchu&lt;/a&gt; and &lt;a href="http://www.docbert.org/SydneyByNight/" target="_self" title="Sydney By Night"&gt;Sydney By Night&lt;/a&gt;) (stitching a large array of digital images) &lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Other sites provide information on very large images, but do not make them available to the public:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt; &lt;a href="http://www.tawbaware.com/maxlyons/" target="_self" title="Max Lyons"&gt;Max Lyons&lt;/a&gt; (who was the first to break the Gigapixel barrier for stitched digital images)&lt;a href="http://www.tawbaware.com/maxlyons/" target="_self" title="Max Lyons"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; If you know other sites providing very large images, please comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-26466861273886852?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/26466861273886852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=26466861273886852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/26466861273886852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/26466861273886852'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/01/large-images-on-web.html' title='Large images on the Web'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-9038315674608986694</id><published>2007-01-23T05:09:00.000-08:00</published><updated>2007-01-23T05:10:52.230-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technical'/><title type='text'>Pyramidal tiling data organization</title><content type='html'>&lt;p&gt;So we do not want to load the complete gigapixel image in memory. What can we do about it ? &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;The first idea is to use a scheme that is called tiling. The image is internally organized as an array of rows and columns. This organization makes possible to retrieve a part of the image without loading the complete image. Requesting a part of the image is now requesting only the tiles that are intersecting this part.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Imagine you have a 10000x10000 pixels images, divided in 256x256 pixels tiles. If you want to display only the top-left part on your 1280x1024 screen, then you only need to load  5x4 = 20 tiles, that is 196 608 bytes x 20 = 3 932 160 bytes, instead of 300 000 000 bytes to load the entire image.&lt;/p&gt;  &lt;p&gt;&lt;br /&gt;This has three immediate consequences : &lt;/p&gt;  &lt;ol&gt;&lt;li&gt;Image loading is very fast, because you only load what is visible on the screen&lt;/li&gt;&lt;li&gt;Image panning can also be made very fast, because as you pan around, tiles not visible can be discarded from memory and visible ones are loaded (this is called &lt;strong&gt;on-demand &lt;/strong&gt; loading)&lt;/li&gt;&lt;li&gt;Memory requirement is almost constant is about the memory needed for one visible screen of data, regardless of image size, so that you can now load your image on any PC, even PCs with as less as 128 megabytes of memory&lt;/li&gt;&lt;/ol&gt;  &lt;p&gt;Now that we are able to freely pan the image, we may want to be able to zoom out, up to the point where the entire image is visible. Tiling will not help here, because in order to display the complete image, we need to access all pixels, that means loading the whole image to compute a reduced version of this image. This is where &lt;strong&gt;pyramidal&lt;/strong&gt; comes in. The idea is to generate images that are reduced version of the complete one, each beeing 2 times smaller than the previous one. (Un)Zooming is now only a matter of switching between these resolution. Of course these subimages are themselves tiles to allow arbitray access.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Let’s take a small example with an original image that is 10000x8000 pixels. We would generate a pyramid of images:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;10000x8000 (level 0)&lt;/li&gt;&lt;li&gt;5000x4000 (level 1)&lt;/li&gt;&lt;li&gt;2500x2000 (level 2)&lt;/li&gt;&lt;li&gt;1250x1000 (level 3)&lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;We can see that at level 3, the complete image fits into our 1280x1024 screen. If we are at &lt;strong&gt;level 3&lt;/strong&gt; and want to zoom in, then we switch to &lt;strong&gt;level 2&lt;/strong&gt;, and so on.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;We now have an organization of data that allow us to zoom and pan freely in our large image, with memory requirements limited to our physical screen size ! &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Of course you may say this comes at a cost in storage, because we have to store all these additional levels. What cost exactly ?&lt;/p&gt;  &lt;p&gt;If the image size at level 0 is &lt;strong&gt;1&lt;/strong&gt; unit, then level 1 is &lt;strong&gt;1/4&lt;/strong&gt; this unit (0.25), level 2  is &lt;strong&gt;1/16&lt;/strong&gt; and so on.&lt;/p&gt;  &lt;p&gt;This is a very well known mathematical suite whose limit is &lt;strong&gt;1.33333333..&lt;/strong&gt;, so the overhead is not very large given the benefits.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;This pyramidal tiling is used in at least two very widely known applications :&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;&lt;a href="http://earth.google.com/" target="_self" title="Google Earth"&gt;Google Earth&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.com/" target="_self" title="Google Maps"&gt;Google Maps&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-9038315674608986694?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/9038315674608986694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=9038315674608986694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/9038315674608986694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/9038315674608986694'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/01/pyramidal-tiling-data-organization.html' title='Pyramidal tiling data organization'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-368192206343063026</id><published>2007-01-23T05:01:00.000-08:00</published><updated>2007-01-23T05:09:17.363-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advertising'/><title type='text'>How many people have 4 gigabytes of memory ?</title><content type='html'>&lt;p&gt;While most computers can display images taken from a digital camera, a special care is required to allow display of gigapixel images. Let’s see why.&lt;/p&gt;  &lt;p&gt;Usually, a pixel takes 3 bytes of memory, one for each Red, Green and Blue component. Standard image viewers are loading the image completely in memory to display it, even if visible area of your image is only 1280x1024 pixels because of your physical screen size.&lt;/p&gt;  &lt;p&gt;Best digital camera have a 12 Megapixel sensor, let’s say 4000x3000 pixels. This makes 36 000 000 bytes required for storing in memory the image. This is possible on any machine available now.&lt;/p&gt;  &lt;p&gt; Let’s now take a gigapixel image at 40000x30000 pixels. This makes &lt;span style="font-weight: bold;"&gt;100 &lt;/span&gt;times more memory, peaking at 3 600 000 000 bytes, that is 3.6 gigabytes.&lt;/p&gt;  &lt;p&gt;Unless you have actually 4 Gigabytes of memory and your OS allows a chunk of this size to be allocated, then there is &lt;strong&gt;no way&lt;/strong&gt; you can display the image on your machine, standard software will either crash or not allow image loading or will take forever to load.&lt;/p&gt;  &lt;p&gt;&lt;br /&gt;Unless you use some clever way of organizing the image data and you have a dedicated viewer that knows how to handle this specific organization. &lt;/p&gt;  &lt;p&gt;&lt;br /&gt;Next post will discuss this organization, usually called pyramidal tiling.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-368192206343063026?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/368192206343063026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=368192206343063026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/368192206343063026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/368192206343063026'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/01/how-many-people-have-4-gigabytes-of.html' title='How many people have 4 gigabytes of memory ?'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824624922053452329.post-7914971430963214574</id><published>2007-01-23T05:00:00.000-08:00</published><updated>2007-01-23T05:01:32.662-08:00</updated><title type='text'>Welcome</title><content type='html'>Hi all, &lt;br /&gt;&lt;br /&gt;This blog is dedicated to so called gigapixel images, ie images with dimensions in excess of &lt;strong&gt;30000&lt;/strong&gt;x&lt;strong&gt;30000&lt;/strong&gt; pixels.&lt;br /&gt;These image are becoming more and more common. Posts will deal with topics such as tools to build these images, tools to display these images (with emphasis on my own viewer &lt;a href="http://vlivviewer.free.fr/vliv.htm" target="_self" title="VLIV"&gt;http://vlivviewer.free.fr/vliv.htm&lt;/a&gt;),where to get those images, and technical issues when dealing with s&lt;a href="javascript:void(0)" onclick="return false;" tabindex="7"&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;uch large image sizes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824624922053452329-7914971430963214574?l=verylargeimages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://verylargeimages.blogspot.com/feeds/7914971430963214574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824624922053452329&amp;postID=7914971430963214574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7914971430963214574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824624922053452329/posts/default/7914971430963214574'/><link rel='alternate' type='text/html' href='http://verylargeimages.blogspot.com/2007/01/welcome.html' title='Welcome'/><author><name>Frederic Delhoume</name><uri>http://www.blogger.com/profile/08932473677534512129</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
