小生参与一个项目关于LED设备控制,难耐技术有限,所以特来求助于各位高手!!!
要求如下:工程主要是处理avi文件,从中获取RGB pixels;把对应于avi成像中的像素显示在程序dailog中作为多个对应位置的label背景颜色;要求和avi播放同步,这样可以实现dailog中多个label组成矩形成像和播放avi即位同步;同时另外要求得到的rgb数据再传输到和PC连接的LED设备现在本人已经设计出一个基本成型的模块,通过MCI\AVIFILE 相关API技术设计,但是在处理成像内容变化比较快的avi文件来说不是很理想,成像失祯/不连贯,同时消耗较高的内存.其实本来avi文件播放本身就消耗定量的内存,所以我查找各种质料总结和推测以下几点,希望高手指点:
**处理avi文件获取rgb pixel思路:
  1: MCI\AVIFILE API技术  (这个我基本已经实现,速度不是理想)
  2: VGA/SVGA 驱动连接     (驱动开发涉足很浅)
  3: GDI技术                (通过该技术基本设计一个屏幕捕捉程序,320*240速度可以,但是如何和avi连接在一起呢?)
  4: 直接读取avi文件中16进制数据进行解码rgb (根据设计的程序,速度不行!!!!!)
  5: DirectShow 技术   (这个和1 是不是将出现同样的缺点)
  6: 直接读取显存数据    (这个我现在还没有实现设计,效果会怎么样?)
  7: 视频捕捉卡+SDK     (这个了解不足,希望给予指点迷津!!!!)
  //希望以上几点,各位高手给予指点迷津,如果不行可以另外开方,指出.???
**消耗内存原因:
  a: 循环算法
  b: 定时控件Timer, 不停刷新(50 ms)
  c: avi文件播放本身消耗内存
  //希望高手能够给予优化减少消耗内存的方法??????????????????????? 
**我的设想:
  是不是在PC和LED设备连接中间,在增加一个设备来单一处理rgb数据,而不是在pc端处理,这样可以实现LED和PC同步,同时减少PC消耗内存.希望多多指点!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    1。解码的消耗是不能避免的
    2。可以考虑用ddraw来显示
    3。可以用ds来实现
      

  2.   

    我对于DirectDraw &DirectShow 了解不是很多,但是能够播放avi文件的DirectX程序我按照一个朋友的说法已经完成,用到CDXGraph类,即便是得到一个关于单一祯帖图象并得到图象的rgb链表或则是字节组,还要进行循环逻辑算法还需要消耗内存吧!
    也许我对于你的理解不是很清楚!
    希望再给予更多的指导!!!!!!!!!!!谢谢!!!!!!!!!!!!!!!!!!!!!!!!