亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種遠(yuǎn)程桌面視頻編碼的方法及裝置與流程

文檔序號:12038229閱讀:612來源:國知局
一種遠(yuǎn)程桌面視頻編碼的方法及裝置與流程

本發(fā)明實施例涉及視頻編碼技術(shù)領(lǐng)域,尤其涉及一種遠(yuǎn)程桌面視頻編碼的方法及裝置。



背景技術(shù):

隨著移動通信技術(shù)的發(fā)展,人們可以借助桌面云,通過與網(wǎng)絡(luò)連接的設(shè)備來訪問跨平臺的應(yīng)用程序以及整個客戶桌面。在桌面云中,遠(yuǎn)程桌面是一項核心技術(shù),遠(yuǎn)程桌面指的是對于如何以較高的畫質(zhì)、較小的延時、較低的帶寬占用將云中的桌面實時地傳送至遠(yuǎn)程云終端上。

現(xiàn)在較常用的遠(yuǎn)程桌面協(xié)議有微軟的遠(yuǎn)程桌面協(xié)議(rdp,remotedesktopprotocol)、威睿(vmware)的pcoip(pc-over-ip)、思杰(citrix)的獨立計算體系結(jié)構(gòu)(ica,independentcomputingarchitecture)及開源的簡單協(xié)議獨立計算環(huán)境(spice,simpleprotocolforindependentcomputingenvironment)等,其中,rdp存在一定的限制,如只能在windows系統(tǒng)啟動后客戶端才能連接看到桌面,不能看到包括基本輸入輸出系統(tǒng)(bios,basicinputoutputsystem)自檢等開機(jī)過程,rdp虛擬機(jī)也必須配置ip地址客戶端才能連接等;pcoip、ctrix都是商業(yè)化的閉源協(xié)議,以上三種協(xié)議自研系統(tǒng)很難整合;spice協(xié)議占用帶寬太高,在低帶寬條件下用戶體驗不好。

基于以上缺陷,目前國際國內(nèi)廣泛應(yīng)用h264協(xié)議來作為視頻編解碼標(biāo)準(zhǔn)。h264協(xié)議一種視頻編碼標(biāo)準(zhǔn),是國際標(biāo)準(zhǔn)化組織(iso)和國際電信聯(lián)盟(itu)共同提出的繼mpeg4之后的新一代數(shù)字視頻壓縮格式,具備高質(zhì)量、容錯率強(qiáng)、網(wǎng)絡(luò)適應(yīng)性強(qiáng)等優(yōu)勢。然而,h264協(xié)議對桌面進(jìn)行實時編碼時,編碼器占用cpu較高,特別是用戶在使用過程中發(fā)生切換窗口操作時,cpu及帶寬占用都比較高。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例提供一種遠(yuǎn)程桌面視頻編碼的方法及裝置,能夠節(jié)省編碼器的cpu計算量,同時節(jié)省網(wǎng)絡(luò)帶寬。

本發(fā)明實施例提供一種遠(yuǎn)程桌面視頻編碼的方法,所述方法包括:

對遠(yuǎn)程桌面中的窗口狀態(tài)進(jìn)行監(jiān)測,確定當(dāng)前幀的活動窗口;

從預(yù)先建立的參考幀列表中提取與所述當(dāng)前幀的活動窗口相匹配的目標(biāo)參考幀;

根據(jù)提取出的目標(biāo)參考幀對當(dāng)前幀進(jìn)行編碼。

本發(fā)明實施例提供一種遠(yuǎn)程桌面視頻編碼的裝置,所述裝置包括:

活動窗口確定單元,用于對遠(yuǎn)程桌面中的窗口狀態(tài)進(jìn)行監(jiān)測,確定當(dāng)前幀的活動窗口;

目標(biāo)參考幀確定單元,用于從預(yù)先建立的參考幀列表中提取與所述當(dāng)前幀的活動窗口相匹配的目標(biāo)參考幀;

編碼單元,用于根據(jù)提取出的目標(biāo)參考幀對當(dāng)前幀進(jìn)行編碼。

與現(xiàn)有技術(shù)相比,本發(fā)明實施例提供的一種遠(yuǎn)程桌面視頻編碼的方法及裝置,通過將遠(yuǎn)程桌面的窗口與預(yù)設(shè)的參考幀列表中的參考幀對應(yīng)起來,從而可以在發(fā)生窗口切換時能選擇與當(dāng)前幀的活動窗口相匹配的參考幀,并將選擇的參考幀進(jìn)行遠(yuǎn)程傳輸,該參考幀列表中均可以為經(jīng)過編碼的參考幀,那么在發(fā)生窗口切換時,由于待編碼幀與參考幀較相似,因此可以使用與當(dāng)前幀的活動窗口相匹配的參考幀,從而可以減少編碼器cpu的計算時間,同時還能降低網(wǎng)絡(luò)帶寬的占用率。

