Algorithmic skeletons for stream programming in embedded heterogeneous parallel image processing applications