蘋果專利為AR/VR流式傳輸提出分布式編碼系統(tǒng)
查看引用/信息源請點擊:映維網(wǎng)Nweon
分布式編碼
(映維網(wǎng)Nweon?2022年03月31日)有時候,用戶希望將正式錄制的內(nèi)容流式傳輸?shù)搅硪慌_或多個其他設備。例如,用戶可能正在通過頭顯錄制視頻,并希望將其流式傳輸?shù)脚笥训脑O備。但頭顯存在電源有限、計算有限和/或網(wǎng)絡有限等各種限制。另外,用戶有時希望在創(chuàng)建內(nèi)容時自由走動。例如,在辦公室環(huán)境中,用戶可能希望在辦公室中開始創(chuàng)建內(nèi)容,并在沿著大廳走向會議室時繼續(xù)創(chuàng)建內(nèi)容。
在名為“Distributed encoding”的專利申請中,蘋果介紹了一種分布式編碼系統(tǒng)。簡單來說,錄制設備可以尋找其他可用的計算設備,并將處理和/或編碼的至少一部分轉(zhuǎn)移到所述計算設備,以擴展可用于編碼記錄內(nèi)容的計算資源量。例如,錄制設備可以確定用戶附近有當前未使用的智能手機,筆記本電腦和/或PC時,并判斷存在空閑的計算資源可用于以不同格式編碼記錄的內(nèi)容?;谒霭l(fā)現(xiàn),錄制設備可評估與所錄制內(nèi)容相關(guān)聯(lián)的一組編碼操作,并可將所記錄的內(nèi)容卸載到所發(fā)現(xiàn)的設備并執(zhí)行一個或多個編碼操作。
在各種實施例中,隨著操作條件隨時間變化,記錄設備可以繼續(xù)從可用計算設備收集信息。例如,如果記錄設備正在與筆記本電腦進行無線通信,并且穿戴記錄設備的用戶走出房間,則記錄設備可能會檢測到與筆記本電腦的連接丟失,并重新分配對記錄內(nèi)容的編碼處理方式。但在進入另一個房間時,記錄設備可能會發(fā)現(xiàn)另一個可以幫助編碼內(nèi)容的可用設備,例如另一臺平板電腦。然后,錄制設備可以確定將編碼內(nèi)容卸載到新發(fā)現(xiàn)的設備。在評估什么編碼操作可以卸載到所述新發(fā)現(xiàn)的可用設備。
在一個實施例中,記錄設備可以考慮與計算資源、服務質(zhì)量、安全性等有關(guān)的眾多因素來將一定的編碼操作卸載到存在空閑資源的可用設備,以滿足例如精度、準確度、保真度、處理時間、功耗、隱私考慮等各種目標。
蘋果指出,通過動態(tài)發(fā)現(xiàn)計算資源并基于上述考量因素來實時重新分配記錄內(nèi)容的編碼操作,與僅限于記錄設備的有限資源相比,系統(tǒng)可以實現(xiàn)更好的流式體驗。另外,動態(tài)發(fā)現(xiàn)計算資源可以在創(chuàng)建內(nèi)容時允許更大的移動性,因為記錄設備在從一個空間轉(zhuǎn)換到另一個空間時可以發(fā)現(xiàn)額外的計算資源。

