【问题标题】:Efficient Image Pyramid in CUDA?CUDA 中的高效图像金字塔?
【发布时间】:2011-05-26 00:56:28
【问题描述】:

在 CUDA 中进行图像金字塔化的最有效方法是什么?我为此编写了自己的内核,但想象一下我们可以做得更好。

使用 OpenGL 互操作和使用硬件 mipmapping 绑定到 OpenGL 纹理可能会快得多。有关如何执行此操作或其他操作的任何指示

【问题讨论】:

标签: opengl image-processing image-manipulation cuda computer-vision


【解决方案1】:

在 OpenGL/DirectX 中访问/初始化时会设置 MipMap。如果您分配比初始纹理宽 50%(或更高)的纹理并使用内核对纹理进行下采样并将结果写入原始纹理旁边,那么 CUDA 内核可以做同样的事情。内核可能会在每个线程评估下一个下采样图像中的像素时工作得最好。由您决定采样方案并选择适当的权重来组合像素。尝试双线性开始,然后一旦它工作,您可以设置三线性(三次)或其他采样方案,如各向异性等。简单采样(线性和三次)可能会更有效,因为会发生合并的内存访问(请参阅 CUDA SDK 编程指导)。您可能需要平铺内核执行,因为线程数受限于并行调用(像素太多,线程太少 = 使用平铺来分块并行执行)。您可能会发现 Mesa3D 作为参考很有用(它是一个开源OpenGL的实现)。

【讨论】:

    猜你喜欢
    • 2016-11-05
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    相关资源
    最近更新 更多