划分大图像进行并行处理

时间:2012-07-16 07:30:43

标签: image-processing parallel-processing

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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