国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      360度圖像加載方法、加載模塊及移動終端的制作方法

      文檔序號:10539261閱讀:368來源:國知局
      360度圖像加載方法、加載模塊及移動終端的制作方法
      【專利摘要】本發(fā)明涉及圖像顯示技術(shù)領(lǐng)域,公開了一種360度圖像加載方法、加載模塊及移動終端。本發(fā)明中,360度圖像加載方法,包含以下步驟:第一數(shù)據(jù)層生成三維圖像;第一數(shù)據(jù)層獲取當(dāng)前視點;第一數(shù)據(jù)層根據(jù)所述當(dāng)前視點將當(dāng)前視角范圍內(nèi)的三維圖像渲染到紋理,以生成紋理圖像;第一數(shù)據(jù)層將所述紋理圖像的紋理標(biāo)號傳遞至第二數(shù)據(jù)層;第二數(shù)據(jù)層根據(jù)所述紋理標(biāo)號獲取所述紋理圖像,并對所述紋理圖像進行反畸變處理。本發(fā)明提供的360度圖像加載方法、加載模塊及移動終端,在360度視頻顯示過程中,避免了第一數(shù)據(jù)層與第二數(shù)據(jù)層之間大量視頻播控數(shù)據(jù)的傳遞,提高了程序開發(fā)的效率。
      【專利說明】
      360度圖像加載方法、加載模塊及移動終端
      技術(shù)領(lǐng)域
      [0001]本發(fā)明涉及圖像顯示技術(shù)領(lǐng)域,特別涉及一種360度圖像加載方法、加載模塊及移動終端。
      【背景技術(shù)】
      [0002]360度全景是一種基于靜態(tài)圖像在微機平臺上能夠?qū)崿F(xiàn)虛擬現(xiàn)實(VR)技術(shù)?;?60度全景,人們能在電腦上進行360度全景觀察,而且通過交互操作,可以實現(xiàn)自由瀏覽;從而體驗三維的VR視覺世界。
      [0003]目前,在基于安卓手機的VR方案中,360度全景觀影方式的實現(xiàn)一般都是基于C++,在native層實現(xiàn)清染引擎。即,安卓java層將原始的二維圖像傳遞至native層,native層將原始的二維圖像渲染和繪制后,再傳遞至java層進行顯示。在這過程中,安卓java層和native層需要傳遞大量JNI(Java Native Interface)標(biāo)準(zhǔn)的視頻播控數(shù)據(jù);而且,JNI標(biāo)準(zhǔn)的代碼很不方便調(diào)試。因此,目前的設(shè)計模式給開發(fā)者造成了極大的不便。

      【發(fā)明內(nèi)容】

      [0004]本發(fā)明的目的在于提供一種360度圖像加載方法、加載模塊及移動終端,在360度視頻顯示過程中,避免了兩個數(shù)據(jù)層之間大量視頻播控數(shù)據(jù)的傳遞,提高了程序開發(fā)的效率。
      [0005]為解決上述技術(shù)問題,本發(fā)明的實施方式提供了一種360度圖像加載方法,包含以下步驟:第一數(shù)據(jù)層生成三維圖像;第一數(shù)據(jù)層獲取當(dāng)前視點;第一數(shù)據(jù)層根據(jù)所述當(dāng)前視點將當(dāng)前視角范圍內(nèi)的三維圖像渲染到紋理,以生成紋理圖像;第一數(shù)據(jù)層將所述紋理圖像的紋理標(biāo)號傳遞至第二數(shù)據(jù)層;第二數(shù)據(jù)層根據(jù)所述紋理標(biāo)號獲取所述紋理圖像,并對所述紋理圖像進行反畸變處理。
      [0006]本發(fā)明的實施方式還提供了一種360度圖像加載模塊,包含:三維圖像生成單元、視點獲取單元、紋理圖像生成單元、紋理圖像傳遞單元、以及反畸變處理單元;所述三維圖像生成單元用于生成三維圖像;所述視點獲取單元用于獲取當(dāng)前視點;所述紋理圖像生成單元用于根據(jù)將當(dāng)前視角范圍內(nèi)的三維圖像渲染到紋理,以生成紋理圖像;所述圖像傳遞單元用于將所述紋理圖像傳遞至第二數(shù)據(jù)層;所述反畸變處理單元用于對所述紋理圖像進行反畸變處理。
      [0007]本發(fā)明的實施方式還提供了一種移動終端,包含:所述的360度圖像加載模塊。
      [0008]本發(fā)明實施方式相對于現(xiàn)有技術(shù)而言,在360度視頻顯示過程中,第一數(shù)據(jù)層生成三維圖像,并僅將當(dāng)前視角范圍內(nèi)的紋理圖像的紋理標(biāo)號傳遞至第二數(shù)據(jù)層;第二數(shù)據(jù)層根據(jù)所述紋理標(biāo)號獲取所述紋理圖像,并對所述紋理圖像進行反畸變處理。即,在360度視頻顯示過程中,第一數(shù)據(jù)層與第二數(shù)據(jù)層之間只需要傳遞紋理標(biāo)號,從而避免了第一數(shù)據(jù)層與第二數(shù)據(jù)層之間大量視頻播控數(shù)據(jù)的傳遞,提高了程序開發(fā)的效率。并且,由于在第一數(shù)據(jù)層中完成三維圖像的渲染和繪制,即只有第一數(shù)據(jù)層需要使用渲染和繪制的相關(guān)數(shù)據(jù)而第二數(shù)據(jù)層無需使用,從而有效避免了第一數(shù)據(jù)層和第二數(shù)據(jù)層之間共用渲染和繪制的相關(guān)數(shù)據(jù),簡化了程序開發(fā)的復(fù)雜度。
      [0009]另外,所述第一數(shù)據(jù)層是java層,所述第二數(shù)據(jù)層是native層。即,本發(fā)明可基于安卓平臺實現(xiàn)。
      【附圖說明】
      [0010]圖1是根據(jù)本發(fā)明第一實施方式的360度圖像加載方法的流程圖;
      [0011 ]圖2是根據(jù)本發(fā)明第二實施方式的360度圖像加載模塊的流程圖。
      【具體實施方式】
      [0012]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明的各實施方式進行詳細的闡述。然而,本領(lǐng)域的普通技術(shù)人員可以理解,在本發(fā)明各實施方式中,為了使讀者更好地理解本申請而提出了許多技術(shù)細節(jié)。但是,即使沒有這些技術(shù)細節(jié)和基于以下各實施方式的種種變化和修改,也可以實現(xiàn)本申請各權(quán)利要求所要求保護的技術(shù)方案。
      [0013]本發(fā)明的第一實施方式涉及一種360度圖像加載方法,應(yīng)用于移動終端。其中,移動終端為基于安卓平臺的智能手機,因此,本實施方式中的第一數(shù)據(jù)層與第二數(shù)據(jù)層分別為java層與native層。然而,本實施方式對智能手機的開發(fā)平臺不做任何限制,當(dāng)開發(fā)平臺不同時,第一數(shù)據(jù)層與第二數(shù)據(jù)層也會隨之不同。
      [0014]本實施方式中的360度圖像加載方法的具體流程如圖1所示。
      [0015]步驟10:java層生成三維圖像。
      [0016]首先,java層建立一個三維球體模型。
      [0017]其次,java層獲取移動終端內(nèi)部預(yù)存的二維圖像,并將該二維圖像紋理貼圖至該三維球體模型,以生成三維圖像。具體實現(xiàn)方法為:java層生成一個紋理標(biāo)號(如textureld),并根據(jù)紋理標(biāo)號生成一個表面紋理(SurfaceTexture) ; java層通過SurfaceTexture創(chuàng)建一個空的Surface去接收二維圖像;java層將Surface綁定到三維球體上。即,生成了三維圖像。
      [0018]較佳的,紋理貼圖后,還可以對生成的三維圖像進行光線、透明度等方面的修飾,使得最后呈現(xiàn)的三維圖像更加真實。
      [0019]步驟11:java層獲取當(dāng)前視點。其中,步驟11包含以下子步驟。
      [°02°]子步驟111: java層檢測移動終端的當(dāng)前姿態(tài)。
      [0021]具體而言,用戶在使用移動終端時,可能會變換移動終端的空間朝向;當(dāng)前姿態(tài)即反映移動終端的空間朝向。本實施方式中的當(dāng)前姿態(tài)由移動終端的角速度表征。其中,移動終端的角速度包含移動終端在X、Y、Z軸方向上的三個角速度。然而,本實施方式中對表征當(dāng)前姿態(tài)的具體參數(shù)不作任何限制,只要能夠反映移動終端的空間朝向即可。?0022] 子步驟112: java層根據(jù)當(dāng)前姿態(tài)計算當(dāng)前視點。
      [0023]具體而言,首先,根據(jù)移動終端在X、Y、Z軸方向上的三個角速度計算歐拉角的三個角度,三個角度分別為:yaw,表示視點繞Y軸旋轉(zhuǎn)的角度;P i t ch,表示視點繞X軸旋轉(zhuǎn)的角度,roll,表示視點繞Z軸旋轉(zhuǎn)的角度。其次,根據(jù)歐拉角的三個角度,計算三個旋轉(zhuǎn)矩陣matrix_yaw=matrix::rotateY(yaw) ;matrix_pitch=matrix::rotateX(pitch) ;matrix_roll=matrix::rotateZ(roll)。即,當(dāng)前視點實質(zhì)由三個旋轉(zhuǎn)矩陣表示。
      [0024]需要說明的是,本實施方式對當(dāng)前視點的獲取方式不作任何限制;于其他實施方式中,當(dāng)前視點也可以為預(yù)存在移動終端內(nèi)的推薦視點(表示較佳的觀看角度)、或者預(yù)存在移動終端內(nèi)的多個連續(xù)變化的視點。
      [0025]步驟12:java層根據(jù)當(dāng)前視點將當(dāng)前視角范圍內(nèi)的三維圖像渲染到紋理,以生成紋理圖像生成紋理圖像。其中,步驟12包含以下子步驟。
      [0026]子步驟121:java層根據(jù)當(dāng)前視點將當(dāng)前視角范圍內(nèi)的三維圖像渲染到幀緩存。
      [0027]首先,java層創(chuàng)建一個幀緩存(Framebuffer object)。其次,java層根據(jù)當(dāng)前視點(即三個旋轉(zhuǎn)矩陣)計算出當(dāng)前視角范圍內(nèi)的三維圖像的頂點坐標(biāo),從而根據(jù)計算出的頂點坐標(biāo)將當(dāng)前視角范圍內(nèi)的三維圖像渲染到幀緩存內(nèi),其中,幀緩存內(nèi)的圖像即為顯示屏顯示出來的圖像。
      [0028]子步驟122:java層將幀緩存中的三維圖像渲染到紋理,以生成紋理圖像。
      [0029]首先,java層生成一個新的紋理標(biāo)號(textureId_new),并根據(jù)新的紋理標(biāo)號(textureld_new)生成一個表面紋理(SurfaceTexture)。其次,java層將幀緩存中的三維圖像清染到表面紋理(SurfaceTexture),以生成紋理圖像。
      [°03°] 步驟13: java層將紋理圖像的紋理標(biāo)號傳遞至native層。
      [0031 ] 即,java層將紋理圖像的紋理標(biāo)號textureld_new傳遞至native層。
      [0032]步驟14:native層根據(jù)紋理標(biāo)號獲取紋理圖像,并對紋理圖像進行反畸變處理。
      [0033]即,native層根據(jù)紋理圖像的紋理標(biāo)號(textureId_new)查找到紋理圖像的實際物理位置,該實際物理位置即為上述幀緩存;native層直接對幀緩存內(nèi)的紋理圖像進行反畸變處理,反畸變處理后的紋理圖像覆蓋原來的紋理圖像儲存在幀緩存內(nèi)。其中,反畸變處理是為了消除后續(xù)用戶使用透鏡觀看圖像時發(fā)生的畸變現(xiàn)象,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)了解反畸變處理的具體方式,此處不再贅述。
      [0034]步驟15: java層將幀緩存中的反畸變處理后的紋理圖像在顯示屏上進行顯示。
      [0035]本發(fā)明提供的360度圖像加載方法,第一數(shù)據(jù)層(本實施例中為java層)實現(xiàn)渲染與繪制以生成三維圖像;第一數(shù)據(jù)層將當(dāng)前視角范圍內(nèi)的三維圖像渲染到紋理后,并將紋理標(biāo)號傳遞至第二數(shù)據(jù)層(本實施例中為native層),并由第二數(shù)據(jù)層實現(xiàn)反畸變處理。即,在360度視頻顯示過程中,第一數(shù)據(jù)層與第二數(shù)據(jù)層之間只需要傳遞紋理標(biāo)號,從而避免了第一數(shù)據(jù)層與第二數(shù)據(jù)層之間大量視頻播控數(shù)據(jù)的傳遞,提高了程序開發(fā)的效率。并且,由于在第一數(shù)據(jù)層中完成三維圖像的渲染和繪制,即只有第一數(shù)據(jù)層需要使用渲染和繪制的相關(guān)數(shù)據(jù)而第二數(shù)據(jù)層無需使用,從而有效避免了第一數(shù)據(jù)層和第二數(shù)據(jù)層之間共用渲染和繪制的相關(guān)數(shù)據(jù),簡化了程序開發(fā)的復(fù)雜度。
      [0036]上面各種方法的步驟劃分,只是為了描述清楚,實現(xiàn)時可以合并為一個步驟或者對某些步驟進行拆分,分解為多個步驟,只要包含相同的邏輯關(guān)系,都在本專利的保護范圍內(nèi);對算法中或者流程中添加無關(guān)緊要的修改或者引入無關(guān)緊要的設(shè)計,但不改變其算法和流程的核心設(shè)計都在該專利的保護范圍內(nèi)。
      [0037]本發(fā)明第二實施方式涉及一種360度圖像加載模塊,如圖2所示,包含:三維圖像生成單元10、視點獲取單元11、紋理圖像生成單元12、紋理圖像傳遞單元13、反畸變處理單元14以及顯示單元15。
      [0038]三維圖像生成單元10用于生成三維圖像。
      [0039]視點獲取單元11用于獲取當(dāng)前視點。具體而言,視點獲取單元11還包含:姿態(tài)檢測子單元與視點計算子單元。姿態(tài)檢測子單元用于檢測移動終端的當(dāng)前姿態(tài);視點計算子單元用于根據(jù)所述當(dāng)前姿態(tài)計算所述當(dāng)前視點。其中,姿態(tài)檢測子單元包含陀螺儀。
      [0040]紋理圖像生成單元12用于根據(jù)將當(dāng)前視角范圍內(nèi)的三維圖像渲染到紋理,以生成紋理圖像。
      [0041 ]圖像傳遞單元用于將紋理圖像傳遞的紋理標(biāo)號至反畸變處理單元14。
      [0042]反畸變處理單元14用于根據(jù)紋理標(biāo)號獲取紋理圖像,并對紋理圖像進行反畸變處理。
      [0043]顯示單元15用于顯示經(jīng)反畸變處理后的紋理圖像。
      [0044]不難發(fā)現(xiàn),本實施方式為與第一實施方式相對應(yīng)的系統(tǒng)實施例,本實施方式可與第一實施方式互相配合實施。第一實施方式中提到的相關(guān)技術(shù)細節(jié)在本實施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實施方式中提到的相關(guān)技術(shù)細節(jié)也可應(yīng)用在第一實施方式中。
      [0045]值得一提的是,本實施方式中所涉及到的各模塊均為邏輯模塊,在實際應(yīng)用中,一個邏輯單元可以是一個物理單元,也可以是一個物理單元的一部分,還可以以多個物理單元的組合實現(xiàn)。此外,為了突出本發(fā)明的創(chuàng)新部分,本實施方式中并沒有將與解決本發(fā)明所提出的技術(shù)問題關(guān)系不太密切的單元引入,但這并不表明本實施方式中不存在其它的單
      J L ο
      [0046]本發(fā)明第三實施方式涉及一種移動終端,包含第二實施方式所述的360度圖像加載模塊。本實施方式中的移動終端為智能手機,然并不限于此。。
      [0047]其中,第二實施方式中提到的相關(guān)技術(shù)細節(jié)在本實施方式中依然有效,在第二實施方式中所能達到的技術(shù)效果在本實施方式中也同樣可以實現(xiàn),為了減少重復(fù),這里不再贅述。相應(yīng)地,本實施方式中提到的相關(guān)技術(shù)細節(jié)也可應(yīng)用在第二實施方式中。
      [0048]本領(lǐng)域的普通技術(shù)人員可以理解,上述各實施方式是實現(xiàn)本發(fā)明的具體實施例,而在實際應(yīng)用中,可以在形式上和細節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。
      【主權(quán)項】
      1.一種360度圖像加載方法,其特征在于,包含以下步驟: 第一數(shù)據(jù)層生成三維圖像; 第一數(shù)據(jù)層獲取當(dāng)前視點; 第一數(shù)據(jù)層根據(jù)所述當(dāng)前視點將當(dāng)前視角范圍內(nèi)的三維圖像渲染到紋理,以生成紋理圖像; 第一數(shù)據(jù)層將所述紋理圖像的紋理標(biāo)號傳遞至native層; 第二數(shù)據(jù)層根據(jù)所述紋理標(biāo)號獲取所述紋理圖像,并對所述紋理圖像進行反畸變處理。2.根據(jù)權(quán)利要求1所述的360度圖像加載方法,其特征在于,所述第一數(shù)據(jù)層根據(jù)所述當(dāng)前視點將當(dāng)前視角范圍內(nèi)的三維圖像渲染到紋理,以生成紋理圖像生成紋理圖像的步驟,包含以下子步驟: 第一數(shù)據(jù)層根據(jù)所述當(dāng)前視點將當(dāng)前視角范圍內(nèi)的三維圖像渲染到幀緩存; 第一數(shù)據(jù)層將所述幀緩存中的內(nèi)容渲染到紋理,以生成紋理圖像生成紋理圖像。3.根據(jù)權(quán)利要求1所述的360度圖像加載方法,其特征在于,所述獲取當(dāng)前視點的步驟,包含以下子步驟: 第一數(shù)據(jù)層檢測移動終端的當(dāng)前姿態(tài); 第一數(shù)據(jù)層根據(jù)所述當(dāng)前姿態(tài)計算所述當(dāng)前視點。4.根據(jù)權(quán)利要求3所述的360度圖像加載方法,其特征在于,所述當(dāng)前視點至少由移動終端的角速度表征。5.根據(jù)權(quán)利要求1所述的360度圖像加載方法,其特征在于,所述第二數(shù)據(jù)層對所述紋理圖像進行反畸變處理的步驟之后,還包含以下步驟: 第一數(shù)據(jù)層顯示經(jīng)所述反畸變處理后的紋理圖像。6.根據(jù)權(quán)利要求1所述的360度圖像加載方法,其特征在于,所述第一數(shù)據(jù)層是java層,所述第二數(shù)據(jù)層是native層。7.—種360度圖像加載模塊,其特征在于,包含:三維圖像生成單元、視點獲取單元、紋理圖像生成單元、紋理圖像傳遞單元以及反畸變處理單元; 所述三維圖像生成單元用于生成三維圖像; 所述視點獲取單元用于獲取當(dāng)前視點; 所述紋理圖像生成單元用于根據(jù)將當(dāng)前視角范圍內(nèi)的三維圖像渲染到紋理,以生成紋理圖像; 所述圖像傳遞單元用于將所述紋理圖像的紋理標(biāo)號傳遞至所述反畸變處理單元; 所述反畸變處理單元根據(jù)所述紋理標(biāo)號獲取所述紋理圖像,并對所述紋理圖像進行反畸變處理。8.根據(jù)權(quán)利要求7所述的360度圖像加載模塊,其特征在于,所述視點獲取單元還包含:姿態(tài)檢測子單元與視點計算子單元; 所述姿態(tài)檢測子單元用于檢測移動終端的當(dāng)前姿態(tài); 所述視點計算子單元用于根據(jù)所述當(dāng)前姿態(tài)計算所述當(dāng)前視點。9.根據(jù)權(quán)利要求8所述的360度圖像加載模塊,其特征在于,所述姿態(tài)檢測子單元包含陀螺儀。10.根據(jù)權(quán)利要求7所述的360度圖像加載模塊,其特征在于,所述360度圖像顯示模塊還包含:顯示單元; 所述顯示單元用于顯示經(jīng)所述反畸變處理后的紋理圖像。11.一種移動終端,其特征在于,包含權(quán)利要求7至10中任意一項所述的360度圖像加載模塊。
      【文檔編號】G06T15/00GK105898272SQ201511022816
      【公開日】2016年8月24日
      【申請日】2015年12月28日
      【發(fā)明人】許小飛
      【申請人】樂視致新電子科技(天津)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1