圖像遠程投射方法和相關裝置的制造方法
【技術領域】
[0001]本發明涉及圖像處理技術領域,具體涉及圖像遠程投射方法和相關裝置。
【背景技術】
[0002]圖像遠程投射技術是利用位于遠端的客戶端顯示服務器期望顯示或正在顯示的相關圖像,以便于位于遠端的用戶能夠通過該客戶端來觀看服務器期望顯示或正在顯示的相關圖像。
[0003]例如云業務(例如云游戲或基于云的特效制作等)等場景,經常需要在位于遠端的客戶端上顯示相關圖像(如游戲圖像或特效圖像等),以便于位于遠端的用戶能夠通過位于遠端的客戶端來觀看相關圖像。又例如某個用戶利用手機中的某個特效制作應用制作了一段特效視頻圖像,但該用戶希望在位于遠端的電腦或智能電視上顯示這段特效視頻圖像,以便于自己或者他人通過電腦或智能電視來更好檢驗這段特效視頻圖像的質量,在此場景下,上述手機亦可看成服務器(即遠程投射端),上述電腦或智能電視亦可看成客戶端(即被遠程投射端)。
[0004]本發明的發明人在研究和實踐過程中發現,現有圖像遠程投射技術中的服務器將生成的圖像(例如游戲圖像或特效圖像)壓縮得到壓縮圖像,將壓縮圖像發送給遠端的客戶端進行展示,然而圖像畫質越好則得到的壓縮圖像的體積通常也就越大,尤其一些三維特效圖像,其體積可能更大。由此可見現有圖像遠程投射技術對網絡帶寬需求較大(例如現有技術將分辨率為1080P的視頻圖像進行遠程投射一般至少需6兆/比特的帶寬),并且當帶寬波動時很可能使用戶體驗受到較大影響。
【發明內容】
[0005]本發明實施例提供圖像遠程投射方法和相關裝置,以期減小圖像遠程投射對網絡帶寬的占用,提高用戶體驗。
[0006]本發明實施例的第一方面提供一種圖像遠程投射方法,包括:
[0007]服務器獲取所述服務器的本地應用所調用的N條渲染指令;
[0008]所述服務器確定執行所述N條渲染指令所需使用的渲染資源;
[0009]所述服務器根據所述本地應用執行所述N條渲染指令的執行順序生成渲染序列,所述服務器向客戶端發送所述渲染序列和用于確定所述渲染資源的渲染資源確定信息,其中,所述N為正整數,所述渲染序列包括用于確定所述N條渲染指令的渲染指令確定信息。
[0010]本發明實施例第二方面提供另一種圖像遠程投射方法,可包括:
[0011]客戶端接收服務器發送的渲染序列和渲染資源確定信息,其中,所述渲染序列包括用于確定所述服務器的本地應用所調用的N條渲染指令的渲染指令確定信息,所述渲染資源確定信息用于確定執行所述N條渲染指令所需使用的渲染資源,所述N為正整數;
[0012]所述客戶端執行基于所述渲染序列而確定出的N條渲染指令并使用基于所述渲染資源確定信息而確定出的渲染資源以得到渲染圖像。
[0013]本發明實施例第三方面提供一種服務器,包括:
[0014]獲取單元,用于獲取所述服務器的本地應用所調用的N條渲染指令;
[0015]確定單元,用于確定執行所述N條渲染指令所需使用的渲染資源;
[0016]生成單元,用于根據所述本地應用執行所述N條渲染指令的執行順序生成渲染序列,
[0017]發送單元,用于向客戶端發送所述渲染序列和用于確定所述渲染資源的渲染資源確定信息,其中,所述N為正整數,所述渲染序列包括用于確定所述N條渲染指令的渲染指令確定信息。
[0018]本發明實施例第四方面提供一種客戶端,包括:
[0019]接收單元,用于接收服務器發送的渲染序列和渲染資源確定信息,所述渲染序列包括用于確定所述服務器的本地應用所調用的N條渲染指令的渲染指令確定信息,所述渲染資源確定信息用于確定執行所述N條渲染指令所需使用的渲染資源,所述N為正整數;
[0020]處理單元,用于執行基于所述渲染序列而確定出的N條渲染指令并使用基于所述渲染資源確定信息而確定出的渲染資源以得到渲染圖像。
[0021]可以看出,本發明實施例提供的方案中,服務器獲取所述服務器的本地應用所調用的N條渲染指令和執行所述N條渲染指令所需使用的渲染資源;向客戶端發送包括用于確定所述N條渲染指令的渲染指令確定信息的渲染序列和用于確定所述渲染資源的渲染資源確定信息。其中,由于服務器并不是按照傳統方式直接向客戶端發送渲染圖像,而是向客戶端發送包括用于確定所述N條渲染指令的渲染指令確定信息的渲染序列和用于確定所述渲染資源的渲染資源確定信息,其中,渲染序列和渲染資源確定信息的體積通常遠遠小于渲染圖像本身,因此上述圖像遠程投射方案對網絡帶寬的占用極小,進而使得抗網絡抖動能力得到增強,進而有利于提高用戶體驗。
【附圖說明】
[0022]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0023]圖1是本發明實施例提供的一種圖像遠程投射方法的流程示意圖;
[0024]圖2是本發明實施例提供的另一種圖像遠程投射方法的流程示意圖;
[0025]圖3_a是本發明實施例提供的一種通信系統的架構示意圖;
[0026]圖3_b是本發明實施例提供的另一種圖像遠程投射方法的流程示意圖;
[0027]圖4是本發明實施例提供的另一種圖像遠程投射方法的流程示意圖;
[0028]圖5是本發明實施例提供的一種服務器的示意圖;
[0029]圖6是本發明實施例提供的另一種服務器的示意圖;
[0030]圖7是本發明實施例提供的一種客戶端的示意圖;
[0031]圖8是本發明實施例提供的另一種客戶端的示意圖。
【具體實施方式】
[0032]本發明實施例提供圖像遠程投射方法和相關裝置,以期減少圖像遠程投射對網絡帶寬的占用,提高用戶體驗。
[0033]為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
[0034]以下分別進行詳細說明。
[0035]本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”、“第三”和“第四”等是用于區別不同對象,而不是用于描述特定順序。此外,術語“包括”和“具有”以及它們任何變形,意圖在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統、產品或設備沒有限定于已列出的步驟或單元,而是可選地還包括沒有列出的步驟或單元,或可選地還包括對于這些過程、方法、產品或設備固有的其它步驟或單元。
[0036]下面首先從服務器的角度進行方案描述。
[0037]本發明圖像遠程投射方法的一個實施例。其中,一種圖像遠程投射方法可包括:月艮務器獲取所述服務器的本地應用所調用的N條渲染指令;所述服務器確定執行所述N條渲染指令所需使用的渲染資源;所述服務器根據所述本地應用執行所述N條渲染指令的執行順序生成渲染序列,所述服務器向客戶端發送所述渲染序列和用于確定所述渲染資源的渲染資源確定信息,其中,所述N為正整數,其中,所述渲染序列包括用于確定所述N條渲染指令的渲染指令確定信息。
[0038]參見圖1,圖1為本發明的一個實施例提供的一種圖像遠程投射方法的流程示意圖。其中,如圖1所示,本發明的一個實施例提供的一種圖像遠程投射方法可以包括:
[0039]101、服務器獲取所述服務器的本地應用所調用的N條渲染指令。
[0040]其中,所述N為正整數,例如所述N等于1、2、3、4、6、21、55或其他值。其中,上述本地應用可以是運行于所述服務器中的任何可調用渲染指令的應用。
[0041 ] 本發明實施例中的渲染指令例如可以使二維渲染指令、三維渲染指令或其他類型的渲染指令。
[0042]102、所述服務器確定執行所述N條渲染指令所需使用的渲染資源。
[0043]其中,所述渲染資源例如可包括紋理數據、頂點數據和/或著色器等渲染資源等。
[0044]103、所述服務器根據所述本地應用執行所述N條渲染指令的執行順序生成渲染序列。其中,所述渲染序列包括用于確定所述N條渲染指令的渲染指令確定信息。
[0045]其中,由于所述服務器是根據所述本地應用(app)執行所述N條渲染指令的執行順序生成渲染序列,因此,上述渲染序列能夠指示出所述N條渲染指令的執行順序,客戶端亦可根據渲染序列確定所述N條渲染指令的執行順序。
[0046]104、所述服務器向客戶端發送所述渲染序列和用于確定所述渲染資源的渲染資源確定信息。
[0047]其中,所述服務器可向客戶端發送經過壓縮的所述渲染序列和/或經過壓縮的用于確定所述渲染資源的渲染資源確定信息。或者,所述服務器可向客戶端發送未經過壓縮的所述渲染序列和/或未經過壓縮的用于確定所述渲染資源的渲染資源確定信息。
[0048]可以看出,本實施例提供的技術方案中,服務器獲取所述服務器的本地應用所調用的N條渲染指令和執行所述N條渲染指令所需使用的渲染資源;向客戶端發送包括用于確定所述N條渲染指令的渲染指令確定信息的渲染序列和用于確定所述渲染資源的渲染資源確定信息。其中,由于服務器并不是按照傳統方式直接向客戶端發送渲染圖像,而是向客戶端發送包括用于確定所述N條渲染指令的渲染指令確定信息的渲染序列和用于確定所述渲染資源的渲染資源確定信息,其中,渲染序列和渲染資源確定信息的體積通常遠遠小于渲染圖像本身,因此上述圖像遠程投射方案對網絡帶寬的占用極小,進而使得抗網絡抖動能力得到增強,進而有利于提高用戶體驗。
[0049]進一步的,由于可將由服務器執行的圖像渲染操作遷移到客戶端,進而有利于更充分利用客戶端的處理資源,降低服務器的處理負荷,進而有利于使得服務器同時支持更多客戶端。
[0050]進一步,有利于實現服務器和客戶端的多屏同步顯示。例如可將手機運行的游戲投射到盒子電視(或其他屏幕),實現將手機游戲幾乎無成本移植為電視游戲。
[0051]其中,上述服務器例如可為游戲服務器、云業務服務器或者其他類型的服務器。
[0052]可選的,在本發明的一些可能的實施方式中,所述獲取所述服務器的本地應用所調用的N條渲染指令可包括:通過調用虛擬圖像驅動獲取所述服務器的本地應用所調用的N條渲染指令。其中,由于本地應用通常是利用虛擬圖像驅動來調用渲染指令,因此,通過操作虛擬圖像驅動,可以實現服務器內不實際執行渲染指令。
[0053]可選的,在本發明的一些可能的實施方式中,所述獲取所述服務器的本地應用所調用的N條渲染指令包括:通過調用動態植入到所述服務器的本地應用中的指令獲取所述服務器的本地應用所調用的N條渲染指令。
[0054]可選的,在本發明的一些可能的實施方式中,
[0055]所述方法還可包括:所述服務器接收所述客戶端發送的所述客戶端的硬件所支持的圖像渲染特性。其中,所述獲取所述服務器的本地應用所調用的N條渲染指令,可包括:獲取所述服務器的本地應用基于所述客戶端的硬件所支持的圖像渲染特性所調用的N條渲染指令。
[005