.net 使用图形卡代替GDI+;用于图像处理
我有一个问题,这可能是一个白日梦,但我想知道我的同事们是否能帮我解决这个问题 在我工作的公司里,我们每个月进行数十亿次图像处理。基本上,我们拍摄一幅巨大的图像,将其分割成256像素的正方形图像,对其进行颜色量化,并将其保存为PNG,然后移动到下一幅猛犸象图像。我们采用了很多技术来尽快做到这一点,目前速度非常快,但我认为我们有机会让它在速度上成为明星 应用程序本身是.NET2.0,循环遍历大图像中的各个字节,读取每个较小图像的字节,并在运行量化算法后使用GDI保存图像。我们有几十台运行此应用程序的机器,它们都有Nvidia Geforce 8视频卡(或更好) 有没有一种方法,我可以使用GPU而不是CPU来执行上述任何或所有任务?如果是,我该怎么做?不幸的是,我以前从未编写过类似的代码,所以如果有人能帮助我,我可能需要对它进行彻底的解释(而且要慢慢解释)。定义大规模?(换句话说,质量是相对的。) 可以使用CUDA-NVIDIA GPU-.net 使用图形卡代替GDI+;用于图像处理,.net,graphics,.net,Graphics,我有一个问题,这可能是一个白日梦,但我想知道我的同事们是否能帮我解决这个问题 在我工作的公司里,我们每个月进行数十亿次图像处理。基本上,我们拍摄一幅巨大的图像,将其分割成256像素的正方形图像,对其进行颜色量化,并将其保存为PNG,然后移动到下一幅猛犸象图像。我们采用了很多技术来尽快做到这一点,目前速度非常快,但我认为我们有机会让它在速度上成为明星 应用程序本身是.NET2.0,循环遍历大图像中的各个字节,读取每个较小图像的字节,并在运行量化算法后使用GDI保存图像。我们有几十台运行此应用程序的
需要研究的一些技术:
换句话说,Windows图像组件应该可以显著减少PNG加载/保存瓶颈。它提供的操作可能也会帮助以比GDI+更优化的方式分割图像。Direct2D和/或像素着色器应有助于像素级操作。只有在没有更直接的方法对图像执行所需的颜色量化操作时,才需要使用像素着色器。看起来CUDA更多的是对图像进行压缩,而不是对图像进行切片。虽然压缩很酷(也是问题的一部分),但在过程结束时,我仍然需要输出PNG。至于大规模,我正在剪切的图像是8192px 1024px。你不是在处理卫星图像吗?事实上不是,但原理是一样的。