自己本机测试最快时60帧/秒,局域网传输只测试一次,结果很让我失望,原因不明~~~~
说下我的思路过程(我认为过程很重要!) 分块比较+压缩传输与以前那个内存流比较的优缺点: 内存流比较能找到最精确的找到图片差异,但每次都要压缩相同大小的数据,大家可以测试下,那个算法传输瓶颈是压缩算法,最费时间和CPU.
分块比较+压缩传输能有效的减少压缩数据量,但缺点也很明显,比较图片的效率肯定没内存流比较高,要加快传输只能找到更好的算法
我选择的是后者,开始的时候是直接把截下来的图片分成n块,然后逐块和上一个图片比较,不同就放到流中压缩传送,不过写完测试时很是郁闷,Cpu占用不说,在自己电脑上根本就突破不了16帧,当时就苦想能节约时间的方法(当时做梦都在想^.^),终于在一次被吵醒后来了灵感,每次都要把图片分成n块,这也很占时间啊,有没有更好的办法呢?觉也睡不着了... 具体实现就看代码吧^_^
压缩包里面Src31212是直接先分块再比较的代码,就是根本突破不了16帧的那个代码.
用到控件:indy10,zlib,用D10编译,不知道D7要不要改下?
现在最主要的问题是传输一段时间就会白屏,具体原因不明,希望大家一起解决.
在这里要感谢藏经阁的老陈,正是他发的那个demo我才有了目标,还有一次他提到了倒序索引,虽然是写完以后发现自己用的好像是倒序索引,不过至少当时我有了方向,就是分块.
这份代码还有很多要完善的地方,希望大家能一起和我讨论....
如果哪位大虾改了这份代码,请通知我这个小菜鸟一声,学习学习再学习^_^
MSN:hf-net[at]hotmail.com ([at]改成@)欢迎和我讨论^_^ |