gdal
gdal copied to clipboard
Better L1d cache friendliness for TIFF block interleaving/de-interleaving
When one decompresses a pixel-interleave TIFF, one de-interleave the GeoTIFF block into N GDAL blocks by proceeding by entire block (the GDALCopyWords64() call in GTiffRasterBand::IReadBlock). This means that the original GeoTIFF block has to be bring into L1d cache N times. We could probably perform much better by doing thie de-interleaving into the N target GDAL blocks at one time.
Similarly at write time when combining the N GDAL blocks into a pixel-interleave TIFF block
GTiffRasterBand::IReadBlock() now uses GDALDeinterleave() when possible