2012-07-16 98 views
4

假设我有一个非常大的位图,它应该被分成更小的块进行并行处理。但在某些情况下,应该考虑来自相邻区域的边缘像素。我应该简单地添加一些重叠/填充还是有其他事情要做?并行处理分割大图像

+1

这是这类应用程序的常用解决方案。 – 2012-07-16 07:32:16

回答

2

扩展与其他子块相邻的那些子块是并行处理中的一种常见模式。它被称为鬼细胞模式晕模模式。基本上你会在每次处理迭代的开始时,处理模板所需的像元数量和晕渲数量。也可以采用两倍大的光环区域,从而减少通信数量的一半(提高高延迟网络的性能)。每个并行进程将其子块的一部分发送到其邻居的晕环区域的过程称为晕圈交换。大多数并行处理库(例如MPI)提供帮助执行那些光晕交换的例程(例如,在MPI中与MPI_Sendrecv()结合的MPI_Cart_shift())。

1

是的,重叠是最常见的解决方案。请注意,在图像的物理边缘上,您将不得不做更巧妙的事情,因为不会有任何像素可以从邻近的图块中获取。常见的解决方案是通过延续图像内容来镜像或延长,除非您不介意输出图像小于输入图像。