CN104951270A - 一种Android WifiDisplay中显示帧处理方法及系统 - Google Patents
一种Android WifiDisplay中显示帧处理方法及系统 Download PDFInfo
- Publication number
- CN104951270A CN104951270A CN201510345293.1A CN201510345293A CN104951270A CN 104951270 A CN104951270 A CN 104951270A CN 201510345293 A CN201510345293 A CN 201510345293A CN 104951270 A CN104951270 A CN 104951270A
- Authority
- CN
- China
- Prior art keywords
- frame
- display frame
- display
- distal displayed
- transfer thread
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000005540 biological transmission Effects 0.000 claims abstract description 35
- 238000012856 packing Methods 0.000 claims description 15
- 230000001960 triggered effect Effects 0.000 claims description 9
- 230000015572 biosynthetic process Effects 0.000 claims description 6
- 238000003786 synthesis reaction Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 abstract 3
- 230000003993 interaction Effects 0.000 abstract 1
- 230000002194 synthesizing effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种Android WifiDisplay中显示帧处理方法及系统,属于显示帧处理领域。本发明显示帧处理方法包括以下步骤:帧合成模块把显示帧放在远端显示帧缓冲队列中;远端显示处理线程读取显示帧,放入帧共享对象中,发送帧就绪消息给帧中转线程;帧中转线程收到帧就绪消息,从帧共享对象中读取显示帧,开始处理显示帧,然后发送给编码模块进行编码;编码模块对显示帧进行编码,编码之后的显示帧交给打包发送进程;打包发送进程进行打包,发送给远端显示设备。本发明通过改变远端显示处理线程与帧中转线程的交互方式,有效改善了源端设备与远端显示设备进行显示数据传输时出现的延时现象,改善了用户体验。
Description
技术领域
本发明涉及显示帧处理领域,尤其涉及一种Android WifiDisplay中显示帧处理方法及系统。
背景技术
以智能手机和平板电脑为代表的智能终端设备的迅速普及,给人们的生活带来了极大的便利。消费者在享受智能终端设备多样化带来的良好体验的同时,也产生了在不同设备之间进行显示内容共享的需求。在不同的显示终端之间,通过WiFi网络,进行多媒体内容传输,以实现在不同平台设备上共享显示内容的多屏互动技术极大的满足了这一需求。
在众多的多屏互动解决方案中,WifiDisplay(也称Miracast)是当前效果较好也是支持厂家较多的一种技术,它是WiFi联盟制定的一种点到点的显示内容分享协议,在不同设备之间建立和维持一个基于WiFi的连接,并且利用这个连接将源端设备的视频和音频发送到目标设备进行呈现。具体可以参考“Wi-Fi Display Technical Specification v1.1”(Wi-Fi Alliance,2012)。
Android系统从4.2版本开始支持WifiDisplay,本专利中称其为Android WifiDisplay。Android WifiDisplay在为基于Android操作系统的设备间的显示内容共享提供极大便利的同时,其存在的不足也是不容忽视的,尤其是源端设备与目标设备进行显示数据传输时,会出现较大的延时,从而显著影响用户的观看体验。而源端设备处理显示帧所花费的时间是引起这一延时的一大因素。
Android WifiDisplay源端设备的帧中转线程以时间T周期性的从帧共享对象中读取显示帧完成自己的处理,然后交给后续流程处理。由于远端显示处理线程从远端显示缓冲队列中读取显示帧的时间是不定的,而帧中转线程以固定周期T进行工作,所以在这种实现机制中,从远端显示处理线程读取显示帧放入帧共享对象中,到帧中转线程从帧共享对象中取走显示帧,需要0~T时长。在Android系统原有的实现中T为33.3毫秒,所以该过程最大需花费33.3ms,这会显著增加帧延时,影响用户体验。而如果简单的减小周期T则会占据过多的CPU时间,影响性能。
发明内容
为解决现有技术中存在的问题,本发明提供一种Android WifiDisplay中显示帧处理方法及系统。
本发明Android WifiDisplay中显示帧处理方法包括以下步骤:
S1:源端设备处理显示帧开始;
S2:帧合成模块把显示帧放在远端显示帧缓冲队列中;
S3:远端显示处理线程从远端显示帧缓冲队列中读取显示帧,放入帧共享对象中,并发送帧就绪消息给帧中转线程;
S4:帧中转线程收到帧就绪消息,从帧共享对象中读取显示帧,开始处理显示帧,帧中转线程处理完显示帧,发送给编码模块进行编码;
S5:编码模块对帧中转线程发送的显示帧进行编码,编码之后的显示帧交给打包发送进程;
S6:打包发送进程对编码之后的显示帧进行打包,然后通过无线连接发送给远端显示设备;
S7:源端设备处理显示帧结束。
本发明作进一步改进,在步骤S3中,远端显示处理线程处理显示帧包括以下步骤:
S31:远端显示处理线程从远端显示帧缓冲队列中读取显示帧;
S32:判断是否取得显示帧,如果是,执行步骤S33;如果否,执行步骤S31;S33:远端显示处理线程将显示帧放入帧共享对象中;
S34:远端显示处理线程向帧中转线程发送帧就绪消息通知帧中转线程显示帧已经准备好,让其处理;
S35:发送帧就绪消息完毕,返回执行步骤S31。
本发明作进一步改进,步骤S34中,远端显示处理线程发送帧就绪消息用于触发帧中转线程。
本发明作进一步改进,在步骤S4中,帧中转线程处理显示帧包括以下步骤:
S41:帧中转线程收到远端显示处理线程发送的帧就绪消息;
S42:帧中转线程开始显示帧的处理;
S43:帧中转线程处理完显示帧;
S44:判断在处理显示帧期间是否收到远端显示处理线程发送的帧就绪消息,如果是,返回执行步骤S41;如果否,执行步骤S45;
S45:等待远端显示处理线程发送帧就绪消息,收到帧就绪消息返回执行步骤S41。
本发明作进一步改进,帧中转线程被远端显示处理线程发送的帧就绪消息触发之后立即开始显示帧的处理。
本发明作进一步改进,所述帧共享对象是远端显示处理线程与帧中转线程 共享。
本发明作进一步改进,远端显示处理线程发送的帧就绪消息是以条件变量实现的,远端显示处理线程和帧中转线程共享一条件变量,远端显示处理线程读到新显示帧帧就置位该条件变量,帧中转线程随即被触发,并且复位该条件变量。
本发明还提供了一种Android WifiDisplay中显示帧处理系统,包括帧合成模块,用于把显示帧放在远端显示帧缓冲队列中;远端显示处理模块,用于从远端显示帧缓冲队列中读取显示帧,放入帧共享对象中,并发送帧就绪消息给帧中转模块;帧中转模块,从帧共享对象中读取显示帧,开始处理显示帧,帧中转线程处理完显示帧,发送给编码模块进行编码;编码模块,用于对帧中转模块发送的显示帧进行编码,编码之后的显示帧交给打包发送模块;打包发送模块:用于对编码之后的显示帧进行打包,然后通过无线连接发送给远端显示设备。
本发明做进一步改进,远端显示处理模块中,远端显示处理模块发送帧就绪消息用于触发帧中转模块。
本发明做进一步改进,帧中转模块中,帧中转模块被远端显示处理模块发送的帧就绪消息触发之后立即开始显示帧的处理。
与现有技术相比,本发明的有益效果是:通过改变远端显示处理线程与帧中转线程的交互方式,显著减少了远端显示处理线程准备好显示帧,而帧中转线程没有及时处理该显示帧所引入的延时,有效改善了源端设备与远端显示设备进行显示数据传输时出现的延时现象,改善了用户体验,提高了显示数据传输效率。
附图说明
图1为本发明Android WifiDisplay中显示帧处理方法流程图;
图2为本发明远端显示处理线程处理显示帧流程图;
图3为本发明帧中转线程处理显示帧流程图;
图4为本发明基于帧就绪消息的框图;
图5为本发明帧就绪消息的具体实现框图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
如图1所示,本发明的Android WifiDisplay中显示帧处理方法包括以下步骤:
S1:源端设备处理显示帧开始;
S2:帧合成模块把显示帧放在远端显示帧缓冲队列中;
S3:远端显示处理线程从远端显示帧缓冲队列中读取显示帧,放入帧共享对象中,并发送帧就绪消息给帧中转线程;
S4:帧中转线程收到帧就绪消息,从帧共享对象中读取显示帧,开始处理显示帧,帧中转线程处理完显示帧,发送给编码模块进行编码;
S5:编码模块对帧中转线程发送的显示帧进行编码,编码之后的显示帧交给打包发送进程;
S6:打包发送进程对编码之后的显示帧进行打包,然后通过无线连接,比如WIFI网络发送给远端显示设备;
S7:源端设备处理显示帧结束。
至此完成源端设备对一帧显示帧的处理。为了更清楚的说明本发明中远端显示处理线程和帧中转线程的工作方式,下面将结合图2和图3分别对远端显示处理线程和帧中转线程的工作方式进行说明。
如图2所示,本发明远端显示处理线程处理显示帧的详细工作流程包括以下步骤:
S31:远端显示处理线程从远端显示帧缓冲队列中读取显示帧;
S32:判断是否取得显示帧,如果是,执行步骤S33;如果否,执行步骤S31;
S33:远端显示处理线程将显示帧放入帧共享对象中;
S34:远端显示处理线程向帧中转线程发送帧就绪消息通知帧中转线程显示帧已经准备好,让其处理;
S35:发送帧就绪消息完毕,返回执行步骤S31。
其中,在步骤S34中,远端显示处理线程发送帧就绪消息用于触发帧中转线程。需要说明的是在图2所示的流程中,步骤S34是非常重要的,该步骤向帧中转线程发送帧就绪消息,通知帧中转线程处理显示帧,这是保证在远端显示处理线程准备好显示帧之后帧中转线程及时对显示帧进行处理,从而减少处理一帧所需时间的关键。
在远端显示处理线程向帧中转线程发送完帧就绪消息之后,帧的处理就交到了帧中转线程手里,如图3所示,帧中转线程处理显示帧的详细工作流程包括以下步骤:
S41:帧中转线程收到远端显示处理线程发送的帧就绪消息;
S42:帧中转线程开始显示帧的处理;
S43:帧中转线程处理完显示帧;
S44:判断在处理显示帧期间是否收到远端显示处理线程发送的帧就绪消息,如果是,返回执行步骤S41;如果否,执行步骤S45;
S45:等待远端显示处理线程发送帧就绪消息,收到帧就绪消息返回执行步骤S41。
其中,帧中转线程被远端显示处理线程发送的帧就绪消息触发之后立即开始显示帧的处理。
如图4和图5所示,帧共享对象是由远端显示处理线程与帧中转线程共享。远端显示处理线程发送的帧就绪消息是以条件变量实现的,远端显示处理线程和帧中转线程共享一条件变量,远端显示处理线程读到新显示帧帧就置位该条件变量,帧中转线程随即被触发,并且复位该条件变量。
其中条件变量的取值及意义如表1所示:
条件变量值 | 意义 |
1 | 有视频帧 |
0 | 无视频帧 |
表1
条件变量的操作及结果如表2所示:
操作 | 条件变量值 |
置位 | 1 |
复位 | 0 |
表2
同时,本发明还提供了一种实现上述Android WifiDisplay中显示帧处理方法的系统,该系统属于源端设备,包括帧合成模块,用于把显示帧放在远端显示帧缓冲队列中;远端显示处理模块,用于从远端显示帧缓冲队列中读取显示帧,放入帧共享对象中,并发送帧就绪消息给帧中转模块;帧中转模块,从帧共享对象中读取显示帧,开始处理显示帧,帧中转线程处理完显示帧,发送给编码模块进行编码;编码模块,用于对帧中转模块发送的显示帧进行编码,编码之后的显示帧交给打包发送模块;打包发送模块:用于对编码之后的显示帧进行打包,然后通过无线连接,比如WIFI网络发送给远端显示设备。
在远端显示处理模块中,远端显示处理模块发送帧就绪消息用于触发帧中转模块,在帧中转模块中,帧中转模块被远端显示处理模块发送的帧就绪消息触发之后立即开始显示帧的处理。
以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。
Claims (10)
1.一种Android WifiDisplay中显示帧处理方法,其特征在于包括以下步骤:
S1:源端设备处理显示帧开始;
S2:帧合成模块把显示帧放在远端显示帧缓冲队列中;
S3:远端显示处理线程从远端显示帧缓冲队列中读取显示帧,放入帧共享对象中,并发送帧就绪消息给帧中转线程;
S4:帧中转线程收到帧就绪消息,从帧共享对象中读取显示帧,开始处理显示帧,帧中转线程处理完显示帧,发送给编码模块进行编码;
S5:编码模块对帧中转线程发送的显示帧进行编码,编码之后的显示帧交给打包发送进程;
S6:打包发送进程对编码之后的显示帧进行打包,然后通过无线连接发送给远端显示设备;
S7:源端设备处理显示帧结束。
2.根据权利要求1所述的Android WifiDisplay中显示帧处理方法,其特征在于:在步骤S3中,远端显示处理线程处理显示帧包括以下步骤:
S31:远端显示处理线程从远端显示帧缓冲队列中读取显示帧;
S32:判断是否取得显示帧,如果是,执行步骤S33;如果否,执行步骤S31;
S33:远端显示处理线程将显示帧放入帧共享对象中;
S34:远端显示处理线程向帧中转线程发送帧就绪消息通知帧中转线程显示帧已经准备好,让其处理;
S35:发送帧就绪消息完毕,返回执行步骤S31。
3.根据权利要求2所述的Android WifiDisplay中显示帧处理方法,其特征在于:步骤S34中,远端显示处理线程发送帧就绪消息用于触发帧中转线程。
4.根据权利要求1所述的Android WifiDisplay中显示帧处理方法,其特征在于:在步骤S4中,帧中转线程处理显示帧包括以下步骤:
S41:帧中转线程收到远端显示处理线程发送的帧就绪消息;
S42:帧中转线程开始显示帧的处理;
S43:帧中转线程处理完显示帧;
S44:判断在处理显示帧期间是否收到远端显示处理线程发送的帧就绪消息,如果是,返回执行步骤S41;如果否,执行步骤S45;
S45:等待远端显示处理线程发送帧就绪消息,收到帧就绪消息返回执行步骤S41。
5.根据权利要求4所述的Android WifiDisplay中显示帧处理方法,其特征在于:帧中转线程被远端显示处理线程发送的帧就绪消息触发之后立即开始显示帧的处理。
6.根据权利要求1所述的Android WifiDisplay中显示帧处理方法,其特征在于:所述帧共享对象是远端显示处理线程与帧中转线程共享。
7.根据权利要求1所述的Android WifiDisplay中显示帧处理方法,其特征在于:远端显示处理线程发送的帧就绪消息是以条件变量实现的, 远端显示处理线程和帧中转线程共享一条件变量, 远端显示处理线程读到新显示帧帧就置位该条件变量,帧中转线程随即被触发,并且复位该条件变量。
8.实现权利要求1-7任一项所述方法的系统,其特征在于:包括帧合成模块,用于把显示帧放在远端显示帧缓冲队列中;
远端显示处理模块,用于从远端显示帧缓冲队列中读取显示帧,放入帧共享对象中,并发送帧就绪消息给帧中转模块;
帧中转模块,从帧共享对象中读取显示帧,开始处理显示帧,帧中转线程处理完显示帧,发送给编码模块进行编码;
编码模块,用于对帧中转模块发送的显示帧进行编码,编码之后的显示帧交给打包发送模块;
打包发送模块:用于对编码之后的显示帧进行打包,然后通过无线连接发送给远端显示设备。
9.根据权利要求8所述的Android WifiDisplay中显示帧处理系统,其特征在于:远端显示处理模块中,远端显示处理模块发送帧就绪消息用于触发帧中转模块。
10.根据权利要求8所述的Android WifiDisplay中显示帧处理系统,其特征在于:帧中转模块中,帧中转模块被远端显示处理模块发送的帧就绪消息触发之后立即开始显示帧的处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510345293.1A CN104951270B (zh) | 2015-06-19 | 2015-06-19 | 一种Android WifiDisplay中显示帧处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510345293.1A CN104951270B (zh) | 2015-06-19 | 2015-06-19 | 一种Android WifiDisplay中显示帧处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104951270A true CN104951270A (zh) | 2015-09-30 |
CN104951270B CN104951270B (zh) | 2018-01-26 |
Family
ID=54165948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510345293.1A Expired - Fee Related CN104951270B (zh) | 2015-06-19 | 2015-06-19 | 一种Android WifiDisplay中显示帧处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104951270B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105897904A (zh) * | 2016-05-10 | 2016-08-24 | 北京大学深圳研究生院 | 基于事件同步机制的智能终端多屏互动的方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101316145A (zh) * | 2008-07-25 | 2008-12-03 | 中兴通讯股份有限公司 | 一种多路信息并行发送及回收的实现方法和装置 |
CN103414751A (zh) * | 2013-07-16 | 2013-11-27 | 广东工业大学 | 一种pc屏幕内容分享互动控制方法 |
US20140331263A1 (en) * | 2013-05-03 | 2014-11-06 | Research In Motion Limited | Input lag estimation for wi-fi display sinks |
-
2015
- 2015-06-19 CN CN201510345293.1A patent/CN104951270B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101316145A (zh) * | 2008-07-25 | 2008-12-03 | 中兴通讯股份有限公司 | 一种多路信息并行发送及回收的实现方法和装置 |
US20140331263A1 (en) * | 2013-05-03 | 2014-11-06 | Research In Motion Limited | Input lag estimation for wi-fi display sinks |
CN103414751A (zh) * | 2013-07-16 | 2013-11-27 | 广东工业大学 | 一种pc屏幕内容分享互动控制方法 |
Non-Patent Citations (1)
Title |
---|
龙禹: "基于WFD的智能多屏交互系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105897904A (zh) * | 2016-05-10 | 2016-08-24 | 北京大学深圳研究生院 | 基于事件同步机制的智能终端多屏互动的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104951270B (zh) | 2018-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9088749B2 (en) | Method, apparatus and system for mobile terminal to remotely control television | |
CN104020968B (zh) | 控制共享屏幕显示的方法及装置 | |
CN111108470B (zh) | 分布式拼接系统整墙回显方法、装置及计算机设备 | |
CN105228080B (zh) | 多屏互动方法、系统及浏览器 | |
WO2015144084A1 (en) | Video synchronous playback method, apparatus, and system | |
CN103442071A (zh) | 一种手机屏幕内容的实时分享方法 | |
CN105578247B (zh) | 镜射显示系统与镜射显示方法 | |
CN205353936U (zh) | 基于vr设备的数据交互系统 | |
CN103092552A (zh) | 一种实现多屏显示的方法及系统 | |
CN103491122A (zh) | 多屏显示互动系统及多屏互动方法 | |
CN102664939A (zh) | 一种屏幕镜像移动终端的方法及设备 | |
CN105554430A (zh) | 一种视频通话方法、系统及装置 | |
CN103888840A (zh) | 一种视频移动终端实时拖动与缩放的方法及装置 | |
JP2020527883A (ja) | ビデオ処理方法、装置および記憶媒体 | |
CN202940850U (zh) | 多平台无线数据传输系统 | |
CN102938779A (zh) | 用于智能终端的多媒体内容分享方法 | |
CN103599635A (zh) | 家庭云游戏设备系统 | |
CN105446680A (zh) | 一种屏幕镜像及其扩展方法、系统及终端设备 | |
WO2017096812A1 (zh) | 网页展示方法、移动终端、智能终端、计算机程序和存储介质 | |
CN104580289B (zh) | 一种对用户设备进行控制的方法、装置和系统 | |
CN102685599B (zh) | 电视节目互动系统及方法 | |
CN104951270A (zh) | 一种Android WifiDisplay中显示帧处理方法及系统 | |
CN104580455A (zh) | 推送方法、推送装置和服务器 | |
CN103974062A (zh) | 图像显示装置、图像显示系统和图像显示方法 | |
CN204145679U (zh) | 一种基于多用户鼠标的屏幕信息交互系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180126 |