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

(0-100)->green 
(100-200)->blue
(200>above)->red

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

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

有帮助吗?

解决方案

是的 - 而且,由于您(显然)显示位图,因此您无需走GPGPU路线(例如,OpenCL或CUDA)。您可以使用可编程的着色器 - 如果我理解您的意思,那将是一个非常简单的。

至于如何编写着色器,它将(主要取决于)您如何完成绘图的其余部分。仅出于一个明显的示例,如果您已经在绘图中使用了WPF,则可能需要使用HLSL着色器(WPF直接支持Pixel着色器)。

可能还值得注意的是,如果您必须支持旧的硬件,那么像这样的桌子查找 可以 实际上,即使没有可编程的着色器,也可以轻松地在GPU上管理。只要您只需要支持最近的硬件,着色器可能会更简单。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top