共有评论7条
当前显示最后6条评论
|
aizjcn |
2007/5/8 1:38:59 |
老毛病又犯了;向hackbear兄弟道歉;
这次认真看了一下代码;改了一下;本机和虚拟机测试没有丢块问题;
我自己一直是用流比较的方案;感觉分块不一定就快;
解决丢块问题代码如下;
With TTimer(Sender) Do Begin capx:=(tag Mod 8)*DefWidth; capy:=(tag Div 8)*DefHeight; ScreenShot(capx,capy,DefWidth,Defheight,capblock[tag]); xstrm:=TMemoryStream.Create; capblock[tag].SaveToStream(xstrm);//抓取到的压缩入流
xstrm.WriteBuffer(tag,SizeOf(Integer)); //插入编号再比较内容
NewCRC[tag]:=CalcCRC32(xstrm.Memory,xstrm.Size); |
hfhappy |
2007/5/8 9:11:54 |
全屏接收端试试,机子奇卡,而且绝对不超过5贞 >>我自己一直是用流比较的方案;感觉分块不一定就快; 这个也是分块啊 这个代码是先分块,然后计算bmp的crc,然后比较crc确定是否变化,我感觉效率还不如单纯的流比较, (result shr 8) xor Table[q^ xor (result and $000000FF)]; 循环相同次数,这个能有指针比较快吗? |
aizjcn |
2007/5/8 13:32:47 |
A:Bmp1.ScanLine[Height-1];//内存数据Bmp头部,前面还有一节图象信息数据 B:Bmp1.ScanLine[Height-2]; ..........
假如图象内存数据是这样; __________ A:[1][2][3][4][5][6][7][8] B:[1][2][3][4][5][6][7][8] C:[1][2][3][4][5][6][7][8] D:[1][2][3][4][5][6][7][8] E:[1][2][3][4][5][6][7][8] __________ 变化的时候是这样 __________ A:[1][2][3][4][5][6][7][8] __________ B:[1][2]|[5][4][5]|[6][7][8] C:[1][2]|[4][6][5]|[6][7][8] D:[1][2]|[5][4][6]|[6][7][8] ---------- E:[1][2][3][4][5][6][7][8] __________ 指针A<-B<-C<-D<-E __________ 求变化的算法咬金说的倒序快 事实上其他的技巧也一样可以快 只要知道了结构就发挥自己的天分就行了 还有就是函数的选择上;代码的精简上;对不同对象方法的了解上;
只能说点废话;实在是没时间去做这些;希望有用; |
qsmile |
2007/5/11 10:31:24 |
这几天好象研究这个的人一下子多了好多
真服了你了,用 CRC32 来比较,你计算CRC32 也要花时间的,还不如直接比较内存 CompareMem
楼上说倒的倒序是什么意思 |
lybase |
2007/5/16 11:43:04 |
cpu占用太大了,很容易被kill掉啊 |
aizjcn |
2007/5/25 0:01:23 |
今天找时间测试了一下行扫描(非分块比较); 事实证明我是对的; 800X600 64帧/秒 1024X768 45帧/秒 1152X864 41帧/秒 |
我要发表评论 |
查看全部评论 |