Das nennt sich "Rubberducking": Rubber Ducking 
Das mit den Unterbildern ist (mir) noch nicht ganz klar. Auch dazu wäre ein bißchen Beispielcode nicht schlecht. Ich hätte jetzt (im Pseudocode!!!) pragmatisch sowas gemacht wie
[code=Java]
BufferedImage image = ...
int w = image.getWidth();
int h = image.getHeight();
BufferedImage output = ...
for (every 10x10-Tile of the input image)
{
worker = createWorkerFor(tile);
list.add(worker);
}
executorService.invokeAll(list);
[/code]
wobei jeder Worker das input-Bild und "seine" Koordinaten übergeben bekommt, und das Ergebnis-Pixel direkt ins output-Image schreibt. Vielleicht bastel' ich da in den nächsten Tagen mal was, das würde mich ggf. auch mal interessieren.