Thanks for the suggestion but I&#39;m developing a Win32 app.<br>I will take in consideration your previous answer because the app can read images from other sources.<br><br>Regards,<br>Stefano<br><br>-- <br>Dr.Eng. Stefano Moratto<br>
<a href="mailto:stefano.moratto@gmail.com">stefano.moratto@gmail.com</a><br><a href="mailto:stefano.moratto@csiat.it">stefano.moratto@csiat.it</a><br><a href="http://www.csiat.it">http://www.csiat.it</a> - Traffic Optimization Software<br>
<br><div class="gmail_quote">On Tue, Feb 8, 2011 at 11:38 PM, Even Rouault <span dir="ltr">&lt;<a href="mailto:even.rouault@mines-paris.org">even.rouault@mines-paris.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Le mardi 08 février 2011 23:33:39, Stefano Moratto a écrit :<br>
<div class="im">&gt; The openstreet data is a virtual image composed by several tiles at a given<br>
&gt; zoom level, each tiles is a 256x256 png, so I think if a thead read a<br>
&gt; 256x256 block i will access only a given png.<br>
<br>
</div>Yes of course reading different images by different threads will work. If you<br>
use GDAL on Unix, be sure that it is built with the --with-threads option,<br>
which had to be explicitely passed before GDAL 1.8.0 and is now the default.<br>
<br>
My previous answer only applies if you divide the reading of a single PNG<br>
image into several threads.<br>
<div><div></div><div class="h5"><br>
&gt;<br>
&gt; On Tue, Feb 8, 2011 at 11:14 PM, Even Rouault<br>
&gt;<br>
&gt; &lt;<a href="mailto:even.rouault@mines-paris.org">even.rouault@mines-paris.org</a>&gt;wrote:<br>
&gt; &gt; Le mardi 08 février 2011 23:07:36, Stefano Moratto a écrit :<br>
&gt; &gt; &gt; Thanks for the suggestion,<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I have to read png from openstreetmap. I&#39;m trying to render an A4 paper<br>
&gt; &gt; &gt; size sheet so I have a lot of data to move.<br>
&gt; &gt; &gt; It may be better to divide the area to be read in blocks and to give to<br>
&gt; &gt; &gt; each thread a block. Foreach  block a thread should read all the bands.<br>
&gt; &gt; &gt; Probabilly I should allign the block to the tile&#39;s boundary<br>
&gt; &gt;<br>
&gt; &gt; Unfortunately the PNG format is such that it is not possible to seek to<br>
&gt; &gt; an arbitrary line without decoding the data of all previous scanlines,<br>
&gt; &gt; so this approach won&#39;t work. The same would be true for JPEG or GIF. If<br>
&gt; &gt; you can fetch<br>
&gt; &gt; the data as TIFF, you could however try that approach.<br>
&gt; &gt;<br>
&gt; &gt; &gt; Stefano<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Le mardi 08 février 2011 22:41:50, Stefano Moratto a écrit :<br>
&gt; &gt; &gt; &gt; &gt; Hello,<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;           given an opened GDAL dataset, is it possibile to perform<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; gdalrasterio calls for each band in a dedicated thread per band in<br>
&gt; &gt; &gt; &gt; &gt; a thead-safe way?<br>
&gt; &gt; &gt; &gt; &gt; E.g. I have a raster image with 3 band (r,g,b). Since I have 4 core<br>
&gt; &gt; &gt; &gt; &gt; I<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; would<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; like to I run a thread for a band r, one for band g and one for<br>
&gt; &gt; &gt; &gt; &gt; band<br>
&gt; &gt;<br>
&gt; &gt; g.<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; This has been discussed recently. See<br>
&gt; &gt; &gt; &gt; <a href="http://lists.osgeo.org/pipermail/gdal-" target="_blank">http://lists.osgeo.org/pipermail/gdal-</a><br>
&gt; &gt; &gt; &gt; dev/2011-January/027567.html and the following messages.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; (I&#39;d note that if you process a pixel interleaved image, there are<br>
&gt; &gt; &gt; &gt; optimizations in the GTiff driver to make the fetching of other bands<br>
&gt; &gt; &gt; &gt; almost<br>
&gt; &gt; &gt; &gt; &#39;free&#39; if you read block by block, so there&#39;s probably little to<br>
&gt; &gt; &gt; &gt; gain, but the<br>
&gt; &gt; &gt; &gt; results of your experiments are welcome)<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Regards,<br>
&gt; &gt; &gt; &gt; &gt; Stefano<br>
</div></div></blockquote></div><br><br clear="all"><br><br>