gpt4 book ai didi

image-processing - 计算卷积的最快方法

转载 作者:行者123 更新时间:2023-12-04 08:29:20 24 4
gpt4 key购买 nike

我必须对许多图像的每一行应用一个卷积过滤器。经典是 1024x1024 像素的 360 度图像。在我的用例中,它是 720 张 560x600 像素的图像。

问题是我的代码比文章中宣传的要慢得多。

我已经实现了朴素卷积,它需要 2m 30s。然后我使用 fftw 切换到 FFT。我使用了 complex 2 complex,在每个转换中过滤两行。我现在20多岁。

问题是文章在 10 秒左右做广告,对于经典条件甚至更少。所以想请教这里的专家有没有更快的方法来计算卷积。

数值方法建议避免在 dft 中进行排序,并相应地调整频域滤波器函数。但是没有代码示例如何做到这一点。

也许我在复制数据上浪费了时间。使用 real 2 real 变换,我不必将数据复制到复数值中。但是无论如何我都必须用0填充。

编辑:请参阅下面我自己的回答以获取进度反馈和有关解决此问题的更多信息。

问题(精确的重新表述):

我正在寻找一种算法或一段代码,以将非常快速的卷积应用于离散非周期函数(512 到 2048 个值)。显然,离散时间傅里叶变换是可行的方法。不过,我想避免数据复制和转换为复数,并避免蝴蝶重新排序。

最佳答案

FFT 是已知最快的信号卷积技术,而 FFTW 是最快的 FFT 计算免费库。

获得最佳性能的关键(硬件之外……GPU 是一个很好的建议)是将信号填充到 2 的幂。使用 FFTW 时,在创建计划时使用“耐心”设置以获得最佳性能。您不太可能手动实现比 FFTW 提供的更快的实现(忘记 N.R.)。还要确保使用正向 1D FFT 的真实版本而不是复杂版本;并且尽可能只使用单(浮点)精度。

如果 FFTW 不适合您,那么我会看看英特尔的(非常实惠的)IPP 库。他们为英特尔处理器手动调整了 FFT,这些处理器已针对具有各种位深度的图像进行了优化。

保罗
CenterSpace软件

关于image-processing - 计算卷积的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1548809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com