考虑尺寸为1920x1080的图像。如何为720x960 ROI设置R2C和C2R袖口?
答案 0 :(得分:1)
正如评论中所指出的,CUfft完全支持通过API的高级数据布局功能对阵列中的数据子集执行变换和逆变换。引自documentation:
高级布局可以被视为一个额外的抽象层 上面是对输入/输出数据数组的访问。一个元素 批次中的信号编号b中的坐标[z] [y] [x]将是 与内存中的以下地址相关联:
1D
input[ b * idist + x * istride] output[ b * odist + x * ostride]
2D
input[b * idist + (x * inembed[1] + y) * istride] output[b * odist + (x * onembed[1] + y) * ostride]
3D
input[b * idist + ((x * inembed[1] + y) * inembed[2] + z) * istride] output[b * odist + ((x * onembed[1] + y) * onembed[2] + z) * ostride]
istride和ostride参数表示两者之间的距离 最不重要的连续输入和输出元素(即 分别是最里面的维度。在单个1D变换中, 如果要在变换中使用每个输入元素,
istride
应设为1;如果要使用其他每个输入元素 变换,则istride应设置为2。同样,在单个1D中 如果希望一个接一个地输出最终元素,则转换 紧凑地,ostride
应设置为1;如果需要间距 在最不重要的维度输出数据之间,ostride
应该 被设置为元素之间的距离。
您可以在this堆栈溢出问题
中找到使用cuFFT中的高级数据布局的示例