圖1描繪了分布式編碼系統(tǒng)10的框圖。在所示實施例中,系統(tǒng)10包括記錄設備110、多個計算節(jié)點120、存儲器130和呈現(xiàn)設備140。如圖所示,記錄設備110可以包括分發(fā)引擎112。每個計算節(jié)點120同時可以包括相應的編碼器助手122。
在各種實施例中,記錄設備110是配置為創(chuàng)建記錄內(nèi)容114的計算設備。因此,記錄設備110可以包括一個或多個攝像頭以記錄視頻內(nèi)容和/或一個或多個麥克風以記錄音頻內(nèi)容。在一個實施例中,記錄設備110可以是頭戴式顯示器。在一個實施例中,記錄設備110從一個或多個傳感器(例如,陀螺傳感器、位置傳感器等)收集傳感器數(shù)據(jù),所述傳感器配置為在創(chuàng)建記錄內(nèi)容114期間確定記錄設備110的方向。然后,可以將傳感器數(shù)據(jù)與記錄的內(nèi)容114一起提供,以便確定記錄的內(nèi)容114的后續(xù)呈現(xiàn)方向。因此,如果記錄設備110的用戶可以上下左右移動記錄設備110以創(chuàng)建全景圖。記錄設備110的陀螺傳感器可以檢測所述移動并記錄相應的傳感器數(shù)據(jù),以便允許在記錄內(nèi)容114的后續(xù)呈現(xiàn)中進行類似的移動。
如上所示,為了幫助用戶將錄制內(nèi)容共享給另一臺設備,可以對記錄的內(nèi)容114進行編碼以促進相關(guān)的流式傳輸。記錄的內(nèi)容114可以分解成以與不同質(zhì)量水平相關(guān)聯(lián)的各種格式編碼的視頻片段。呈現(xiàn)設備140隨后可以基于其顯示器的屬性及其當前網(wǎng)絡連接在格式之間進行選擇。
但繼續(xù)如上所述,記錄設備110可能沒有足夠的計算資源來及時處理并以多種格式編碼記錄內(nèi)容114。針對這個問題,記錄設備110可以使用計算節(jié)點120的計算資源。
在各種實施例中,計算節(jié)點120是可用于協(xié)助記錄設備110對記錄的內(nèi)容114進行編碼的節(jié)點。計算節(jié)點120可以是任何類型的計算系統(tǒng)或計算設備,例如智能手機120E、平板電腦120F和筆記本電腦120G等等。
在一個實施例中,計算節(jié)點120通常可分類為主要、第二和第三計算網(wǎng)格/組。主計算網(wǎng)格包括屬于記錄設備110用戶的計算節(jié)點120。所述計算節(jié)點120可以提供比其他網(wǎng)格中的計算節(jié)點120更少的計算能力,但可以容易地供記錄設備110的用戶使用。圖1中描繪的眾多計算節(jié)點120可對應于這個網(wǎng)格。
第二計算網(wǎng)格包括附近的計算節(jié)點120,其可以以更高的成本提供更大的計算能力。例如,用戶操作記錄設備110可以進入具有工作站120B的音樂會場地,并且可以從這樣的節(jié)點120接收幫助,以便對記錄的內(nèi)容進行編碼。第三計算網(wǎng)格包括通過云服務供用戶使用的高性能計算節(jié)點120。例如,服務器集群可以基于遠離記錄設備110的服務器場,并且可以實現(xiàn)對編碼記錄內(nèi)容114的支持。在這樣的實施例中,計算節(jié)點120同時可以包括邏輯計算節(jié)點,例如虛擬機。
如圖1所示,用戶操作記錄設備110可以在初始位置開始記錄內(nèi)容114,并沿著路徑102移動到用戶停止記錄內(nèi)容114的結(jié)束位置。當記錄設備110沿著路徑102移動時,記錄設備110可經(jīng)由其網(wǎng)絡接口檢測可用于以一種或多種格式編碼記錄內(nèi)容114的一個或多個計算節(jié)點120,并經(jīng)由網(wǎng)絡接口將記錄內(nèi)容114卸載到一個或多個計算節(jié)點120以以以一種或多種格式編碼。例如,記錄設備110最初可以檢測具有足夠能力以1080p分辨率對記錄內(nèi)容進行編碼的無線揚聲器120A。
在所示的實施例中,區(qū)域104旨在表示空間中的球形區(qū)域,其可以(或可以不)彼此相鄰,甚至可以重疊。例如,一個區(qū)域104可以在客廳,另一個在廚房,一個在辦公室,另一個在會議室等。當記錄設備110離開區(qū)域104A時,記錄設備110可能會遇到與無線揚聲器120A的無線連接質(zhì)量下降,并失去對內(nèi)容114進行編碼的能力。但如圖所示,記錄設備110可以在進入4K編碼區(qū)104B時檢測工作站120B,并獲得以4K分辨率編碼記錄內(nèi)容的能力。隨著記錄設備110沿著路徑繼續(xù),路徑102可以檢測其他計算節(jié)點120并獲得或失去額外的計算資源。例如,當通過編碼區(qū)104A傳回編碼區(qū)104E時,記錄設備110可能無法檢測到另一計算節(jié)點120,因此可能需要僅依賴其自身的計算資源來編碼內(nèi)容114。如上所述,計算節(jié)點120的可用性在本質(zhì)上可以是動態(tài)的,因為它們的計算資源可用于其他目的。例如,記錄設備110可以繼續(xù)保持與平板電腦120F的無線連接,但如果有人拿起平板電腦120F并開始將其用于某些其他計算密集型目的,則記錄設備110會失去其協(xié)助。
在各種實施例中,分發(fā)引擎112可由記錄設備110執(zhí)行,以發(fā)現(xiàn)計算節(jié)點120并確定是否將編碼記錄內(nèi)容114卸載到發(fā)現(xiàn)的計算節(jié)點120。分發(fā)引擎112可以基于從計算節(jié)點120接收的各種編碼能力信息來執(zhí)行確定。其中,所述編碼能力信息通常可指引擎112用于評估記錄內(nèi)容114是否應(或不應)卸載到特定計算節(jié)點120以進行編碼的任何適當信息。在一個實施例中,所述信息包括計算節(jié)點120支持的一種或多種格式的指示。例如,智能手表120C可指示其支持30fps的H.264/AVC 720p編碼。
在一個實施例中,所述編碼能力信息包括識別包括在計算節(jié)點120的當前計算信息。例如,平板電腦120F可能表明,它目前僅使用其多核處理器的5%,并且能夠分配1 GB的RAM用于編碼記錄的內(nèi)容114。
在一個實施例中,所述編碼能力信息包括可用于確定特定計算節(jié)點是否屬于如上所述的主網(wǎng)格的信息,并因此可以授權(quán)協(xié)助記錄設備110。例如,分發(fā)引擎112可以從計算節(jié)點120接收與計算節(jié)點120相關(guān)聯(lián)的用戶指示,并確定所述用戶是否對應于記錄設備110的用戶。
在一個實施例中,所述編碼能力信息包括計算節(jié)點120的安全能力的信息,并用以指示節(jié)點120維護和處理記錄的內(nèi)容114的安全程度。分發(fā)引擎112可以從計算節(jié)點120接收識別計算節(jié)點120內(nèi)存在安全硬件的簽名證明。由于計算節(jié)點120的能力可以隨時間而改變,因此在一些實施例中,分發(fā)引擎112可以連續(xù)實時地從計算節(jié)點120接收編碼能力信息,同時記錄設備110記錄內(nèi)容114,節(jié)點120編碼內(nèi)容114。
基于接收到的編碼能力信息,分發(fā)引擎112可以確定是否將記錄內(nèi)容114卸載到計算節(jié)點120以對記錄內(nèi)容114進行編碼。在一個實施例中,分發(fā)引擎112通過使用成本函數(shù),并根據(jù)一組編碼約束來評估編碼能力信息,從而最小化功耗和延遲,同時確保提供最佳用戶體驗。這個評估可以在錄制過程中繼續(xù)進行。例如,當計算節(jié)點120以第一格式對卸載的記錄內(nèi)容114進行編碼時,引擎112可以從計算節(jié)點120接收識別一個或多個計算資源的當前利用率的更新計算信息,并基于更新計算信息選擇第二個計算節(jié)點。
作為另一個示例,在將記錄內(nèi)容114卸載到一個或多個計算節(jié)點120的同時,引擎112可以檢測到另一個計算節(jié)點120,并將記錄內(nèi)容114卸載到另一個計算節(jié)點120以對記錄內(nèi)容114進行編碼。在一個實施例中,分發(fā)引擎112在評估是否卸載記錄內(nèi)容114時可以嘗試主動(而不是被動)。換句話說,在創(chuàng)建記錄的內(nèi)容114之前,引擎112可以確定記錄設備110的用戶可能開始創(chuàng)建記錄的內(nèi)容(例如基于用戶過去的行為),并且基于所述確定,嘗試檢測一個或多個計算節(jié)點120以促進記錄的內(nèi)容的后續(xù)編碼。
在各種實施例中,編碼器助手122可由計算節(jié)點120執(zhí)行以與分發(fā)引擎112接口,并便于對卸載的記錄內(nèi)容114進行編碼。因此,編碼器助手122可以經(jīng)由其計算節(jié)點120的網(wǎng)絡接口宣傳經(jīng)由一個或多個支持的編解碼器對內(nèi)容進行編碼的能力,從響應于記錄設備110接收對記錄的內(nèi)容114進行編碼的請求。響應于請求,使用支持的編解碼器之一并以呈現(xiàn)設備140支持的格式對記錄的內(nèi)容進行編碼。
作為與分發(fā)引擎112接口的一部分,助手122可以收集并提供各種編碼能力信息。例如,助手122可以向記錄設備110提供指示經(jīng)由網(wǎng)絡接口與記錄設備110建立的網(wǎng)絡連接質(zhì)量信息。作為另一示例,助手122可以向記錄設備110提供注冊到計算節(jié)點的用戶帳戶指示。作為又一示例,助手122可以向記錄設備110提供識別計算節(jié)點120的制造商的簽名證明,并可用于確定計算節(jié)點120中存在的硬件?;谔峁┑男畔ⅲ幋a器助手122可以接收卸載的記錄內(nèi)容114以進行編碼。

