I have been tasked with adding functionality to an existing C++ developed toolset whereby a source dataset (typically a single GeoTIFF) needs to be split into tiles at various resolutions ('zoom' levels). Obviously this necessitates the generation of pyramid tile sets. Being completely new to the world of GIS I am finding there is quite a learning curve, hence would be grateful of any guidance with my particular problem.
So far I have developed a routine that generates the pyramid, and this is very much based on the gdal2tiles Python script. However, this made use of the RasterIO API calls and consequently the resulting tiles don't look so good when scaled down - i.e. very blocky and akin to a 'nearest-neighbour' sampling method. My question, is there a method (exposed via the C/C++ API) that allows me to generate these tiles with bilinear or cubic filtering automatically? Or do I have to interrogate the band data myself and write the appropriate filtering kernels?
Due to the restraints imposed, I am unable to make use of the Python scripts and have to realise this functionality purely through the C/C++ API.