一種Android WifiDisplay中顯示幀處理方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[000U本發(fā)明設(shè)及顯示帖處理領(lǐng)域,尤其設(shè)及一種An化oidWifiDisplay中顯示帖處理 方法及系統(tǒng)。
【背景技術(shù)】
[0002] W智能手機(jī)和平板電腦為代表的智能終端設(shè)備的迅速普及,給人們的生活帶來了 極大的便利。消費(fèi)者在享受智能終端設(shè)備多樣化帶來的良好體驗(yàn)的同時(shí),也產(chǎn)生了在不同 設(shè)備之間進(jìn)行顯示內(nèi)容共享的需求。在不同的顯示終端之間,通過WiFi網(wǎng)絡(luò),進(jìn)行多媒體 內(nèi)容傳輸,W實(shí)現(xiàn)在不同平臺(tái)設(shè)備上共享顯示內(nèi)容的多屏互動(dòng)技術(shù)極大的滿足了該一需 求。
[0003] 在眾多的多屏互動(dòng)解決方案中,WifiDisplay(也稱Miracast)是當(dāng)前效果較好也 是支持廠家較多的一種技術(shù),它是WiFi聯(lián)盟制定的一種點(diǎn)到點(diǎn)的顯示內(nèi)容分享協(xié)議,在不 同設(shè)備之間建立和維持一個(gè)基于WiFi的連接,并且利用該個(gè)連接將源端設(shè)備的視頻和音 頻發(fā)送到目標(biāo)設(shè)備進(jìn)行呈現(xiàn)。具體可W參考"Wi-FiDisplayTechnicalSpecification vl. 1" (Wi-FiAlliance,2012)。
[0004] An化oid系統(tǒng)從4. 2版本開始支持WifiDisplay,本專利中稱其為An化oid WifiDisplay。An化oid WifiDisplay在為基于An化oid操作系統(tǒng)的設(shè)備間的顯示內(nèi)容共享 提供極大便利的同時(shí),其存在的不足也是不容忽視的,尤其是源端設(shè)備與目標(biāo)設(shè)備進(jìn)行顯 示數(shù)據(jù)傳輸時(shí),會(huì)出現(xiàn)較大的延時(shí),從而顯著影響用戶的觀看體驗(yàn)。而源端設(shè)備處理顯示帖 所花費(fèi)的時(shí)間是引起該一延時(shí)的一大因素。
[0005] AmlroidWifiDisplay源端設(shè)備的帖中轉(zhuǎn)線程W時(shí)間T周期性的從帖共享對(duì)象中 讀取顯示帖完成自己的處理,然后交給后續(xù)流程處理。由于遠(yuǎn)端顯示處理線程從遠(yuǎn)端顯示 緩沖隊(duì)列中讀取顯示帖的時(shí)間是不定的,而帖中轉(zhuǎn)線程W固定周期T進(jìn)行工作,所W在該 種實(shí)現(xiàn)機(jī)制中,從遠(yuǎn)端顯示處理線程讀取顯示帖放入帖共享對(duì)象中,到帖中轉(zhuǎn)線程從帖共 享對(duì)象中取走顯示帖,需要0~T時(shí)長。在Amlroid系統(tǒng)原有的實(shí)現(xiàn)中T為33. 3毫秒,所 W該過程最大需花費(fèi)33. 3ms,該會(huì)顯著增加帖延時(shí),影響用戶體驗(yàn)。而如果簡(jiǎn)單的減小周期 T則會(huì)占據(jù)過多的CPU時(shí)間,影響性能。
【發(fā)明內(nèi)容】
[0006] 為解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種An化oid WifiDisplay中顯示帖 處理方法及系統(tǒng)。
[0007] 本發(fā)明Amlroid WifiDisplay中顯示帖處理方法包括W下步驟:
[000引 S1 ;源端設(shè)備處理顯示帖開始;
[0009] S2;帖合成模塊把顯示帖放在遠(yuǎn)端顯示帖緩沖隊(duì)列中;
[0010] S3 ;遠(yuǎn)端顯示處理線程從遠(yuǎn)端顯示帖緩沖隊(duì)列中讀取顯示帖,放入帖共享對(duì)象中, 并發(fā)送帖就緒消息給帖中轉(zhuǎn)線程;
[0011] S4;帖中轉(zhuǎn)線程收到帖就緒消息,從帖共享對(duì)象中讀取顯示帖,開始處理顯示帖, 帖中轉(zhuǎn)線程處理完顯示帖,發(fā)送給編碼模塊進(jìn)行編碼;
[0012] S5;編碼模塊對(duì)帖中轉(zhuǎn)線程發(fā)送的顯示帖進(jìn)行編碼,編碼之后的顯示帖交給打包 發(fā)送進(jìn)程;
[0013] S6;打包發(fā)送進(jìn)程對(duì)編碼之后的顯示帖進(jìn)行打包,然后通過無線連接發(fā)送給遠(yuǎn)端 顯示設(shè)備;
[0014] S7 ;源端設(shè)備處理顯示帖結(jié)束。
[0015] 本發(fā)明作進(jìn)一步改進(jìn),在步驟S3中,遠(yuǎn)端顯示處理線程處理顯示帖包括W下步 驟:
[0016] S31 ;遠(yuǎn)端顯示處理線程從遠(yuǎn)端顯示帖緩沖隊(duì)列中讀取顯示帖;
[0017] S32 ;判斷是否取得顯示帖,如果是,執(zhí)行步驟S33 ;如果否,執(zhí)行步驟S31 ;S33 ;遠(yuǎn) 端顯示處理線程將顯示帖放入帖共享對(duì)象中;
[001引 S34;遠(yuǎn)端顯示處理線程向帖中轉(zhuǎn)線程發(fā)送帖就緒消息通知帖中轉(zhuǎn)線程顯示帖已 經(jīng)準(zhǔn)備好,讓其處理;
[0019] S35;發(fā)送帖就緒消息完畢,返回執(zhí)行步驟S31。
[0020] 本發(fā)明作進(jìn)一步改進(jìn),步驟S34中,遠(yuǎn)端顯示處理線程發(fā)送帖就緒消息用于觸發(fā) 帖中轉(zhuǎn)線程。
[0021] 本發(fā)明作進(jìn)一步改進(jìn),在步驟S4中,帖中轉(zhuǎn)線程處理顯示帖包括W下步驟:
[0022] S41 ;帖中轉(zhuǎn)線程收到遠(yuǎn)端顯示處理線程發(fā)送的帖就緒消息;
[002引 S42 ;帖中轉(zhuǎn)線程開始顯示帖的處理;
[0024] S43 ;帖中轉(zhuǎn)線程處理完顯示帖;
[00巧]S44 ;判斷在處理顯示帖期間是否收到遠(yuǎn)端顯示處理線程發(fā)送的帖就緒消息,如果 是,返回執(zhí)行步驟S41;如果否,執(zhí)行步驟S45;
[0026] S45 ;等待遠(yuǎn)端顯示處理線程發(fā)送帖就緒消息,收到帖就緒消息返回執(zhí)行步驟 S41。
[0027] 本發(fā)明作進(jìn)一步改進(jìn),帖中轉(zhuǎn)線程被遠(yuǎn)端顯示處理線程發(fā)送的帖就緒消息觸發(fā)之 后立即開始顯示帖的處理。
[002引本發(fā)明作進(jìn)一步改進(jìn),所述帖共享對(duì)象是遠(yuǎn)端顯示處理線程與帖中轉(zhuǎn)線程共享。
[0029] 本發(fā)明作進(jìn)一步改進(jìn),遠(yuǎn)端顯示處理線程發(fā)送的帖就緒消息是W條件變量實(shí)現(xiàn) 的,遠(yuǎn)端顯示處理線程和帖中轉(zhuǎn)線程共享一條件變量,遠(yuǎn)端顯示處理線程讀到新顯示帖帖 就置位該條件變量,帖中轉(zhuǎn)線程隨即被觸發(fā),并且復(fù)位該條件變量。
[0030] 本發(fā)明還提供了一種An化oid WifiDisplay中顯示帖處理系統(tǒng),包括帖合成模塊, 用于把顯示帖放在遠(yuǎn)端顯示帖緩沖隊(duì)列中;遠(yuǎn)端顯示處理模塊,用于從遠(yuǎn)端顯示帖緩沖隊(duì) 列中讀取顯示帖,放入帖共享對(duì)象中,并發(fā)送帖就緒消息給帖中轉(zhuǎn)模塊;帖中轉(zhuǎn)模塊,從帖 共享對(duì)象中讀取顯示帖,開始處理顯示帖,帖中轉(zhuǎn)線程處理完顯示帖,發(fā)送給編碼模塊進(jìn)行 編碼;編碼模塊,用于對(duì)帖中轉(zhuǎn)模塊發(fā)送的顯示帖進(jìn)行編碼,編碼之后的顯示帖交給打包發(fā) 送模塊;打包發(fā)送模塊;用于對(duì)編碼之后的顯示帖進(jìn)行打包,然后通過無線連接發(fā)送給遠(yuǎn) 端顯示設(shè)備。
[0031] 本發(fā)明做進(jìn)一步改進(jìn),遠(yuǎn)端顯示處理模塊中,遠(yuǎn)端顯示處理模塊發(fā)送帖就緒消息 用于觸發(fā)帖中轉(zhuǎn)模塊。
[0032] 本發(fā)明做進(jìn)一步改進(jìn),帖中轉(zhuǎn)模塊中,帖中轉(zhuǎn)模塊被遠(yuǎn)端顯示處理模塊發(fā)送的帖 就緒消息觸發(fā)之后立即開始顯示帖的處理。
[0033] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是;通過改變遠(yuǎn)端顯示處理線程與帖中轉(zhuǎn)線 程的交互方式,顯著減少了遠(yuǎn)端顯示處理線程準(zhǔn)備好顯示帖,而帖中轉(zhuǎn)線程沒有及時(shí)處理 該顯示帖所引入的延時(shí),有效改善了源端設(shè)備與遠(yuǎn)端顯示設(shè)備進(jìn)行顯示數(shù)據(jù)傳輸時(shí)出現(xiàn)的 延時(shí)現(xiàn)象,改善了用戶體驗(yàn),提高了顯示數(shù)據(jù)傳輸效率。
【附圖說明】
[0034] 圖1為本發(fā)明An化oid WifiDisplay中顯示帖處理方法流程圖;
[0035] 圖2為本發(fā)明遠(yuǎn)端顯示處理線程處理顯示帖流程圖;
[0036] 圖3為本發(fā)明帖中轉(zhuǎn)線程處理顯示帖流程圖;
[0037] 圖4為本發(fā)明基于帖就緒消息的框圖;
[003引圖5為本發(fā)明帖就緒消息的具體實(shí)現(xiàn)框圖。
【具體實(shí)施方式】
[0039] 下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)說明。
[0040] 如圖1所示,本發(fā)明的An化oid WifiDisplay中顯示帖處理方法包括W下步驟:
[0041] S1 ;源端設(shè)備處理顯示帖開始;
[0042] S2 ;帖合成模塊把顯示帖放在遠(yuǎn)端顯示帖緩沖隊(duì)列中;
[0043] S3 ;遠(yuǎn)端顯示處理線程從遠(yuǎn)端顯示帖緩沖隊(duì)列中讀取顯示帖,放入帖共享對(duì)象中, 并發(fā)送帖就緒消息給帖中轉(zhuǎn)線程;
[0044] S4;帖中轉(zhuǎn)線程收到帖就緒消息,從帖共享對(duì)象中讀取顯示帖,開始處理顯示帖, 帖中轉(zhuǎn)線程處理完顯示帖,發(fā)送給編碼模塊進(jìn)行編碼;
[0045] S5;編碼模塊對(duì)帖中轉(zhuǎn)線程發(fā)送的顯示帖進(jìn)行編碼,編碼之后的顯示帖交給打包 發(fā)送進(jìn)程;
[0046] S6 ;打包發(fā)送進(jìn)程對(duì)編碼之后的顯示帖進(jìn)行打包,然后通過無線連接,比如WIFI 網(wǎng)絡(luò)發(fā)送給遠(yuǎn)端顯示設(shè)備;
[0047] S7 ;源端設(shè)備處理顯示帖結(jié)束。
[0048] 至此完成源端設(shè)備對(duì)一帖顯示帖的處理。為了更清楚的說明本發(fā)明中遠(yuǎn)端顯示處 理線程和帖中轉(zhuǎn)線程的工作方式,下面將結(jié)合圖2和圖3分別對(duì)遠(yuǎn)端顯示處理線程和帖中 轉(zhuǎn)線程的工作方式進(jìn)行說明。
[0049] 如圖2所示,本發(fā)明遠(yuǎn)端顯示處理線程處理顯示