【问题标题】:Bitmap conversion using GPU使用 GPU 进行位图转换
【发布时间】:2010-10-14 03:28:02
【问题描述】:

我不知道这是否是正确的论坛。无论如何,这是问题所在。在我们的一个应用程序中,我们显示医学图像,并在它们之上显示一些算法生成的位图。真正的位图是 16 位灰度位图。由此,我们根据例如

的查找表生成颜色位图
(0-100)->green 
(100-200)->blue
(200>above)->red

显示器运行良好,适用于 256x256 的小图像。但是当显示区域变大比如 1024x1024 时,灰度到彩色位图的转换需要一段时间,并且交互不再平滑。最近,我听到了很多关于通用 GPU 编程的信息。在我们的部署中,我们有高端 (Nvidia QuadroFX) 显卡。

我们的应用程序是使用 .Net/C# 构建的,如果需要,我也可以添加一点点 C++/CLI。 现在我的问题是这个位图转换可以卸载到图形处理器吗?我应该在哪里进一步阅读?

【问题讨论】:

    标签: opengl graphics bitmap gpgpu nvidia


    【解决方案1】:

    是的——因为您(显然)正在显示位图,所以您不需要走 GPGPU 路线(例如,OpenCL 或 CUDA)。你可以使用可编程着色器——如果我明白你在说什么,那将是一个非常简单的着色器。

    至于如何编写着色器,这将(主要)取决于您如何进行其余的绘图。举一个明显的例子,如果您已经在使用 WPF 进行绘图,您可能希望使用 HLSL 着色器(WPF 相当直接地支持像素着色器)。

    可能还值得注意的是,如果您必须支持较旧的硬件,即使没有可编程着色器,您也可以在 GPU 上轻松管理这样的表格查找。只要您只需要支持最新的硬件,着色器可能会更简单。

    【讨论】:

    • 感谢您的快速回答。解开你的一些疑惑。我们使用 winforms 进行显示。因此,整个医学图像生成和算法位图生成都是在背景中完成的,并且在应用程序中混合并显示了 alpha。这就是我尝试 gpgpu 路线的原因。是否可以在后台对此使用 WPF 位图+HLSL 着色器。再次非常感谢您的回答。
    • 是的,在后台使用它应该可以工作——但由于您使用的是 WinForms,它的集成度并不高。由于您没有立即显示它,因此您(显然)需要从 GPU 取回数据,以便 CPU 可以使用它进行保存等。在这种情况下,像 CUDA 或 OpenCL 这样的东西可能是更好的选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    相关资源
    最近更新 更多