4

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

4

2 回答 2

2

在与其他子块相邻的一侧扩展子块是并行处理中的常见模式。它被称为光晕图案上的鬼细胞图案。基本上,您需要处理模具所需的尽可能多的鬼细胞/光晕像素,并在每次处理迭代开始时传达它们的值。还可以采用两倍大的光环区域,从而将通信次数减少一半(提高高延迟网络的性能)。每个并行进程将其部分子块发送到其邻居的光环区域(反之亦然)的过程称为光环交换。大多数并行处理库(例如 MPI)提供有助于执行这些光环交换的例程(例如结合MPI_Cart_shift()MPI_Sendrecv()在 MPI 中)。

于 2012-07-16T10:28:28.427 回答
1

是的,重叠是最常见的解决方案。请注意,在图像的物理边缘上,您将不得不做一些更聪明的事情,因为不会从相邻的瓷砖中获取任何像素。常见的解决方案是通过图像内容的连续性来镜像或延长,除非您不介意输出图像小于输入图像。

于 2012-07-16T09:08:05.860 回答