测试内容:
DIVX公司的解压引擎效率。
测试环境:
WINDOWS2000,256M,p41.7,使用VFW,DIRECTDRAW对同一窗口画。总帧数2386帧,帧大小480*260,并非标准的352*288.
测试结果:
DIVX公司的压缩/解压引擎连解带画在同一窗口上操作,一个AVI文件2386帧需要30秒,这样来说,一秒钟连解压带显示不超过80帧。
问题:
如果一秒钟连解压带显示只有80帧再加上其他的开销,估计能到60帧,按每路15帧,大约能显示四路(压件压缩,使用DIVX公司的压缩引擎),这样显然不能满足需要,请问造成这种问题的瓶劲在哪儿。怎样才能使它能解更多的帧。
疑点:因为我是在同一窗口用DIRECTDRAW上画的,怀疑在缓冲表面上LOCK时会占较多的时间和资源,不知道这种想法对不对。而发现其他产品使用微软的MPEG4 V2时效率很高。
请做过这方面的高手提些建设,该如何处理才能使解压及显示的效率提高。

解决方案 »

  1.   

    不要使用VFW,建议你使用DirectShow,在MSDN上有相关的论述,据说MicroSoft早已放弃发展VFW了。
      

  2.   

    我是现场采集的,DIRECTSHOW很多东西处理起来不够灵活,上午把缓冲表面处理的部分改成汇编了,速度有不少提升,但还是有距离,不知道有什么办法。
       另外还有一个问题,如果我把分辩率设成32位,显示速度很快,但如果我改成24位则显示速度非常慢,因为帧解压缩后是24位的,按理说,缓冲表面和解压出的图像都是24位,只是把数据一行一行拷到缓冲表面就行了,还用不着24位到32位时需要3字节到4字节的转换,但为什么速度这么慢,瓶颈在哪儿,请高手解答。
      

  3.   

    图像编程的都是高手!!偶最佩服那些3D游戏开发者了又要AI又要图像编程
    AI和图像编程都是极难
      

  4.   

    请哪位高手再解答解答吧,另外在测试的时候发现,使用DIRECTDRAW时对CPU的独占很高,而如果使用GDI时却能够比较均匀地占用CPU,这样说来DIRECTDRAW的优势在哪里?