本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。

附圖說明

附圖用來提供對本發(fā)明技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說明書的一部 分,與本發(fā)明的實施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。

圖1為本發(fā)明實施例提供的一種遠(yuǎn)程桌面視頻編碼的方法流程圖;

圖2為本發(fā)明實施例提供的一種遠(yuǎn)程桌面視頻編碼的方法中窗口監(jiān)測步驟的流程圖;

圖3為本發(fā)明實施例提供的一種遠(yuǎn)程桌面視頻編碼的方法中編碼器的工作流程圖;

圖4為本發(fā)明實施例提供的一種遠(yuǎn)程桌面視頻編碼的裝置功能模塊圖。

具體實施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互任意組合。

在附圖的流程圖示出的步驟可以在諸如一組計算機(jī)可執(zhí)行指令的計算機(jī)系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。

圖1為本發(fā)明實施例提供的一種遠(yuǎn)程桌面視頻編碼的方法流程圖。如圖1所示,所述方法包括以下步驟:

步驟11:對遠(yuǎn)程桌面中的窗口狀態(tài)進(jìn)行監(jiān)測,確定當(dāng)前幀的活動窗口。

在本發(fā)明實施方式中,在遠(yuǎn)程桌面中,當(dāng)從一個窗口切換至另一個窗口時,窗口的狀態(tài)也會隨之改變。例如,當(dāng)使用第一窗口時,所述第一窗口可以處于活動狀態(tài),而當(dāng)從第一窗口切換至第二窗口時,所述第一窗口便不再處于活動狀態(tài),此時所述第二窗口則處于活動狀態(tài)。

圖2為本發(fā)明實施例提供的一種遠(yuǎn)程桌面視頻編碼的方法中窗口監(jiān)測步驟的示意圖。在本發(fā)明實施方式中,可以在遠(yuǎn)程桌面所在的操作系統(tǒng)中注入全局鉤子,從而通過所述全局鉤子對桌面上的窗口狀態(tài)進(jìn)行監(jiān)測。

在操作系統(tǒng)中,鉤子(hook)可以利用應(yīng)用程序編程接口(api,application programminginterface)來攔截并處理系統(tǒng)消息。鉤子實際上是一個處理消息的程序段,可以通過系統(tǒng)調(diào)用將其掛入系統(tǒng)。每當(dāng)特定的消息發(fā)出,在沒有到達(dá)目的窗口前,鉤子程序就可以先捕獲該消息,也就是說鉤子函數(shù)可以先得到控制權(quán),這時鉤子函數(shù)即可以分析該消息,也可以不作處理而繼續(xù)傳遞該消息,還可以強(qiáng)制結(jié)束消息的傳遞。對每種類型的鉤子由系統(tǒng)來維護(hù)一個鉤子鏈,最后安裝的鉤子放在鏈的開始,而最先安裝的鉤子放在鏈的末尾,也就是后加入的鉤子先獲得控制權(quán)。

在本發(fā)明實施方式中,要實現(xiàn)在系統(tǒng)中注入鉤子,可以調(diào)用軟件開發(fā)工具包(sdk,softwaredevelopmentkit)中的api函數(shù)setwindowshookex來安裝這個鉤子函數(shù),這個函數(shù)的原型是hhooksetwindowshookex(intidhook,hookproclpfn,hinstancehmod,dworddwthreadid),其中,括號內(nèi)的第一個參數(shù)idhook是鉤子函數(shù)的類型;第二個參數(shù)hookproclpfn是鉤子函數(shù)的地址;第三個參數(shù)hinstancehmod是包含鉤子函數(shù)的模塊句柄;第四個參數(shù)dworddwthreadid指定監(jiān)視的線程。如果指定確定的線程,即為線程專用鉤子;如果指定為空,即為全局鉤子。因此,在本發(fā)明實施方式中,可以將第四個參數(shù)指定為空,從而可以在系統(tǒng)中注入全局鉤子。全局鉤子的函數(shù)可以包含在動態(tài)鏈接庫(dll,dynamiclinklibrary)中,而線程專用鉤子還可以包含在可執(zhí)行文件中。得到控制權(quán)的鉤子函數(shù)在完成對消息的處理后,如果想要該消息繼續(xù)傳遞,那么它可以調(diào)用另外一個sdk中的api函數(shù)callnexthookex來傳遞該消息。鉤子函數(shù)也可以通過直接返回true來丟棄該消息,并阻止該消息的傳遞。

