VC++ 快速画图

liquoryellow 2011-12-02 05:20:36
一个二进制文件,大约5G多。里面全是bayer数据(RG,GB格式的灰度图),每幅图像大小为320*320.
经过插值后,现在用GDI把所有的图像全部播放出来,每秒大约最多能播放12副彩色图像。

问题:如何能提高播放的速度。最好每秒能播放24副以上的图像。请各位大侠指点。
...全文
241 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lambochan 2011-12-10
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 liquoryellow 的回复:]

引用 16 楼 ndy_w 的回复:

可能耗时的地方:
文件IO:提前读,内存里保留N帧
插值算法:如果追求图像质量,raw转RGB可能采用复杂的算法。简化之,比如用两点/4点均值
GDI:建立hbitmap比较慢,直接用SetDIBitsToDevice。
最快是用DDraw,raw直接转成设备的格式

恩,谢谢。前两项耗时非常的少。主要是GDI画图比较耗时。我试试你的方法。……
[/Quote]

如果你前两项耗时非常少,例如十来二十ms的话,那么要实现每秒25祯就根本不是难事...简直就是easy job.
liquoryellow 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 ndy_w 的回复:]

可能耗时的地方:
文件IO:提前读,内存里保留N帧
插值算法:如果追求图像质量,raw转RGB可能采用复杂的算法。简化之,比如用两点/4点均值
GDI:建立hbitmap比较慢,直接用SetDIBitsToDevice。
最快是用DDraw,raw直接转成设备的格式
[/Quote]
恩,谢谢。前两项耗时非常的少。主要是GDI画图比较耗时。我试试你的方法。再次感谢。
ndy_w 2011-12-07
  • 打赏
  • 举报
回复
可能耗时的地方:
文件IO:提前读,内存里保留N帧
插值算法:如果追求图像质量,raw转RGB可能采用复杂的算法。简化之,比如用两点/4点均值
GDI:建立hbitmap比较慢,直接用SetDIBitsToDevice。
最快是用DDraw,raw直接转成设备的格式
cpio 2011-12-07
  • 打赏
  • 举报
回复
换速度快的电脑看行不行。

另外,是不是可以考虑多核优化,如果你现在只用到了一个核心的话,那么再用一个核心就差不多了
liquoryellow 2011-12-07
  • 打赏
  • 举报
回复
看视频,一秒可以播放30帧,而且比320*320图像还大。且占CPU很小1%,或更小。
我的一秒仅12帧,CPU占用50%。肯定有什么方法解决一下吧。
liquoryellow 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xianglitian 的回复:]

显示其实还不是问题
问题在于你5G文件不可能一次性读入内存
现读现显示肯定影响效率
你现在文件是怎么读的
是不是用的内存映射的方式
[/Quote]
是的,内存映射。不过我可以把5G文件拆分成若干个几十M的文件。
有什么办法解决播放速度的方法么,请赐教!
向立天 2011-12-07
  • 打赏
  • 举报
回复
显示其实还不是问题
问题在于你5G文件不可能一次性读入内存
现读现显示肯定影响效率
你现在文件是怎么读的
是不是用的内存映射的方式
liquoryellow 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fyzqzpd 的回复:]

directdraw直接写内存
[/Quote]
谢谢,我查查,看看是否可行.
liquoryellow 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lambochan 的回复:]

关键要提高的是处理速度..BitBlt()的速度是可以忽略不计的.

如果你的速度不能限制在40ms以内,那么每秒25祯就是梦想了,即使你用什么ddddd都无补于事。
[/Quote]

我就想知道如果能控制到40MS以内呢。用什么方法呢?能提示一下么?谢谢。
liquoryellow 2011-12-06
  • 打赏
  • 举报
回复
还没人回答啊,高手呢。传说中的高手呢。顶!
lambochan 2011-12-06
  • 打赏
  • 举报
回复
关键要提高的是处理速度..BitBlt()的速度是可以忽略不计的.

如果你的速度不能限制在40ms以内,那么每秒25祯就是梦想了,即使你用什么ddddd都无补于事。
zhao1zhong6 2011-12-06
  • 打赏
  • 举报
回复
directdraw直接写内存
liquoryellow 2011-12-06
  • 打赏
  • 举报
回复
还得顶一下啊。高手们,你们都过节去了么。。。
liquoryellow 2011-12-05
  • 打赏
  • 举报
回复
图片必须是无损的。不能经过任何压缩。AVI是需要制作,但是只是分段制作。原始的数据是一点不能改的。
看了几个帖子,说什么DX之类的,不知道是不是行。
还请高手们,帮小弟一把。指个方向即可。
shiyunqiang 2011-12-03
  • 打赏
  • 举报
回复
这个需要高手来解答了,帮顶一下。
schlafenhamster 2011-12-03
  • 打赏
  • 举报
回复
做成AVI,即去除图片间的相关性。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