在realplay或东方影都等软件中,都有全屏显示的功能。 
  比如,有一帧320*240*24bit的图像数据,将他拉伸显示, 
  一般交给显示函数做费时110ms左右,无法完成实时显示。 
那么在上述软件中,如何实现超快速图像拉伸显示的? 
求教。

解决方案 »

  1.   

    用DirectGraphics是否可以完成上述功能,如何入手?
      

  2.   

    用DrawDibDraw显示800*600的图象数据只需要10ms,但做了拉伸就需要110ms乐,
    请问有没有其他的显示技术?
    我自己写拉伸函数最多做到30ms,再显示总共需要40ms乐,仍然太紧张乐。
      

  3.   

    用DIRECT X中的DIRECT SHOW
      

  4.   

    我没有写directshow里的数据源filter,只有纯数据及其格式,
    那么如何用它的显示filter?
      

  5.   

    位图吗?使用DirectDraw中的函数->Blt,如果不拉伸,用BltFast,后者比前者快10%左右,这两个函数还实现透明位图功能。它们都是Directdrawsurface接口的函数。
      

  6.   

    需要显示纯数据。我一般用drawdibdraw。
    directdraw的blt函数速度有多快?拉伸是否用到浮点,(这样比较费时间)?
      

  7.   

    directdraw好象还没出现过时间不够的问题啊,
    你机器的显卡怎样啊
      

  8.   

    嗯,不是directdraw技术问题,主要是拉伸,一有浮点运算就慢乐。
    directdraw还没有试过,所以想问问一般的代码和速度情况。
      

  9.   

    DIRECTDRAW 很快的, 拉伸也没有问题.而且如果连DIRECT DRAW都不行,恐怕只有依靠显卡加速了.
      

  10.   

    我觉得,图象显示快慢的瓶颈不在函数本身,而在显卡,当显卡,刷新率为60hz时,每秒种在屏幕上画60真,显示函数为了避免闪烁,会等到每帧开始的时候才画,这个好象叫什么同步,所以有 1秒/每帧的时间 = 大约100ms. 
    mediapaly,real都使用了 OverLay,它不用等到每帧开始的时候去画,我觉得要实时显示应该用它做
      

  11.   

    谢谢,我试试用directdraw的overlay
      

  12.   

    还是有问题,用DirectDraw拉伸数据,代码如下:
    hdc是surface得到的
    ::StretchDIBits(hDC,0,0, 800, 600, 0,0,320,240,m_lpBuf,BITMAPINFO,DIB_RGB_COLORS,SRCCOPY);
    用了80ms,有没有更快的!
      

  13.   

    overlay怎样用?在directdraw中?
      

  14.   

    用DirectDraw的速度是非常快的
    但是必须注意一点
    如果你的显卡不支持OverLay那么就不能用Overlay;
    如果是全屏功能还可以用页面切换技术(但是在窗口模式下就不能用了)这些都需要检查你的显卡的能力
    如果你的显卡没有硬件拉伸功能,那么一定要注意
    它会默认采用 HEL进行模拟
    这时OffsetScreen图面如果仍然建立在显存中,那样速度非常慢
    尽量将OffsetScreen图面建立在系统内存中,这样CPU的占用率反而会降低
    问题就在于CPU访问显存是通过总线,非常费时的但是如果你的显卡支持这些功能,就可以忽略这些了
      

  15.   

    用DirectDraw的速度是非常快的
    但是必须注意一点
    如果你的显卡不支持OverLay那么就不能用Overlay;
    如果是全屏功能还可以用页面切换技术(但是在窗口模式下就不能用了)这些都需要检查你的显卡的能力
    如果你的显卡没有硬件拉伸功能,那么一定要注意
    它会默认采用 HEL进行模拟
    这时OffsetScreen图面如果仍然建立在显存中,那样速度非常慢
    尽量将OffsetScreen图面建立在系统内存中,这样CPU的占用率反而会降低
    问题就在于CPU访问显存是通过总线,非常费时的但是如果你的显卡支持这些功能,就可以忽略这些了
      

  16.   

    thank for your replay, i try it again.
      

  17.   

    尽量将OffsetScreen图面建立在系统内存中,这样CPU的占用率反而会降低??
    how to do it?