在本發(fā)明實施方式中,可以在桌面所在的操作系統(tǒng)中注入全局鉤子,通過所述全局鉤子截獲所述桌面內(nèi)的窗口事件;然后可以對截獲的所述窗口事件進(jìn)行分析,從而可以確定所述桌面內(nèi)當(dāng)前幀的活動窗口;在確定得到當(dāng)前幀的活動窗口后,便可以將所述當(dāng)前幀的活動窗口上報至編碼器,以進(jìn)行后續(xù)的處理。

步驟12:從預(yù)先建立的參考幀列表中提取與所述當(dāng)前幀的活動窗口相匹配的目標(biāo)參考幀。

在本發(fā)明實施方式中,在切換窗口時,為了避免編碼器實時對窗口進(jìn)行 編碼計算而造成cpu運算壓力過大,可以在切換窗口時,尋找與切換的窗口相對應(yīng)的參考幀并對該參考幀進(jìn)行編碼,那么在發(fā)生窗口切換時,由于待編碼幀與參考幀較相似,因此可以使用與當(dāng)前幀的活動窗口相匹配的參考幀,從而可以減少編碼器cpu的計算時間,同時還能降低網(wǎng)絡(luò)帶寬的占用率。在具體實施例中,該當(dāng)前幀可以是h264,則參考幀列表中的參考幀可以是h264參考幀。

在本發(fā)明實施方式中,編碼器在獲得所述當(dāng)前幀的活動窗口后,可以從預(yù)先建立的參考幀列表中提取與所述當(dāng)前幀的活動窗口相匹配的目標(biāo)參考幀。所述參考幀列表中可以包括多個窗口的參考幀,在本發(fā)明實施方式中,所述參考幀列表中的各個參考幀均有對應(yīng)的標(biāo)識,所述標(biāo)識可以是數(shù)字編碼,也可以是字母編碼。所述桌面中的窗口也可以對應(yīng)各自的標(biāo)識。

在本發(fā)明實施方式中,在編碼器獲得所述當(dāng)前幀的活動窗口后,可以查詢得出該當(dāng)前幀的活動窗口對應(yīng)的標(biāo)識。此時,所述編碼器可以在預(yù)先建立的參考幀列表中確定與所述當(dāng)前幀的活動窗口的標(biāo)識相同的目標(biāo)標(biāo)識。例如,所述當(dāng)前幀的活動窗口的標(biāo)識為a,那么確定的所述目標(biāo)標(biāo)識便可以為a。這樣,可以將所述目標(biāo)標(biāo)識對應(yīng)的參考幀確定為與所述當(dāng)前幀的活動窗口相匹配的目標(biāo)參考幀。也就是說,可以將所述參考幀列表中標(biāo)識為a的參考幀確定為與所述當(dāng)前幀的活動窗口相匹配的目標(biāo)參考幀。由上可見,通過標(biāo)識之間的匹配關(guān)系,可以快速查詢得出與所述當(dāng)前幀的活動窗口相匹配的參考幀。

在實際應(yīng)用場景中,在所述預(yù)先建立的參考幀列表中可能不存在與所述當(dāng)前幀的活動窗口的標(biāo)識相同的目標(biāo)標(biāo)識。在這種情況下,無法根據(jù)標(biāo)識的匹配來獲取與所述當(dāng)前幀的活動窗口相匹配的參考幀。在本發(fā)明實施方式中,可以將上一幀對應(yīng)的參考幀確定為與所述當(dāng)前幀的活動窗口相匹配的目標(biāo)參考幀。也就是說,假設(shè)上一幀對應(yīng)的參考幀的標(biāo)識為b,而當(dāng)前幀的活動窗口的標(biāo)識為c,經(jīng)過查詢,發(fā)現(xiàn)在所述參考幀列表中不存在標(biāo)識為c的參考幀,那么此時可以將上一幀對應(yīng)的參考幀(也就是標(biāo)識為b的參考幀)確定為與所述當(dāng)前幀的活動窗口相匹配的參考幀。由于當(dāng)前幀與上一幀的內(nèi)容較相似,因此選用同一個參考幀同樣可以保證內(nèi)容的準(zhǔn)確性。

步驟13:根據(jù)提取出的目標(biāo)參考幀對當(dāng)前幀進(jìn)行編碼。

在本發(fā)明實施方式中,在確定了與所述當(dāng)前幀的活動窗口相匹配的目標(biāo)參考幀之后,根據(jù)提取出的目標(biāo)參考幀對當(dāng)前幀進(jìn)行編碼。

此外,還利用編碼后的結(jié)果對所述參考幀列表進(jìn)行更新。具體地,在本發(fā)明實施方式中,可以將所述目標(biāo)參考幀從所述參考幀列表中刪除,將編碼后的當(dāng)前幀加入所述參考幀列表中,并為所述編碼后的當(dāng)前幀分配參考幀標(biāo)識。

