以前讨论已经结贴,地址如下:
http://community.csdn.net/Expert/topic/3258/3258617.xml?temp=.8838617
---------------------------------------------
关于远程屏幕监控,我的大概思路是:
1.在本地定时截取屏幕,并将截取的屏幕分成多块,例如4×4 = 16块,分别对每一块进行传输。
2.定时截取了新的屏幕以后,对每一块图像进行新旧比较,如果发生改变则传输,反之则不传输,这样可以减少网络通讯的数据量,在屏幕长期不变动的情况下就不进行传输。
3.传输之前可以加入图像压缩算法,将图像压缩后再进行传输。 不知大家有什么比较好的思路,或者有现成的源码请发给我参考一下!
[email protected]
多谢~
---------------------------------------------
changlele(梦幻水晶)可以不用传送那么多数据的
利用祯比较算法,第一幅图设置为主祯
然后后面的图片和主祯进行比较,只传送变化的部分
关于帧比较算法我多说几句:
开始抓取第一个帧的时候设为主帧,然后抓取第二个帧。
第二个帧和第一个帧进行异或操作(矩阵)。然后去除
异或操作后矩阵内值为零的点(值为0的点就是没有变化
的点),然后传送这个矩阵中非零的点。这是帧比较算
法的大体思路。传送的时候最好采用一些压缩算法。
无损压缩:哈夫曼算法
有损压缩:JPG,MPG都是很好的方法
---------------------------------------------
大家有什么想法欢迎讨论,或者有现成的源码请发给我参考一下!
[email protected]
多谢~
http://community.csdn.net/Expert/topic/3258/3258617.xml?temp=.8838617
---------------------------------------------
关于远程屏幕监控,我的大概思路是:
1.在本地定时截取屏幕,并将截取的屏幕分成多块,例如4×4 = 16块,分别对每一块进行传输。
2.定时截取了新的屏幕以后,对每一块图像进行新旧比较,如果发生改变则传输,反之则不传输,这样可以减少网络通讯的数据量,在屏幕长期不变动的情况下就不进行传输。
3.传输之前可以加入图像压缩算法,将图像压缩后再进行传输。 不知大家有什么比较好的思路,或者有现成的源码请发给我参考一下!
[email protected]
多谢~
---------------------------------------------
changlele(梦幻水晶)可以不用传送那么多数据的
利用祯比较算法,第一幅图设置为主祯
然后后面的图片和主祯进行比较,只传送变化的部分
关于帧比较算法我多说几句:
开始抓取第一个帧的时候设为主帧,然后抓取第二个帧。
第二个帧和第一个帧进行异或操作(矩阵)。然后去除
异或操作后矩阵内值为零的点(值为0的点就是没有变化
的点),然后传送这个矩阵中非零的点。这是帧比较算
法的大体思路。传送的时候最好采用一些压缩算法。
无损压缩:哈夫曼算法
有损压缩:JPG,MPG都是很好的方法
---------------------------------------------
大家有什么想法欢迎讨论,或者有现成的源码请发给我参考一下!
[email protected]
多谢~
解决方案 »
- VC 如何给非客户区某个区域添加提示信息
- 如何实现下面的纹理贴图
- 一个界面程序连续运行出错
- 如何创建一个包有DLL的DLL工程?
- 求Visual C++.NET 数据库开发指南的光盘?
- vs2010连接sql server2005出现 0x7c812fd3 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012ef38 处
- 在CtreeCtrl中,如何暂存一个HTREEITEM树叉,但是又不可见!
- 高手,请问SIO_RCVALL 在什么定义?
- 关于显示卸载DLL的问题
- vc调用vb时数组的传递问题
- 感谢wetheart大哥!特放100分,请大哥笑纳
- 旋转图形~~~待解~~谢谢
1 截屏速度慢,一般都是使用BitBlt函数,还可以使用directx,但是已经被证实并不能提高多少效率。
2 截屏的时机不好选择,象winvnc使用的钩子方法,在某些情况下会实效(比如控制台程序)
3 如果采用分帧比较,传输差值的办法,比较两帧图片本身就是比较耗时的操作。如果使用驱动,可以一次性解决上面的三个问题:
1 驱动传输速度会比BitBlt快很多。
2 只有在屏幕真正变化的时候才会传输数据。
3 可以精确的知道某块数据发生了变化,不再需要比较。在Win2000下可以使用Mirror Driver
呵呵,新手,瞎扯几句。
1,用LZW进行压缩。
2,先转换成256色。
这样能多赚些专家分对了,刚才想到一点。如果用JPG方式的话,建议你传送的时候就不要每次都传送
Jpg的文件头等一些重复的数据了,只需传送JPG内容的那部分。开始时就把JPG头
都定义好,就传一个副本即可,毕竟网络传送传送的数据越少越好。这样性能能快点
服务端用DirectShow进行显示,或保存(可存成avi)