圖2是分發(fā)引擎112的框圖。在所示的實施例中,分發(fā)引擎112包括發(fā)現(xiàn)引擎210、約束分析器220和任務頒發(fā)器230。
在各種實施例中,發(fā)現(xiàn)引擎210處理可用計算節(jié)點120的發(fā)現(xiàn)和編碼能力信息202的收集。在一個實施例中,發(fā)現(xiàn)引擎210通過發(fā)送廣播來發(fā)現(xiàn)計算節(jié)點120,請求來自任何可用計算節(jié)點120的幫助,并基于計算節(jié)點120的響應來了解計算節(jié)點120。
在各種實施例中,發(fā)現(xiàn)引擎210將從計算節(jié)點120接收的能力信息202聚合成動態(tài)約束向量212,并將其傳送給約束分析器220。在一個實施例中,約束向量212可以包括關(guān)于單個節(jié)點120的信息202。在其他實施例中,向量212可以是多維的,并且包括來自多個節(jié)點120的信息202。給定向量212同時可以包括當前信息以及與記錄內(nèi)容114的過去編碼相關(guān)聯(lián)的先前收集信息。在這樣的實施例中,引擎210可以分析當前和過去的信息,以預測計算節(jié)點120的未來能力,以便于輔助記錄設備110。例如,引擎210可采用隨時間評估過去和現(xiàn)在信息202的學習算法。
在一個實施例中,發(fā)現(xiàn)引擎210收集關(guān)于可用計算節(jié)點120的附加信息,例如用戶信息204。在這樣的實施例中,計算節(jié)點120可以提供關(guān)于計算節(jié)點120的用戶(或用戶帳戶)的信息204。然后,分發(fā)引擎112可以將由信息204標識的用戶與記錄設備110的當前用戶進行比較。如果引擎112確定計算節(jié)點120和設備110共享同一用戶(或者計算節(jié)點120屬于同意共享計算資源的朋友或家庭成員),分發(fā)引擎112可確定計算節(jié)點120可用于協(xié)助編碼記錄內(nèi)容114,并評估是否將記錄內(nèi)容114卸載以用于編碼到所述節(jié)點120。
在各種實施例中,約束分析器220基于與特定編碼操作相關(guān)聯(lián)的動態(tài)約束向量212和編碼約束214,確定記錄內(nèi)容114的編碼操作應如何分布在記錄設備110和計算節(jié)點120之間。因此,分析器220可以分析向量212中標識的節(jié)點120的特定能力202,并將所述能力與編碼約束214相匹配。編碼約束214可以為特定編碼操作定義期望的計算能力、延遲、網(wǎng)絡帶寬、安全要求、精度、保真度、處理時間和/或隱私考慮等。在一個實施例中,所述匹配可包括確定用于在記錄設備110和計算節(jié)點120之間分發(fā)編碼操作的多個不同分發(fā)計劃224,以及計算每個不同分發(fā)計劃224的成本函數(shù)222。在各種實施例中,成本函數(shù)222是確定給定分發(fā)計劃224的特定成本的函數(shù)(或函數(shù)集合)。給定計劃224的成本可以基于各種因素中的任何一個,例如用于實現(xiàn)計劃224的總功耗、用于實現(xiàn)計劃224的延遲、服務質(zhì)量等?;诓煌媱?24的計算成本函數(shù),分析器220可以確定為成本最低的特定分布224。
在各種實施例中,任務頒發(fā)器230有助于實施約束分析器220選擇的分發(fā)計劃224。所以,任務頒發(fā)器230可以檢查分發(fā)計劃224,以確定編碼操作已分配給特定節(jié)點120,并向所述節(jié)點120發(fā)送編碼請求232以執(zhí)行編碼操作。在一個實施例中,頒發(fā)器230處理收集用于執(zhí)行分配的編碼操作的任何適當數(shù)據(jù),并將數(shù)據(jù)傳送到節(jié)點120。例如,頒發(fā)器230可以讀取存儲在記錄設備110的存儲器中的記錄內(nèi)容,并通過網(wǎng)絡連接將所述信息傳送到計算節(jié)點120。