由上可見,本發(fā)明實施例提供的一種遠(yuǎn)程桌面視頻編碼的方法,通過將桌面的窗口與預(yù)設(shè)的h264參考幀列表中的參考幀對應(yīng)起來,從而可以在發(fā)生窗口切換時能選擇與當(dāng)前幀的活動窗口相匹配的參考幀,該參考幀列表中均可以為經(jīng)過編碼的參考幀,那么在發(fā)生窗口切換時,由于待編碼幀與參考幀較相似,因此可以使用與當(dāng)前幀的活動窗口相匹配的參考幀,從而可以減少編碼器cpu的計算時間,同時還能降低網(wǎng)絡(luò)帶寬的占用率。

圖3為本發(fā)明實施例提供的一種遠(yuǎn)程桌面視頻編碼的方法中編碼器的工作流程圖。在一個具體的應(yīng)用場景中,所述編碼器在獲取到待編碼的當(dāng)前幀后,可以在參考幀列表中查找與所述當(dāng)前幀相匹配的目標(biāo)參考幀。在查詢得到所述目標(biāo)參考幀后,便可以對所述目標(biāo)幀進(jìn)行編碼,以得到編碼結(jié)果,并可以利用所述編碼結(jié)果對參考幀列表進(jìn)行更新。

本發(fā)明還提供一種遠(yuǎn)程桌面視頻編碼的裝置,如圖4所示,所述裝置包括:

活動窗口確定單元100,用于對桌面中的窗口狀態(tài)進(jìn)行監(jiān)測,確定當(dāng)前幀的活動窗口;

目標(biāo)參考幀確定單元200,用于從預(yù)先建立的參考幀列表中提取與所述當(dāng)前幀的活動窗口相匹配的目標(biāo)參考幀;

編碼單元300,用于根據(jù)提取出的目標(biāo)參考幀對當(dāng)前幀進(jìn)行編碼,并將編碼后的結(jié)果更新到對所述參考幀列表中。

在本發(fā)明一優(yōu)選實施方式中,所述活動窗口確定單元100包括:

全局鉤子注入模塊,用于在遠(yuǎn)程桌面所在的操作系統(tǒng)中注入全局鉤子,通過所述全局鉤子截獲所述遠(yuǎn)程桌面內(nèi)的窗口事件;

分析模塊,用于對截獲的所述窗口事件進(jìn)行分析,確定所述遠(yuǎn)程桌面內(nèi)當(dāng)前幀的活動窗口。

在本發(fā)明一優(yōu)選實施方式中,所述目標(biāo)參考幀確定單元200包括:

查找模塊,用于在預(yù)先建立的參考幀列表中確定與所述當(dāng)前幀的活動窗口的標(biāo)識相同的目標(biāo)標(biāo)識;

確定模塊,用于將所述目標(biāo)標(biāo)識對應(yīng)的參考幀確定為與所述當(dāng)前幀的活動窗口相匹配的目標(biāo)參考幀;當(dāng)所述預(yù)先建立的參考幀列表中不存在與所述當(dāng)前幀的活動窗口的標(biāo)識相同的目標(biāo)標(biāo)識時,將所述當(dāng)前幀的上一幀對應(yīng)的參考幀確定為與所述當(dāng)前幀的活動窗口相匹配的目標(biāo)參考幀。

在本發(fā)明一優(yōu)選實施方式中,所述裝置還包括:更新單元400,用于將所述目標(biāo)參考幀從所述h264參考幀列表中刪除,將編碼后的當(dāng)前幀加入所述參考幀列表中,并為所述編碼后的當(dāng)前幀分配參考幀標(biāo)識。

需要說明的是,上述各個功能模塊的具體實現(xiàn)方式與步驟11至13中的描述一致,這里便不再贅述。

由上可見,本發(fā)明實施例提供的一種遠(yuǎn)程桌面視頻編碼的裝置,通過將桌面的窗口與預(yù)設(shè)的參考幀列表中的參考幀對應(yīng)起來,從而可以在發(fā)生窗口切換時能選擇與當(dāng)前幀的活動窗口相匹配的參考幀,該參考幀列表中均可以為經(jīng)過編碼的參考幀,那么在發(fā)生窗口切換時,由于待編碼幀與參考幀較相似,因此可以使用與當(dāng)前幀的活動窗口相匹配的參考幀,從而可以減少編碼器cpu的計算時間,同時還能降低網(wǎng)絡(luò)帶寬的占用率。

通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施方式或者實施方式的某些部 分所述的方法。

雖然本發(fā)明所揭露的實施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實施的形式及細(xì)節(jié)上進(jìn)行任何的修改與變化,但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1