CN107613370A - 一种屏幕共享丢帧优化算法 - Google Patents
一种屏幕共享丢帧优化算法 Download PDFInfo
- Publication number
- CN107613370A CN107613370A CN201711023233.3A CN201711023233A CN107613370A CN 107613370 A CN107613370 A CN 107613370A CN 201711023233 A CN201711023233 A CN 201711023233A CN 107613370 A CN107613370 A CN 107613370A
- Authority
- CN
- China
- Prior art keywords
- frame
- field picture
- picture
- queue
- subgraph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种屏幕共享丢帧优化算法,包括但不限于如下步骤:S1、对截屏产生的图像帧进行分块处理,缓存;S2、保持一个发送队列,待此队列缓存超过m帧后,发送;S3、屏幕截屏图像帧产生后,跟原有图像帧进行区域一对一比对,产生相同区域关联映射列表信息;S4、将区域子图像编码压缩后产生的数据流分段、打包成数据报文,发送;把相同区域关联映射列表信息打包成控制报文发送出去;S5、屏幕共享客户端接收数据报文后,依次将分包数据组装起来,形成区域子图像,再组装成完整的帧图像;将帧图像的区域子图像缓存起来,同样缓存m帧的区域子图像队列和m帧的帧图像队列;接收保存控制报文中帧图像的相同区域关联映射列表信息。
Description
技术领域
本发明涉及计算机屏幕共享技术领域,尤其涉及一种采用截屏图像逐帧传输方法实现的局域网屏幕共享方案的丢帧优化方法。
背景技术
局域网内屏幕共享目前最简单有效地实现方法是通过共享发起端建立服务器;服务器通过抓取屏幕图像,图像按照JPG格式编码,然后压缩图像,最后将屏幕图像数据分成多个数据报文通过组播的方式发送到共享客户端;共享客户端负责接收数据报文后,重新将数据报文解析后组装成截屏图像,然后显示出来。为了减少带宽负载,通常采用组播的方式传输数据报文。这种方法是很多论文中的实现方法;参照《成都信息工程学院学报》2004年03期李鹏付永庆“一种实现局域网内屏幕共享的新方法”,《计算机与现代化》2011年09期汪彦黄雪华涂立“一种改进的应用于机房教学的屏幕共享方案”。
采用截屏图像逐帧传输方法实现屏幕共享的方法具有实现方法简单,可操作性强的特点,但是这种方法对局域网内的网络交换机的性能有比较高的要求;而且当今PC屏幕尺寸越来越大,分辨率越来越高,这种方法让局域网内网络承载更高的网络带宽要求,随之带来的网络报文丢包桌面共享丢帧的问题。
发明内容
本发明针对上述现有技术存在的不足,提供一种采用截屏图像逐帧传输方法实现的局域网屏幕共享方案的丢帧优化方法,解决了以往网络数据丢包导致的无法拼接完成图像帧导致丢帧的问题。
本发明解决上述技术问题的技术方案如下:一种屏幕共享丢帧优化算法,包括如下步骤:
S1、截屏服务器对截屏产生的图像帧进行分块处理,将其划分为n个区域子图像,缓存起来;
S2、截屏开始后,保持一个发送队列,待此队列缓存超过m帧图像数据后,才进行图像帧的数据报文发送;
S3、每一帧屏幕截屏图像帧产生后,先跟队列中原有的图像帧进行区域一对一地比对,产生一个相同区域关联映射列表信息;
S4、将帧图像的n个区域子图像以JPG格式编码压缩后产生的数据流进行分段、打包成数据报文,然后将数据报文发送出去;同时把该帧图像对应的相同区域关联映射列表信息打包成控制报文发送出去;
S5、屏幕共享客户端在接收数据报文后,依次将分包数据组装起来,形成区域子图像,再组装成完整的帧图像;然后将该帧图像的区域子图像缓存起来,同样缓存m帧的区域子图像队列和m帧的帧图像队列;同时接收保存控制报文中帧图像的相同区域关联映射列表信息;
S6、当屏幕共享客户端帧图像队列超过m帧时将队首图像播放出来,并记下当前播放的帧数Fp;
S7、对于帧数少于Fp+A帧图像帧,其中,A为一个丢帧判断阈值,如果未接收完成,认为该图像帧已经丢失,则利用帧图像的相同区域关联映射列表信息和相邻帧区域子图像将丢帧图像丢失的子区域用其他帧的相同子区域进行修补,尝试生成一张完整图像;如果Pn-1帧和Pn帧相同区域较多,则可以利用Pn-1帧子区域修复p帧;
S8、将修复帧图像放入帧图像队列等待显示。
在上述技术方案的基础上,本发明还可以做如下改进。
优选地,步骤S3中的所述比对为:对于拿来比对的两帧图像Pn和Pn-1,取出帧图像Pn和Pn-1内部的n个区域的子图像对其进行一一比较;新产生帧图像Pn的第1个区域的子图像跟对比帧图像Pn-1第1个区域的子图像进行比较,如果比较相同那么就把这两个子图像的序号1和Pn,Pn-1的帧数Pn和Pn-1分包保存到Pn帧区域序号1的相同帧序号列表中和Pn-1帧区域序号1的相同帧序号列表中。
优选地,所述优化算法中截屏服务器的逻辑流程包含如下步骤:
S101、开始;
S102、轮询截取屏幕图像;
S103、判断是否“有新帧图像”,若是,则进入S104;若否,则返回S103,再次进行判断;
S104、帧图像划分图像区域;
S105、将每一区域图像与之前m帧同一区域进行比较;
S106、产生帧图像相同区域映射关联列表;
S107、将帧图像子区域放入待发送队列;
S108、发送队列超过一定阈值开始发送列首帧图像;
S109、将帧图像区域子图像按JPG编码压缩后分包发送;
S110、将该图像帧相同区域映射关系列表信息打包发送;
S111、判断是否需要“程序退出”,若是,则进入S112;若否,则返回S103;
S112、结束。
优选地,所述优化算法中屏幕共享客户端的逻辑流程包含如下步骤:
S201、开始;
S202、轮询接收数据报文;
S203、判断是否“有数据包”,若是,则进入S204;若否,则返回S203,再次进行判断;
S204、将数据报文解析后,尝试生成一个区域子图像;
S205、判断是否“生成子图像帧”,若是,则进入S206;若否,则返回S203;
S206、将子图像缓存,并利用已有缓存图像子区域形成完整图像;
S207、将生成图像帧放入显示队列;
S208、判断是否“显示队列帧数超过阈值”,若是,则进入S209;若否,则返回S203;
S209、取出图像帧播放图像;
S210、判断是否“在播放阈值内存在丢帧”,若是,则进入S211;若否,则返回S203;
S211、根据图像帧相同区域映射关联信息,利用已经接收子区域修复丢帧图像;
S212、判断“是否结束”,若是,则进入S213;若否,则返回S203;
S213、结束。
本发明的有益效果在于:
在不显著增加新的带宽的情况下,利用屏幕截图产生的图像帧之间的关联关系在接收端修复因为丢包无法完整成像的图像帧,由此,降低了丢帧率,提供了屏幕共享的流畅性。
附图说明
图1为本发明的屏幕共享丢帧优化算法的帧图像区域划分示意图;
图2为本发明的屏幕共享丢帧优化算法的帧图像区域比较示意图;
图3为本发明的屏幕共享丢帧优化算法的帧图像相同区域映射关联列表;
图4为本发明的屏幕共享丢帧优化算法的帧图像子区域接收情况示意图;
图5为本发明的屏幕共享丢帧优化算法的截屏服务器逻辑流程图;
图6为本发明的屏幕共享丢帧优化算法的屏幕共享客户端逻辑流程图;
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
对于屏幕共享截屏产生的图像帧,相邻帧的图像有很高的相似性。本发明利用所处理的桌面截屏图像相邻帧图像的相似性的原理,来修补因为数据报文丢失而缺失部分图像数据的图像帧,以实现提升屏幕共享流畅性的目的。
本发明的屏幕共享丢帧优化算法包括如下步骤:
S1、对截屏产生的图像帧进行分块处理,即,对于一张图片,本发明将其划分为n个区域子图像,请参见图1所示,然后将其缓存起来。
S2、截屏开始后,保持一个发送队列,待此队列缓存超过m帧图像数据后,才进行图像帧的数据报文发送。
S3、每一帧屏幕截屏图像帧产生后,先跟队列中原有的图像帧进行区域一对一地比对,产生一个相同区域关联映射列表信息;
具体的比对为:对于拿来比对的两帧图像Pn和Pn-1,取出帧图像Pn和Pn-1内部的n个区域的子图像对其进行一一比较,举例来讲,新产生帧图像Pn的第1个区域的子图像跟对比帧图像Pn-1第1个区域的子图像进行比较,如果比较相同那么就把这两个子图像的序号1和Pn,Pn-1的帧数Pn和Pn-1分包保存到Pn帧区域序号1的相同帧序号列表中和Pn-1帧区域序号1的相同帧序号列表中,参见图2和图3。
S4、将帧图像的n个区域子图像以JPG格式编码压缩后产生的数据流进行分段、打包成数据报文,然后将数据报文发送出去;同时把该帧图像对应的相同区域关联映射列表信息打包成控制报文发送出去。
S5、屏幕共享客户端在接收数据报文后,依次将分包数据组装起来,形成区域子图像,再组装成完整的帧图像;然后将该帧图像的区域子图像缓存起来,同样缓存m帧的区域子图像队列和m帧的帧图像队列;同时接收保存控制报文中帧图像的相同区域关联映射列表信息。
S6、当屏幕共享客户端帧图像队列超过m帧时将队首图像播放出来,并记下当前播放的帧数Fp。
S7、对于帧数少于Fp+A帧(A为一个丢帧判断阈值)图像帧,如果未接收完成,本发明认为该图像帧已经丢失;这时本发明利用帧图像的相同区域关联映射列表信息和相邻帧区域子图像将丢帧图像丢失的子区域用其他帧的相同子区域进行修补,尝试生成一张完整图像,请参见图4所示,图中带O方块代表该区域接收完成,图中带X方块代表该区域数据丢失;如果Pn-1帧和Pn帧相同区域较多,则可以利用Pn-1帧子区域修复p帧。
S8、将修复帧图像放入帧图像队列等待显示。
下面将结合步骤流程图进行详细的说明——
请先参照图5所示,其为本发明的屏幕共享丢帧优化算法的截屏服务器逻辑流程图;所述逻辑流程包含如下步骤:
S101、开始;
S102、轮询截取屏幕图像;
S103、判断是否“有新帧图像”,若是(Y),则进入S104;若否(N),则返回S103,再次进行判断;
S104、帧图像划分图像区域;
S105、将每一区域图像与之前m帧同一区域进行比较;
S106、产生帧图像相同区域映射关联列表;
S107、将帧图像子区域放入待发送队列;
S108、发送队列超过一定阈值开始发送列首帧图像;
S109、将帧图像区域子图像按JPG编码压缩后分包发送;
S110、将该图像帧相同区域映射关系列表信息打包发送;
S111、判断是否需要“程序退出”,若是(Y),则进入S112;若否(N),则返回S103;
S112、结束。
由此,截屏服务器结束工作,而后,进入到屏幕共享客户端;请再参照图6所示,其为本发明的屏幕共享丢帧优化算法的屏幕共享客户端逻辑流程图;所述逻辑流程包含如下步骤:
S201、开始;
S202、轮询接收数据报文;
S203、判断是否“有数据包”,若是(Y),则进入S204;若否(N),则返回S203,再次进行判断;
S204、将数据报文解析后,尝试生成一个区域子图像;
S205、判断是否“生成子图像帧”,若是(Y),则进入S206;若否(N),则返回S203;
S206、将子图像缓存,并利用已有缓存图像子区域形成完整图像;
S207、将生成图像帧放入显示队列;
S208、判断是否“显示队列帧数超过阈值”,若是(Y),则进入S209;若否(N),则返回S203;
S209、取出图像帧播放图像;
S210、判断是否“在播放阈值内存在丢帧”,若是(Y),则进入S211;若否(N),则返回S203;
S211、根据图像帧相同区域映射关联信息,利用已经接收子区域修复丢帧图像;
S212、判断“是否结束”,若是(Y),则进入S213;若否(N),则返回S203;
S213、结束。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种屏幕共享丢帧优化算法,其特征在于,包括如下步骤:
S1、截屏服务器对截屏产生的图像帧进行分块处理,将其划分为n个区域子图像,缓存起来;
S2、截屏开始后,保持一个发送队列,待此队列缓存超过m帧图像数据后,才进行图像帧的数据报文发送;
S3、每一帧屏幕截屏图像帧产生后,先跟队列中原有的图像帧进行区域一对一地比对,产生一个相同区域关联映射列表信息;
S4、将帧图像的n个区域子图像以JPG格式编码压缩后产生的数据流进行分段、打包成数据报文,然后将数据报文发送出去;同时把该帧图像对应的相同区域关联映射列表信息打包成控制报文发送出去;
S5、屏幕共享客户端在接收数据报文后,依次将分包数据组装起来,形成区域子图像,再组装成完整的帧图像;然后将该帧图像的区域子图像缓存起来,同样缓存m帧的区域子图像队列和m帧的帧图像队列;同时接收保存控制报文中帧图像的相同区域关联映射列表信息;
S6、当屏幕共享客户端帧图像队列超过m帧时将队首图像播放出来,并记下当前播放的帧数Fp;
S7、对于帧数少于Fp+A帧图像帧,其中,A为一个丢帧判断阈值,如果未接收完成,认为该图像帧已经丢失,则利用帧图像的相同区域关联映射列表信息和相邻帧区域子图像将丢帧图像丢失的子区域用其他帧的相同子区域进行修补,尝试生成一张完整图像;如果Pn-1帧和Pn帧相同区域较多,则可以利用Pn-1帧子区域修复p帧;
S8、将修复帧图像放入帧图像队列等待显示。
2.根据权利要求1所述的屏幕共享丢帧优化算法,其特征在于,步骤S3中的所述比对为:对于拿来比对的两帧图像Pn和Pn-1,取出帧图像Pn和Pn-1内部的n个区域的子图像对其进行一一比较;新产生帧图像Pn的第1个区域的子图像跟对比帧图像Pn-1第1个区域的子图像进行比较,如果比较相同那么就把这两个子图像的序号1和Pn,Pn-1的帧数Pn和Pn-1分包保存到Pn帧区域序号1的相同帧序号列表中和Pn-1帧区域序号1的相同帧序号列表中。
3.根据权利要求1或2所述的屏幕共享丢帧优化算法,其特征在于,所述优化算法中截屏服务器的逻辑流程包含如下步骤:
S101、开始;
S102、轮询截取屏幕图像;
S103、判断是否“有新帧图像”,若是,则进入S104;若否,则返回S103,再次进行判断;
S104、帧图像划分图像区域;
S105、将每一区域图像与之前m帧同一区域进行比较;
S106、产生帧图像相同区域映射关联列表;
S107、将帧图像子区域放入待发送队列;
S108、发送队列超过一定阈值开始发送列首帧图像;
S109、将帧图像区域子图像按JPG编码压缩后分包发送;
S110、将该图像帧相同区域映射关系列表信息打包发送;
S111、判断是否需要“程序退出”,若是,则进入S112;若否,则返回S103;
S112、结束。
4.根据权利要求1或2所述的屏幕共享丢帧优化算法,其特征在于,所述优化算法中屏幕共享客户端的逻辑流程包含如下步骤:
S201、开始;
S202、轮询接收数据报文;
S203、判断是否“有数据包”,若是,则进入S204;若否,则返回S203,再次进行判断;
S204、将数据报文解析后,尝试生成一个区域子图像;
S205、判断是否“生成子图像帧”,若是,则进入S206;若否,则返回S203;
S206、将子图像缓存,并利用已有缓存图像子区域形成完整图像;
S207、将生成图像帧放入显示队列;
S208、判断是否“显示队列帧数超过阈值”,若是,则进入S209;若否,则返回S203;
S209、取出图像帧播放图像;
S210、判断是否“在播放阈值内存在丢帧”,若是,则进入S211;若否,则返回S203;
S211、根据图像帧相同区域映射关联信息,利用已经接收子区域修复丢帧图像;
S212、判断“是否结束”,若是,则进入S213;若否,则返回S203;
S213、结束。
5.根据权利要求3所述的屏幕共享丢帧优化算法,其特征在于,所述优化算法中屏幕共享客户端的逻辑流程包含如下步骤:
S201、开始;
S202、轮询接收数据报文;
S203、判断是否“有数据包”,若是,则进入S204;若否,则返回S203,再次进行判断;
S204、将数据报文解析后,尝试生成一个区域子图像;
S205、判断是否“生成子图像帧”,若是,则进入S206;若否,则返回S203;
S206、将子图像缓存,并利用已有缓存图像子区域形成完整图像;
S207、将生成图像帧放入显示队列;
S208、判断是否“显示队列帧数超过阈值”,若是,则进入S209;若否,则返回S203;
S209、取出图像帧播放图像;
S210、判断是否“在播放阈值内存在丢帧”,若是,则进入S211;若否,则返回S203;
S211、根据图像帧相同区域映射关联信息,利用已经接收子区域修复丢帧图像;
S212、判断“是否结束”,若是,则进入S213;若否,则返回S203;
S213、结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711023233.3A CN107613370B (zh) | 2017-10-27 | 2017-10-27 | 一种采用截屏图像实现局域网屏幕共享的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711023233.3A CN107613370B (zh) | 2017-10-27 | 2017-10-27 | 一种采用截屏图像实现局域网屏幕共享的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107613370A true CN107613370A (zh) | 2018-01-19 |
CN107613370B CN107613370B (zh) | 2020-08-14 |
Family
ID=61080171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711023233.3A Active CN107613370B (zh) | 2017-10-27 | 2017-10-27 | 一种采用截屏图像实现局域网屏幕共享的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107613370B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112764705A (zh) * | 2021-01-26 | 2021-05-07 | 重庆紫光华山智安科技有限公司 | 一种用户界面共享方法及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060259939A1 (en) * | 2005-05-11 | 2006-11-16 | Newsoft Technology Corporation | Method, system and receiving device for transmitting screen frames from one to many terminals |
CN102546194A (zh) * | 2010-12-24 | 2012-07-04 | 联想(北京)有限公司 | 显示数据处理方法、系统及服务器 |
CN102821278A (zh) * | 2012-07-27 | 2012-12-12 | 深信服网络科技(深圳)有限公司 | 远程桌面图像传输方法及系统 |
CN103248946A (zh) * | 2012-02-03 | 2013-08-14 | 海尔集团公司 | 一种视频图像快速传输的方法及系统 |
CN104837017A (zh) * | 2014-02-10 | 2015-08-12 | 深圳富泰宏精密工业有限公司 | 智能分块图像传输系统及方法 |
CN105677279A (zh) * | 2016-01-08 | 2016-06-15 | 全时云商务服务股份有限公司 | 桌面区域共享方法、系统及相应的共享端和观看端 |
CN107172376A (zh) * | 2017-06-26 | 2017-09-15 | 北京奇艺世纪科技有限公司 | 一种基于屏幕共享的视频编码方法和装置 |
-
2017
- 2017-10-27 CN CN201711023233.3A patent/CN107613370B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060259939A1 (en) * | 2005-05-11 | 2006-11-16 | Newsoft Technology Corporation | Method, system and receiving device for transmitting screen frames from one to many terminals |
CN102546194A (zh) * | 2010-12-24 | 2012-07-04 | 联想(北京)有限公司 | 显示数据处理方法、系统及服务器 |
CN103248946A (zh) * | 2012-02-03 | 2013-08-14 | 海尔集团公司 | 一种视频图像快速传输的方法及系统 |
CN102821278A (zh) * | 2012-07-27 | 2012-12-12 | 深信服网络科技(深圳)有限公司 | 远程桌面图像传输方法及系统 |
CN104837017A (zh) * | 2014-02-10 | 2015-08-12 | 深圳富泰宏精密工业有限公司 | 智能分块图像传输系统及方法 |
CN105677279A (zh) * | 2016-01-08 | 2016-06-15 | 全时云商务服务股份有限公司 | 桌面区域共享方法、系统及相应的共享端和观看端 |
CN107172376A (zh) * | 2017-06-26 | 2017-09-15 | 北京奇艺世纪科技有限公司 | 一种基于屏幕共享的视频编码方法和装置 |
Non-Patent Citations (2)
Title |
---|
李鹏 付永庆: "一种实现局域网内屏幕共享的新方法", 《成都信息工程学院院报》 * |
汪彦 黄雪华 涂立: "一种改进的应用于机房教学的屏幕共享方案", 《计算机与现代化》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112764705A (zh) * | 2021-01-26 | 2021-05-07 | 重庆紫光华山智安科技有限公司 | 一种用户界面共享方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107613370B (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103688240B (zh) | 用于发送数字场景描述数据的方法以及发送器和接收器场景处理设备 | |
CN107483976A (zh) | 直播管控方法、装置及电子设备 | |
JP2023549908A (ja) | データ伝送方法、装置、電子機器、及びコンピュータプログラム | |
CN1758286A (zh) | 基于图像的三维远程可视化方法 | |
CN101969463A (zh) | 一种网页上实现白板全屏同步的方法 | |
CN1627732A (zh) | 一种在即时通讯系统中应用程序共享的方法和系统 | |
CN101977209A (zh) | 一种网页上实现翻页同步的方法 | |
CN110831039A (zh) | 多路并发系统中的数据传输方法及传输服务器 | |
CN105530479A (zh) | 一种基于移动终端的视频数据处理方法及系统 | |
CN113207081B (zh) | 通信的方法、装置、电子设备及介质 | |
CN106210443B (zh) | 网络控制显示内容同步的方法 | |
Lin et al. | Cloudlet–screen computing: a client–server architecture with top graphics performance | |
CN107613370A (zh) | 一种屏幕共享丢帧优化算法 | |
CN113839998B (zh) | 图像数据传输方法、装置、设备、存储介质及程序产品 | |
CN110659080B (zh) | 页面显示方法、装置、电子设备及存储介质 | |
CN101309259B (zh) | 一种分布式图像显示方法 | |
CN105791964B (zh) | 跨平台的媒体文件播放方法及系统 | |
CN113824689B (zh) | 边缘计算网络、数据传输方法、装置、设备和存储介质 | |
CN108508799A (zh) | 一种远程控制方法 | |
CN110798700B (zh) | 视频处理方法、视频处理装置、存储介质与电子设备 | |
CN212161249U (zh) | 一种led电影屏显示系统 | |
CN107040455A (zh) | 一种基于redis的即时消息通讯方法和系统 | |
CN103731250B (zh) | 一种pc机与移动终端之间的高速同步方法以及系统 | |
CN106303650A (zh) | 视频同步显示方法 | |
CN101207470B (zh) | 一种网络数据同步的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |