本公開VR技術(shù)領(lǐng)域,尤其涉及基于VR系統(tǒng)的圖像處理方法及裝置。
背景技術(shù):
在相關(guān)技術(shù)中,VR(Virtual Reality,即虛擬現(xiàn)實)系統(tǒng)在用戶佩戴好VR頭盔后會按照與屏幕刷新頻率對應(yīng)的預(yù)設(shè)時間間隔(即該屏幕刷新頻率的倒數(shù))采集當(dāng)前需要顯示的VR圖像,進而將VR圖像通過VR頭盔中的屏幕進行顯示,以使用戶完成VR體驗,而具體的圖像顯示方案為:VR系統(tǒng)在用戶佩戴好VR頭盔后,確定需顯示的第i幀VR圖像對應(yīng)的頭部轉(zhuǎn)動角度(即虛擬相機的旋轉(zhuǎn)角度),并通過該虛擬相機拍攝該頭部轉(zhuǎn)動角度所朝向的觀看方向?qū)?yīng)的畫面,然后通過VR系統(tǒng)中位于所拍攝的畫面的指定位置(如正中間)的圖像截取區(qū)域?qū)⑺臄z的畫面中正中間部分的與屏幕尺寸適配的畫面截取出來作為第i幀VR圖像寫入至顯存中,進而由屏幕在進行第i次刷新(即第i個預(yù)設(shè)時間間隔)時從顯存中讀取該第i幀VR圖像,并渲染在屏幕上,以呈現(xiàn)給用戶,從而讓用戶觀看到在該頭部轉(zhuǎn)動角度下自己在虛擬世界中看到的畫面,進而完成VR體驗;
但屏幕在刷新(即渲染畫面)時會消耗一定的時間,而在屏幕渲染畫面的這一段時間內(nèi)用戶的頭部還有可能會轉(zhuǎn)動,且一旦轉(zhuǎn)動會導(dǎo)致用戶觀看到的畫面再次有所變化,即用戶應(yīng)該看到的畫面相比于之前已存儲至顯存的畫面有所變化,因而,相關(guān)技術(shù)中的這種在截取VR畫面并存儲至顯存時并未考慮到屏幕延遲的VR圖像顯示方案無疑會導(dǎo)致用戶看到的VR畫面具有延遲性不夠?qū)崟r。
技術(shù)實現(xiàn)要素:
本公開實施例提供了基于VR系統(tǒng)的圖像處理方法及裝置。所述技術(shù)方案如下:
根據(jù)本公開實施例的第一方面,提供一種基于VR系統(tǒng)的圖像處理方法,包括:
確定所述VR系統(tǒng)中的圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置,其中,所述虛擬相機為所述VR系統(tǒng)中的虛擬相機,所述i為正整數(shù);
獲取所述VR系統(tǒng)中的圖像顯示延遲時間;
根據(jù)所述圖像顯示延遲時間和所述對應(yīng)的預(yù)設(shè)位置,對所述圖像截取區(qū)域進行處理;
將處理后的圖像截取區(qū)域所截取的圖像作為所述第i幀VR顯示圖像寫入顯存中。
在一個實施例中,所述獲取所述VR系統(tǒng)中的圖像顯示延遲時間,包括:
根據(jù)所述VR系統(tǒng)中顯示屏的屏幕刷新頻率,分別確定所述顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間;
根據(jù)所述顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間,分別確定所述第i幀VR顯示圖像的左半部分圖像和右半部分圖像的左延遲時間和右延遲時間。
在一個實施例中,所述圖像截取區(qū)域包括左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域;
所述根據(jù)所述圖像顯示延遲時間和所述對應(yīng)的預(yù)設(shè)位置,對所述圖像截取區(qū)域進行處理,包括:
根據(jù)所述左延遲時間、所述右延遲時間和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,以得到處理后的所述圖像截取區(qū)域。
在一個實施例中,所述根據(jù)所述左延遲時間、所述右延遲時間和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,包括:
獲取所述虛擬相機的旋轉(zhuǎn)角速度;
根據(jù)所述旋轉(zhuǎn)角速度,分別預(yù)測所述虛擬相機在所述左延遲時間內(nèi)的第一旋轉(zhuǎn)角度和所述虛擬相機在所述右延遲時間內(nèi)的第二旋轉(zhuǎn)角度;
根據(jù)所述第一旋轉(zhuǎn)角度、所述第二旋轉(zhuǎn)角度和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理。
在一個實施例中,所述根據(jù)所述第一旋轉(zhuǎn)角度、所述第二旋轉(zhuǎn)角度和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,包括:
獲取所述左半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣和所述右半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣;
根據(jù)所述左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣和所述第一旋轉(zhuǎn)角度,獲取所述第一旋轉(zhuǎn)角度對應(yīng)的第一旋轉(zhuǎn)矩陣;
根據(jù)所述右半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣和所述第二旋轉(zhuǎn)角度,獲取所述第二旋轉(zhuǎn)角度對應(yīng)的第二旋轉(zhuǎn)矩陣;
根據(jù)所述第一旋轉(zhuǎn)矩陣的逆矩陣和所述左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,確定所述左半屏圖像的截取區(qū)域?qū)?yīng)的左變形矩陣;
根據(jù)所述第二旋轉(zhuǎn)矩陣的逆矩陣和所述右半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,確定所述右半屏圖像的截取區(qū)域?qū)?yīng)的右變形矩陣;
在基于所述對應(yīng)的預(yù)設(shè)位置的基礎(chǔ)上,分別根據(jù)所述左變形矩陣對所述左半屏圖像的截取區(qū)域和所述右變形矩陣對所述右半屏圖像的截取區(qū)域進行處理,得到處理后的左半屏圖像的截取區(qū)域和處理后的右半屏圖像的截取區(qū)域;
所述將處理后的圖像截取區(qū)域所截取的圖像作為所述第i幀VR顯示圖像寫入顯存中,包括:
根據(jù)處理后的左半屏圖像的截取區(qū)域從所述虛擬相機在所述目標旋轉(zhuǎn)角度下拍攝的目標待截取VR圖像中截取第一圖像,并將所述第一圖像作為所述第i幀VR顯示圖像的左半部分圖像;
根據(jù)處理后的右半屏圖像的截取區(qū)域從所述虛擬相機在所述目標旋轉(zhuǎn)角度下拍攝的目標待截取VR圖像中截取第二圖像,并將所述第二圖像作為所述第i幀VR顯示圖像的右半部分圖像,其中,所述處理包括旋轉(zhuǎn)和/或處理,其中,所述目標待截取VR圖像包括第i幀待截取VR圖像或者第i-m幀待截取VR圖像,其中,m為小于或等于i的正整數(shù)。
在一個實施例中,所述對應(yīng)的預(yù)設(shè)位置包括:所述圖像截取區(qū)域位于所述虛擬相機在所述目標旋轉(zhuǎn)角度下拍攝到的目標待截取VR圖像的正中間位置時的位置坐標,其中,所述目標待截取VR圖像包括第i幀待截取VR圖像或者第i-m幀待截取VR圖像。
在一個實施例中,所述VR系統(tǒng)包括:VR頭盔和內(nèi)置于所述VR頭盔的移動設(shè)備。
根據(jù)本公開實施例的第二方面,提供一種基于VR系統(tǒng)的圖像處理裝置,包括:
確定模塊,用于確定所述VR系統(tǒng)中的圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置,其中,所述虛擬相機為所述VR系統(tǒng)中的虛擬相機,所述i為正整數(shù);
獲取模塊,用于獲取所述VR系統(tǒng)中的圖像顯示延遲時間;
處理模塊,用于根據(jù)所述圖像顯示延遲時間和所述對應(yīng)的預(yù)設(shè)位置,對所述圖像截取區(qū)域進行處理;
寫入模塊,用于將處理后的圖像截取區(qū)域所截取的圖像作為所述第i幀VR顯示圖像寫入顯存中。
在一個實施例中,所述獲取模塊包括:
渲染時間確定子模塊,用于根據(jù)所述VR系統(tǒng)中顯示屏的屏幕刷新頻率,分別確定所述顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間;
延遲時間確定子模塊,用于根據(jù)所述顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間,分別確定所述第i幀VR顯示圖像的左半部分圖像和右半部分圖像的左延遲時間和右延遲時間。
在一個實施例中,所述圖像截取區(qū)域包括左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域;
所述處理模塊包括:
處理子模塊,用于根據(jù)所述左延遲時間、所述右延遲時間和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,以得到處理后的所述圖像截取區(qū)域。
在一個實施例中,所述處理子模塊包括:
獲取單元,用于獲取所述虛擬相機的旋轉(zhuǎn)角速度;
預(yù)測單元,用于根據(jù)所述旋轉(zhuǎn)角速度,分別預(yù)測所述虛擬相機在所述左延遲時間內(nèi)的第一旋轉(zhuǎn)角度和所述虛擬相機在所述右延遲時間內(nèi)的第二旋轉(zhuǎn)角度;
處理單元,用于根據(jù)所述第一旋轉(zhuǎn)角度、所述第二旋轉(zhuǎn)角度和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理。
在一個實施例中,所述處理單元包括:
第一獲取子單元,用于獲取所述左半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣和所述右半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣;
第二獲取子單元,用于根據(jù)所述左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣和所述第一旋轉(zhuǎn)角度,獲取所述第一旋轉(zhuǎn)角度對應(yīng)的第一旋轉(zhuǎn)矩陣;
第三獲取子單元,用于根據(jù)所述右半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣和所述第二旋轉(zhuǎn)角度,獲取所述第二旋轉(zhuǎn)角度對應(yīng)的第二旋轉(zhuǎn)矩陣;
第一確定子單元,用于根據(jù)所述第一旋轉(zhuǎn)矩陣的逆矩陣和所述左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,確定所述左半屏圖像的截取區(qū)域?qū)?yīng)的左變形矩陣;
第二確定子單元,用于根據(jù)所述第二旋轉(zhuǎn)矩陣的逆矩陣和所述右半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,確定所述右半屏圖像的截取區(qū)域?qū)?yīng)的右變形矩陣;
處理子單元,用于在基于所述對應(yīng)的預(yù)設(shè)位置的基礎(chǔ)上,分別根據(jù)所述左變形矩陣對所述左半屏圖像的截取區(qū)域和所述右變形矩陣對所述右半屏圖像的截取區(qū)域進行處理,得到處理后的左半屏圖像的截取區(qū)域和處理后的右半屏圖像的截取區(qū)域;
所述寫入模塊,包括:
第一截取子模塊,用于根據(jù)處理后的左半屏圖像的截取區(qū)域從所述虛擬相機在所述目標旋轉(zhuǎn)角度下拍攝的目標待截取VR圖像中截取第一圖像,并將所述第一圖像作為所述第i幀VR顯示圖像的左半部分圖像;
第二截取子模塊,用于根據(jù)處理后的右半屏圖像的截取區(qū)域從所述虛擬相機在所述目標旋轉(zhuǎn)角度下拍攝的目標待截取VR圖像中截取第二圖像,并將所述第二圖像作為所述第i幀VR顯示圖像的右半部分圖像,其中,所述處理包括旋轉(zhuǎn)和/或處理,其中,所述目標待截取VR圖像包括第i幀待截取VR圖像或者第i-m幀待截取VR圖像,其中,m為小于或等于i的正整數(shù)。
在一個實施例中,所述對應(yīng)的預(yù)設(shè)位置包括:所述圖像截取區(qū)域位于所述虛擬相機在所述目標旋轉(zhuǎn)角度下拍攝到的目標待截取VR圖像的正中間位置時的位置坐標,其中,所述目標待截取VR圖像包括第i幀待截取VR圖像或者第i-m幀待截取VR圖像。
在一個實施例中,所述VR系統(tǒng)包括:VR頭盔和內(nèi)置于所述VR頭盔的移動設(shè)備。
根據(jù)本公開實施例的第三方面,提供了一種基于VR系統(tǒng)的圖像處理裝置,包括:
處理器;
用于存儲處理器可執(zhí)行指令的存儲器;
其中,所述處理器被配置為:
確定所述VR系統(tǒng)中的圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置,其中,所述虛擬相機為所述VR系統(tǒng)中的虛擬相機,所述i為正整數(shù);
獲取所述VR系統(tǒng)中的圖像顯示延遲時間;
根據(jù)所述圖像顯示延遲時間和所述對應(yīng)的預(yù)設(shè)位置,對所述圖像截取區(qū)域進行處理;
將處理后的圖像截取區(qū)域所截取的圖像作為所述第i幀VR顯示圖像寫入顯存中。
本公開的實施例提供的技術(shù)方案可以包括以下有益效果:
本公開的實施例提供的技術(shù)方案,通過確定VR系統(tǒng)中的圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置、圖像顯示延遲時間,可以根據(jù)該圖像顯示延遲時間和該對應(yīng)的預(yù)設(shè)位置,對該圖像截取區(qū)域進行自動處理,如自動旋轉(zhuǎn)或者移動等,從而使得可根據(jù)處理后的圖像截取區(qū)域截取圖像,并將截取的圖像作為第i幀VR顯示圖像寫入顯存中,從而實現(xiàn)在將第i幀VR顯示圖像顯示至屏幕之前,能夠盡可能根據(jù)頭戴VR頭盔的用戶在該圖像顯示延遲時間內(nèi)可能發(fā)生的頭部轉(zhuǎn)動,對圖像截取區(qū)域進行處理,以使得處理后的圖像截取區(qū)域所截取的圖像盡可能接近用戶頭部轉(zhuǎn)動后應(yīng)該觀看到的真實VR圖像,這樣就減少了圖像顯示延遲時間對用戶本應(yīng)該看到的VR顯示圖像的影響,使得用戶看到的第i幀VR顯示圖像盡可能具有小的延遲和具有一定程度的實時性,進而使得即便頭戴VR頭盔的用戶在該圖像顯示延遲時間內(nèi)頭部發(fā)生了轉(zhuǎn)動而導(dǎo)致畫面發(fā)生變化,用戶仍然能夠盡可能的觀看到變化后的VR顯示圖像,而不是相關(guān)技術(shù)中截取的具有較大延遲的VR顯示圖像。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理。
圖1是根據(jù)一示例性實施例示出的一種基于VR系統(tǒng)的圖像處理方法的流程圖。
圖2是根據(jù)一示例性實施例示出的另一種基于VR系統(tǒng)的圖像處理方法的流程圖。
圖3是根據(jù)一示例性實施例示出的又一種基于VR系統(tǒng)的圖像處理方法的流程圖。
圖4是根據(jù)一示例性實施例示出的再一種基于VR系統(tǒng)的圖像處理方法的流程圖。
圖5是根據(jù)一示例性實施例示出的再一種基于VR系統(tǒng)的圖像處理方法的流程圖。
圖6是根據(jù)一示例性實施例示出的一種基于VR系統(tǒng)的圖像處理裝置的框圖。
圖7是根據(jù)一示例性實施例示出的另一種基于VR系統(tǒng)的圖像處理裝置的框圖。
圖8是根據(jù)一示例性實施例示出的又一種基于VR系統(tǒng)的圖像處理裝置的框圖。
圖9是根據(jù)一示例性實施例示出的再一種基于VR系統(tǒng)的圖像處理裝置的框圖。
圖10是根據(jù)一示例性實施例示出的再一種基于VR系統(tǒng)的圖像處理裝置的框圖。
圖11是根據(jù)一示例性實施例示出的適用于基于VR系統(tǒng)的圖像處理裝置的框圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
在相關(guān)技術(shù)中,VR系統(tǒng)在用戶佩戴好VR頭盔后會按照與屏幕刷新頻率對應(yīng)的預(yù)設(shè)時間間隔(即該屏幕刷新頻率的倒數(shù))采集當(dāng)前需要顯示的VR圖像,進而將VR圖像通過VR頭盔中的屏幕進行顯示,以使用戶完成VR體驗,而具體的圖像顯示方案為:VR系統(tǒng)在用戶佩戴好VR頭盔后,確定需顯示的第i幀VR圖像對應(yīng)的頭部轉(zhuǎn)動角度(即虛擬相機需要轉(zhuǎn)動的旋轉(zhuǎn)角度),并通過控制該虛擬相機旋轉(zhuǎn)該角度后,拍攝該頭部轉(zhuǎn)動角度所朝向的觀看方向?qū)?yīng)的畫面,然后通過VR系統(tǒng)中位于所拍攝的畫面的指定位置(如正中間)的圖像截取區(qū)域?qū)⑺臄z的畫面中正中間部分的與屏幕尺寸適配的畫面截取出來作為第i幀VR圖像寫入至顯存中,進而由屏幕在進行第i次刷新(即第i個預(yù)設(shè)時間間隔)時從顯存中讀取該第i幀VR圖像,并渲染在屏幕上,以呈現(xiàn)給用戶,從而讓用戶觀看到在該頭部轉(zhuǎn)動角度下自己在虛擬世界中看到的畫面,進而完成VR體驗;
但屏幕在刷新(即渲染畫面)時會消耗一定的時間,而在屏幕渲染畫面的這一段時間內(nèi)用戶的頭部還有可能會轉(zhuǎn)動,且一旦轉(zhuǎn)動會導(dǎo)致用戶觀看到的畫面再次有所變化,即用戶應(yīng)該看到的畫面相比于之前已存儲至顯存的畫面有所變化,因而,相關(guān)技術(shù)中的這種在截取VR畫面并存儲至顯存時并未考慮到屏幕顯示延遲而可能導(dǎo)致VR圖像發(fā)生變化的顯示方案無疑會導(dǎo)致用戶看到的VR畫面具有延遲性不夠?qū)崟r;
另一方面,由于屏幕渲染VR畫面時需要保持固定的FPS(Frames Per Second,每秒傳輸幀數(shù))即需要保持該屏幕刷新頻率,例如,當(dāng)屏幕刷新頻率等于每秒60幀時,就需要屏幕每秒顯示60張圖像,但在CPU、GPU或者其它資源有延遲的時候可能導(dǎo)致生成VR圖像的速度達不到每秒60張,從而出現(xiàn)丟幀的問題,但相關(guān)技術(shù)中的VR圖像顯示方案并無法解決此問題。
為了解決上述技術(shù)問題,本公開實施例提供了一種基于VR系統(tǒng)的圖像處理方法,該方法可用于基于VR系統(tǒng)的圖像處理程序、系統(tǒng)或裝置中,且該方法對應(yīng)的執(zhí)行主體可以是由移動設(shè)備(如手機)和VR頭盔組合而成的VR系統(tǒng)、或者是VR頭盔與計算機組成的VR系統(tǒng),當(dāng)然此時VR頭盔中仍然內(nèi)置有屏幕。
圖1是根據(jù)一示例性實施例示出的一種基于VR系統(tǒng)的圖像處理方法的流程圖。
如圖1所示,該方法包括步驟S101至步驟S104:
在步驟S101中,確定VR系統(tǒng)中的圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置,其中,虛擬相機為VR系統(tǒng)中的虛擬相機,i為正整數(shù),而目標旋轉(zhuǎn)角度即頭部旋轉(zhuǎn)角度;
其中,當(dāng)屏幕刷新頻率為f時,屏幕每渲染一張圖像需要消耗的時間為1/f,例如,當(dāng)f=60hz時,屏幕每渲染一張圖像需要消耗的時間為16.67ms,而由于屏幕在渲染相鄰兩幀圖像時時間間隔剛好為16.67ms,因而,當(dāng)屏幕刷新頻率為f時,屏幕刷新的時間間隔也剛好為預(yù)設(shè)時間間隔1/f;
其次,當(dāng)VR系統(tǒng)按照屏幕刷新頻率f刷新屏幕時,在用戶佩戴上VR頭盔后,VR系統(tǒng)中的虛擬相機也可按照該預(yù)設(shè)時間間隔采集每幀需顯示在屏幕上的VR圖像并寫入顯存中,以為屏幕能夠按照屏幕刷新頻率f將每幀采集到的VR圖像渲染至屏幕上,以供用戶觀看奠定基礎(chǔ);
另外,該目標旋轉(zhuǎn)角度為虛擬相機拍攝目標待截取VR圖像時的旋轉(zhuǎn)角度(即拍攝目標待截取VR圖像時,頭戴VR頭盔的用戶的頭部相對于VR系統(tǒng)中的三維坐標系的三個坐標軸的轉(zhuǎn)動角度,而目標待截取VR圖像將在下面的實施例中進行介紹),具體地,當(dāng)CPU(Central Processing Unit,中央處理器)、GPU(Graphics Processing Unit,圖形處理器)或者其它資源沒有延遲能夠正??刂铺摂M相機可按照該預(yù)設(shè)時間間隔(即1/f)拍攝每幀需顯示在屏幕上的VR圖像即目標待截取VR圖像為第i幀待截取VR圖像時,該目標旋轉(zhuǎn)角度為虛擬相機拍攝第i幀VR顯示圖像所在的第i幀待截取VR圖像時的旋轉(zhuǎn)角度;而該圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置可以為該圖像截取區(qū)域位于該第i幀待截取VR圖像的正中間區(qū)域時(在該VR系統(tǒng)的三維坐標系中)的位置坐標,即該圖像截取區(qū)域位于該第i幀待截取VR圖像的正中間區(qū)域時其各頂點的坐標值,而該圖像截取區(qū)域位于該第i幀待截取VR圖像的正中間區(qū)域時其各頂點的坐標值可以通過VR系統(tǒng)為圖像截取區(qū)域所賦予的各頂點的初始坐標值和該目標旋轉(zhuǎn)角度對應(yīng)的旋轉(zhuǎn)矩陣獲得(如通過各頂點的初始坐標值獲得各頂點相對于坐標原點的初始向量,進而將各頂點的初始向量與該目標旋轉(zhuǎn)角度對應(yīng)的目標旋轉(zhuǎn)矩陣相乘即可獲得該圖像截取區(qū)域位于該第i幀待截取VR圖像的正中間區(qū)域時其各頂點的坐標值),而該圖像截取區(qū)域位于上述對應(yīng)的預(yù)設(shè)位置時從該第i幀待截取VR圖像中截取出的與屏幕尺寸適配的VR圖像即相關(guān)技術(shù)中的截取出來用于存儲至顯存中的有延遲的第i幀VR圖像。
而當(dāng)CPU、GPU或者其它資源有延遲無法正??刂铺摂M相機拍攝第i幀待截取VR圖像(即有丟幀現(xiàn)象)即目標待截取VR圖像為第i-m幀待截取VR圖像時,該目標旋轉(zhuǎn)角度為虛擬相機拍攝第i-m幀VR顯示圖像所在的第i-m幀待截取VR圖像時的旋轉(zhuǎn)角度;而該圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置可以為該圖像截取區(qū)域位于該第i-m幀待截取VR圖像的正中間區(qū)域時(在該VR系統(tǒng)的三維坐標系中)的位置坐標,即該圖像截取區(qū)域位于該第i-m幀待截取VR圖像的正中間區(qū)域時其各頂點的坐標值,優(yōu)選地,m等于1。
進一步地,圖像截取區(qū)域的尺寸依據(jù)屏幕的尺寸而定,而在通常情況下,圖像截取區(qū)域的尺寸稍大于屏幕尺寸,如圖像截取區(qū)域通常為正方形區(qū)域,同時,目標待截取VR圖像的尺寸應(yīng)該大于圖像截取區(qū)域的尺寸,以便于從中進行圖像截取,例如,當(dāng)屏幕的分辨率為1920p*1080p(其中p即Pixel(像素點))時,圖像截取區(qū)域的尺寸可以是1920p*1920p,而目標待截取VR圖像大于1920p*1920p以便于進行圖像截取即可。
在步驟S102中,獲取VR系統(tǒng)中的圖像顯示延遲時間;
在步驟S103中,根據(jù)圖像顯示延遲時間和對應(yīng)的預(yù)設(shè)位置,對圖像截取區(qū)域進行處理;
在步驟S104中,將處理后的圖像截取區(qū)域所截取的圖像作為第i幀VR顯示圖像寫入顯存中。
通過確定VR系統(tǒng)中的圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置、圖像顯示延遲時間,可以根據(jù)該圖像顯示延遲時間和該對應(yīng)的預(yù)設(shè)位置,對該圖像截取區(qū)域進行自動處理,如自動旋轉(zhuǎn)或者移動等,從而使得可根據(jù)處理后的圖像截取區(qū)域截取圖像,并將截取的圖像作為第i幀VR顯示圖像寫入顯存中,從而實現(xiàn)在將第i幀VR顯示圖像顯示至屏幕之前,能夠盡可能根據(jù)頭戴VR頭盔的用戶在該圖像顯示延遲時間內(nèi)可能發(fā)生的頭部轉(zhuǎn)動,對圖像截取區(qū)域進行處理,以使得處理后的圖像截取區(qū)域所截取的圖像盡可能接近用戶頭部轉(zhuǎn)動后應(yīng)該觀看到的真實VR圖像,這樣就減少了圖像顯示延遲時間對用戶本應(yīng)該看到的VR顯示圖像的影響,使得用戶看到的第i幀VR顯示圖像盡可能具有小的延遲和具有一定程度的實時性,進而使得即便頭戴VR頭盔的用戶在該圖像顯示延遲時間內(nèi)頭部發(fā)生了轉(zhuǎn)動而導(dǎo)致畫面發(fā)生變化,用戶仍然能夠盡可能的觀看到變化后的VR顯示圖像,而不是相關(guān)技術(shù)中截取的具有較大延遲的VR顯示圖像。
當(dāng)然,上述步驟S101至步驟104可按照上述預(yù)設(shè)時間間隔不斷執(zhí)行,以不斷采集每幀需要顯示在屏幕上的VR顯示圖像,且i可以取任意正整數(shù),因而,第i幀VR顯示圖像為屏幕上應(yīng)該渲染的任意一幀VR顯示圖像。
另外,在CPU、GPU或者其它資源具有延遲而導(dǎo)致圖像采集的速度達不到屏幕刷新頻率即這些資源無法及時控制虛擬相機拍攝到第i幀待截取VR圖像時,可以將第i-m次執(zhí)行上述步驟S101時圖像截取區(qū)域所處的對應(yīng)的預(yù)設(shè)位置(即圖像截取區(qū)域在虛擬相機拍攝第i-m幀待截取VR圖像時,位于第i-m幀待截取VR圖像的正中間區(qū)域的位置坐標)作為參考,進而繼續(xù)第i次執(zhí)行步驟S102至步驟S104之后,即可盡可能及時得到第i幀VR顯示圖像,以盡可能實現(xiàn)及時補幀,從而盡可能避免丟幀,進而避免影響用戶的VR體驗。
圖2是根據(jù)一示例性實施例示出的另一種基于VR系統(tǒng)的圖像處理方法的流程圖。
如圖2所示,在一個實施例中,上述圖1所示的步驟S102,即獲取VR系統(tǒng)中的圖像顯示延遲時間,可以包括步驟A1和步驟A2:
在步驟A1中,根據(jù)VR系統(tǒng)中顯示屏的屏幕刷新頻率,分別確定顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間;
在步驟A2中,根據(jù)顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間,分別確定第i幀VR顯示圖像的左半部分圖像和右半部分圖像的左延遲時間和右延遲時間。
顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間可依據(jù)顯示屏的屏幕刷新頻率而定,具體地,當(dāng)顯示屏的渲染順序為從左到右時,由于左半屏圖像相比于右半屏圖像會被先渲染完成,因而,渲染左半屏圖像所消耗的時間=1/f/2,其中,f為屏幕刷新頻率,渲染右半屏圖像所消耗的時間=1/f(當(dāng)然,顯示屏渲染完一幀圖像所消耗的時間自然為1/f,且這種顯示屏渲染順序是最常用的),同樣地,當(dāng)顯示屏的渲染順序為從右到左時,由于右半屏圖像相比于左半屏圖像會被先渲染完成,因而,渲染左半屏圖像所消耗的時間=1/f,其中,f為屏幕刷新頻率,渲染右半屏圖像所消耗的時間=1/f/2,而當(dāng)顯示屏的渲染順序為從上到下/從下到上時,由于左半屏圖像和右半屏圖像會被同時渲染完成,因而,渲染左半屏圖像和右半屏圖像所消耗的時間均等于1/f。
進一步地,由于用戶看到左半屏圖像和右半屏圖像的時間與左半屏圖像和右半屏圖像的渲染完成時間有關(guān),因而,可根據(jù)顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間分別確定第i幀VR顯示圖像的左半部分圖像和右半部分圖像的左延遲時間和右延遲時間,例如,可將顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間分別確定為第i幀VR顯示圖像的左半部分圖像和右半部分圖像的左延遲時間和右延遲時間(如當(dāng)f=60hz且顯示屏的渲染順序為從左到右時,渲染左半屏圖像和右半屏圖像時,所需消耗的時間分別為8.33ms(即毫秒)和16.67ms,而VR頭盔中鏡片與顯示屏之間的距離較近,如僅隔著一個凸透鏡,因而,左眼只能看到左半屏圖像、右眼只能看到右半屏圖像,所以,左右眼看到左半屏圖像和右半屏圖像的延遲時間分別為8.33ms和16.67ms),而左半部分圖像即:將顯示屏一分為二后,第i幀VR顯示圖像中顯示在左半顯示屏上的左半屏圖像,同樣地,右半部分圖像即:將顯示屏一分為二后,第i幀VR顯示圖像中顯示在右半顯示屏上的右半屏圖像。
另外,需要說明的是:本公開中的第i幀VR顯示圖像的左半部分圖像和右半部分圖像在顯示至屏幕之前,該第i幀VR顯示圖像在顯存中可能對應(yīng)兩張獨立的圖像或者僅對應(yīng)一張圖像,具體地,如果該VR系統(tǒng)中具有兩個虛擬相機,則左右兩個虛擬相機在頭戴VR頭盔的用戶頭部旋轉(zhuǎn)后會分別拍攝左右兩張待截取VR圖像,而左半屏圖像的截取區(qū)域用于截取左虛擬相機拍攝的(左)待截取VR圖像,右半屏圖像的截取區(qū)域用于截取右虛擬相機拍攝的(右)待截取VR圖像,同時使用左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域截取后的圖像分別為頭戴VR頭盔的用戶左眼觀看到的左圖像(即第i幀VR顯示圖像的左半部分圖像)和右眼觀看到的右圖像(即第i幀VR顯示圖像的右半部分圖像),而如果該VR系統(tǒng)中僅有一個虛擬相機,則這個虛擬相機在頭戴VR頭盔的用戶頭部旋轉(zhuǎn)后會僅會拍攝一張待截取VR圖像,而左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域分別用于從待截取的VR圖像的左半張圖像和右半張圖像中截取圖像,且左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域截取的圖像分別為頭戴VR頭盔的用戶頭部轉(zhuǎn)動后左眼觀看到的左圖像(即第i幀VR顯示圖像的左半部分圖像)和右眼觀看到的右圖像(即第i幀VR顯示圖像的右半部分圖像);同樣地,寫入顯存中的參考VR顯示圖像可能對應(yīng)左右兩張獨立的圖像或者僅對應(yīng)一張圖像。
當(dāng)然,本公開是以VR系統(tǒng)中只有一塊顯示屏為例說明圖像處理方式,當(dāng)VR系統(tǒng)中具有左右兩個顯示屏?xí)r,也可適用于本公開,只是上述第i幀VR顯示圖像的左半部分圖像和右半部分圖像分別為左顯示屏待顯示的第i幀VR顯示圖像和右顯示屏待顯示的第i幀的VR顯示圖像,此時,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)了解,本公開中的第i幀VR顯示圖像可理解為是對左顯示屏待顯示的第i幀VR顯示圖像和右顯示屏待顯示的第i幀的VR顯示圖像的統(tǒng)稱,且本公開中的第i幀VR顯示圖像的左半部分圖像和右半部分圖像分別相當(dāng)于左顯示屏待顯示的第i幀VR顯示圖像和右顯示屏待顯示的第i幀的VR顯示圖像,同時左延遲時間和右延遲時間是相等的,均等于1/f。
最后,為了確保VR系統(tǒng)中圖像采集過程(即步驟S101和步驟S104)和圖像顯示過程(即屏幕從顯存中讀取第i幀VR圖像,并根據(jù)第i幀VR圖像中每個像素點的像素值點亮屏幕的過程,這是現(xiàn)有技術(shù),本公開未示出)能夠相互不影響、可以同時進行,這兩個過程可以并行進行,即在CPU、GPU或者其它資源沒有延遲時,在按照預(yù)設(shè)時間間隔執(zhí)行上述步驟S101至步驟S104時,也按照預(yù)設(shè)時間間隔執(zhí)行圖像顯示過程;但為了確保能夠盡可能及時地按照該預(yù)設(shè)時間間隔執(zhí)行圖像顯示過程,將寫入顯存中的圖像渲染至屏幕上,以滿足該屏幕刷新頻率,可控制圖像采集過程稍微比圖像顯示過程早一點進行,如控制控制圖像采集過程一直比圖像顯示過程早一幀進行,這樣,第i幀VR顯示圖像就會在第i-1個預(yù)設(shè)時間間隔(即第i-1個預(yù)設(shè)時間間隔對應(yīng)的時間段)內(nèi)被寫入顯存中,當(dāng)然,圖像采集過程如果過早進行,也會導(dǎo)致延遲時間更長,因而,當(dāng)VR頭盔中的屏幕只有一塊時,由于顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間剛好相差半個預(yù)設(shè)時間間隔(即1/f/2),所以,也可控制圖像采集過程一直比圖像顯示過程早半幀進行,這樣,第i幀VR顯示圖像中的左半幀VR顯示圖像(即第i幀VR顯示圖像的左半部分圖像)會在第i-1個預(yù)設(shè)時間間隔中的后半個預(yù)設(shè)時間間隔(即第i-1個預(yù)設(shè)時間間隔對應(yīng)的時間段內(nèi)的后半個時間段)內(nèi)被寫入顯存中,而第i幀VR顯示圖像中的右半幀VR顯示圖像(即第i幀VR顯示圖像的右半部分圖像)會在第i個預(yù)設(shè)時間間隔中的前半個時間間隔(即第i個時間間隔對應(yīng)的時間段內(nèi)的前半個時間段)內(nèi)被寫入顯存中,但無論采用哪種方式控制圖像采集過程稍微比圖像顯示過程早一點進行,由于屏幕從顯存中讀取圖像數(shù)據(jù)相比于圖像被存儲至顯存中已有一定的延遲,因而,當(dāng)CPU、GPU或者其它資源沒有延遲能夠正??刂铺摂M相機拍攝第i幀VR顯示圖像所在的第i幀待截取VR圖像時,在根據(jù)顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間,分別確定第i幀VR顯示圖像的左半部分圖像和右半部分圖像的左延遲時間和右延遲時間時,可將由顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間分別確定的左延遲時間和右延遲時間進行適當(dāng)延長,例如,當(dāng)圖像采集過程一直比圖像顯示過程早半幀時,可將左延遲時間和右延遲時間延長半個預(yù)設(shè)時間間隔(即1/f/2)或者四分之一個預(yù)設(shè)時間間隔(即1/f/4),以盡可能確保延遲時間和右延遲時間比較準確,從而盡可能確??赏ㄟ^處理后的圖像截取區(qū)域截取出的更為真實、準確、延遲更小的第i幀VR顯示圖像。
當(dāng)然,當(dāng)CPU、GPU或者其它資源有延遲而無法及時控制虛擬相機拍攝出第i幀待截取VR圖像時,由于除了屏幕從顯存中讀取第i幀VR顯示圖像相比于第i幀VR顯示圖像被存儲至顯存中已有一定的延遲之外,從屏幕開始從顯存中讀取第i-m幀VR顯示圖像至屏幕開始從顯存中讀取第i幀VR顯示圖像已間隔m個1/f(即間隔m*(1/f)),所以,在這種情況下,左延遲時間和右延遲時間在上述已延長的基礎(chǔ)上應(yīng)該被進一步延長,如左延遲時間和右延遲時間可被進一步延長m個預(yù)設(shè)時間間隔或者m/2個預(yù)設(shè)時間間隔,例如,當(dāng)已初步延長的左延遲時間和右延遲時間分別為8.33ms+ΔT0和16.67ms+ΔT0,且m=1時,可將已延遲的左延遲時間和右延遲時間再進一步延遲ΔT1,使得最終的左延遲時間為8.33ms+ΔT0+ΔT1,最終的右延遲時間為16.67+ΔT0+ΔT1,其中,當(dāng)圖像采集過程一直比圖像顯示過程早半幀時,該ΔT0可以是半個預(yù)設(shè)時間間隔,而ΔT1可以是一個預(yù)設(shè)時間間隔即1/f,另外,第i-m幀待截取VR圖像為距離該第i幀待截取VR圖像最近的,在CPU、GPU或者其它資源沒有延遲的情況下,虛擬相機正常拍攝的待截取VR圖像,而優(yōu)選地,m=1。
圖3是根據(jù)一示例性實施例示出的又一種基于VR系統(tǒng)的圖像處理方法的流程圖。
如圖3所示,在一個實施例中,圖像截取區(qū)域包括左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域;
其中,由于左延遲時間和右延遲時間可能不同且第i幀VR顯示圖像的左半部分圖像和右半部分圖像的位置不同,因而,圖像截取區(qū)域可以包括左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域,而左半屏圖像的截取區(qū)域用于截取第i幀VR顯示圖像的左半部分圖像,右半屏圖像的截取區(qū)域用于截取第i幀VR顯示圖像的右半部分圖像。
相應(yīng)地,圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置也包括:左半屏圖像的截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置和右半屏圖像的截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置。
當(dāng)然,正如上文,如果VR系統(tǒng)中僅有一個虛擬相機,則虛擬相機僅會拍攝一張待截取VR圖像,此時,左半屏圖像的截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置和右半屏圖像的截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置可以分別為在虛擬相機拍攝目標待截取VR圖像處于目標旋轉(zhuǎn)角度時,圖像截取區(qū)域作為一個整體位于該目標待截取VR圖像的正中間區(qū)域時,左半屏圖像的截取區(qū)域的位置坐標和右半屏圖像的截取區(qū)域的位置坐標;
如果VR系統(tǒng)中有左右兩個虛擬相機,則虛擬相機會拍攝左右兩張待截取VR圖像,此時,左半屏圖像的截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置可以為:在左虛擬相機拍攝(左)目標待截取VR圖像處于目標旋轉(zhuǎn)角度時,該左半屏圖像的截取區(qū)域位于該左虛擬相機所拍攝的(左)目標待截取VR圖像的正中間區(qū)域時的位置坐標,右半屏圖像的截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置可以為:在右虛擬相機拍攝(右)目標待截取VR圖像處于目標旋轉(zhuǎn)角度時,該右半屏圖像的截取區(qū)域位于右虛擬相機所拍攝的(右)目標待截取VR圖像的正中間區(qū)域時的位置坐標。
上述圖1所示的步驟S103,即根據(jù)圖像顯示延遲時間和對應(yīng)的預(yù)設(shè)位置,對圖像截取區(qū)域進行處理,可以包括步驟B1:
在步驟B1中,根據(jù)左延遲時間、右延遲時間和對應(yīng)的預(yù)設(shè)位置,分別對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,以得到處理后的圖像截取區(qū)域,處理后的圖像截取區(qū)域包括處理后的左半屏圖像的截取區(qū)域和處理后的右半屏圖像的截取區(qū)域。
根據(jù)左延遲時間、右延遲時間和對應(yīng)的預(yù)設(shè)位置,分別對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域分別進行處理時,可以分別基于左延遲時間和左半屏圖像的截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置對左半屏圖像的截取區(qū)域自動地進行移動、旋轉(zhuǎn)等處理,基于右延遲時間和右半屏圖像的截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置對右半屏圖像的截取區(qū)域自動地進行移動、旋轉(zhuǎn)等處理,以便于可將處理后的左半屏圖像的截取區(qū)域所截取的圖像作為第i幀VR顯示圖像的左半部分圖像和將處理后的右半屏圖像的截取區(qū)域所截取的圖像作為第i幀VR顯示圖像的右半部分圖像被存儲至顯存中,從而實現(xiàn)在將第i幀VR顯示圖像的左半部分圖像和右半部分圖像顯示至屏幕之前,能夠盡可能根據(jù)預(yù)測的頭戴VR頭盔的用戶分別在該左延遲時間和右延遲時間內(nèi)可能發(fā)生的頭部轉(zhuǎn)動,分別對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,以使得處理后的左半屏圖像的截取區(qū)域和處理后的右半屏圖像的截取區(qū)域所截取的圖像盡可能接近用戶頭部轉(zhuǎn)動后應(yīng)該觀看到的真實VR圖像,這樣就減少了左延遲時間和右延遲時間對用戶本應(yīng)該看到的VR顯示圖像的影響,使得用戶看到的第i幀VR顯示圖像的左半部分圖像和右半部分圖像盡可能具有小的延遲和具有一定程度的實時性,進而使得即便頭戴VR頭盔的用戶在左延遲時間和右延遲時間內(nèi)頭部發(fā)生了轉(zhuǎn)動而導(dǎo)致畫面發(fā)生變化,用戶仍然能夠盡可能的觀看到變化后的VR顯示圖像,而不是相關(guān)技術(shù)中截取的具有較大延遲的VR顯示圖像。
圖4是根據(jù)一示例性實施例示出的再一種基于VR系統(tǒng)的圖像處理方法的流程圖。
如圖4所示,在一個實施例中,上述圖3所示的步驟B1,級根據(jù)左延遲時間、右延遲時間和對應(yīng)的預(yù)設(shè)位置,分別對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,可以包括步驟S401至步驟S403:
在步驟S401中,獲取虛擬相機的旋轉(zhuǎn)角速度;
該旋轉(zhuǎn)角速度可以從VR系統(tǒng)中的陀螺儀、加速度計等設(shè)備中自動獲取,而陀螺儀、加速度計等設(shè)備可以是VR系統(tǒng)中VR頭盔上額外安裝的設(shè)備或者是內(nèi)置于VR頭盔的移動終端上原有的設(shè)備。
在步驟S402中,根據(jù)旋轉(zhuǎn)角速度,分別預(yù)測虛擬相機在左延遲時間內(nèi)的第一旋轉(zhuǎn)角度和虛擬相機在右延遲時間內(nèi)的第二旋轉(zhuǎn)角度;
其次,由于虛擬相機的目標旋轉(zhuǎn)角度等于頭戴VR頭盔的用戶的頭部旋轉(zhuǎn)角度,例如,頭向右移動1度,就會控制虛擬世界中的虛擬相機也向右移動1度,因而,第一旋轉(zhuǎn)角度和第二旋轉(zhuǎn)角度分別為預(yù)測的頭戴VR頭盔的用戶的頭部分別在左延遲時間內(nèi)和右延遲時間內(nèi)可能旋轉(zhuǎn)的角度。
另外,虛擬相機在虛擬世界中的擺放位置可以是系統(tǒng)建立的三維坐標系中的原點,而該三維坐標系的原點可以個性化設(shè)定,且虛擬相機在系統(tǒng)建立的三維坐標系中可在坐標原點沿六個方向隨頭部的轉(zhuǎn)動而進行自由轉(zhuǎn)動。
此外,虛擬相機的旋轉(zhuǎn)角速度和拍攝目標待截取VR圖像時所處的目標旋轉(zhuǎn)角度可通過陀螺儀、加速度計等設(shè)備在頭戴VR頭盔的用戶的頭部轉(zhuǎn)動后獲得的四元數(shù)而測得,且虛擬相機的目標旋轉(zhuǎn)角度等于頭部轉(zhuǎn)動角度,同時,優(yōu)選地,陀螺儀、加速度計等設(shè)備可以是VR頭盔上額外配置的設(shè)備,備選地,當(dāng)VR頭盔中的顯示屏為手機等移動設(shè)備的顯示屏?xí)r,陀螺儀、加速度計等設(shè)備也可以是移動設(shè)備上自帶的設(shè)備。
在步驟S403中,根據(jù)第一旋轉(zhuǎn)角度、第二旋轉(zhuǎn)角度和對應(yīng)的預(yù)設(shè)位置,分別對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理。
在對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域分別進行自動處理時,可自動獲取VR系統(tǒng)中虛擬相機的旋轉(zhuǎn)角速度,進而根據(jù)該旋轉(zhuǎn)角速度分別預(yù)測虛擬相機在左延遲時間內(nèi)的第一旋轉(zhuǎn)角度和虛擬相機在右延遲時間內(nèi)的第二旋轉(zhuǎn)角度,從而根據(jù)該第一旋轉(zhuǎn)角度、第二旋轉(zhuǎn)角度和對應(yīng)的預(yù)設(shè)位置,分別對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行自動處理,如分別根據(jù)該第一旋轉(zhuǎn)角度、和左半屏圖像的截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置對左半屏圖像的截取區(qū)域自動地進行移動、旋轉(zhuǎn)等處理,基于第二旋轉(zhuǎn)角度和右半屏圖像的截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置對右半屏圖像的截取區(qū)域自動地進行移動、旋轉(zhuǎn)等處理,從而實現(xiàn)在將第i幀VR顯示圖像的左半部分圖像和右半部分圖像顯示至屏幕之前,能夠盡可能根據(jù)頭戴VR頭盔的用戶頭部的第一旋轉(zhuǎn)角度和第二旋轉(zhuǎn)角度,分別對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,以使得處理后的左半屏圖像的截取區(qū)域和處理后的右半屏圖像的截取區(qū)域所截取的圖像盡可能接近用戶在圖像顯示延遲時間內(nèi)發(fā)生頭部轉(zhuǎn)動后應(yīng)該觀看到的真實VR圖像,這樣就減少了第一旋轉(zhuǎn)角度和第二旋轉(zhuǎn)角度對用戶本應(yīng)該看到的VR顯示圖像的影響,使得用戶看到的第i幀VR顯示圖像的左半部分圖像和右半部分圖像盡可能具有小的延遲和具有一定程度的實時性,進而使得頭戴VR頭盔的用戶的頭部即便在屏幕渲染VR圖像的左延遲時間內(nèi)大概轉(zhuǎn)動了第一旋轉(zhuǎn)角度和在右延遲時間內(nèi)大概轉(zhuǎn)動了第二旋轉(zhuǎn)角度而導(dǎo)致畫面發(fā)生變化,用戶仍然能夠盡可能的觀看到變化后的VR顯示圖像,而不是相關(guān)技術(shù)中截取的具有較大延遲的VR顯示圖像。
圖5是根據(jù)一示例性實施例示出的再一種基于VR系統(tǒng)的圖像處理方法的流程圖。
如圖5所示,在一個實施例中,上述圖4所示的步驟S403,即根據(jù)第一旋轉(zhuǎn)角度、第二旋轉(zhuǎn)角度和對應(yīng)的預(yù)設(shè)位置,分別對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,可以包括步驟S501至步驟S506:
在步驟S501中,獲取左半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣和右半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣;
左/右半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣可通過陀螺儀、加速度計等設(shè)備在拍攝目標待截取VR圖像時獲得的四元數(shù)而得到;
而由于在拍攝目標待截取VR圖像時,頭部的轉(zhuǎn)動角度是一定的,因而,獲得的四元數(shù)是一定的,所以,左半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣和右半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣是相同的,即下文中的Ma左=Ma右
在步驟S502中,根據(jù)左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣和第一旋轉(zhuǎn)角度,獲取第一旋轉(zhuǎn)角度對應(yīng)的第一旋轉(zhuǎn)矩陣;
在步驟S503中,根據(jù)右半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣和第二旋轉(zhuǎn)角度,獲取第二旋轉(zhuǎn)角度對應(yīng)的第二旋轉(zhuǎn)矩陣;
由于該左延遲時間和右延遲時間內(nèi)是不同的,而旋轉(zhuǎn)角速度是一定的因而,第一旋轉(zhuǎn)角度/第二旋轉(zhuǎn)角度是不同的,因而,第一旋轉(zhuǎn)矩陣和第二旋轉(zhuǎn)矩陣也可能是不同的。
具體地,第一旋轉(zhuǎn)角度對應(yīng)的第一旋轉(zhuǎn)矩陣為虛擬相機拍攝目標待截取VR圖像時的目標旋轉(zhuǎn)角度與第一旋轉(zhuǎn)角度之間的旋轉(zhuǎn)角度和所對應(yīng)的旋轉(zhuǎn)矩陣,第二旋轉(zhuǎn)角度對應(yīng)的第二旋轉(zhuǎn)矩陣為虛擬相機拍攝目標待截取VR圖像時的目標旋轉(zhuǎn)角度與第二旋轉(zhuǎn)角度之間的旋轉(zhuǎn)角度和所對應(yīng)的旋轉(zhuǎn)矩陣。
在步驟S504中,根據(jù)第一旋轉(zhuǎn)矩陣的逆矩陣和左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,確定左半屏圖像的截取區(qū)域?qū)?yīng)的左變形矩陣;
在步驟S505中,根據(jù)第二旋轉(zhuǎn)矩陣的逆矩陣和右半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,確定右半屏圖像的截取區(qū)域?qū)?yīng)的右變形矩陣;
左變形矩陣可以等于Ml左-1*Ma左,其中,Ma左為虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的旋轉(zhuǎn)矩陣即左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,而
Ml左-1為在目標旋轉(zhuǎn)角度的基礎(chǔ)上,虛擬相機繼續(xù)旋轉(zhuǎn)第一旋轉(zhuǎn)角度后達到的新的旋轉(zhuǎn)角度(即新的頭部旋轉(zhuǎn)角度等于目標旋轉(zhuǎn)角度與第一旋轉(zhuǎn)角度之間的旋轉(zhuǎn)角度和)所對應(yīng)的旋轉(zhuǎn)矩陣(即第一旋轉(zhuǎn)矩陣)的逆矩陣,右變形矩陣可以等于Mr右-1*Ma右,其中,Ma右為虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的旋轉(zhuǎn)矩陣即(右半屏圖像的截取區(qū)域的)目標旋轉(zhuǎn)矩陣,而Mr右-1為在目標旋轉(zhuǎn)角度的基礎(chǔ)上,虛擬相機繼續(xù)旋轉(zhuǎn)第二旋轉(zhuǎn)角度后達到的新的旋轉(zhuǎn)角度(即新的頭部旋轉(zhuǎn)角度等于目標旋轉(zhuǎn)角度與第二旋轉(zhuǎn)角度之間的旋轉(zhuǎn)角度和)所對應(yīng)的旋轉(zhuǎn)矩陣(第二旋轉(zhuǎn)矩陣)的逆矩陣。
在步驟S506中,在基于對應(yīng)的預(yù)設(shè)位置的基礎(chǔ)上,分別根據(jù)左變形矩陣對左半屏圖像的截取區(qū)域和右變形矩陣對右半屏圖像的截取區(qū)域進行處理,得到處理后的左半屏圖像的截取區(qū)域和處理后的右半屏圖像的截取區(qū)域;
具體地:由于左半屏圖像的截取區(qū)域在處理前后面積是不變的,因而左半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣與左半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的預(yù)設(shè)位置(即左半屏圖像的截取區(qū)域位于該目標待截取VR圖像的正中間區(qū)域時的位置坐標)之間的乘積等于左變形矩陣與處理后的左半屏圖像的截取區(qū)域在三維空間中的新的坐標值的乘積,所以,基于左半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的預(yù)設(shè)位置,可根據(jù)左變形矩陣對該左半屏圖像的截取區(qū)域進行自動平移或旋轉(zhuǎn)等處理,以使左半屏圖像的截取區(qū)域位于其新的坐標值對應(yīng)的位置上,進而得到處理后的左半屏圖像的截取區(qū)域;同樣地,
由于右半屏圖像的截取區(qū)域在處理前后面積是不變的,因而右半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度時對應(yīng)的目標旋轉(zhuǎn)矩陣與右半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的預(yù)設(shè)位置(即右半屏圖像的截取區(qū)域位于目標待截取VR圖像的正中間區(qū)域時的位置坐標)之間的乘積等于右變形矩陣與處理后的右半屏圖像的截取區(qū)域在三維空間中的新的坐標值的乘積,所以,基于右半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的預(yù)設(shè)位置,可根據(jù)右變形矩陣對該右半屏圖像的截取區(qū)域進行自動平移或旋轉(zhuǎn)等處理,以使右半屏圖像的截取區(qū)域位于其新的坐標值對應(yīng)的位置上,進而并得到處理后的右半屏圖像的截取區(qū)域。
上述圖1所示的步驟S104,即所述將處理后的圖像截取區(qū)域所截取的圖像作為所述第i幀VR顯示圖像寫入顯存中,可以包括步驟S507和步驟S508:
在步驟S507中,根據(jù)處理后的左半屏圖像的截取區(qū)域從虛擬相機在目標旋轉(zhuǎn)角度下拍攝的目標待截取VR圖像中截取第一圖像,并將第一圖像作為第i幀VR顯示圖像的左半部分圖像,其中,目標待截取VR圖像為虛擬相機拍攝的第i-m幀待截取VR圖像或者第i幀待截取VR圖像;
虛擬相機拍攝的目標待截取VR圖像可以由GPU、GPU等資源根據(jù)目標旋轉(zhuǎn)角度、當(dāng)前時間等參數(shù)計算出的待截取VR圖像。
在步驟S508中,根據(jù)處理后的右半屏圖像的截取區(qū)域從虛擬相機在目標旋轉(zhuǎn)角度下拍攝的目標待截取VR圖像中截取第二圖像,并將第二圖像作為第i幀VR顯示圖像的右半部分圖像,其中,處理包括旋轉(zhuǎn)和/或處理,其中,目標待截取VR圖像包括第i幀待截取VR圖像或者第i-m幀待截取VR圖像。
當(dāng)然,正如上文,VR系統(tǒng)中的虛擬相機可能是一個或兩個(即分別為位于坐標原點稍微有一定距離間隔的左右兩個虛擬相機),相應(yīng)地,目標待截取VR圖像在顯存中也可能是一張獨立的圖像或兩張,因而,當(dāng)VR系統(tǒng)中僅有一個虛擬相機時,目標待截取VR圖像僅有一張,此時,處理后的左半屏圖像的截取區(qū)域和處理后的右半屏圖像的截取區(qū)域可從該虛擬相機拍攝到的同一張目標待截取VR圖像的左右兩側(cè)分別截取第i幀VR顯示圖像的左半部分圖像和第i幀VR顯示圖像的右半部分圖像;
當(dāng)VR系統(tǒng)中有兩個虛擬相機時,目標待截取VR圖像均是兩張(即目標待截取VR圖像包括(左)目標待截取VR圖像和(右)目標待截取VR圖像),此時,處理后的左半屏圖像的截取區(qū)域從目標待截取VR圖像中截取第一圖像包括:處理后的左半屏圖像的截取區(qū)域從左虛擬相機拍攝到的(左)目標待截取VR圖像中截取第一圖像,而該截取出的第一圖像即為第i幀VR顯示圖像的左半部分圖像,同樣地,處理后的右半屏圖像的截取區(qū)域從目標待截取VR圖像中截取第二圖像包括:處理后的右半屏圖像的截取區(qū)域從右虛擬相機拍攝到的(右)目標待截取VR圖像中截取第二圖像,而該截取出的第二圖像即為第i幀VR顯示圖像的右半部分圖像。
在分別自動確定出左半屏圖像的截取區(qū)域?qū)?yīng)的左變形矩陣和右半屏圖像的截取區(qū)域?qū)?yīng)的右變形矩陣,在基于對應(yīng)的預(yù)設(shè)位置的基礎(chǔ)上,可以分別根據(jù)左變形矩陣對左半屏圖像的截取區(qū)域和右變形矩陣對右半屏圖像的截取區(qū)域進行處理,以分別對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的預(yù)設(shè)位置進行更改,從而實現(xiàn)對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行自動旋轉(zhuǎn)或移動等,進而可根據(jù)自動處理后的從目標待截取VR圖像中截取出在目標旋轉(zhuǎn)角度的基礎(chǔ)上左延遲時間內(nèi)頭部繼續(xù)轉(zhuǎn)動第一旋轉(zhuǎn)角度左右后可能產(chǎn)生的具有較小延遲和一定實時性的變化后的第i幀VR顯示圖像的左半部分圖像(而非相關(guān)技術(shù)中,從目標待截取VR圖像中直接截取出的在目標旋轉(zhuǎn)角度下觀看到的具有延遲的第i幀VR顯示圖像的左半部分圖像)和在目標旋轉(zhuǎn)角度的基礎(chǔ)上右延遲時間內(nèi)頭部繼續(xù)轉(zhuǎn)動第二旋轉(zhuǎn)角度左右后可能產(chǎn)生的具有較小延遲和一定實時性的變化后的第i幀VR顯示圖像的右半部分圖像(而非相關(guān)技術(shù)中,從目標待截取VR圖像中直接截取出的在目標旋轉(zhuǎn)角度下觀看到的具有延遲的第i幀VR顯示圖像的右半部分圖像),這樣即便頭戴VR頭盔的用戶在頭部轉(zhuǎn)動該目標旋轉(zhuǎn)角度之后,若在該圖像顯示延遲時間內(nèi)頭部又發(fā)生了轉(zhuǎn)動而導(dǎo)致畫面發(fā)生變化,用戶仍然能夠盡可能的觀看到變化后的VR顯示圖像,而不是相關(guān)技術(shù)中截取的具有較大延遲的VR顯示圖像。
最后,在VR系統(tǒng)中為了方便處理,左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域可能還被劃分成了多個小區(qū)域(如左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域可能分別由33個小網(wǎng)格組成),但圖像處理方式與上述實施例完全相同,此處不再贅述。
在一個實施例中,對應(yīng)的預(yù)設(shè)位置包括:圖像截取區(qū)域位于虛擬相機在目標旋轉(zhuǎn)角度下拍攝到的目標待截取VR圖像的正中間位置時的位置坐標,其中,目標待截取VR圖像包括第i幀待截取VR圖像或者第i-m幀待截取VR圖像。
當(dāng)CPU、GPU或者其它資源沒有延遲能夠正常控制虛擬相機可按照該預(yù)設(shè)時間間隔(即1/f)拍攝每幀需顯示在屏幕上的VR圖像即目標待截取VR圖像為第i幀待截取VR圖像時,該目標旋轉(zhuǎn)角度為虛擬相機拍攝第i幀VR顯示圖像所在的第i幀待截取VR圖像時的旋轉(zhuǎn)角度;而該圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置可以為該圖像截取區(qū)域位于該第i幀待截取VR圖像的正中間區(qū)域時的位置坐標,即該圖像截取區(qū)域位于該第i幀待截取VR圖像的正中間區(qū)域時其各頂點的坐標值。
而當(dāng)CPU、GPU或者其它資源有延遲無法正??刂铺摂M相機拍攝第i幀待截取VR圖像(即有丟幀現(xiàn)象)即目標待截取VR圖像為第i-m幀待截取VR圖像時,該目標旋轉(zhuǎn)角度為虛擬相機拍攝第i-m幀VR顯示圖像所在的第i-m幀待截取VR圖像時的旋轉(zhuǎn)角度;而該圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置可以為該圖像截取區(qū)域位于該第i-m幀待截取VR圖像的正中間區(qū)域時的位置坐標,即該圖像截取區(qū)域位于該第i-m幀待截取VR圖像的正中間區(qū)域時其各頂點的坐標值。
在一個實施例中,VR系統(tǒng)包括:VR頭盔和內(nèi)置于VR頭盔的移動設(shè)備(如手機等)。
VR系統(tǒng)包括當(dāng)不限于VR頭盔和內(nèi)置于VR頭盔的移動設(shè)備,例如還可以包括VR頭盔與計算機組成的VR系統(tǒng),當(dāng)然此時VR頭盔中仍然需內(nèi)置有一塊或兩塊顯示屏。
對應(yīng)本公開實施例提供的上述基于VR系統(tǒng)的圖像處理方法,本公開實施例還提供一種基于VR系統(tǒng)的圖像處理裝置。
圖6是根據(jù)一示例性實施例示出的一種基于VR系統(tǒng)的圖像處理裝置的框圖。
如圖6所示,該裝置包括確定模塊601、獲取模塊602、處理模塊603和寫入模塊604:
確定模塊601,被配置為確定VR系統(tǒng)中的圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置,其中,虛擬相機為VR系統(tǒng)中的虛擬相機,i為正整數(shù);
獲取模塊602,被配置為獲取VR系統(tǒng)中的圖像顯示延遲時間;
處理模塊603,被配置為根據(jù)圖像顯示延遲時間和對應(yīng)的預(yù)設(shè)位置,對圖像截取區(qū)域進行處理;
寫入模塊604,被配置為將處理后的圖像截取區(qū)域所截取的圖像作為第i幀VR顯示圖像寫入顯存中。
圖7是根據(jù)一示例性實施例示出的另一種基于VR系統(tǒng)的圖像處理裝置的框圖。
如圖7所示,在一個實施例中,上述圖6所示的獲取模塊602可以包括渲染時間確定子模塊6021和延遲時間確定子模塊6022:
渲染時間確定子模塊6021,被配置為根據(jù)VR系統(tǒng)中顯示屏的屏幕刷新頻率,分別確定顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間;
延遲時間確定子模塊6022,被配置為根據(jù)顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間,分別確定第i幀VR顯示圖像的左半部分圖像和右半部分圖像的左延遲時間和右延遲時間。
圖8是根據(jù)一示例性實施例示出的又一種基于VR系統(tǒng)的圖像處理裝置的框圖。
如圖8所示,在一個實施例中,圖像截取區(qū)域包括左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域;
上述圖6所示的處理模塊603可以包括處理子模塊6031:
處理子模塊6031,被配置為根據(jù)左延遲時間、右延遲時間和對應(yīng)的預(yù)設(shè)位置,分別對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,以得到處理后的圖像截取區(qū)域。
圖9是根據(jù)一示例性實施例示出的再一種基于VR系統(tǒng)的圖像處理裝置的框圖。
如圖9所示,在一個實施例中,上述圖8所示的處理子模塊6031可以包括獲取單元60311、預(yù)測單元60312和處理單元60313:
獲取單元60311,被配置為獲取虛擬相機的旋轉(zhuǎn)角速度;
預(yù)測單元60312,被配置為根據(jù)旋轉(zhuǎn)角速度,分別預(yù)測虛擬相機在左延遲時間內(nèi)的第一旋轉(zhuǎn)角度和虛擬相機在右延遲時間內(nèi)的第二旋轉(zhuǎn)角度;
處理單元60313,被配置為根據(jù)第一旋轉(zhuǎn)角度、第二旋轉(zhuǎn)角度和對應(yīng)的預(yù)設(shè)位置,分別對左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理。
圖10是根據(jù)一示例性實施例示出的再一種基于VR系統(tǒng)的圖像處理裝置的框圖。
如圖10所示,在一個實施例中,上述圖9所示的處理單元60313可以包括第一獲取子單元603131、第二獲取子單元603132、第三獲取子單元603133、第一確定子單元603134、第二確定子單元603135、處理子單元603136,以及上述圖6所示的寫入模塊604可以包括第一截取子模塊6041和第二截取子模塊6042:
第一獲取子單元603131,被配置為獲取左半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣和右半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣;
第二獲取子單元603132,被配置為根據(jù)左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣和第一旋轉(zhuǎn)角度,獲取第一旋轉(zhuǎn)角度對應(yīng)的第一旋轉(zhuǎn)矩陣;
第三獲取子單元603133,被配置為根據(jù)右半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣和第二旋轉(zhuǎn)角度,獲取第二旋轉(zhuǎn)角度對應(yīng)的第二旋轉(zhuǎn)矩陣;
第一確定子單元603134,被配置為根據(jù)第一旋轉(zhuǎn)矩陣的逆矩陣和左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,確定左半屏圖像的截取區(qū)域?qū)?yīng)的左變形矩陣;
第二確定子單元603135,被配置為根據(jù)第二旋轉(zhuǎn)矩陣的逆矩陣和右半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,確定右半屏圖像的截取區(qū)域?qū)?yīng)的右變形矩陣;處理子單元603136,被配置為在基于對應(yīng)的預(yù)設(shè)位置的基礎(chǔ)上,分別根據(jù)左變形矩陣對左半屏圖像的截取區(qū)域和右變形矩陣對右半屏圖像的截取區(qū)域進行處理,得到處理后的左半屏圖像的截取區(qū)域和處理后的右半屏圖像的截取區(qū)域;
上述圖6所示的寫入模塊604可以包括:
第一截取子模塊6041,被配置為根據(jù)處理后的左半屏圖像的截取區(qū)域從虛擬相機在目標旋轉(zhuǎn)角度下拍攝的目標待截取VR圖像中截取第一圖像,并將第一圖像作為第i幀VR顯示圖像的左半部分圖像;
第二截取子模塊6042,被配置為根據(jù)處理后的右半屏圖像的截取區(qū)域從虛擬相機在目標旋轉(zhuǎn)角度下拍攝的目標待截取VR圖像中截取第二圖像,并將第二圖像作為第i幀VR顯示圖像的右半部分圖像,其中,處理包括旋轉(zhuǎn)和/或處理,其中,目標待截取VR圖像包括第i幀待截取VR圖像或者第i-m幀待截取VR圖像,其中,m為小于或等于i的正整數(shù)。
在一個實施例中,對應(yīng)的預(yù)設(shè)位置包括:圖像截取區(qū)域位于虛擬相機在目標旋轉(zhuǎn)角度下拍攝到的目標待截取VR圖像的正中間位置時的位置坐標,其中,目標待截取VR圖像包括第i幀待截取VR圖像或者第i-m幀待截取VR圖像。
在一個實施例中,VR系統(tǒng)包括:VR頭盔和內(nèi)置于VR頭盔的移動設(shè)備。
根據(jù)本公開實施例的第三方面,提供一種基于VR系統(tǒng)的圖像處理裝置,包括:
處理器;
用于存儲處理器可執(zhí)行指令的存儲器;
其中,處理器被配置為:
確定所述VR系統(tǒng)中的圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置,其中,所述虛擬相機為所述VR系統(tǒng)中的虛擬相機,所述i為正整數(shù);
獲取所述VR系統(tǒng)中的圖像顯示延遲時間;
根據(jù)所述圖像顯示延遲時間和所述對應(yīng)的預(yù)設(shè)位置,對所述圖像截取區(qū)域進行處理;
將處理后的圖像截取區(qū)域所截取的圖像作為所述第i幀VR顯示圖像寫入顯存中。
上述處理器還可被配置為:
所述獲取所述VR系統(tǒng)中的圖像顯示延遲時間,包括:
根據(jù)所述VR系統(tǒng)中顯示屏的屏幕刷新頻率,分別確定所述顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間;
根據(jù)所述顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間,分別確定所述第i幀VR顯示圖像的左半部分圖像和右半部分圖像的左延遲時間和右延遲時間。
上述處理器還可被配置為:
所述圖像截取區(qū)域包括左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域;
所述根據(jù)所述圖像顯示延遲時間和所述對應(yīng)的預(yù)設(shè)位置,對所述圖像截取區(qū)域進行處理,包括:
根據(jù)所述左延遲時間、所述右延遲時間和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,以得到處理后的所述圖像截取區(qū)域。
上述處理器還可被配置為:
所述根據(jù)所述左延遲時間、所述右延遲時間和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,包括:
獲取所述虛擬相機的旋轉(zhuǎn)角速度;
根據(jù)所述旋轉(zhuǎn)角速度,分別預(yù)測所述虛擬相機在所述左延遲時間內(nèi)的第
一旋轉(zhuǎn)角度和所述虛擬相機在所述右延遲時間內(nèi)的第二旋轉(zhuǎn)角度;
根據(jù)所述第一旋轉(zhuǎn)角度、所述第二旋轉(zhuǎn)角度和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理。
上述處理器還可被配置為:
所述根據(jù)所述第一旋轉(zhuǎn)角度、所述第二旋轉(zhuǎn)角度和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,包括:
獲取所述左半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣和所述右半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣;
根據(jù)所述左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣和所述第一旋轉(zhuǎn)角度,獲取所述第一旋轉(zhuǎn)角度對應(yīng)的第一旋轉(zhuǎn)矩陣;
根據(jù)所述右半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣和所述第二旋轉(zhuǎn)角度,獲取所述第二旋轉(zhuǎn)角度對應(yīng)的第二旋轉(zhuǎn)矩陣;
根據(jù)所述第一旋轉(zhuǎn)矩陣的逆矩陣和所述左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,確定所述左半屏圖像的截取區(qū)域?qū)?yīng)的左變形矩陣;
根據(jù)所述第二旋轉(zhuǎn)矩陣的逆矩陣和所述右半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,確定所述右半屏圖像的截取區(qū)域?qū)?yīng)的右變形矩陣;
在基于所述對應(yīng)的預(yù)設(shè)位置的基礎(chǔ)上,分別根據(jù)所述左變形矩陣對所述左半屏圖像的截取區(qū)域和所述右變形矩陣對所述右半屏圖像的截取區(qū)域進行處理,得到處理后的左半屏圖像的截取區(qū)域和處理后的右半屏圖像的截取區(qū)域;
所述將處理后的圖像截取區(qū)域所截取的圖像作為所述第i幀VR顯示圖像寫入顯存中,包括:
根據(jù)處理后的左半屏圖像的截取區(qū)域從所述虛擬相機在所述目標旋轉(zhuǎn)角度下拍攝的目標待截取VR圖像中截取第一圖像,并將所述第一圖像作為所述第i幀VR顯示圖像的左半部分圖像;
根據(jù)處理后的右半屏圖像的截取區(qū)域從所述虛擬相機在所述目標旋轉(zhuǎn)角度下拍攝的目標待截取VR圖像中截取第二圖像,并將所述第二圖像作為所述第i幀VR顯示圖像的右半部分圖像,其中,所述處理包括旋轉(zhuǎn)和/或處理,其中,所述目標待截取VR圖像包括第i幀待截取VR圖像或者第i-m幀待截取VR圖像,其中,m為小于或等于i的正整數(shù)。
上述處理器還可被配置為:
所述對應(yīng)的預(yù)設(shè)位置包括:所述圖像截取區(qū)域位于所述虛擬相機在所述目標旋轉(zhuǎn)角度下拍攝到的目標待截取VR圖像的正中間位置時的位置坐標,其中,所述目標待截取VR圖像包括第i幀待截取VR圖像或者第i-m幀待截取VR圖像。
在一個實施例中,所述VR系統(tǒng)包括:VR頭盔和內(nèi)置于所述VR頭盔的移動設(shè)備。
圖11是根據(jù)一示例性實施例示出的一種用于基于VR系統(tǒng)的圖像處理裝置1100的框圖,該裝置適用于終端設(shè)備。例如,裝置1100可以是移動電話,計算機,數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺,平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個用戶數(shù)字助理等。
參照圖11,裝置1100可以包括以下一個或至少兩個組件:處理組件1102,存儲器1104,電源組件1106,多媒體組件1108,音頻組件1110,輸入/輸出(I/O)接口1112,傳感器組件1114,以及通信組件1116。
處理組件1102通常控制裝置1100的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機操作和記錄操作相關(guān)聯(lián)的操作。處理組件1102可以包括一個或至少兩個處理器1120來執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件1102可以包括一個或至少兩個模塊,便于處理組件1102和其他組件之間的交互。例如,處理組件1102可以包括多媒體模塊,以方便多媒體組件1108和處理組件1102之間的交互。
存儲器1104被配置為存儲各種類型的數(shù)據(jù)以支持在裝置1100的操作。這些數(shù)據(jù)的示例包括用于在裝置1100上操作的任何存儲對象或方法的指令,聯(lián)系用戶數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲器1104可以由任何類型的易失性或非易失性存儲設(shè)備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。
電源組件1106為裝置1100的各種組件提供電源。電源組件1106可以包括電源管理系統(tǒng),一個或至少兩個電源,及其他與為裝置1100生成、管理和分配電源相關(guān)聯(lián)的組件。
多媒體組件1108包括在所述裝置1100和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或至少兩個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關(guān)的持續(xù)時間和壓力。在一些實施例中,多媒體組件1108包括一個前置攝像頭和/或后置攝像頭。當(dāng)裝置1100處于操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個前置攝像頭和后置攝像頭可以是一個固定的光學(xué)透鏡系統(tǒng)或具有焦距和光學(xué)變焦能力。
音頻組件1110被配置為輸出和/或輸入音頻信號。例如,音頻組件1110包括一個麥克風(fēng)(MIC),當(dāng)裝置1100處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風(fēng)被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器1104或經(jīng)由通信組件1116發(fā)送。在一些實施例中,音頻組件1110還包括一個揚聲器,用于輸出音頻信號。
I/O接口1112為處理組件1102和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
傳感器組件1114包括一個或至少兩個傳感器,用于為裝置1100提供各個方面的狀態(tài)評估。例如,傳感器組件1114可以檢測到裝置1100的打開/關(guān)閉狀態(tài),組件的相對定位,例如所述組件為裝置1100的顯示器和小鍵盤,傳感器組件1114還可以檢測裝置1100或裝置1100一個組件的位置改變,用戶與裝置1100接觸的存在或不存在,裝置1100方位或加速/減速和裝置1100的溫度變化。傳感器組件1114可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件1114還可以包括光傳感器,如CMOS或CCD圖像傳感器,用于在成像應(yīng)用中使用。在一些實施例中,該傳感器組件1114還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
通信組件1116被配置為便于裝置1100和其他設(shè)備之間有線或無線方式的通信。裝置1100可以接入基于通信標準的無線網(wǎng)絡(luò),如WiFi,2G或3G,或它們的組合。在一個示例性實施例中,通信組件1116經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關(guān)信息。在一個示例性實施例中,所述通信組件1116還包括近場通信(NFC)模塊,以促進短程通信。例如,在NFC模塊可基于射頻識別(RFID)技術(shù),紅外數(shù)據(jù)協(xié)會(IrDA)技術(shù),超寬帶(UWB)技術(shù),藍牙(BT)技術(shù)和其他技術(shù)來實現(xiàn)。
在示例性實施例中,裝置1100可以被一個或至少兩個應(yīng)用專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理設(shè)備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子組件實現(xiàn),用于執(zhí)行上述方法。
在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質(zhì),例如包括指令的存儲器1104,上述指令可由裝置1100的處理器1120執(zhí)行以完成上述方法。例如,所述非臨時性計算機可讀存儲介質(zhì)可以是ROM、隨機存取存儲器(RAM)、CD-ROM、磁帶、軟盤和光數(shù)據(jù)存儲設(shè)備等。
一種非臨時性計算機可讀存儲介質(zhì),當(dāng)所述存儲介質(zhì)中的指令由上述裝置1100的處理器執(zhí)行時,使得上述裝置1100能夠執(zhí)行一種基于VR系統(tǒng)的圖像處理方法,包括:
確定所述VR系統(tǒng)中的圖像截取區(qū)域在虛擬相機處于目標旋轉(zhuǎn)角度時對應(yīng)的預(yù)設(shè)位置,其中,所述虛擬相機為所述VR系統(tǒng)中的虛擬相機,所述i為正整數(shù);
獲取所述VR系統(tǒng)中的圖像顯示延遲時間;
根據(jù)所述圖像顯示延遲時間和所述對應(yīng)的預(yù)設(shè)位置,對所述圖像截取區(qū)域進行處理;
將處理后的圖像截取區(qū)域所截取的圖像作為所述第i幀VR顯示圖像寫入顯存中。
在一個實施例中,所述獲取所述VR系統(tǒng)中的圖像顯示延遲時間,包括:
根據(jù)所述VR系統(tǒng)中顯示屏的屏幕刷新頻率,分別確定所述顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間;
根據(jù)所述顯示屏渲染左半屏圖像和右半屏圖像時所需消耗的時間,分別確定所述第i幀VR顯示圖像的左半部分圖像和右半部分圖像的左延遲時間和右延遲時間。
在一個實施例中,所述圖像截取區(qū)域包括左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域;
所述根據(jù)所述圖像顯示延遲時間和所述對應(yīng)的預(yù)設(shè)位置,對所述圖像截取區(qū)域進行處理,包括:
根據(jù)所述左延遲時間、所述右延遲時間和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,以得到處理后的所述圖像截取區(qū)域。
在一個實施例中,所述根據(jù)所述左延遲時間、所述右延遲時間和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,包括:
獲取所述虛擬相機的旋轉(zhuǎn)角速度;
根據(jù)所述旋轉(zhuǎn)角速度,分別預(yù)測所述虛擬相機在所述左延遲時間內(nèi)的第一旋轉(zhuǎn)角度和所述虛擬相機在所述右延遲時間內(nèi)的第二旋轉(zhuǎn)角度;
根據(jù)所述第一旋轉(zhuǎn)角度、所述第二旋轉(zhuǎn)角度和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理。
在一個實施例中,所述根據(jù)所述第一旋轉(zhuǎn)角度、所述第二旋轉(zhuǎn)角度和所述對應(yīng)的預(yù)設(shè)位置,分別對所述左半屏圖像的截取區(qū)域和右半屏圖像的截取區(qū)域進行處理,包括:
獲取所述左半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣和所述右半屏圖像的截取區(qū)域在目標旋轉(zhuǎn)角度下對應(yīng)的目標旋轉(zhuǎn)矩陣;
根據(jù)所述左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣和所述第一旋轉(zhuǎn)角度,獲取所述第一旋轉(zhuǎn)角度對應(yīng)的第一旋轉(zhuǎn)矩陣;
根據(jù)所述右半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣和所述第二旋轉(zhuǎn)角度,獲取所述第二旋轉(zhuǎn)角度對應(yīng)的第二旋轉(zhuǎn)矩陣;
根據(jù)所述第一旋轉(zhuǎn)矩陣的逆矩陣和所述左半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,確定所述左半屏圖像的截取區(qū)域?qū)?yīng)的左變形矩陣;
根據(jù)所述第二旋轉(zhuǎn)矩陣的逆矩陣和所述右半屏圖像的截取區(qū)域的目標旋轉(zhuǎn)矩陣,確定所述右半屏圖像的截取區(qū)域?qū)?yīng)的右變形矩陣;
在基于所述對應(yīng)的預(yù)設(shè)位置的基礎(chǔ)上,分別根據(jù)所述左變形矩陣對所述左半屏圖像的截取區(qū)域和所述右變形矩陣對所述右半屏圖像的截取區(qū)域進行處理,得到處理后的左半屏圖像的截取區(qū)域和處理后的右半屏圖像的截取區(qū)域;
所述將處理后的圖像截取區(qū)域所截取的圖像作為所述第i幀VR顯示圖像寫入顯存中,包括:
根據(jù)處理后的左半屏圖像的截取區(qū)域從所述虛擬相機在所述目標旋轉(zhuǎn)角度下拍攝的目標待截取VR圖像中截取第一圖像,并將所述第一圖像作為所述第i幀VR顯示圖像的左半部分圖像;
根據(jù)處理后的右半屏圖像的截取區(qū)域從所述虛擬相機在所述目標旋轉(zhuǎn)角度下拍攝的目標待截取VR圖像中截取第二圖像,并將所述第二圖像作為所述第i幀VR顯示圖像的右半部分圖像,其中,所述處理包括旋轉(zhuǎn)和/或處理,其中,所述目標待截取VR圖像包括第i幀待截取VR圖像或者第i-m幀待截取VR圖像,其中,m為小于或等于i的正整數(shù)。
在一個實施例中,所述對應(yīng)的預(yù)設(shè)位置包括:所述圖像截取區(qū)域位于所述虛擬相機在所述目標旋轉(zhuǎn)角度下拍攝到的目標待截取VR圖像的正中間位置時的位置坐標,其中,所述目標待截取VR圖像包括第i幀待截取VR圖像或者第i-m幀待截取VR圖像。
在一個實施例中,所述VR系統(tǒng)包括:VR頭盔和內(nèi)置于所述VR頭盔的移動設(shè)備。
本領(lǐng)域技術(shù)用戶員在考慮說明書及實踐這里公開的公開后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權(quán)利要求指出。
應(yīng)當(dāng)理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權(quán)利要求來限制。