Hi list,<br>I have a 3 bands 21600x21600 jp2K image and I wish to read it as a 21600x5400 (doing a 4:1 subsampling along Y). [I&#39;m using GDAL 1.5.3]<br>When doing this read, the DirectRasterIO method gives this error:<br>
&quot;Failed to allocate 1399680000 byte intermediate decompression buffer for jpeg2000.&quot;<br><br>Debugging the code I have noticed this:<br>Firstly, it looks for a proper number of levels to be discarded to reduce the amount of data to be read.<br>
In this case, being a request of 1:1 along X, no decomposition levels can be discarded. Then it needs to read the image at its maximum resolution and then do a subsampling on it.<br>This step requires to allocate a buffer where to store original data to be afterwards subsampled. However, depending on the imagesize, this preallocation (with VSIMalloc) may fail on very big images (my case).<br>
<br>Is there a solution for this problem?<br><br>- I have noticed that using GDAL_FORCE_CACHING will use the block based read method (IReadBlock) which doesn&#39;t use that section of code.<br>- Maybe, when working on big images, splitting the read in several kdu_stripe_decompressor.pull_stripe calls (with stripeHeights &lt; imageHeight) on a reduced buffer to be subsampled for each iteration, could be a solution.<br>
<br>Any suggestions?<br><br>Thank you very much.<br><br>Regards,<br>Daniele<br><br>-- <br>-------------------------------------------------------<br>Eng. Daniele Romagnoli <br>Software Engineer<br><br>GeoSolutions S.A.S.<br>
Via Carignoni 51<br>55041 Camaiore (LU)<br>Italy<br><br>phone: +39 0584983027<br>fax: &nbsp; &nbsp; +39 0584983027<br>mob: &nbsp; +39 328 0559267<br><br><br><a href="http://www.geo-solutions.it">http://www.geo-solutions.it</a><br><br>-------------------------------------------------------<br>
<br>