圖4描述了能力交換400的框圖。如上所述,計算節(jié)點120可以向分發(fā)引擎112提供各種編碼能力202,以便于確定應如何卸載記錄的內(nèi)容114。
在各種實施例中,可信證書頒發(fā)機構(gòu)(CA)410是配置為頒發(fā)簽名證書412的可信計算系統(tǒng)。在一個實施例中,CA 410可由記錄設備110、計算節(jié)點120和/或呈現(xiàn)設備140的制造商操作;在其他實施例中,CA 410可由其他受信任實體操作。在各種實施例中,計算節(jié)點120可以通過生成具有公鑰414A和相應私鑰414B的公鑰對并向CA 410發(fā)出證書簽名請求(CSR)來獲得證書412。在一個實施例中,CSR進一步由計算節(jié)點120維護的可信密鑰簽名,以便與CA 410建立信任。例如,這種可信密鑰可以在其制造期間存儲在計算節(jié)點120中。在一個實施例中,可信密鑰對于給定計算節(jié)點120是唯一的。一旦可以成功地驗證CSR,CA 410可以頒發(fā)相應的證書412。
一旦收到證書412,分發(fā)引擎112可以驗證證書412以確保其真實性。這可以包括驗證CA 410的簽名以確保證書412的內(nèi)容的完整性。

