allow custom decoder for downsamples; AsyncTasks now use threadpools; added padding to viewport