[gdal-dev] RasterIO in paralel

Even Rouault even.rouault at mines-paris.org
Tue Feb 8 17:38:41 EST 2011


Le mardi 08 février 2011 23:33:39, Stefano Moratto a écrit :
> The openstreet data is a virtual image composed by several tiles at a given
> zoom level, each tiles is a 256x256 png, so I think if a thead read a
> 256x256 block i will access only a given png.

Yes of course reading different images by different threads will work. If you 
use GDAL on Unix, be sure that it is built with the --with-threads option, 
which had to be explicitely passed before GDAL 1.8.0 and is now the default.

My previous answer only applies if you divide the reading of a single PNG 
image into several threads.

> 
> On Tue, Feb 8, 2011 at 11:14 PM, Even Rouault
> 
> <even.rouault at mines-paris.org>wrote:
> > Le mardi 08 février 2011 23:07:36, Stefano Moratto a écrit :
> > > Thanks for the suggestion,
> > > 
> > > I have to read png from openstreetmap. I'm trying to render an A4 paper
> > > size sheet so I have a lot of data to move.
> > > It may be better to divide the area to be read in blocks and to give to
> > > each thread a block. Foreach  block a thread should read all the bands.
> > > Probabilly I should allign the block to the tile's boundary
> > 
> > Unfortunately the PNG format is such that it is not possible to seek to
> > an arbitrary line without decoding the data of all previous scanlines,
> > so this approach won't work. The same would be true for JPEG or GIF. If
> > you can fetch
> > the data as TIFF, you could however try that approach.
> > 
> > > Stefano
> > > 
> > > > Le mardi 08 février 2011 22:41:50, Stefano Moratto a écrit :
> > > > > Hello,
> > > > > 
> > > > >           given an opened GDAL dataset, is it possibile to perform
> > > > > 
> > > > > gdalrasterio calls for each band in a dedicated thread per band in
> > > > > a thead-safe way?
> > > > > E.g. I have a raster image with 3 band (r,g,b). Since I have 4 core
> > > > > I
> > > > 
> > > > would
> > > > 
> > > > > like to I run a thread for a band r, one for band g and one for
> > > > > band
> > 
> > g.
> > 
> > > > This has been discussed recently. See
> > > > http://lists.osgeo.org/pipermail/gdal-
> > > > dev/2011-January/027567.html and the following messages.
> > > > 
> > > > (I'd note that if you process a pixel interleaved image, there are
> > > > optimizations in the GTiff driver to make the fetching of other bands
> > > > almost
> > > > 'free' if you read block by block, so there's probably little to
> > > > gain, but the
> > > > results of your experiments are welcome)
> > > > 
> > > > > Regards,
> > > > > Stefano


More information about the gdal-dev mailing list