本發(fā)明涉及虛擬現(xiàn)實(shí)(VR)領(lǐng)域,尤其涉及一種新的全景圖像映射方法,能夠減少編碼全景圖像和視頻所需的碼率,可用于全景圖像和視頻。
背景技術(shù):
隨著虛擬現(xiàn)實(shí)技術(shù)的日益發(fā)展,各領(lǐng)域?qū)μ摂M現(xiàn)實(shí)視頻的需求日益增加。相比于傳統(tǒng)的平面圖像,360°的全景圖像要求更廣的視角,因此,全景圖像需要更高的分辨率,其編碼所需的碼率也高出許多。
現(xiàn)有的編碼和存儲(chǔ)技術(shù)均不支持球面,因此,采用現(xiàn)有方法對(duì)全景圖像進(jìn)行編碼和存儲(chǔ),需要將360°的全景圖像映射到二維平面上。現(xiàn)有方法中,最常見(jiàn)的映射方式是equirectangular映射,這種映射方式根據(jù)球面的經(jīng)度和緯度對(duì)球面進(jìn)行采樣,將球面映射到二維平面上。但是,采用這種映射方式對(duì)360°全景圖像進(jìn)行映射時(shí),在球面的高緯度區(qū)域存在著較嚴(yán)重的過(guò)采樣現(xiàn)象,編碼所需的碼率及解碼的復(fù)雜度高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種新的全景圖像映射方法及其相應(yīng)的反映射方法,通過(guò)全景圖像映射方法可將球面映射到二維平面上,采用全景圖像反映射方法可從平面映射回球面,以進(jìn)行渲染觀看。本發(fā)明方法有效改善全景圖像或視頻所對(duì)應(yīng)球面在高緯度區(qū)域的過(guò)采樣,減少編碼全景圖像和視頻所需的碼率,同時(shí)提高了編碼效率。
本發(fā)明提供的技術(shù)方案是:
一種全景圖像映射方法,將全景圖像或視頻A所對(duì)應(yīng)的球面映射到二維平面圖像或視頻B上,可改善全景圖像在高緯度區(qū)域的過(guò)采樣,減少編碼全景圖像和視頻所需的碼率;所述映射方法將球面映射為二維平面,首先根據(jù)球面的緯度,將球面分成三個(gè)區(qū)域:分別記為區(qū)域I,區(qū)域II和區(qū)域III;區(qū)域I對(duì)應(yīng)球面上緯度為-90°~Z1的區(qū)域,區(qū)域II對(duì)應(yīng)球面上緯度為Z1~Z2的區(qū)域,區(qū)域III對(duì)應(yīng)球面上緯度為Z2~90°的區(qū)域;然后將區(qū)域I映射為分辨率為W1×W1的方形平面I′,區(qū)域II映射為分辨率為WII×HII的矩形平面II′,區(qū)域III映射為分辨率為WIII×WIII的方形平面III′;最后根據(jù)WI,WII,HII,WIII的值將平面I′,II′,III′拼成一個(gè)平面,所的平面即為上述二維平面圖像B;所述參數(shù)Z1,Z2,WI,WII,HII,WIII均可進(jìn)行設(shè)置,且需滿足條件:-90°≤Z1≤Z2和Z1≤Z2≤90°。
針對(duì)上述全景圖像映射方法,進(jìn)一步地,將全景圖像或視頻A所對(duì)應(yīng)的球面映射到二維平面圖像或視頻B上的過(guò)程包括以下步驟或以下步驟的等效實(shí)現(xiàn):
1)對(duì)方形平面I′中的每個(gè)像素點(diǎn),根據(jù)其在平面I′中的坐標(biāo)(X,Y),計(jì)算其對(duì)應(yīng)的球面坐標(biāo)Coordinate(經(jīng)度和緯度),然后根據(jù)球面坐標(biāo)Coordinate取球面上對(duì)應(yīng)位置的像素值(或附近像素通過(guò)插值計(jì)算得到相應(yīng)像素值),作為平面I′中像素點(diǎn)(X,Y)的像素值。根據(jù)平面I′中的坐標(biāo)(X,Y)計(jì)算其對(duì)應(yīng)的球面坐標(biāo)Coordinate的方法為:
1.1)計(jì)算得到該點(diǎn)到方形平面I′中心的垂直距離和水平距離,取其中較大的一個(gè)記為m;
1.2)方形平面I′可看作是多個(gè)同心方形組成的,本步中計(jì)算得到該點(diǎn)到其所在的同心方形上第零個(gè)點(diǎn)的距離,記為n;其中第零個(gè)點(diǎn)的位置可任意選取,可按照順時(shí)針或逆時(shí)針?lè)绞接?jì)算上述距離;
1.3)根據(jù)n和m計(jì)算得到方形平面I′中坐標(biāo)為(X,Y)的點(diǎn)所對(duì)應(yīng)的緯度latitude和經(jīng)度longitude;
2)對(duì)矩形平面II′中的每個(gè)像素點(diǎn),根據(jù)其在平面II′中的坐標(biāo)(X,Y),計(jì)算其對(duì)應(yīng)的球面坐標(biāo)Coordinate(經(jīng)度和緯度),然后根據(jù)球面坐標(biāo)Coordinate取球面上對(duì)應(yīng)位置的像素值(或附近像素通過(guò)插值計(jì)算得到相應(yīng)像素值),作為平面II′中像素點(diǎn)(X,Y)的像素值。根據(jù)平面II′中的坐標(biāo)(X,Y)計(jì)算其對(duì)應(yīng)的球面坐標(biāo)Coordinate的公式為:
latitude=Z2-(Z2-Z1)×(Y+0.5)÷HII
longitude=360°×(X+0.5)÷WII-180°+offset
其中,offset為矩形平面II′中心對(duì)應(yīng)的經(jīng)度,可自行設(shè)置。
3)對(duì)方形平面III′中的每個(gè)像素點(diǎn),根據(jù)其在平面III′中的坐標(biāo)(X,Y),計(jì)算其對(duì)應(yīng)的球面坐標(biāo)Coordinate(經(jīng)度和緯度),然后根據(jù)球面坐標(biāo)Coordinate取球面上對(duì)應(yīng)位置的像素值(或附近像素通過(guò)插值計(jì)算得到相應(yīng)像素值),作為平面I′中像素點(diǎn)(X,Y)的像素值。根據(jù)平面I′中的坐標(biāo)(X,Y)計(jì)算其對(duì)應(yīng)的球面坐標(biāo)Coordinate的方法為:
3.1)計(jì)算得到該點(diǎn)到方形平面III′中心的垂直距離和水平距離,取其中較大的一個(gè)記為m;
3.2)方形平面III′可看作是多個(gè)同心方形組成的,本步中計(jì)算得到該點(diǎn)到其所在的同心方形上第零個(gè)點(diǎn)的距離,記為n;其中第零個(gè)點(diǎn)的位置可任意選取;
3.3)根據(jù)n和m計(jì)算得到方形平面III′中坐標(biāo)為(X,Y)的點(diǎn)所對(duì)應(yīng)的緯度latitude和經(jīng)度longitude;
4)根據(jù)WI,WII,HII,WIII的值將平面I′,II′,III′拼成一個(gè)平面。
針對(duì)上述全景圖像映射過(guò)程,進(jìn)一步地,全景圖像或視頻A的映射格式包括但不限于經(jīng)緯圖、立方體映射圖像或視頻、多路相機(jī)采集的全景圖像或視頻。
針對(duì)上述全景圖像映射方法,進(jìn)一步地,步驟1.1)中計(jì)算得到該點(diǎn)到方形平面I′中心的垂直距離和水平距離,取其中較大的一個(gè)記為m的計(jì)算公式如下:
m=max(abs(WI÷2-X-0.5),abs(WI÷2-Y-0.5))
針對(duì)上述全景圖像映射方法,進(jìn)一步地,步驟1.2)中計(jì)算得到該點(diǎn)到其所在的同心方形上第零個(gè)點(diǎn)的距離,具體選取右上角的像素為第零個(gè)像素,距離按逆時(shí)針?lè)较蛴?jì)算,其計(jì)算方法如下:
m2=(W1-1)÷2-m
針對(duì)上述全景圖像映射方法,進(jìn)一步地,步驟1.3)中根據(jù)n和m計(jì)算得到方形平面I′中坐標(biāo)為(X,Y)的點(diǎn)所對(duì)應(yīng)的緯度latitude和經(jīng)度longitude的計(jì)算公式如下:
latitude=(Z1+90°)×m÷(W1÷2)-90°
longitude=n÷(8×m)×360°-180°
針對(duì)上述全景圖像映射方法,進(jìn)一步地,步驟3.1)中計(jì)算得到該點(diǎn)到方形平面III′中心的垂直距離和水平距離,取其中較大的一個(gè)記為m的計(jì)算公式如下:
m=max(abs(WIII÷2-X-0.5),abs(WIII÷2-Y-0.5))
針對(duì)上述全景圖像映射方法,進(jìn)一步地,步驟3.2)中計(jì)算得到該點(diǎn)到其所在的同心方形上第零個(gè)點(diǎn)的距離,具體選取右上角的像素為第零個(gè)像素,距離按順時(shí)針?lè)较蛴?jì)算,其計(jì)算方法如下:
m2=(WIII-1)÷2-m
針對(duì)上述全景圖像映射方法,進(jìn)一步地,步驟3.3)中根據(jù)n和m計(jì)算得到方形平面III′中坐標(biāo)為(X,Y)的點(diǎn)所對(duì)應(yīng)的緯度latitude和經(jīng)度longitude的計(jì)算公式如下:
latitude=90°-(90°-Z2)×m÷(WIII÷2)
longitude=n÷(8×m)×360°-180°
針對(duì)上述全景圖像映射方法,進(jìn)一步地,步驟4)中當(dāng)WI=0.25×WII=HII=WIII時(shí)可進(jìn)行如下的拼接:由于0.25×WII=HII,因此矩形平面II′的分辨率為表示為4HII×HII,首先將矩形平面II′分成四個(gè)分辨率為HII×HII的小平面,記作:II′1,II′2,II′3,II′4,然后按照平面II′1,平面II′2,平面II′3,平面III′,平面II′4,平面I′的順序?qū)⑺鼈兤唇映梢粋€(gè)分辨率為6W1×W1的平面,拼接中平面III′順時(shí)針旋轉(zhuǎn)90°,平面II′4逆時(shí)針旋轉(zhuǎn)90°。
另一方面,全景圖像反映射方法將二維平面圖像或視頻B映射回球面,二維平面圖像B由三個(gè)平面拼接而成,這三個(gè)平面記為平面I′,平面II′,平面III′,平面I′是分辨率為W1×W1的方形平面,平面II′是分辨率為W11×H11的矩形平面,平面III′是分辨率為WIII×WIII的方形平面;全景視頻反映射方法將平面I′映射回球面上緯度為-90°~Z1的區(qū)域I,平面II′映射回球面上緯度為Z1~Z2的區(qū)域II,平面III′映射回球面上緯度為Z2~90°的區(qū)域III,所述參數(shù)Z1,Z2,WI,WII,HII,WIII的值包括但不限于從碼流中獲取。
針對(duì)上述全景圖像反映射方法,將二維平面圖像或視頻B映射回球面的過(guò)程包括以下步驟及以下步驟的等效實(shí)現(xiàn):
1)將二維平面圖像B拆分成平面I′,平面II′,平面III′
2)對(duì)于球面上緯度為-90°~Z1的區(qū)域中的所有像素,根據(jù)其球面坐標(biāo)Coordinate(經(jīng)度和緯度)計(jì)算其對(duì)應(yīng)到平面I′中的坐標(biāo)(X,Y),取平面I′中(X,Y)處的像素值(或附近像素進(jìn)行插值),作為球面上坐標(biāo)Coordinate處像素點(diǎn)的值。根據(jù)球面坐標(biāo)Coordinate計(jì)算其對(duì)應(yīng)到平面I′中的坐標(biāo)(X,Y)的步驟如下:
2.1)根據(jù)緯度latitude計(jì)算球面上的點(diǎn)在平面I′中的對(duì)應(yīng)點(diǎn)距離平面I′中心的距離m;
2.2)根據(jù)經(jīng)度longitude計(jì)算球面上的點(diǎn)在平面I′中的對(duì)應(yīng)點(diǎn)距離該對(duì)應(yīng)點(diǎn)所在的同心方形中第零個(gè)點(diǎn)的距離n;
2.3)根據(jù)m和n的值以及同心方形第零個(gè)像素的位置,計(jì)算出球面上的點(diǎn)在平面I′中的對(duì)應(yīng)點(diǎn)的坐標(biāo)(X,Y)
3)對(duì)于球面上緯度為Z1~Z2的區(qū)域中的所有像素,根據(jù)其球面坐標(biāo)Coordinate(經(jīng)度和緯度)計(jì)算其對(duì)應(yīng)到平面II′中的坐標(biāo)(X,Y),取平面II′中(X,Y)處的像素值(或附近像素進(jìn)行插值),作為球面上坐標(biāo)Coordinate處像素點(diǎn)的值。根據(jù)其球面坐標(biāo)Coordinate計(jì)算其對(duì)應(yīng)到平面II′中的坐標(biāo)(X,Y)的計(jì)算公式為:
Y=(Z2-latitude)×HII÷(Z2-Z1)-0.5
X=(longitude+180°-offste)÷360°×WII-0.5
其中offset為矩形平面II′中心對(duì)應(yīng)的經(jīng)度。
4)對(duì)于球面上緯度為Z2~90°的區(qū)域中的所有像素,根據(jù)其球面坐標(biāo)Coordinate(經(jīng)度和緯度)計(jì)算其對(duì)應(yīng)到平面III′中的坐標(biāo)(X,Y),取平面III′中(X,Y)處的像素值(或附近像素進(jìn)行插值),作為球面上坐標(biāo)Coordinate處像素點(diǎn)的值。
4.1)根據(jù)緯度latitude計(jì)算球面上的點(diǎn)在平面III′中的對(duì)應(yīng)點(diǎn)距離平面III′中心的距離m;
4.2)根據(jù)經(jīng)度longitude計(jì)算球面上的點(diǎn)在平面III′中的對(duì)應(yīng)點(diǎn)距離該對(duì)應(yīng)點(diǎn)所在的同心方形中第零個(gè)點(diǎn)的距離n;
4.3)根據(jù)m和n的值以及同心方形第零個(gè)像素的位置,計(jì)算出球面上的點(diǎn)在平面III′中的對(duì)應(yīng)點(diǎn)的坐標(biāo)(X,Y)
針對(duì)上述全景圖像反映射方法,進(jìn)一步地,步驟1)中當(dāng)參數(shù)WI=0.25×WII=HII=WIII,且平面I′,平面II′,平面III′拼接成的二維平面圖像B分辨率為6W1×W1時(shí),可進(jìn)行如下拆分:將二維平面圖像B分成6個(gè)W1×W1的平面,分別記作平面1,平面2,平面3,平面4,平面5,平面6,將平面4逆時(shí)針旋轉(zhuǎn)90°得到平面III′;平面6即為平面I′;剩下的4個(gè)平面按照平面1,平面2,平面3,平面5的順序拼接為分辨率4WI×WI的平面(其中平面5順時(shí)針旋轉(zhuǎn)90°)得到平面II′
針對(duì)上述全景圖像反映射方法,進(jìn)一步地,步驟2.1)中根據(jù)緯度latitude計(jì)算球面上的點(diǎn)在平面I′中的對(duì)應(yīng)點(diǎn)距離平面I′中心的距離m的計(jì)算公式如下:
m=(WI÷2)×(latitude+90°)÷(Z1+90°)
針對(duì)上述全景圖像反映射方法,進(jìn)一步地,步驟2.2)中根據(jù)經(jīng)度longitude計(jì)算球面上的點(diǎn)在平面I′中的對(duì)應(yīng)點(diǎn)距離該對(duì)應(yīng)點(diǎn)所在的同心方形中第零個(gè)點(diǎn)的距離n的計(jì)算公式如下:
n=8×m×(longitude+180°)÷360°
針對(duì)上述全景圖像反映射方法,進(jìn)一步地,步驟2.3)中根據(jù)m和n的值,具體選取右上角的像素為第零個(gè)像素,距離按逆時(shí)針?lè)较蛴?jì)算,計(jì)算出球面上的點(diǎn)在平面I′中的對(duì)應(yīng)點(diǎn)的坐標(biāo)(X,Y)的計(jì)算公式如下:
m2=(WI-1)÷2-m
針對(duì)上述全景圖像反映射方法,進(jìn)一步地,步驟4.1)中根據(jù)緯度latitude計(jì)算球面上的點(diǎn)在平面III′中的對(duì)應(yīng)點(diǎn)距離平面III′中心的距離m的計(jì)算公式如下:
m=(WIII÷2)×(90°-latitude)÷(90°-Z2)
針對(duì)上述全景圖像反映射方法,進(jìn)一步地,步驟4.2)中根據(jù)經(jīng)度longitude計(jì)算球面上的點(diǎn)在平面III′中的對(duì)應(yīng)點(diǎn)距離該對(duì)應(yīng)點(diǎn)所在的同心方形中第零個(gè)點(diǎn)的距離n的計(jì)算公式如下:
n=8×m×(longitude+180°)÷360°
針對(duì)上述全景圖像反映射方法,進(jìn)一步地,步驟4.3)中根據(jù)m和n的值,具體選取右上角的像素為第零個(gè)像素,距離按順時(shí)針?lè)较蛴?jì)算,計(jì)算出球面上的點(diǎn)在平面III′中的對(duì)應(yīng)點(diǎn)的坐標(biāo)(X,Y)的計(jì)算公式如下:
m2=(WIII-1)÷2-m
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
本發(fā)明提供一種新的全景圖像映射方法及反映射方法。其中,映射過(guò)程將全景圖像或視頻A對(duì)應(yīng)的球面映射為二維平面圖像或視頻B,首先根據(jù)球面的緯度,將球面分成三個(gè)區(qū)域:分別記為區(qū)域I,區(qū)域II和區(qū)域III;將所述三個(gè)區(qū)域分別映射為方形平面I′、矩形平面II′和方形平面III′;再將平面I′、II′、III′拼成一個(gè)平面;所得的平面即為二維平面圖像或視頻B
本發(fā)明方法可自行設(shè)置參數(shù)進(jìn)行映射和反映射。相較于equirectangular映射方法,當(dāng)合理選擇參數(shù)時(shí)(比如:WI=0.25×WII=HII=WIII),本發(fā)明方法可有效地改善在高緯度區(qū)域的過(guò)采樣,能夠有效降低編碼所需的碼率以及解碼的復(fù)雜度。在具體實(shí)施中,將球面全景視頻分別使用equirectangular,PLANE_POLES和本發(fā)明的方法映射為相同大小(像素個(gè)數(shù)相同)的平面視屏并進(jìn)行編碼,本發(fā)明的方法相較于equirectangular映射取得了超過(guò)10%的編碼效率的提升,相較于PLANE_POLES方法,取得了3%-4%的編碼效率的提升。本發(fā)明可應(yīng)用于全景圖像和視頻。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例提供的全景圖像映射方法中映射過(guò)程的示意圖;
其中,(a)為映射前的球面全景圖像;(b)為通過(guò)本發(fā)明全景圖像映射方法映射后的方形平面I′、矩形平面II′和方形平面III′的示意圖;(c)為映射后再拼接得到的平面圖像。
圖2是本發(fā)明實(shí)施例將全景圖像映射成平面圖像的效果圖。
具體實(shí)施方式
下面結(jié)合附圖,通過(guò)實(shí)施例進(jìn)一步描述本發(fā)明,但不以任何方式限制本發(fā)明的范圍。
本發(fā)明提供了一種新的全景圖像映射方法及其相應(yīng)的反映射方法,通過(guò)本發(fā)明的全景圖像映射方法可將球面映射到二維平面上,能夠改善在高緯度區(qū)域的過(guò)采樣。通過(guò)全景圖像反映射方法可將本發(fā)明中的平面圖像映射回球面,以進(jìn)行渲染觀看。
本發(fā)明實(shí)施例提供了一種基于主視點(diǎn)的全景圖像映射方法,包括全景圖像映射方法以及相應(yīng)的反映射方法,以下分別介紹映射方法以及反映射方法的實(shí)施例。
圖1所示為通過(guò)全景視頻反映射方法將全景圖像A所對(duì)應(yīng)的球面映射到二維平面圖像B上的映射過(guò)程。根據(jù)球面的緯度,將球面分成三個(gè)區(qū)域:分別記為區(qū)域I,區(qū)域II和區(qū)域III;區(qū)域I對(duì)應(yīng)球面上緯度為-90°~Z1的區(qū)域,區(qū)域II對(duì)應(yīng)球面上緯度為Z1~Z2的區(qū)域,區(qū)域III對(duì)應(yīng)球面上緯度為Z2~90°的區(qū)域;然后將區(qū)域I映射為分辨率為W1×W1的方形平面I′,區(qū)域II映射為分辨率為WII×HII的矩形平面II′,區(qū)域III映射為分辨率為WIII×WIII的方形平面III′;最后根據(jù)WI,WII,HII,WIII的值將平面I′,II′,III′拼成一個(gè)平面,所得的平面即為上述二維平面圖像B;所述參數(shù)Z1,Z2,WI,WII,HII,WIII均可進(jìn)行設(shè)置,且需滿足條件:-90°≤Z1≤Z2和Z1≤Z2≤90°,在本實(shí)施例中令參數(shù)WI=0.25×WII=HII=WIII以保證最后拼接成矩形。將圖1(a)中的球面映射并拼接成圖1(c)中的平面的方法步驟如下:
第一步:對(duì)方形平面I′中的每個(gè)像素點(diǎn),根據(jù)其在平面I′中的坐標(biāo)(X,Y),計(jì)算其對(duì)應(yīng)的球面坐標(biāo)Coordinate(經(jīng)度和緯度),然后根據(jù)球面坐標(biāo)Coordinate取球面上對(duì)應(yīng)位置的像素值(或附近像素通過(guò)插值計(jì)算得到相應(yīng)像素值),作為平面I′中像素點(diǎn)(X,Y)的像素值。根據(jù)平面I′中的坐標(biāo)(X,Y)計(jì)算其對(duì)應(yīng)的球面坐標(biāo)Coordinate的方法為:
1.1)計(jì)算得到該點(diǎn)到方形平面I′中心的垂直距離和水平距離,取其中較大的一個(gè)記為m;通過(guò)式1計(jì)算得到:
m=max(abs(WI÷2-X-0.5),abs(WI÷2-Y-0.5)) (式1)
1.2)方形平面I′可看作是多個(gè)同心方形組成的,本步中計(jì)算得到該點(diǎn)到其所在的同心方形上第零個(gè)點(diǎn)的距離,記為n;具體地,本實(shí)施例選取右上角的像素為第零個(gè)像素,距離按逆時(shí)針?lè)较蛴?jì)算,其計(jì)算方法如下:
其中,m2=(WI-1)÷2-m。
1.3)根據(jù)n和m,分別通過(guò)式3和式4計(jì)算得到方形平面I′中坐標(biāo)為(X,Y)的點(diǎn)所對(duì)應(yīng)的緯度latitude和經(jīng)度longitude:
latitude=(Z1+90°)×m÷(WI÷2)-90° (式3)
longitude=n÷(8×m)×360°-180° (式4)
第二步:對(duì)方形平面II′中的每個(gè)像素點(diǎn),根據(jù)其在平面II′中的坐標(biāo)(X,Y),計(jì)算其對(duì)應(yīng)的球面坐標(biāo)Coordinate(經(jīng)度和緯度),然后根據(jù)球面坐標(biāo)Coordinate取球面上對(duì)應(yīng)位置的像素值(或附近像素通過(guò)插值計(jì)算得到相應(yīng)像素值),作為平面II′中像素點(diǎn)(X,Y)的像素值。根據(jù)平面II′中的坐標(biāo)(X,Y)計(jì)算其對(duì)應(yīng)的球面坐標(biāo)Coordinate的公式為:
latitude=Z2-(Z2-Z1)×(Y+0.5)÷HII (式5)
longitude=360°×(X+0.5)÷WII-180°+offset (式6)
其中,offset為矩形平面II′中心對(duì)應(yīng)的經(jīng)度,可自行設(shè)置。
第三步:對(duì)方形平面III′中的每個(gè)像素點(diǎn),根據(jù)其在平面III′中的坐標(biāo)(X,Y),計(jì)算其對(duì)應(yīng)的球面坐標(biāo)Coordinate(經(jīng)度和緯度),然后根據(jù)球面坐標(biāo)Coordinate取球面上對(duì)應(yīng)位置的像素值(或附近像素通過(guò)插值計(jì)算得到相應(yīng)像素值),作為平面III′中像素點(diǎn)(X,Y)的像素值。根據(jù)平面III′中的坐標(biāo)(X,Y)計(jì)算其對(duì)應(yīng)的球面坐標(biāo)Coordinate的方法為:
3.1)計(jì)算得到該點(diǎn)到方形平面III′中心的垂直距離和水平距離,取其中較大的一個(gè)記為m;
m=max(abs(WIII÷2-X-0.5),abs(WIII÷2-Y-0.5)) (式7)
3.2)方形平面III′可看作是多個(gè)同心方形組成的,本步中計(jì)算得到該點(diǎn)到其所在的同心方形上第零個(gè)點(diǎn)的距離,記為n;其中第零個(gè)點(diǎn)的位置可任意選??;
其中,m2=(WIII-1)÷2-m;
3.3)根據(jù)n和m計(jì)算得到方形平面III′中坐標(biāo)為(X,Y)的點(diǎn)所對(duì)應(yīng)的緯度latitude和經(jīng)度longitude;
latitude=90°-(90°-Z2)×m÷(WIII÷2) (式9)
longitude=n÷(8×m)×360°-180° (式10)
第四步:如圖1(b)和圖1(c)所示,首先將矩形平面II′分成四個(gè)分辨率為HII×HII的小平面,記作:II′1,II′2,II′3,II′4,然后按照平面II′1,平面II′2,平面II′3,平面III′,平面II′4,平面I′的順序?qū)⑺鼈兤唇映梢粋€(gè)分辨率為6WI×WI的平面,拼接中平面III′順時(shí)針旋轉(zhuǎn)90°,平面II′4逆時(shí)針旋轉(zhuǎn)90°。
至此,本實(shí)施例完成將全景圖像從球面映射成平面圖像,得到的平面圖像展示效果如圖2所示。
另一方面,本發(fā)明提供的全景圖像反映射方法將二維平面圖像B映射回球面,二維平面圖像B由三個(gè)平面拼接而成,這三個(gè)平面記為平面I′,平面II′,平面III′,平面I′是分辨率為WI×WI的方形平面,平面II′是分辨率為WII×HII的矩形平面,平面III′是分辨率為WIII×WIII的方形平面;全景視頻反映射方法將平面I′映射回球面上緯度為-90°~Z1的區(qū)域I,平面II′映射回球面上緯度為Z1~Z2的區(qū)域II,平面III′映射回球面上緯度為Z2~90°的區(qū)域III,所述參數(shù)Z1,Z2,WI,WII,HII,WIII的值包括但不限于從碼流中獲取。本實(shí)施例中令參數(shù)WI=0.25×WII=HII=WIII,且平面I′,平面II′,平面III′拼接成的二維平面圖像B分辨率為6WI×WI。
上述全景視頻反映射方法將二維平面圖像B映射回球面的具體步驟如下:
第一步:二維平面圖像B拆分成平面I′,平面II′,平面III′,拆分的方法為,將二維平面圖像B分成6個(gè)WI×WI的平面,分別記作平面1,平面2,平面3,平面4,平面5,平面6,將平面4逆時(shí)針旋轉(zhuǎn)90°得到平面III′;平面6即為平面I′;剩下的4個(gè)平面按照平面1、平面2、平面3、平面5的順序拼接為分辨率4WI×WI的平面(其中平面5順時(shí)針旋轉(zhuǎn)90°)得到平面II′;
第二步:對(duì)于球面上緯度為-90°~Z1的區(qū)域中的所有像素,根據(jù)其球面坐標(biāo)Coordinate(經(jīng)度和緯度)計(jì)算其對(duì)應(yīng)到平面I′中的坐標(biāo)(X,Y),取平面I′中(X,Y)處的像素值(或附近像素進(jìn)行插值),作為球面上坐標(biāo)Coordinate處像素點(diǎn)的值。根據(jù)球面坐標(biāo)Coordinate計(jì)算其對(duì)應(yīng)到平面I′中的坐標(biāo)(X,Y)的步驟如下:
2.1)根據(jù)緯度latitude計(jì)算球面上的點(diǎn)在平面I′中的對(duì)應(yīng)點(diǎn)距離平面I′中心的距離m,計(jì)算公式如下:
m=(WI÷2)×(latitude+90°)÷(Z1+90°) (式11)
2.2)根據(jù)經(jīng)度longitude計(jì)算球面上的點(diǎn)在平面I′中的對(duì)應(yīng)點(diǎn)距離該對(duì)應(yīng)點(diǎn)所在的同心方形中第零個(gè)點(diǎn)的距離n,其計(jì)算公式如下:
n=8×m×(longitude+180°)÷360° (式12)
2.3)根據(jù)m和n的值計(jì)算出球面上的點(diǎn)在平面I′中的對(duì)應(yīng)點(diǎn)的坐標(biāo)(X,Y):
其中,m2=(WI-1)÷2-m;
第三步:對(duì)于球面上緯度為Z1~Z2的區(qū)域中的所有像素,根據(jù)其球面坐標(biāo)Coordinate(經(jīng)度和緯度)計(jì)算其對(duì)應(yīng)到平面II′中的坐標(biāo)(X,Y),取平面II′中(X,Y)處的像素值(或附近像素進(jìn)行插值),作為球面上坐標(biāo)Coordinate處像素點(diǎn)的值。根據(jù)其球面坐標(biāo)Coordinate計(jì)算其對(duì)應(yīng)到平面II′中的坐標(biāo)(X,Y)的計(jì)算公式為:
Y=(Z2-latitude)×HII÷(Z2-Z1)-0.5 (式14)
X=(longitude+180°-offset)÷360°×WII-0.5 (式15)
其中,offset為矩形平面II′中心對(duì)應(yīng)的經(jīng)度。
第四步:對(duì)于球面上緯度為Z2~90°的區(qū)域中的所有像素,根據(jù)其球面坐標(biāo)Coordinate(經(jīng)度和緯度)計(jì)算其對(duì)應(yīng)到平面III′中的坐標(biāo)(X,Y),取平面III′中(X,Y)處的像素值(或附近像素進(jìn)行插值),作為球面上坐標(biāo)Coordinate處像素點(diǎn)的值。
4.1)根據(jù)緯度latitude計(jì)算球面上的點(diǎn)在平面III′中的對(duì)應(yīng)點(diǎn)距離平面III′中心的距離m;
m=(WIII÷2)×(90°-latitude)÷(90°-Z2) (式16)
4.2)根據(jù)經(jīng)度longitude計(jì)算球面上的點(diǎn)在平面III′中的對(duì)應(yīng)點(diǎn)距離該對(duì)應(yīng)點(diǎn)所在的同心方形中第零個(gè)點(diǎn)的距離n;
n=8×m×(longitude+180°)÷360° (式17)
4.3)根據(jù)m和n的值計(jì)算出球面上的點(diǎn)在平面III′中的對(duì)應(yīng)點(diǎn)的坐標(biāo)(X,Y)
m2=(WIII-1)÷2-m
其中,m2=(WIII-1)÷2-m。
至此,上述實(shí)施例完成本發(fā)明反映射方法的所有步驟,通過(guò)反映射方法將二維平面圖像B映射回球面,便于進(jìn)行渲染觀看。
在具體實(shí)施中,將球面全景視頻分別使用equirectangular映射方法、PLANE_POLES映射方法和本發(fā)明方法映射為相同大小(像素個(gè)數(shù)相同)的平面視頻并進(jìn)行編碼。其中,PLANE_POLES映射方法是在equirectangular映射方法基礎(chǔ)上,將球面上兩極附近的區(qū)域映射成方形,將球面上緯度相同的圓環(huán)映射為平面上的圓環(huán)。實(shí)施結(jié)果表明,本發(fā)明的方法相較于equirectangular映射取得了超過(guò)10%的編碼效率的提升,相較于PLANE_POLES的方法,取得了3%-4%的編碼效率的提升。
需要注意的是,公布實(shí)施例的目的在于幫助進(jìn)一步理解本發(fā)明,但是本領(lǐng)域的技術(shù)人員可以理解:在不脫離本發(fā)明及所附權(quán)利要求的精神和范圍內(nèi),各種替換和修改都是可能的。因此,本發(fā)明不應(yīng)局限于實(shí)施例所公開(kāi)的內(nèi)容,本發(fā)明要求保護(hù)的范圍以權(quán)利要求書(shū)界定的范圍為準(zhǔn)。