背景技術(shù):
基于分組的通信系統(tǒng)允許設(shè)備(例如,個人計算機)的用戶跨使用分組協(xié)議(例如,互聯(lián)網(wǎng)協(xié)議(ip))的計算機網(wǎng)絡(luò)來進行通信?;诜纸M的通信系統(tǒng)可以用于各種類型的通信事件??梢员唤⒌耐ㄐ攀录ㄕZ音通話、視頻通話、即時消息傳送、語音郵件、文件傳輸?shù)?。這些系統(tǒng)對于用戶是有益的,這是因為它們常常具有比固定線路或移動網(wǎng)絡(luò)顯著低的成本。長距離通信的情況可能尤其如此。為了使用基于分組的系統(tǒng),用戶在他們的設(shè)備上安裝并且執(zhí)行客戶端軟件??蛻舳塑浖峁┗诜纸M的連接以及其他功能,例如登記和驗證。
通信系統(tǒng)允許設(shè)備的用戶跨計算機網(wǎng)絡(luò)(例如,因特網(wǎng))來進行通信??梢员唤⒌耐ㄐ攀录ㄕZ音通話、視頻通話、即時消息傳送、語音郵件、文件傳輸?shù)取@靡曨l通話,呼叫者能夠觀看視頻圖像。
技術(shù)實現(xiàn)要素:
提供本發(fā)明內(nèi)容以簡化的形式引入在以下的詳細描述中將進一步描述的概念的選擇。該發(fā)明內(nèi)容不旨在標(biāo)識所要求保護的主題的主要特征或基本特征,也不旨在用于限制所要求保護的主題的范圍。所要求保護的主題不限于解決在背景技術(shù)部分中記錄的缺點中的任何一個或所有缺點的實現(xiàn)。
本公開的實施例涉及共享場景內(nèi)的對象的管理和同步,所述共享場景例如是在協(xié)作混合現(xiàn)實應(yīng)用中所生成的。在協(xié)同混合現(xiàn)實應(yīng)用中,參與者可以對共享場景中的對象進行可視化、放置、和交互。共享場景通常是參與者中的一個參與者的周圍空間的表示,例如,場景可以包括來自參與者中的一個參與者的視角的視頻圖像。對象或虛擬對象可以被“放置”在場景內(nèi),并且可以具有能夠被參與者“看到”并且由參與者與其進行交互的視覺表示。此外,對象可以具有相關(guān)聯(lián)的內(nèi)容。例如,對象可以具有諸如音頻/視頻或文本之類的相關(guān)聯(lián)的內(nèi)容。例如,參與者可以將視頻播放器對象放置在共享場景中,并與其進行交互以開始播放視頻以供所有參與者觀看。接著,另一參與者可以與視頻播放器對象進行交互以控制回放或者改變其在場景中的位置。
發(fā)明人已經(jīng)認(rèn)識到,為了保持這些對象在該方案內(nèi)的同步,表面重建數(shù)據(jù)(也被稱為網(wǎng)格數(shù)據(jù))的有效傳輸可以是重要的。
根據(jù)本公開的第一方面,提供了一種通信架構(gòu)內(nèi)的用戶設(shè)備,所述用戶設(shè)備包括:接收機,其被配置為接收視頻通道,所述視頻通道包括針對從圖像捕獲設(shè)備所確定的共享場景的圖像數(shù)據(jù)以及與所述圖像捕獲設(shè)備相關(guān)聯(lián)的固有/非固有捕獲設(shè)備數(shù)據(jù);以及視頻解碼器,其被配置為從所述視頻通道提取和解碼所述圖像數(shù)據(jù)以及與所述圖像捕獲設(shè)備相關(guān)聯(lián)的所述固有/非固有捕獲設(shè)備數(shù)據(jù)。
根據(jù)本公開的另一方面,提供了一種通信架構(gòu)內(nèi)的用戶設(shè)備,所述用戶設(shè)備包括:接收機,其被配置為接收視頻通道,所述視頻通道包括針對從圖像捕獲設(shè)備所確定的共享場景的圖像數(shù)據(jù)以及與所述圖像捕獲設(shè)備相關(guān)聯(lián)的固有/非固有捕獲設(shè)備數(shù)據(jù);以及視頻解碼器,其被配置為從所述視頻通道提取和解碼所述圖像數(shù)據(jù)以及與所述圖像捕獲設(shè)備相關(guān)聯(lián)的所述固有/非固有捕獲設(shè)備數(shù)據(jù)。
根據(jù)本公開的第三方面,提供了一種在通信架構(gòu)內(nèi)的用戶設(shè)備處實現(xiàn)的方法,所述方法包括:從圖像捕獲設(shè)備確定視頻數(shù)據(jù)以用于創(chuàng)建定義了共享場景的視頻通道;確定與所述圖像捕獲設(shè)備相關(guān)聯(lián)的固有/非固有捕獲設(shè)備數(shù)據(jù);以及對所述視頻通道內(nèi)的所述圖像數(shù)據(jù)和所述固有/非固有捕獲設(shè)備數(shù)據(jù)進行編碼。
根據(jù)本公開的第四方面,提供了一種在共享場景架構(gòu)內(nèi)的協(xié)議端點實體處實現(xiàn)的方法,所述方法包括:接收視頻通道,所述視頻通道包括針對從圖像捕獲設(shè)備所確定的共享場景的圖像數(shù)據(jù)以及與所述圖像捕獲設(shè)備相關(guān)聯(lián)的固有/非固有捕獲設(shè)備數(shù)據(jù);從所述視頻通道提取和解碼所述圖像數(shù)據(jù);以及提取與所述圖像捕獲設(shè)備相關(guān)聯(lián)的所述固有/非固有捕獲設(shè)備數(shù)據(jù)。
根據(jù)本公開的第五方面,提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品在非瞬時性計算機可讀介質(zhì)上被實施,并且被配置為當(dāng)在通信架構(gòu)內(nèi)的用戶設(shè)備的處理器上被執(zhí)行時,執(zhí)行以下操作:從圖像捕獲設(shè)備確定用于創(chuàng)建定義共享場景的視頻通道的圖像數(shù)據(jù);確定與所述圖像捕獲設(shè)備相關(guān)聯(lián)的固有/非固有捕獲設(shè)備數(shù)據(jù);以及對所述視頻通道內(nèi)的所述圖像數(shù)據(jù)和所述固有/非固有捕獲設(shè)備數(shù)據(jù)進行編碼。
根據(jù)本公開的第六方面,提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品在非瞬時性計算機可讀介質(zhì)上被實施,并且被配置為當(dāng)在通信架構(gòu)內(nèi)的用戶設(shè)備的處理器上被執(zhí)行時,執(zhí)行以下操作:接收視頻通道,所述視頻通道包括針對從圖像捕獲設(shè)備所確定的共享場景的圖像數(shù)據(jù)以及與所述圖像捕獲設(shè)備相關(guān)聯(lián)的固有/非固有捕獲設(shè)備數(shù)據(jù);從所述視頻通道提取和解碼所述圖像數(shù)據(jù);以及提取與所述圖像捕獲設(shè)備相關(guān)聯(lián)的所述固有/非固有捕獲設(shè)備數(shù)據(jù)。
附圖說明
為了更好地理解本公開并且示出可以如何實施本公開,現(xiàn)在將作為示例來參考以下附圖,其中:
圖1示出了通信系統(tǒng)的示意圖;
圖2示出了用戶設(shè)備的示意圖;
圖3示出了作為可穿戴頭戴式耳機的用戶設(shè)備的示意圖;
圖4a和圖4b示出了針對經(jīng)組合的視頻和表面再現(xiàn)(sr)數(shù)據(jù)的示例發(fā)送機和接收機管線的示意圖;
圖5a示出了用于在共享場景內(nèi)進行處理的對象的示例端點架構(gòu)的示意圖;
圖5b示出了用于同步對象更新的示例架構(gòu)處理協(xié)議的示意圖;
圖6示出了協(xié)議端點上執(zhí)行的會話管理實體應(yīng)用與消息傳遞實體/分組傳遞實體應(yīng)用之間的示意性示例通信;
圖7示出了在用戶設(shè)備內(nèi)發(fā)送路徑對象消息控制的過程的流程圖;
圖8示出了在用戶設(shè)備內(nèi)接收路徑對象消息控制的過程的流程圖;并且
圖9a和圖9b示出了用于在圖像數(shù)據(jù)流內(nèi)嵌入并取回相機固有和非固有數(shù)據(jù)的示意性架構(gòu)。
具體實施方式
本公開的實施例僅僅是作為示例來描述的。
圖1示出了通信系統(tǒng)100,其包括與用戶終端或設(shè)備102相關(guān)聯(lián)的第一用戶104(用戶a)以及與第二用戶終端或設(shè)備108相關(guān)聯(lián)的第二用戶110(用戶b)。用戶設(shè)備102和108可以通過通信系統(tǒng)100中的通信網(wǎng)絡(luò)106進行通信,由此允許用戶104和110通過通信網(wǎng)絡(luò)106彼此進行通信。通信網(wǎng)絡(luò)106可以是具有在用戶設(shè)備102與第二用戶設(shè)備108之間提供通信信道的能力的任何適合的網(wǎng)絡(luò)。例如,通信網(wǎng)絡(luò)106可以是互聯(lián)網(wǎng)或另一類型的網(wǎng)絡(luò),例如,高數(shù)據(jù)速率蜂窩或移動網(wǎng)絡(luò),例如第3代(“3g”)移動網(wǎng)絡(luò)。
應(yīng)當(dāng)注意在可替代的實施例中,用戶設(shè)備可以經(jīng)由在圖1中未示出的額外的中間網(wǎng)絡(luò)而連接至通信網(wǎng)絡(luò)106。例如,如果用戶設(shè)備102是移動設(shè)備,則其可以經(jīng)由諸如gsm、umts、4g等網(wǎng)絡(luò)之類的蜂窩或移動網(wǎng)絡(luò)(在圖1中未示出)而連接至通信網(wǎng)絡(luò)106。
用戶設(shè)備102和104可以是任何適合的設(shè)備并且例如可以是移動電話、個人數(shù)字助理(“pda”)、個人計算機(“pc”)(包括,例如,windowstm、macostm、和linuxtmpc)、平板計算機、游戲設(shè)備、可穿戴設(shè)備、或者能夠連接至通信網(wǎng)絡(luò)106的其他嵌入式設(shè)備。可穿戴設(shè)備可以包括可穿戴頭戴式耳機。
應(yīng)當(dāng)理解的是,用戶設(shè)備中的一個或多個用戶設(shè)備可以是由單個設(shè)備提供的。用戶設(shè)備中的一個或多個用戶設(shè)備可以是由協(xié)作以提供用戶設(shè)備或終端的兩個或更多個設(shè)備來提供。
用戶設(shè)備102被設(shè)置為從用戶a104接收信息并且向用戶a104輸出信息。
用戶設(shè)備102執(zhí)行由與通信系統(tǒng)100相關(guān)聯(lián)的軟件提供者所提供的通信客戶端應(yīng)用112。通信客戶端應(yīng)用112是在用戶設(shè)備102中的本地處理器上執(zhí)行的軟件程序。通信客戶端應(yīng)用112執(zhí)行在用戶設(shè)備102處所需的處理以使得用戶設(shè)備102通過通信系統(tǒng)100來發(fā)送和接收數(shù)據(jù)。在用戶設(shè)備102處所執(zhí)行的通信客戶端應(yīng)用112可以通過對數(shù)字證書的呈現(xiàn)(例如,以證明用戶104是通信系統(tǒng)的真正的訂閱者——在wo2005/009019中更加詳細的描述)而被認(rèn)證以通過通信系統(tǒng)進行通信。
第二用戶設(shè)備108可以與用戶設(shè)備102相同或不同。第二用戶設(shè)備108在本地處理器上執(zhí)行通信客戶端應(yīng)用114,通信客戶端應(yīng)用114與在用戶終端102處執(zhí)行的通信客戶端應(yīng)用112相對應(yīng)。第二用戶設(shè)備108處的通信客戶端應(yīng)用114執(zhí)行所需要的處理以允許用戶b110通過網(wǎng)絡(luò)106進行通信,這與用戶設(shè)備102處的通信客戶端應(yīng)用112執(zhí)行所需要的處理以允許用戶a104通過網(wǎng)絡(luò)106進行通信是相同的方式。用戶設(shè)備102和108是通信系統(tǒng)中的端點。出于清晰的目的,圖1僅僅示出了兩個用戶(104和110)以及兩個用戶設(shè)備(102和108),但是如在本領(lǐng)域中已知的,更多的用戶和用戶設(shè)備可以被包括在通信系統(tǒng)100中,并且可以使用在相應(yīng)的用戶設(shè)備上執(zhí)行的相應(yīng)的通信客戶端來通過通信系統(tǒng)100進行通信。
圖2示出了在其上執(zhí)行通信客戶端應(yīng)用以用于通過通信系統(tǒng)100進行通信的用戶設(shè)備102的示意圖。用戶設(shè)備102包括中央處理單元(“cpu”)202,其上連接有顯示器204(例如,屏幕或觸摸屏)、諸如用戶接口206、相機208、和觸摸屏204之類的輸入設(shè)備(例如,小鍵盤)。
在一些實施例中,用戶接口206可以是小鍵盤、鍵盤、鼠標(biāo)、指針設(shè)備、觸摸板等。然而,用戶接口206可以是任何適合的用戶接口輸入設(shè)備,例如,姿勢或運動控制用戶輸入、頭部追蹤或眼部追蹤用戶輸入。此外,用戶接口206在一些實施例中可以是被配置為確定用戶到顯示器204的接近度的“觸摸”或“接近度”檢測輸入。
在下文中所描述的實施例中,相機208可以是集成到用戶設(shè)備102中或者經(jīng)由有線或無線連接而耦合至用戶設(shè)備的常規(guī)網(wǎng)絡(luò)攝像頭。可替代地,相機208可以是深度感知相機,例如飛行時間相機或結(jié)構(gòu)化光相機。此外,相機208可以包括多個圖像捕獲元件。圖像捕獲元件可以位于不同的位置或用不同點或視野來定向,以使得可以處理或組合來自圖像捕獲元件中的每個圖像捕獲元件的圖像。例如,可以對圖像捕獲元件圖像進行比較以便基于視差來確定深度或者距圖像的對象距離。此外,在一些示例中,圖像可以被組合以產(chǎn)生圖像,該圖像具有可能比來自單個圖像捕獲元件圖像更高的分辨率或更大的視角。
輸出音頻設(shè)備210(例如,揚聲器、多個揚聲器、頭戴式耳機、耳塞)和輸入音頻設(shè)備212(例如,麥克風(fēng)、多個麥克風(fēng))連接至cpu202。顯示器204、用戶接口206、相機208、輸出音頻設(shè)備210、和輸入音頻設(shè)備212可以被集成到用戶設(shè)備102中,如在圖2中所示。在可替代的用戶設(shè)備中,顯示器204、用戶接口206、相機208、輸出音頻設(shè)備210、和輸入音頻設(shè)備212中的一個或多個可以不集成到用戶設(shè)備102中并且可以經(jīng)由相應(yīng)接口而連接至cpu202。這樣的接口的一個示例是usb接口。
cpu202連接至網(wǎng)絡(luò)接口224(例如,調(diào)制解調(diào)器)以用于與通信網(wǎng)絡(luò)106進行通信。網(wǎng)絡(luò)接口224可以被集成到用戶設(shè)備102中,如在圖2中所示。在可替代的用戶設(shè)備中,網(wǎng)絡(luò)接口224不集成到用戶設(shè)備102中。用戶設(shè)備102還包括存儲器226以用于存儲數(shù)據(jù),如在本領(lǐng)域中已知的。存儲器226可以是永久存儲器,例如,rom。存儲器226可替代地可以是瞬時性存儲器,例如,ram。
用戶設(shè)備102被安裝有通信客戶端應(yīng)用112,因為通信客戶端應(yīng)用112被存儲在存儲器226中并且被設(shè)置以用于在cpu202上執(zhí)行。圖2還示出了在cpu202上執(zhí)行的操作系統(tǒng)(“os”)214。在os214的頂層運行的是針對在上文中所提及的通信客戶端應(yīng)用112的軟件棧216。軟件棧示出了i/o層218、客戶端引擎層220、和客戶端用戶接口層(“ui”)222。每一層負(fù)責(zé)具體的功能。因為每一層通常與其他兩層進行通信,所以他們被認(rèn)為是如在圖2中所示出的那樣設(shè)置在棧中的。操作系統(tǒng)214管理計算機的硬件資源并且處理經(jīng)由網(wǎng)絡(luò)接口224而發(fā)送至通信網(wǎng)絡(luò)106的數(shù)據(jù)以及來自通信網(wǎng)絡(luò)106的數(shù)據(jù)。i/o層218包括音頻和/或視頻編碼解碼器,其接收到來的經(jīng)編碼的流并且對其進行解碼以用于適當(dāng)?shù)剌敵鲋翐P聲器210和/或顯示器204,并且其從麥克風(fēng)212和/或相機208接收未編碼的音頻和/或視頻數(shù)據(jù)并且對其進行編碼以作為流而發(fā)送至通信系統(tǒng)100的其他終端用戶設(shè)備??蛻舳艘鎸?20處理如在上文中所討論的voip系統(tǒng)的連接管理功能,例如通過基于服務(wù)器的或p2p的地址查找和認(rèn)證來建立通話或其他連接??蛻舳艘孢€可以負(fù)責(zé)沒有在本文中討論的其他輔助功能??蛻舳艘?20還與客戶端用戶接口層222進行通信。客戶端引擎220可以被設(shè)置為控制客戶端用戶接口層222以經(jīng)由在顯示器204上所顯示的通信客戶端應(yīng)用112的用戶界面來向用戶設(shè)備102的用戶呈現(xiàn)信息,并且經(jīng)由用戶接口而從用戶設(shè)備102的用戶接收信息。
也在os214頂層運行的是其他應(yīng)用230。在下文中參考其他應(yīng)用230和作為分別的應(yīng)用的通信客戶端應(yīng)用112來描述實施例,然而在文中更加詳細地描述的其他應(yīng)用230的功能可以并入到通信客戶端應(yīng)用112內(nèi)。
在圖3中所示出的一個實施例中,用戶設(shè)備102是頭戴式耳機或頭戴式用戶設(shè)備。頭戴式用戶設(shè)備包括框架302,所述框架302具有旨在套在穿戴者的鼻梁上的中央部分304,以及旨在套在穿戴者耳朵上的左右支撐延伸306、308。盡管支撐延伸306、308被示出為大體上是直的,但是他們可以以彎曲的部分終止從而以常規(guī)眼鏡的方式更舒服地套在耳朵上。
框架302支撐左和右光學(xué)組件(被標(biāo)記為310l和310r),所述光學(xué)組件可以是波導(dǎo)(例如,由玻璃或聚合物形成)。
中央部分304可以容納例如在圖2中所描述的cpu303、存儲器328、和網(wǎng)絡(luò)接口324。此外,框架302可以容納以微顯示器為形式的光引擎以及以凸透鏡和準(zhǔn)直透鏡為形式的成像光學(xué)設(shè)備。光引擎在一些實施例中可以包括另外的處理器或者采用cpu303以為微顯示器生成圖像。微顯示器可以是任何類型的圖像源光,例如,液晶顯示器(lcd)、背光lcd、led的矩陣陣列(無論有組織的還是無組織的)、以及任何其他適合的顯示器。顯示器可以是由電路驅(qū)動的,所述電路激活顯示器的個體像素以生成圖像。來自每個顯示器的大體上準(zhǔn)直的光通過在每個組件上所提供的相應(yīng)的內(nèi)耦合區(qū)域312l、312r而被輸出或者耦合到每個光學(xué)組件310l、310r中。接著,可以通過涉及衍射和tir的機制將內(nèi)耦合的光橫向引導(dǎo)至相應(yīng)的中間(折疊)區(qū)域314l、314r中的光學(xué)組件,并且還向下引導(dǎo)到光在其處光朝向用戶的眼睛出射的相應(yīng)的出射區(qū)域316l、316r中。
光學(xué)組件310可以大體上是透明的,以使得用戶不僅可以觀看來自光引擎的圖像,還可以通過光學(xué)組件來觀看真實世界視野。
光學(xué)部件可以具有折射率n,這使得發(fā)生完全內(nèi)部反射以引導(dǎo)來自光引擎的光束沿著中間擴展區(qū)域314,并且向下朝向出射區(qū)域316。
以頭戴式耳機或頭戴式設(shè)備為形式的用戶設(shè)備102還可以包括被配置為捕獲佩戴頭戴式耳機的用戶的視場的至少一個照相機。例如,在圖3中所示出的頭戴式耳機包括被配置為分別從用戶的左眼和右眼捕獲近似的視場(或視野)的立體相機318l和318r。在一些實施例中,一個相機可以被配置為捕獲適合的視頻圖像,而另一相機或距離感測傳感器被配置為捕獲或確定從用戶到用戶的環(huán)境中的對象的距離。
類似地,以頭戴式耳機為形式的用戶設(shè)備102可以包括安裝在頭戴式耳機的框架306上的多個麥克風(fēng)。在圖3中所示出的示例示出了分別位于支撐延伸部或臂306和308的“前”端處的左麥克風(fēng)322l和右麥克風(fēng)322r。支撐延伸部或臂306和308還可以包括“左”和“右”聲道揚聲器、耳塞、或其他音頻輸出換能器。例如,在圖3中所示出的頭戴式耳機包括充當(dāng)左和右音頻聲道輸出揚聲器的骨傳導(dǎo)音頻換能器320l和320r。
在本文中描述了關(guān)于混合現(xiàn)實(mr)應(yīng)用的概念,然而在其他實施例中,相同的概念可以應(yīng)用于任何多方通信應(yīng)用?;旌犀F(xiàn)實應(yīng)用可以例如涉及場景的共享,其中,包括相機的設(shè)備被配置為捕獲圖像或視頻,并且將該圖像或多個圖像發(fā)送至其他設(shè)備。此外,可以通過對象的添加、刪除、和交互來增強或注釋圖像或視頻。這些對象或虛擬對象可以“被放置”在圖像場景中,并且可以具有能夠被參與者(包括場景所有者)“看見”并與之交互的視覺表示。對象不僅可以由位置來定義,還包括其他屬性,例如對象類型和狀態(tài)。對象例如可以具有諸如音頻/視頻/文本內(nèi)容之類的相關(guān)聯(lián)的內(nèi)容。參與者可以例如將視頻播放器對象置于共享的場景中。接著,同一參與者可以與對象進行交互以開始播放視頻以供所有參與者觀看。接著,另一參與者可以與視頻播放器對象進行交互以控制回放或者改變視頻播放器對象在場景中的位置。
可以關(guān)于場景以及此外的場景的三維表示來進行對象的放置。為了使得對象的精確放置能夠在遠程設(shè)備上被表示或呈現(xiàn),與場景相關(guān)聯(lián)的表面再現(xiàn)(sr)或網(wǎng)格數(shù)據(jù)可以被傳遞給共享場景的所有參與者。
關(guān)于圖4a是針對用戶設(shè)備的適合的發(fā)送(媒體棧)管線架構(gòu)的示例。在本文所描述的這樣的實施例中,用戶設(shè)備可以被配置為生成圖像(視頻數(shù)據(jù))和表面再現(xiàn)(sr)或網(wǎng)格數(shù)據(jù)。
在所示出的示例中,用于生成共享場景的圖像是由(紅-綠-藍)rgb傳感器/相機403捕獲的。rgb傳感器/相機403可以被配置為向適合的設(shè)備視頻源405傳遞所捕獲的rgb原始數(shù)據(jù),并且還傳遞任何相機姿勢/投影矩陣信息。
在圖4a中所示出的示例架構(gòu)還包括深度傳感器/相機401,其被配置為捕獲可以被傳遞至表面再現(xiàn)(sr)引擎和數(shù)據(jù)庫402的深度信息。sr引擎和數(shù)據(jù)庫402可以被配置為接收深度信息并且根據(jù)已知的網(wǎng)格/sr方法來生成sr原始數(shù)據(jù)。接著,可以將sr原始數(shù)據(jù)被傳遞至設(shè)備視頻源405。
視頻源405可以被配置為接收sr原始數(shù)據(jù)和rgb原始數(shù)據(jù)以及任何相機姿勢/投影矩陣信息。此外,視頻源405可以被配置為將視頻原始數(shù)據(jù)以sr原始數(shù)據(jù)為形式輸出至適合的sr信道編碼器407,并且根據(jù)原始幀和相機姿勢/投影矩陣數(shù)據(jù)將視頻圖像數(shù)據(jù)輸出至適合的h.264信道編碼器409。在本文所描述的示例中,h.264信道編碼器409是適合的視頻編碼器的示例。應(yīng)當(dāng)理解的是,在一些其他實施例中,所采用的視頻編碼解碼器是任何適合的編碼解碼器。例如,編碼器和解碼器可以采用高效視頻編碼hevc實現(xiàn)。
sr信道編碼器407可以被配置為接收和編碼sr原始數(shù)據(jù)以生成適合的經(jīng)編碼的sr數(shù)據(jù)。接著,sr信道編碼器407可以被配置為將經(jīng)編碼的sr數(shù)據(jù)傳遞至分組生成器411。具體地,經(jīng)編碼的數(shù)據(jù)可以被傳遞至sr分組創(chuàng)建器413。
h.264信道編碼器409可以類似地被配置為接收原始圖像/視頻幀和相機姿勢/投影矩陣數(shù)據(jù),并且處理它們以生成經(jīng)編碼的幀和sei(補充增強信息)消息數(shù)據(jù)。經(jīng)編碼的幀和sei消息數(shù)據(jù)可以被傳遞至分組生成器411,并且具體地被傳遞至h.264分組創(chuàng)建器415。
關(guān)于圖9a示出了針對幀(原始圖像/視頻幀)與相機姿勢/投影矩陣信息的組合以及處理它們以生成編碼幀和sei(補充增強信息)消息數(shù)據(jù)的示例管線架構(gòu)。相機固有的(集成到相機本身的)和非固有的(相機所處的3d環(huán)境的一部分的)數(shù)據(jù)或信息(例如,相機姿勢(非固有的)和投影矩陣(固有的)數(shù)據(jù))描述了相機捕獲屬性。該信息(例如,幀時間戳和幀朝向)應(yīng)該與視頻幀同步以使其從幀到幀改變。在如圖9a中所示出的實施例中采用的管線架構(gòu)應(yīng)該支持對其他平臺的易擴展性和編碼解碼器可交換性。
如在這里所描述的概念用于在視頻通道中對相機固有的和非固有的數(shù)據(jù)進行編碼,并將其作為sei消息在帶內(nèi)傳送。管線架構(gòu)應(yīng)該以平臺無關(guān)的方式將數(shù)據(jù)傳送至編碼器。例如,針對發(fā)送機管線而描述了應(yīng)用程序接口(api)調(diào)用序列。
如在圖9a中所示出的,為了實現(xiàn)與編碼解碼器無關(guān)的實現(xiàn),sei可以被視頻編碼器嵌入到比特流中并且被視頻解碼器讀出。
例如,硬件組件rgb相機901可以被配置為生成rgb幀數(shù)據(jù)。接著,可以將rgb幀數(shù)據(jù)傳遞至os/平臺層以及媒體捕獲(和源讀取器)903。媒體捕獲實體903還可以被配置為接收相機姿勢和投影矩陣并且將這些相機固有的和非固有的值作為自定義屬性來附加。接著,可以將媒體采樣和自定義屬性傳遞至媒體管線層,并經(jīng)由捕獲實體905而傳遞至視頻編碼器907。視頻編碼器907可以例如是在圖4a中所示出的h.264信道編碼器。接著,視頻編碼器907可以將相機姿勢和投影矩陣作為用戶數(shù)據(jù)未登記的sei消息在帶內(nèi)傳遞。sei消息可以例如在sei附加實體911中與從h.264編碼器909輸出的視頻幀數(shù)據(jù)進行組合。示例sei消息定義如下:
其中,
f(1比特)是forbidden_zero_bit,如在[rfc6184],章節(jié)1.3.中規(guī)定的,
nri(2比特)是nal_ref_idc,如在[rfc6184],章節(jié)1.3.中規(guī)定的。
type(類型)(5比特)是nal_unit_type,如在[rfc6184],章節(jié)1.3.中規(guī)定的,其在一些實施例中被設(shè)置為6.,
payloadtype(有效載荷)(1字節(jié))是sei有效載荷類型,并且在一些實施例中被設(shè)置為5以指示用戶數(shù)據(jù)未登記的sei消息。由該協(xié)議所使用的語法是如在[iso/iec14496-10:2010],章節(jié)7.3.2.3.1.中所定義的.,
payloadsize(1字節(jié))是sei有效載荷大小。由該協(xié)議針對此字段而使用的語法與在[iso/iec14496-10:2010],章節(jié)7.3.2.3.1.中所定義的語法相同。payloadsize值是除了f、nri、type、payloadtype和payloadsize字段之外的流布局sei消息的大小.,
uuid_iso_iec_11578(16字節(jié))是通用唯一標(biāo)識符(uuid),其用于指示sei消息是流布局,并且在一些實施例中被設(shè)置為{0f5dd509-cf7e-4ac4-9e9a-406b68973c42}.,
t(1字節(jié))是類型字節(jié),并且在一些實施例中,使用值1來標(biāo)識相機姿勢信息,而使用值2來標(biāo)識相機投影矩陣信息.,
l(1字節(jié))是隨后的值字段減1的字節(jié)長度,并且具有有效值范圍0-254,其指示1-255字節(jié).,
v(n字節(jié))是值并且該值的長度被指定為l字段的值。
與分組生成器411相關(guān)聯(lián)的概念是控制對視頻和sr數(shù)據(jù)的分組,以便使數(shù)據(jù)的接收機能夠產(chǎn)生可靠和有效的混合現(xiàn)實體驗。
分組生成器411可以例如包括sr分組創(chuàng)建器413。sr分組創(chuàng)建器413可以被配置為生成可以被傳遞至分組類型敏感的整形器(shaper)419的sr片段分組。此外,sr分組創(chuàng)建器413可以出于重傳反饋的目的而被控制。在一些實施例中,針對重傳反饋而使用nack方法可能是不適合的,并且因此可以實現(xiàn)ack方法。
因此,在一些實施例中,sr分組創(chuàng)建器413可以被配置為將對任何sr數(shù)據(jù)分組的引用保存在未決緩沖器中直到所述sr數(shù)據(jù)分組被發(fā)送為止。一旦分組被發(fā)送,則可以將所述引用移動至未確認(rèn)的緩沖器。
在這樣的實施例中,未確認(rèn)的緩沖器可以具有限制發(fā)送機和接收機之間的業(yè)務(wù)的窗口大小。
接著,可以保存對sr數(shù)據(jù)分組的引用直到接收機確認(rèn)接收到所述分組為止。
在一些實施例中,未確認(rèn)的緩沖器窗口大小可以根據(jù)接收機緩沖器深度而動態(tài)地調(diào)整。在一些實施例中,未確認(rèn)的緩沖器窗口大小可以是靜態(tài)值,例如32。
在一些實施例中,即使在沒有接收到反饋消息(例如,包括acknowledgmentbitmap(確認(rèn)比特映射)的消息)時,sr分組創(chuàng)建器413可以被配置為在sr幀到達時繼續(xù)發(fā)送來自未決緩沖器的sr數(shù)據(jù)分組。實現(xiàn)繼續(xù)發(fā)送方法表示在接收機處不應(yīng)該發(fā)生饑餓。
反饋消息可以包括值(例如,acknowledgmentbitmap消息中的值basesequence)。增加的值意味著接收機已確認(rèn)了所有最大為值-1(basesequence-1)并且包括值-1的分組。
在一些實施例中,sr分組創(chuàng)建器413可以被配置為僅當(dāng)有足夠的帶寬時才發(fā)送超過經(jīng)學(xué)習(xí)的接收機緩沖器深度的數(shù)據(jù)分組。
在一些實施例中,發(fā)送速度可能受到雙向信道的rtt(往返時間)的限制。例如當(dāng)未確認(rèn)的緩沖器窗口大小為128個分組,而rtt為200ms,并且mpu(應(yīng)用于sr數(shù)據(jù)片段的最大分組單元)為1000時,則最大發(fā)送速度將被限制為128*1000*(1000/200)=5000kb/s。
因此,在一些實施例中,可以調(diào)整未確認(rèn)的緩沖器窗口大小以及(acknowledgmentbitmap)反饋消息的長度來改變最大速率。
類似地,分組生成器411可以包括h.264分組創(chuàng)建器415。h.264分組創(chuàng)建器415可以被配置為生成適合的h.264分組片段并且將這些分組片段傳遞至分組類型敏感整形器419。
分組生成器411還可以包括被配置為控制分組片段的生成和輸出的帶寬(bw)控制器417。bw控制器417可以負(fù)責(zé)劃分sr分組創(chuàng)建器413與h.264分組創(chuàng)建器415之間的帶寬分配。在一些實施例中,bw控制器417保持用于視頻的最小帶寬。
在一些實施例中,bw控制器417可以被配置為在同時運行的每個并行信道之間初始地均勻分配數(shù)據(jù)。例如,針對單個h.264信道和單個sr信道,數(shù)據(jù)劃分可以以50/50開始。然而,bw控制器417可以被配置為在確定的時段之后確定或估計針對h.264和sr帶寬要求的短期和長期平均。例如,可以在2.5秒之后確定針對h.264和sr帶寬要求的短期和長期平均。
應(yīng)當(dāng)注意的是,在h.264/視頻與sr帶寬之間的這些值之間存在行為上的差異。對于視頻而言,帶寬值是被傳遞至h.264(視頻)編碼器409并且應(yīng)該由h.264編碼器409遵守的分配。而sr帶寬值可以是對由sr信道所使用的帶寬的觀察,并且媒體平臺可以對所述sr帶寬值進行監(jiān)測以確定如何調(diào)整sr編碼器407內(nèi)的細節(jié)等級參數(shù)。
接著,分組敏感整形器419可以被配置為接收sr分組片段和h.264分組片段,并且生成被傳遞至傳送設(shè)備421的適合的數(shù)據(jù)分組。分組敏感整形器419可以是感知h.264和sr數(shù)據(jù)分組的不同的實時要求的(網(wǎng)絡(luò)業(yè)務(wù))整形器。例如,整形器可以被實現(xiàn)為h.264和sr分組之間的輪詢(round-robin)。
傳輸設(shè)備421經(jīng)由適合的輸出流接收數(shù)據(jù)分組及其輸出。
關(guān)于圖4b示出了用針對被配置為接收圖像(視頻數(shù)據(jù))和表面再現(xiàn)(sr)或網(wǎng)格數(shù)據(jù)的用戶設(shè)備的適合的接收管線(媒體棧)架構(gòu)。
用戶設(shè)備可以包括被配置為接收視頻流數(shù)據(jù)并將該信息傳遞至接收機/分組組合器的p2p傳輸設(shè)備451。
分組組合器可以包括sr分組組合器453和h.264分組組合器455。sr分組片段可以被傳遞至sr分組組合器453以用于生成經(jīng)編碼的sr數(shù)據(jù)分組。h.264分組組合器455可以被配置為接收h.264分組片段并且生成經(jīng)編碼的幀數(shù)據(jù)。
sr分組組合器453可以被配置為生成適合的反饋消息(例如,acknowledgmentbitmap反饋消息),其可以被發(fā)送至sr分組創(chuàng)建器以便控制sr數(shù)據(jù)的重傳。當(dāng)檢測到內(nèi)容開始事件時(例如,當(dāng)檢測到sr1_content_start_flag時),或者當(dāng)檢測到內(nèi)容停止事件時(例如,當(dāng)檢測到sr1_content_stop_flag時),或者當(dāng)檢測到文件事件的結(jié)束時(例如,當(dāng)檢測到sr1_content_eof_flag時),可以生成反饋消息。此外,在一些實施例中,當(dāng)新的sr分組到達sr分組組合器453并且自先前分組以來已經(jīng)經(jīng)過了預(yù)先確定的時段(例如,250ms)時,生成反饋消息。在一些實施例中,針對每第7(或其他確定的數(shù)量)個接收的分組生成反饋消息。在一些實施例中,確定數(shù)量的分組可以包括重傳的分組。此外,在一些實施例中,可以在指示最后接收到的分組(basesequence)的反饋值已經(jīng)由確定數(shù)量(例如,7個)的分組增加之后來生成反饋消息。在一些實施例中,當(dāng)sr解碼器457報告錯誤時生成反饋消息。
如在本文中所描述的,sr分組創(chuàng)建器被配置為接收反饋消息(acknowledgmentbitmap)并且控制經(jīng)緩沖的分組的重傳。
接著,經(jīng)編碼的sr數(shù)據(jù)分組可以被傳遞至sr信道解碼器457以生成sr原始數(shù)據(jù)。
h.264信道解碼器459可以被配置為從h.264分組組合器455接收經(jīng)編碼的幀,并且輸出適合的原始幀和相機姿勢/投影矩陣數(shù)據(jù)。接著,可以將sr原始數(shù)據(jù)和原始幀以及相機姿勢/投影信息傳遞至視頻接收器(sink)461。
接著,視頻接收器461可以被配置為將所接收的sr原始數(shù)據(jù)和原始幀以及相機姿勢/投影數(shù)據(jù)輸出至任何適合的遠程視頻應(yīng)用463或者用于適合的3d場景渲染(在3d場景渲染器465)和視頻服務(wù)渲染(在視頻表面渲染器467)的庫。
關(guān)于圖9b示出了用于從經(jīng)編碼的幀和sei(補充增強信息)消息數(shù)據(jù)提取原始圖像/視頻幀以及相機固有和非固有數(shù)據(jù)(例如,姿勢/投影矩陣數(shù)據(jù))的示例管線架構(gòu)。該管線架構(gòu)與在圖9a中所示出的示例管線架構(gòu)所執(zhí)行的過程相反。
例如,媒體管線層可以包括視頻解碼器960。在一些實施例中,這是由如在圖4b中所示出的h.264信道解碼器459實現(xiàn)的。視頻解碼器960可以包括sei提取器951,其被配置為從h.264幀數(shù)據(jù)中檢測并提取與相機固有和非固有數(shù)據(jù)值(相機姿勢和/或投影矩陣數(shù)據(jù))相關(guān)聯(lián)的任何所接收的sei數(shù)據(jù)。這可以通過解碼器掃描到來的網(wǎng)絡(luò)抽象層單元(nalu)并且從附加到每幀的sei消息中提取相機固有和非固有數(shù)據(jù)(如果存在)來在視頻(sliq)解碼器內(nèi)實現(xiàn)。接著,可以經(jīng)由解碼器選項使得相機固有和非固有數(shù)據(jù)可用于解碼器擴展和解碼器回調(diào)。
接著,視頻解碼器(例如,h.264解碼器953)可以對不包含sei消息的h.264比特流進行解碼。
媒體管線層還可以包括渲染器955,其被配置為使固有和非固有數(shù)據(jù)與幀數(shù)據(jù)同步,并且將其傳遞至os/平臺層。
os/平臺層還可以如在圖9b中所示出的包括3d渲染引擎957,其被配置為轉(zhuǎn)換視頻幀圖像并且利用固有和非固有數(shù)據(jù)以及sr數(shù)據(jù)生成適合于傳遞至顯示器或屏幕959的3d渲染。應(yīng)當(dāng)理解的是,3d渲染引擎在一些實施例中可以被實現(xiàn)為應(yīng)用。
在實現(xiàn)如在本文中所描述的架構(gòu)時,以視頻或圖像數(shù)據(jù)為形式的mr場景以及生成場景的3d渲染所需要的數(shù)據(jù)可以被可靠地從一個設(shè)備傳輸至另一設(shè)備,并且使用可用帶寬有效地被傳輸。
如在本文中所描述的,mr的方面中的一個方面是分享和注釋所捕獲的場景的能力。例如,由場景中的一個參與者所捕獲的視頻可以通過添加對象來注釋。對象可以位于具有經(jīng)定義的位置和/朝向的場景中。此外,如在本文中所描述的對象可以與諸如視頻、圖像、音頻、或文本之類的媒體類型相關(guān)聯(lián)。在一些情況下,對象可以是交互性對象,這是因為對象可以是可移動的或改變的。例如,交互性對象可以與視頻文件相關(guān)聯(lián),并且當(dāng)對象由參與者“觸摸”或選擇時,向共享場景的所有參與者播放該視頻。
在場景內(nèi)添加、刪除、和修改對象可能是有問題的。然而,可以根據(jù)在本文中進一步詳述的針對對象信息的示例架構(gòu)和協(xié)議來處理這些問題。
關(guān)于圖5a示出了示例架構(gòu),該示例架構(gòu)示出了適合于處理交互性對象并且與其他參與者共享混合現(xiàn)實(mr)場景的協(xié)議端點。在圖5a中所示出的示例(以及其中所描述的示例)中,場景所有者491是與其他參與者共享其混合現(xiàn)實場景的協(xié)議端點。例如,場景所有者491可以包括操作如在圖3中所示出的用戶設(shè)備并且捕獲用戶a的環(huán)境的用戶。場景所有者還可以被允許向場景視野添加、移除、和操縱(虛擬)對象(也被稱為注釋)。在一些實施例中,對象的添加、移除、或操縱可以使用用戶界面來實現(xiàn)。
場景參與者495可以是被配置為接收由場景所有者491所生成的混合現(xiàn)實場景的協(xié)議端點。場景參與者495還可以被配置為能夠添加、移除、和操縱場景中的對象。
可視化、位置、以及與先前所描述的共享場景中的這樣的對象的交互可能呈現(xiàn)問題。對象可以具有視覺表示并且具有相關(guān)聯(lián)的內(nèi)容(例如,音頻/視頻/文本)。例如,參與者可以將視頻播放器對象放置在共享場景中,并與其交互以開始播放視頻以供所有參與者觀看。另一參與者可以嘗試與同一對象進行交互以控制回放或改變對象在場景中的位置。由此,對象應(yīng)該出現(xiàn)在相對于視頻或圖像內(nèi)的真實世界對象以及所有參與者的其他(虛擬)對象的相同位置處。
此外,對于所有參與者而言,對象的狀態(tài)也應(yīng)該是一致的,受制于可接受的延遲。因此,例如當(dāng)為所有參與者播放視頻時,視頻對象應(yīng)該在大致相同的位置處顯示相同的視頻。
還應(yīng)該實現(xiàn)共享場景或混合現(xiàn)實應(yīng)用以使得在任何時間加入?yún)f(xié)作會話的參與者能夠?qū)⑺麄兊膱鼍耙曇芭c其他參與者的視野進行同步。換句話說,場景針對所有參與者是相同的,而與參與者加入會話的時間無關(guān)。
類似地,混合現(xiàn)實應(yīng)用程序應(yīng)該能夠使得場景被暫停或快照,從而使得會話可以被暫停,并且接著可以通過恢復(fù)快照在之后被繼續(xù)。換句話說,即使沒有用戶使用該場景,其也應(yīng)該具有持久性。
在本文中所描述的架構(gòu)可以用于實現(xiàn)被設(shè)計為高效地滿足上述要求的消息協(xié)議和一組通信機制。因此,概念可以涉及通信機制,例如“僅僅最新的可靠消息傳遞”和“基于對象”的流控制?!皟H僅最新的消息傳遞”的實現(xiàn)可以降低發(fā)送和/或接收的對象信息業(yè)務(wù)的容量,并且因此高效地利用處理器和網(wǎng)絡(luò)帶寬。這對于其中最小化處理器利用率和網(wǎng)絡(luò)帶寬是普遍的設(shè)計目標(biāo)的移動和可穿戴設(shè)備而言是重要且期望的成就。類似地,基于對象的流控制允許發(fā)射機和接收機選擇性地限制用于同步給定對象的狀態(tài)的業(yè)務(wù)要求。
如在圖5a中所示出的,在一些實施例中,可以采用場景服務(wù)器493協(xié)議端點。場景服務(wù)器493可以被配置為在場景所有者491與參與者495之間中繼消息。
場景所有者491、參與者495、或服務(wù)器493可以采用充當(dāng)協(xié)議客戶端實體的應(yīng)用(或app)。協(xié)議客戶端實體可以被配置為控制協(xié)議端點以用于在協(xié)議端點之間傳送和控制數(shù)據(jù)流。
在以下示例中,使用如在圖5a中所示出的場景服務(wù)器中介架構(gòu)來執(zhí)行對象消息交換。換句話說,消息經(jīng)由將每個消息轉(zhuǎn)發(fā)至其目的地的場景服務(wù)器493來傳遞。如在圖5a中所示出的,場景服務(wù)器可以被視為與場景所有者491或參與者495分離的協(xié)議端點。然而,場景服務(wù)器493可以在場景所有者用戶設(shè)備、參與者用戶設(shè)備、或?qū)S梅?wù)器設(shè)備中的一個內(nèi)被實現(xiàn)。
應(yīng)當(dāng)理解的是,在一些實施例中,消息交換是在對等的基礎(chǔ)上執(zhí)行的。由于對等消息交換的情況在概念上是服務(wù)器中介情況的特殊情況(其中場景所有者端點和服務(wù)器端點共同位于同一設(shè)備上),則以下示例也可以應(yīng)用于對等實施例。
本文中的數(shù)據(jù)模型可以用于促進對用于同步在本文中所描述的對象(或注釋)的協(xié)議的描述。在每個協(xié)議端點(例如,場景服務(wù)器、場景所有者、和參與者)處,會話管理實體或會話管理實體應(yīng)用可以保持共享場景的視野。場景的視野可以是對場景內(nèi)的對象(或注釋)的表示。對象表示可以包括數(shù)據(jù)對象,所述數(shù)據(jù)對象包括諸如對象類型、空間或場景中的坐標(biāo)和朝向之類的屬性。接著,協(xié)議端點可以使用會話管理實體應(yīng)用從而使用對象表示來保持一致的場景視野。以這樣的方式,對場景對象的表示的任何更新可以被版本化并且使用協(xié)議消息而被傳送至其他端點。場景服務(wù)器可以中繼所有這些消息,并且在合適的情況下丟棄基于陳舊版本的更新。
用于交換消息的協(xié)議可以分為數(shù)據(jù)平面和控制平面。在每個協(xié)議端點處,數(shù)據(jù)平面可以實現(xiàn)消息傳遞實體應(yīng)用和分組傳遞實體應(yīng)用,它們負(fù)責(zé)保持消息隊列/分組隊列并且追蹤排隊發(fā)送和/或接收消息和分組的傳遞狀態(tài)。在以下實施例中,未完成的出站消息是已被發(fā)送但還未被接收機確認(rèn)的消息。未完成的入站消息是已經(jīng)被接收但還未被傳遞至本地端點(例如,會話管理實體)的消息。
控制平面聲明可以在場景服務(wù)器端點內(nèi)被實現(xiàn),并且可以被配置為保持場景所有者與其他參與者之間的場景的狀態(tài)。例如,場景服務(wù)器493可以被配置為保持針對每個經(jīng)連接的端點的協(xié)議版本和端點能力。
關(guān)于圖5a示出了在包括對象信息的共享場景混合現(xiàn)實應(yīng)用的初始化中涉及的消息協(xié)議的示例。
在以下示例中,場景所有者491可以被配置為使用協(xié)議客戶端實體來創(chuàng)建端點并且獲得服務(wù)器端點493的地址。地址確定可以是通過靜態(tài)配置地址或者是通過域名系統(tǒng)(dns)查詢而進行的。
接著,協(xié)議客戶端實體應(yīng)用可以通過發(fā)布連接請求消息并且將連接請求消息發(fā)送至服務(wù)器493來將自身聲明為場景所有者從而登記所述場景以用于共享。
在圖5a中由步驟471示出了將連接請求消息從場景所有者491發(fā)送至服務(wù)器493的操作。
接著,服務(wù)器493可以用適合的確認(rèn)消息來對場景所有者491進行響應(yīng)。
在圖5a中由步驟473示出了服務(wù)器將確認(rèn)消息至場景所有者491的操作。
接著,場景所有者491可以被配置為生成場景通知消息并將該消息發(fā)送至服務(wù)器493。
在圖5a中由步驟475示出了發(fā)送場景通知消息的操作。
接著,服務(wù)器493可以將場景通知消息中繼至受邀者。換句話說,場景通知消息可以包括由服務(wù)器使用以將場景通知消息發(fā)送至正確的位置的地址或適合的用戶標(biāo)識符。
在圖5a中由步驟477示出了從服務(wù)器493向參與者495發(fā)送場景通知消息的操作。
接著,參與者端點可以使用其協(xié)議客戶端應(yīng)用生成連接請求消息,并將該消息發(fā)送至服務(wù)器493以登記加入場景的興趣。
在圖5a中由步驟479示出了發(fā)送連接請求消息的操作。
接著,服務(wù)器493可以轉(zhuǎn)發(fā)連接請求或生成參與請求消息,并且將該消息發(fā)送給場景所有者491。
在圖5a中由步驟481示出了從服務(wù)器493向場景所有者491發(fā)送參與請求消息的操作。
接著,場景所有者491可以確定參與者是否被授權(quán)參與并且生成參與響應(yīng)消息。接著,可以將參與響應(yīng)消息發(fā)送至服務(wù)器493。
在圖5a中由步驟483示出了從場景所有者491向服務(wù)器493發(fā)送參與響應(yīng)消息的操作。
接著,服務(wù)器493可以被配置為從參與響應(yīng)消息生成連接響應(yīng)消息,并且將連接響應(yīng)消息發(fā)送給參與者495。
在圖5中由步驟485示出了發(fā)送連接響應(yīng)消息485的操作。
服務(wù)器和其他端點可以保持適合的定時器。例如,連接/加入狀態(tài)機定時器可以用于在兩個端點處交換連接/加入消息。此外,在一些實施例中可以采用?;?keepalive)定時器來觸發(fā)對?;钕⒌陌l(fā)送。類似地,可以實現(xiàn)重傳定時器來觸發(fā)僅僅針對可靠消息的重傳。
關(guān)于圖5b更加詳細地示出了用戶設(shè)備內(nèi)的控制架構(gòu)。邏輯層501,其可以包括處理對象信息的任何適合的應(yīng)用,例如,會話管理實體應(yīng)用、消息傳遞實體應(yīng)用、分組傳遞實體應(yīng)用、和連接狀態(tài)實體應(yīng)用。
邏輯層501可以被配置為經(jīng)由(出站)發(fā)送路徑502和(入站)接收路徑504來與i/o或客戶層503進行通信。
i/o或客戶端層503可以包括資源管理器511。所述資源管理器可以控制對象數(shù)據(jù)的處理。此外,所述資源管理器可以被配置為對(出站消息)發(fā)送隊列513和(入站消息)接收隊列515進行控制。
此外,資源管理器511可以被配置為向os層505和nic驅(qū)動器507發(fā)送控制信號。這些控制信號可以例如是可以經(jīng)由控制路徑516、526發(fā)送至os層505和nic驅(qū)動器507的cancelsend(取消發(fā)送)和/或setreceiveratelimit(設(shè)置接收速率限制)信號517。
發(fā)送隊列513可以被配置為從資源管理器接收分組,并且通過發(fā)送路徑512將所述分組發(fā)送至os層。接收隊列515可以被配置為經(jīng)由接收路徑514從os層505接收消息。
os層505可以從發(fā)送隊列513接收出站消息,并且經(jīng)由發(fā)送路徑522將這些消息傳遞至nic驅(qū)動器507。此外,os層505可以通過接收路徑524從nic驅(qū)動器507接收消息,并且還經(jīng)由接收路徑514將這些消息傳遞至接收隊列515。
關(guān)于圖6進一步詳細地示出了會話管理實體應(yīng)用600與消息傳遞實體和分組傳遞實體601以及連接狀態(tài)實體603的交互的示例。
會話管理實體600可以被配置為保持或接收對象表示屬性,并且還檢測何時接收到任何對象交互指令。例如,用戶可以移動對象或者與對象交互以引起對象的屬性中的一個屬性改變。會話管理實體600可以被配置為處理對象交互指令/輸入,并且生成或輸出經(jīng)修改的對象屬性以使其被傳遞至消息傳遞實體/分組傳遞實體601。此外,連接狀態(tài)實體應(yīng)用600可以被配置為控制消息傳遞實體/分組傳遞實體。
因此,例如,圖7示出了示例流程圖700,其示出針對發(fā)送路徑的消息傳遞實體/分組傳遞實體601的操作。在該示例中,會話管理實體600可以生成新的或經(jīng)修改的對象屬性消息。
在圖7中由步驟s702示出了生成對象屬性消息的操作。
對象屬性消息可以被傳遞至消息傳遞實體/分組傳遞實體,并且消息被標(biāo)戳或者與序號和對象標(biāo)識值相關(guān)聯(lián)。對象標(biāo)識值可以標(biāo)識對象,而序號標(biāo)識修改的序列內(nèi)的位置。
在圖7中由步驟s704示出了利用序號和對象id值來對消息進行標(biāo)戳/關(guān)聯(lián)的操作。
接著,消息傳遞實體/分組傳遞實體601可以被配置為確定視頻幀時段或其他視頻幀相關(guān)的時段是否已經(jīng)結(jié)束。
在圖7由步驟s706示出了確定幀或時段結(jié)束的操作。
當(dāng)時段還未結(jié)束時,該方法可以返回至生成下一個經(jīng)修改的對象屬性消息的操作。
然而,當(dāng)幀或時段已經(jīng)被確定時,消息傳遞實體/分組傳遞實體可以被配置為檢查當(dāng)前視頻幀或時段的具有經(jīng)確定的對象標(biāo)識符值的所有消息。
在步驟s708中,示出了針對幀或時段而檢查具有經(jīng)確定的對象標(biāo)識符的所有消息的操作。
接著,消息傳遞實體/分組傳遞實體601可以被配置為基于序號從幀時段或其他時段內(nèi)的消息確定最新的多個消息(或最新的一個消息)。
在圖7中由步驟s710示出了基于序號來確定最新消息的操作。
接著,消息傳遞實體/分組傳遞實體601可以被配置為在發(fā)送路徑中刪除針對該具體的幀時段或其他時段而具有對象標(biāo)識值的其他消息中的所有消息。
在圖7中由步驟s712示出了對幀時段或其他時段中具有對象id的所有其他對象屬性消息的刪除。
接著,方法可以返回以檢查另一對象交互指令或輸入。
在實現(xiàn)這樣的實施例時,可以控制在給定的視頻幀時段中或其他時段中的針對具體對象的對象屬性消息的消息流,以使得存在對給定對象的狀態(tài)或位置進行更新的至少一個消息的傳輸,但網(wǎng)絡(luò)沒有擠滿消息。此外,可以使得發(fā)送路徑api在所有層處對應(yīng)用可用以丟棄針對給定的對象id在發(fā)送路徑排隊的多余的消息。
此外,在一些實施例中,發(fā)送機可以被配置為提供關(guān)于經(jīng)嘗試或經(jīng)取消的傳輸?shù)姆答仭?/p>
在實現(xiàn)上述實施例時,服務(wù)器可以被配置為提供或執(zhí)行應(yīng)用層多播,而不超過接收機的消息速率限制。
關(guān)于圖8示出了示例流程圖800,其示出針對接收路徑的消息傳遞實體/分組傳遞實體601的操作。接收路徑是指具有端點處的應(yīng)用的傳輸層實體、底層操作系統(tǒng)、和網(wǎng)絡(luò)驅(qū)動器的所有到來的隊列階段。
在一些實施例中,接收例如關(guān)于發(fā)送路徑所描述的對象屬性消息。
在圖8中由步驟s802示出了接收對象屬性消息的操作。
此外,消息傳遞實體/分組傳遞實體601還可以被配置為確定視頻幀時段(或其他經(jīng)確定的時段)是否已經(jīng)結(jié)束。
在圖8中由步驟804示出了確定經(jīng)確定的幀(或其他時段)的結(jié)束的操作。
當(dāng)時段還未結(jié)束時,方法可以循環(huán)回以接收另外的對象屬性消息。
接著,當(dāng)時段結(jié)束時,連接狀態(tài)實體應(yīng)用603可以被配置為確定可以對其進行接收消息控制的一些參數(shù)估計和決策變量。
例如,在一些實施例中,連接狀態(tài)實體應(yīng)用603可被配置為確定每個更新過程所需要或消耗的cpu周期的數(shù)量。
在圖8中由步驟s806示出了估計每次更新所消耗的cpu周期的操作。
在一些實施例中,連接狀態(tài)實體應(yīng)用603可以被配置為確定或估計當(dāng)前cpu負(fù)載和/或網(wǎng)絡(luò)帶寬。
在圖8中由步驟s808示出了確定當(dāng)前cpu負(fù)載/網(wǎng)絡(luò)帶寬的操作。
此外,在一些實施例中,連接狀態(tài)實體應(yīng)用603可以被配置為確定具體對象的對象優(yōu)先級。對象優(yōu)先級可以例如基于以下因素:對象是否在視野中、對象是否最近被查看、或者最近是否已經(jīng)與對象交互。
在圖8中由步驟s810示出了確定至少一個決策變量的操作。
接著,連接狀態(tài)實體應(yīng)用603可以在一些實施例中被配置為基于所確定的變量和容量確定中的至少一個來設(shè)置針對對象更新的“速率限制”。
在圖8中由步驟s812示出了設(shè)置速率限制的操作。
接著,消息傳遞實體/分組傳遞實體601可以被配置為確定時段內(nèi)的對象的最后的“n”個消息,其中“n”是速率限制。例如,這可以通過確定在時段內(nèi)所接收的針對對象id的消息上的最后“n”個序號來執(zhí)行。
在圖8中由步驟814示出了確定最后“n”個消息的操作。
接著,應(yīng)用可以在接收的路徑中刪除針對該時段的該對象id的所有消息,而不是最后“n”個消息。
在圖8中由步驟s816示出了刪除時段中的具有對象id的所有其他消息的操作。
接著,方法可以返回至接收另外的對象消息的操作。
以這樣的方式,接收機不會過載有對象屬性消息。
盡管已經(jīng)參考由用戶對關(guān)于到來的實況視頻的幀而定位的對象進行的交互而描述了實施例,但是本公開的實施例擴展至在由計算機所生成的圖像上的交互。
通常而言,可以使用軟件、固件、硬件(例如,固定邏輯電路)、或者這些實現(xiàn)的組合來實現(xiàn)在本文中所描述的功能中的任何一個功能。在本文中所使用的術(shù)語“控制器”、“功能”、“組件”和“應(yīng)用”通常表示軟件、固件、硬件、或其組合。在軟件實現(xiàn)的情況下,控制器、功能、組件、或應(yīng)用表示在處理器(例如,cpu或多個cpu)上被執(zhí)行時執(zhí)行指定任務(wù)的程序代碼。所述程序代碼可以被存儲在一個或多個計算機可讀存儲器設(shè)備中。在下文中所描述的技術(shù)的特征是平臺無關(guān)的,這意味著這些技術(shù)可以被實現(xiàn)在具有多種處理器的多種商業(yè)計算平臺上。
例如,用戶設(shè)備(用戶終端)還可以包括使得用戶終端的硬件執(zhí)行操作的實體(例如,軟件),例如處理器功能塊等。例如,用戶終端可以包括可以被配置為保存使得用戶終端并且更加特別地使得操作系統(tǒng)和用戶終端的相關(guān)聯(lián)的硬件執(zhí)行操作的計算機可讀介質(zhì)。因此,所述指令用于配置操作系統(tǒng)和相關(guān)聯(lián)的硬件執(zhí)行操作,并且以該方式引起操作系統(tǒng)和相關(guān)聯(lián)的硬件轉(zhuǎn)換以執(zhí)行功能。所述指令可以是由計算機可讀介質(zhì)通過各種不同的配置而向用戶終端提供的。
計算機可讀介質(zhì)的一個這樣的配置是信號承載介質(zhì),并且因此被配置為例如經(jīng)由網(wǎng)絡(luò)向計算設(shè)備發(fā)送指令(例如,作為載波)。計算機可讀介質(zhì)還可以被配置為計算機可讀存儲介質(zhì)并且因此不是信號承載介質(zhì)。計算機可讀存儲介質(zhì)的示例包括隨機存取存儲器(ram)、只讀存儲器(rom)、光盤、閃速存儲器、硬盤存儲器、以及可以使用磁的、光學(xué)的、以及其他技術(shù)來存儲指令和其他數(shù)據(jù)的其他存儲器設(shè)備。
根據(jù)本公開的第一方面,存在通信架構(gòu)內(nèi)的用戶設(shè)備,所述用戶設(shè)備包括:圖像捕獲設(shè)備,其被配置為確定用于創(chuàng)建定義共享場景的視頻通道的圖像數(shù)據(jù);固有/非固有數(shù)據(jù)確定器,其被配置為確定與所述圖像捕獲設(shè)備相關(guān)聯(lián)的固有/非固有捕獲設(shè)備數(shù)據(jù);以及視頻編碼器,其被配置為對所述視頻通道內(nèi)的所述圖像數(shù)據(jù)和所述固有/非固有捕獲設(shè)備數(shù)據(jù)進行編碼。
所述視頻編碼器可以包括:幀編碼器,其被配置為將所述圖像數(shù)據(jù)編碼為圖像幀;以及補充增強信息附加器,其被配置為將所述固有/非固有捕獲設(shè)備數(shù)據(jù)編碼為附加至所述圖像幀的補充增強信息消息。
所述圖像捕獲設(shè)備可以包括:相機輸入,其被配置為接收rgb幀數(shù)據(jù);以及媒體捕獲實體,其被配置為從所述rgb幀數(shù)據(jù)生成圖像數(shù)據(jù)。
所述媒體捕獲實體還被配置為接收所述固有/非固有捕獲設(shè)備數(shù)據(jù),并且將所述固有/非固有捕獲設(shè)備數(shù)據(jù)與所述圖像數(shù)據(jù)相關(guān)聯(lián)。
所述固有/非固有捕獲設(shè)備數(shù)據(jù)可以包括相機投影矩陣數(shù)據(jù)。
所述固有/非固有捕獲設(shè)備數(shù)據(jù)可以包括相機姿勢數(shù)據(jù)。
根據(jù)本公開的第一方面,存在通信架構(gòu)內(nèi)的用戶設(shè)備,所述用戶設(shè)備包括:接收機,其被配置為接收視頻通道,所述視頻通道包括針對從圖像捕獲設(shè)備所確定的共享場景的圖像數(shù)據(jù)以及與所述圖像捕獲設(shè)備相關(guān)聯(lián)的固有/非固有捕獲設(shè)備數(shù)據(jù);以及視頻解碼器,其被配置為從所述視頻通道提取和解碼所述圖像數(shù)據(jù)以及與所述圖像捕獲設(shè)備相關(guān)聯(lián)的所述固有/非固有捕獲設(shè)備數(shù)據(jù)。
所述視頻通道包括經(jīng)幀編碼的視頻數(shù)據(jù)流,其中,所述視頻解碼器包括:幀解碼器,其被配置為對經(jīng)編碼的視頻數(shù)據(jù)流進行幀解碼;以及補充增強信息提取器,其被配置為從所述經(jīng)編碼的視頻數(shù)據(jù)流內(nèi)提取和解碼補充增強信息消息。
所述補充增強信息提取器包括:掃描器,其被配置為代理掃描到來的網(wǎng)絡(luò)抽象層單元;以及提取器,其被配置為從與每幀附加的所述補充增強信息消息中提取固有/非固有捕獲設(shè)備數(shù)據(jù)。
根據(jù)本公開的第三方面,存在在通信架構(gòu)內(nèi)的用戶設(shè)備處實現(xiàn)的方法,所述方法包括:從圖像捕獲設(shè)備確定用于創(chuàng)建定義共享場景的視頻通道的圖像數(shù)據(jù);確定與所述圖像捕獲設(shè)備相關(guān)聯(lián)的固有/非固有捕獲設(shè)備數(shù)據(jù);以及對所述視頻通道內(nèi)的所述圖像數(shù)據(jù)和所述固有/非固有捕獲設(shè)備數(shù)據(jù)進行編碼。
對所述視頻通道內(nèi)的所述圖像數(shù)據(jù)和所述固有/非固有捕獲設(shè)備數(shù)據(jù)進行編碼包括:將所述圖像數(shù)據(jù)編碼為圖像幀;以及將所述固有/非固有捕獲設(shè)備數(shù)據(jù)編碼為附加至所述圖像幀的補充增強信息消息。
根據(jù)本公開的第四方面,存在在通信架構(gòu)內(nèi)的用戶設(shè)備處實現(xiàn)的方法,所述方法包括:接收視頻通道,所述視頻通道包括針對從圖像捕獲設(shè)備所確定的共享場景的圖像數(shù)據(jù)以及與所述圖像捕獲設(shè)備相關(guān)聯(lián)的固有/非固有捕獲設(shè)備數(shù)據(jù);從所述視頻通道提取和解碼所述圖像數(shù)據(jù);以及提取與所述圖像捕獲設(shè)備相關(guān)聯(lián)的所述固有/非固有捕獲設(shè)備數(shù)據(jù)。
所述視頻通道包括經(jīng)幀編碼的視頻數(shù)據(jù)流,其中,從所述視頻通道提取和解碼所述圖像數(shù)據(jù)包括對所述編碼的視頻數(shù)據(jù)流進行幀解碼,并且提取與所述圖像捕獲設(shè)備相關(guān)聯(lián)的所述固有/非固有捕獲設(shè)備數(shù)據(jù)包括從所述編碼的視頻數(shù)據(jù)流內(nèi)提取和解碼補充增強信息消息。
根據(jù)本公開的第五方面,存在一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品在非瞬時性計算機可讀介質(zhì)上被實施,并且被配置為當(dāng)在通信架構(gòu)內(nèi)的用戶設(shè)備的處理器上被執(zhí)行時,執(zhí)行以下操作:從圖像捕獲設(shè)備確定用于創(chuàng)建定義共享場景的視頻通道的圖像數(shù)據(jù);確定與所述圖像捕獲設(shè)備相關(guān)聯(lián)的固有/非固有捕獲設(shè)備數(shù)據(jù);以及對所述視頻通道內(nèi)的所述圖像數(shù)據(jù)和所述固有/非固有捕獲設(shè)備數(shù)據(jù)進行編碼。
根據(jù)本公開的第六方面,存在一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品在非瞬時性計算機可讀介質(zhì)上被實施,并且被配置為當(dāng)在通信架構(gòu)內(nèi)的用戶設(shè)備的處理器上被執(zhí)行時,執(zhí)行以下操作:接收視頻通道,所述視頻通道包括針對從圖像捕獲設(shè)備所確定的共享場景的圖像數(shù)據(jù)以及與所述圖像捕獲設(shè)備相關(guān)聯(lián)的固有/非固有捕獲設(shè)備數(shù)據(jù);從所述視頻通道提取和解碼所述圖像數(shù)據(jù);以及提取與所述圖像捕獲設(shè)備相關(guān)聯(lián)的所述固有/非固有捕獲設(shè)備數(shù)據(jù)。
盡管已經(jīng)用特定于結(jié)構(gòu)特征和/或方法動作的語言對主題進行了描述,但是應(yīng)當(dāng)理解的是,在所附權(quán)利要求中限定的主題不一定限于在上文本中所描述的具體特征或動作。相反,在上文中所描述的具體特征和動作是作為實現(xiàn)權(quán)利要求的示例形式而公開的。