[Gdal-dev] MrSID Driver performances

Julien Demaria dem at acri-st.fr
Wed Oct 6 03:50:39 EDT 2004


Hi,

First, Andrey thanks a lot for implementing block caching in the driver for 
DSDK 4.xx, now decompress an RGB MrSID file is very faster ! :-)

I've made some tests on performances with the 4.xx driver on a big 
10000x10000 MrSID RGB file.
The file has the version 1.0.1 (with mrsidinfo) and I suppose this is an 
MG2 file ; I haven't got any big MrSID MG3 file for testing...

I found that the driver can be improved a lot simply by changing the blocks 
size to 256x256 instead strips calculated with the 
poImageReader->getStripHeight() DSDK method.
With this changes my tests seem to be between 2 and 3 times more faster !

My tests are (on Win32 and Solaris) :
- gdal_translate execution time
- OpenEV visualisation (it's faster and more reactive)
- a sort of gdal_translate in our software
- visualisation time in our software

Maybe it should be interesting to do theses tests with an MG3 file...

The diff with the current CVS version for change the blocks size :

 >         GInt32          nCol = nBlockXOff * nBlockXSize;
1390,1391c1391,1393
<                                 nBlockXOff * nBlockXSize, nLine,
<                                 nBlockXSize,
---
 >                                 nCol, nLine,
 >                                 (nCol+nBlockXSize>poGDS->GetRasterXSize())?
 >                                 (poGDS->GetRasterXSize()-nCol):nBlockXSize,
1768,1769c1770,1771
<     nBlockXSize = nRasterXSize;
<     nBlockYSize = poImageReader->getStripHeight();
---
 >     nBlockXSize = 256;
 >     nBlockYSize = 256;



Best Regards,

Julien




More information about the Gdal-dev mailing list