圖5A描述了方法500的流程圖。在步驟505,第一計算設備創(chuàng)建記錄的內(nèi)容以傳輸?shù)脚渲脼槌尸F(xiàn)記錄的內(nèi)容的第二計算設備。在各種實施例中,第一計算設備是頭戴式顯示器。在一個實施例中,第一計算設備從一個或多個傳感器收集傳感器數(shù)據(jù)。其中,傳感器數(shù)據(jù)指示在創(chuàng)建記錄的內(nèi)容期間頭顯的方向。在這樣的實施例中,第一計算設備將傳感器數(shù)據(jù)提供給一個或多個計算節(jié)點以包含在編碼內(nèi)容中,所包含的傳感器數(shù)據(jù)可由第二計算設備用于確定記錄內(nèi)容的呈現(xiàn)方向。
在步驟510,第一計算設備通過第一計算設備的網(wǎng)絡接口檢測一個或多個計算節(jié)點,所述計算節(jié)點可用于以第二計算設備支持的一種或多種格式對記錄的內(nèi)容進行編碼。在各種實施例中,檢測包括第一計算設備從計算節(jié)點接收計算節(jié)點支持的一種或多種格式的指示,并基于一種或多種支持的格式,確定是否將記錄的內(nèi)容卸載到計算節(jié)點進行編碼。
在一個實施例中,檢測包括第一計算設備從計算節(jié)點接收識別計算節(jié)點中的當前計算信息,所述計算信息可用于促進計算節(jié)點對記錄內(nèi)容進行編碼?;谟嬎阈畔ⅲ_定是否將記錄的內(nèi)容卸載到計算節(jié)點進行編碼。
在步驟515,第一計算設備經(jīng)由網(wǎng)絡接口將記錄的內(nèi)容卸載到一個或多個計算節(jié)點,以便以一種或多種格式進行編碼。在一個實施例中,當計算節(jié)點以第一格式對卸載的記錄內(nèi)容進行編碼時,第一計算設備從計算節(jié)點接收識別一個或多個計算資源的當前利用率的更新計算信息,并基于更新的計算信息選擇第二個計算節(jié)點以編碼記錄內(nèi)容的不同格式。在各種實施例中,當將記錄的內(nèi)容卸載到一個或多個計算節(jié)點時,第一計算設備檢測可用于編碼記錄的內(nèi)容的另一計算節(jié)點,并將記錄的內(nèi)容卸載到另一計算節(jié)點以編碼記錄的內(nèi)容。
相關(guān)專利:Apple Patent | Distributed encoding
名為“Distributed encoding”的蘋果專利申請最初在2021年5月提交,并在日前由美國專利商標局公布。
---
原文鏈接:https://news.nweon.com/95697