寻求在网络上低延迟、高效传递Windows桌面图像的算法

Miracle 2001-10-18 10:29:08
我现在在做一个网络应用程序,其中有连续远程监视对方Windows桌面的功能,如果采用直接抓取桌面图像并连续传递的方法网络流量很大(800*600*16位色的情况下,每幅桌面图像差不多1MB,如果压缩成GIF格式可以缩减到70K左右,但运算速度太慢,远远不能满足实际使用需要)。我想寻求一种效率较高的连续算法(比如,理论上应该能把Windows桌面的绝大多数内容生成矢量描述,这是一种可能的方案;也许可能截获绘制屏幕的消息让侯发送到监视端重现),做到想PCAnyWhere那样的效果。

各位高手,我不要求提供实现代码,只要提供切实可行的明确思路,或者指出可供参考的文档并被采纳,40分就送给您了!
...全文
124 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
changzhiguo 2001-12-07
  • 打赏
  • 举报
回复
干嘛要定时传传送整个屏幕阿?

作个hook,监测cursor和window的动作,没有动作的时候不需要传送任何图像,cursor和window有动作时只需传送相关区域即可。
wyly 2001-10-23
  • 打赏
  • 举报
回复
算法太大了,贴不全,不知道你熟不熟悉JPEG算法,熟的话你要JPEG的哪部分,我给你截下来发给你。如huffman?dct?
Miracle 2001-10-22
  • 打赏
  • 举报
回复
谢谢wyly、avsuper和空山新雨等诸位的帮助。

To wyly:

能不能把你所说的算法的资料贴一份上来?

To avsuper:
>>那么抓屏有没有好办法?
>>我现在压缩1024*768*24的图,可以在10MS之内,
>>可是抓屏总是慢.....
您的压缩方法,能不能教给我?如果不愿公开代码的话,给个提示也行。

wyly 2001-10-22
  • 打赏
  • 举报
回复
哈哈哈哈,现在才发现发帖子的原来是miracle同志。
ksxy 2001-10-21
  • 打赏
  • 举报
回复
Miracle大侠,我在codelphi发了贴子你可以看看。应该是用差值的方法,只传递改变的Rectangle。
单眼皮的老虎 2001-10-21
  • 打赏
  • 举报
回复
那么抓屏有没有好办法?
我现在压缩1024*768*24的图,可以在10MS之内,
可是抓屏总是慢.....
wyly 2001-10-21
  • 打赏
  • 举报
回复
你想一秒几帧?
一般用途一秒十帧就足够用了,我想一秒十帧总不成问题吧?
还不满意,用内插或预测还能生成几帧.
Miracle 2001-10-20
  • 打赏
  • 举报
回复
JPEG会损失细节,质量高的话体积又下不来,唉……我现在用的就是UDP协议,传送之类的问题都已经解决了,只剩下进一步提高传送帧率(实际上就是提高压缩比率和降低压缩时间)的问题了,诸位请畅所欲言!
wyly 2001-10-20
  • 打赏
  • 举报
回复
呵呵,这样做:
第一副图做基准图,用JPEG压缩。以后的图先和基准图相减,把差值做JPEG压缩,接收端收到后加到基准图上,就可以还原。这是M-JPEG压缩法,效果不错。
如果你还不满意,用相邻两副图做差值,这样比M-JPEG还小。可是要注意错误的累积。
如果还不满意,就在加上运动补偿,参照MPEG1或H.263。
单眼皮的老虎 2001-10-20
  • 打赏
  • 举报
回复
我觉得主要的时间是花费在抓屏上面了...
压缩和传输都可以很快,但是把屏幕读到内存的这个时间一般豆要100MS以上,
至少在我的机器上面是这样的...
sonhong 2001-10-19
  • 打赏
  • 举报
回复
冰河的图像传还可以。

你可以用Jpeg格式呀。
sonhong 2001-10-19
  • 打赏
  • 举报
回复
刚看到一个用 UDP协议。 比TCP 高效。

8,305

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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