我想对抓屏信号缩放,但要求效率高,想通过GPU来加速,
所以希望做过相关实验的大侠们给个意见,使用GDI+好还是DirectX好,
怎么缩放图片效率高。
小弟不胜感激。

解决方案 »

  1.   

    因为DirectX的缩放操作是在显卡GPU上做的,所以,基本上不占用CPU;
    GDI+如果是通过CPU做的(这个不知道GDI+能否设置成用GPU来处理),那么必然占用较多CPU资源;
    关键看你的缩放显示有多频繁、量有多大,如果图片又大、帧率又较高,那么用DirectX吧。
      

  2.   

    GDI+效率肯定要底点,你要求效率高,大概要高的啥程度。
    用内嵌ASM实现的速度比GDI和GDI+的都高很多.
      

  3.   

    GDI+跟DX比,效率低得不是一点,而是几个数量级的区别
      

  4.   

    直接用cuda,那个才是处理并行运算的。CSDN有关于他的专门论坛。
      

  5.   

    你要多著名点细节问题,并行算法中有2大问题,一个是算法,一个是数据交换。如果要用显卡运算里面势必要内存和显存的交换,当然这种交换的代价一般都比较大(相对内存和内存间交换),具体的实现要具体分析。DirectX是3维图形显示工具,显卡数据是只写的,要从显卡拿数据是件很麻烦的事,只能通过纹理来搞,就要用到渲染到纹理技术。
    所以从代码简单角度来说cuda还是首选,当然你的D3D功力够好的话,D3D也是完全可以实现的。
      

  6.   

    我在这样的调查:将1024*768的电脑屏幕抓图,通过VNC的传输协议到另外的PC上
    要求的放大的图片的分辨率也特别高(极限可能放大10倍多,要求插值算法抗锯齿),同时帧最低要求是30帧
      

  7.   

    GDI+有函数可以直接抗锯齿,也可以放大,如果没有特殊要求(比如数据分析),用GDI+就够了,到是你的30帧在传输上是否能达到了。
      

  8.   

    由于我们做的东西是信号显示用的(接收端做图像放大或缩小),想尽可能的不占用过多的资源 且处理速度快,以便尽可能的不影响系统的其他任务,当然这个有极限我也知道,总想要个最好的解决方案,尽可能的达到目标。
    传送中用VNC、100M带宽的网络传送效果已经可以很好的达到我们的要求了。