最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

全景視頻的編解碼方法和裝置與流程

文檔序號:11157561閱讀:1079來源:國知局
全景視頻的編解碼方法和裝置與制造工藝

本發(fā)明實施例涉及視頻編碼技術(shù),尤其涉及一種全景視頻的編解碼方法和裝置。



背景技術(shù):

視頻的編解碼技術(shù)被廣泛的應(yīng)用于對電影視頻、攝像機視頻等多媒體數(shù)據(jù)的壓縮。隨著虛擬現(xiàn)實技術(shù)的普及,傳統(tǒng)的視頻形態(tài)已經(jīng)不僅僅局限于單路的視頻電影,單路攝像機拍攝的影像,而由多路攝像機同時拍攝并拼接合成的全景視頻,已經(jīng)成為一種新的視頻形式。

現(xiàn)有技術(shù)中,對全景視頻進(jìn)行編碼,都是采用H264\H265等主流的編碼技術(shù),將全景視頻視為一路視頻媒體,采用與單路攝像機拍攝的視頻一樣的編碼方案進(jìn)行編碼。由于全景視頻通常是由多路攝像機視頻拼接而成,數(shù)據(jù)量巨大,在編碼時直接將全景視頻幀進(jìn)行編碼,以支持用戶通過轉(zhuǎn)動VR(Virtual Reality,虛擬現(xiàn)實)頭盔,觀看到水平360度、垂直360度的全方位視頻內(nèi)容,導(dǎo)致編碼后的視頻碼率很大,遠(yuǎn)遠(yuǎn)大于單路視頻的碼率。大碼率輸出,給網(wǎng)絡(luò)帶寬帶來了巨大的壓力,導(dǎo)致高清全景視頻的網(wǎng)絡(luò)傳輸無法實時或無法完成,直接影響全景視頻的直播應(yīng)用。



技術(shù)實現(xiàn)要素:

有鑒于此,本發(fā)明實施例提供一種全景視頻的編解碼方法和裝置,以減少網(wǎng)絡(luò)帶寬的壓力,解決全景直播視頻無法實時傳輸?shù)膯栴}。

第一方面,本發(fā)明實施例提供了一種全景視頻的編碼方法,所述方法包括:

編碼端獲取全景視頻幀的各分塊編碼數(shù)據(jù),其中,所述全景視頻幀按照在播放端的播放位置進(jìn)行分塊,每個分塊編碼數(shù)據(jù)的碼率根據(jù)該分塊的播放位置與播放端當(dāng)前視點位置的相對位置關(guān)系確定;

所述編碼端將所述全景視頻幀發(fā)送至播放端,以指示播放端進(jìn)行解碼播放。

第二方面,本發(fā)明實施例還提供了一種全景視頻的編碼裝置,所述裝置包括:

分塊數(shù)據(jù)獲取模塊,配置于編碼端中,用于獲取全景視頻幀的各分塊編碼數(shù)據(jù),其中,所述全景視頻幀按照在播放端的播放位置進(jìn)行分塊,每個分塊編碼數(shù)據(jù)的碼率根據(jù)該分塊的播放位置與播放端當(dāng)前視點位置的相對位置關(guān)系確定;

視頻幀發(fā)送模塊,配置于所述編碼端中,用于將所述全景視頻幀發(fā)送至播放端,以指示播放端進(jìn)行解碼播放。

第三方面,本發(fā)明實施例還提供了一種全景視頻的解碼方法,所述方法包括:

播放端獲取用戶在全景視頻顯示屏中的當(dāng)前視點位置,并發(fā)送給編碼端,以指示編碼端采用所述當(dāng)前視點位置確定的分塊碼率對全景視頻幀進(jìn)行編碼;

所述播放端接收編碼端發(fā)送的編碼后的全景視頻幀;

所述播放端對所述全景視頻幀進(jìn)行解封裝,得到分塊編碼數(shù)據(jù)及該分塊編碼數(shù)據(jù)在全景視頻幀中的位置;

所述播放端對全景視頻幀的各分塊編碼數(shù)據(jù)進(jìn)行解碼;

所述播放端播放解碼后的全景視頻幀。

第四方面,本發(fā)明實施例還提供了一種全景視頻的解碼裝置,所述裝置包括:

視點位置獲取模塊,配置于播放端中,用于獲取用戶在全景視頻顯示屏中的當(dāng)前視點位置,并發(fā)送給編碼端,以指示編碼端采用所述當(dāng)前視點位置確定的分塊碼率對全景視頻幀進(jìn)行編碼;

視頻幀接收模塊,配置于所述播放端中,用于接收編碼端發(fā)送的編碼后的全景視頻幀;

解封裝模塊,配置于所述播放端中,用于對所述全景視頻幀進(jìn)行解封裝,得到分塊編碼數(shù)據(jù)及該分塊編碼數(shù)據(jù)在全景視頻幀中的位置;

解碼模塊,配置于所述播放端中,用于對全景視頻幀的各分塊編碼數(shù)據(jù)進(jìn)行解碼;

播放模塊,配置于所述播放端中,用于播放解碼后的全景視頻幀。

本發(fā)明實施例的技術(shù)方案,通過全景視頻幀案子在播放端的播放位置進(jìn)行分塊,每個分塊編碼數(shù)據(jù)的碼率根據(jù)該分塊的播放位置與播放端當(dāng)前視點位置的相對位置關(guān)系確定,使得距離當(dāng)前視點位置較近的分塊的碼率較高,距離當(dāng)前視點位置較遠(yuǎn)的分塊的碼率較低,從而全景視頻幀中的分塊編碼數(shù)據(jù)采用不同的碼率,不再統(tǒng)一維持相同的高碼率,大大降低了編碼后的視頻碼率,減少了網(wǎng)絡(luò)帶寬的壓力,而且由于根據(jù)當(dāng)前視點位置確定各分塊的碼率,可以保證人眼始終能獲得高清視頻質(zhì)量的觀看效果,解決了全景直播視頻無法實時傳輸?shù)膯栴},使得全景直播視頻可以實時傳輸。

附圖說明

圖1是本發(fā)明實施例一提供的一種全景視頻的編碼方法的流程圖;

圖2是本發(fā)明實施例二提供的一種全景視頻的編碼方法的流程圖;

圖3是本發(fā)明實施例提供的全景視頻的編碼方法中的一個全景視頻幀的分塊示例圖;

圖4是本發(fā)明實施例提供的全景視頻的編碼方法中的當(dāng)前視點位置落在其中一個分塊中的示意圖;

圖5a-圖5d是本發(fā)明實施例提供的全景視頻的編碼方法中的四種區(qū)域劃分方式的示意圖;

圖6是本發(fā)明實施例三提供的一種全景視頻的編碼方法的流程圖;

圖7是本發(fā)明實施例四提供的一種全景視頻的編碼裝置的結(jié)構(gòu)示意圖;

圖8是本發(fā)明實施例五提供的一種全景視頻的解碼方法的流程圖;

圖9是本發(fā)明實施例六提供的一種全景視頻的解碼裝置的結(jié)構(gòu)示意圖。

具體實施方式

下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部內(nèi)容。

實施例一

圖1是本發(fā)明實施例一提供的一種全景視頻的編碼方法的流程圖,本實施例可適用于根據(jù)播放端中當(dāng)前視點位置而對全景視頻幀中的分塊采用不同的碼率進(jìn)行編碼的情況,該方法可以由全景視頻的編碼裝置來執(zhí)行,該全景視頻的編碼裝置配置于編碼端中,該方法具體包括如下步驟:

步驟110,編碼端獲取全景視頻幀的各分塊編碼數(shù)據(jù),其中,所述全景視頻幀按照在播放端的播放位置進(jìn)行分塊,每個分塊編碼數(shù)據(jù)的碼率根據(jù)該分塊的播放位置與播放端當(dāng)前視點位置的相對位置關(guān)系確定。

其中,全景視頻與普通的單路視頻不同,全景視頻是由多路攝像機同時拍攝并拼接合成的能覆蓋水平360度、垂直180度視角的大場景視頻,視頻播放時,需要通過投影算法,將360度×180度的全景視頻,投影到以用戶為中心的球的內(nèi)壁上,用戶可通過VR頭盔等播放設(shè)備,進(jìn)行觀看,獲得身臨其境的沉浸感,然而,每個觀看視點的范圍始終還是人眼的有效視角范圍,其它角度的解碼視頻信息屬于閑置信息。

本實施例中,編碼端可以是推流端,也可以是云平臺端。當(dāng)編碼端是推流端時,推流端獲取到全景視頻幀后,對該全景視頻幀進(jìn)行分塊,并根據(jù)每個分塊的播放位置與播放端當(dāng)前視點位置的相對位置關(guān)系,確定各分塊的編碼碼率,并依據(jù)相應(yīng)的碼率對各分塊進(jìn)行編碼,得到分塊編碼數(shù)據(jù)。當(dāng)編碼端是云平臺端時,從推流端中獲取不同碼率編碼后的分塊編碼數(shù)據(jù)形成的全景視頻幀,并根據(jù)每個分塊的播放位置與播放端當(dāng)前視點位置的相對位置關(guān)系確定每個分塊編碼數(shù)據(jù)的碼率,將根據(jù)不同碼率編碼得到的分塊編碼數(shù)據(jù)封裝為全景視頻幀。

其中,距離當(dāng)前視點位置較近的分塊采用的碼率較高,距離當(dāng)前視點位置較遠(yuǎn)的分塊采用的碼率較低,以保證在觀看用戶的視野范圍內(nèi)能夠觀看到清晰的影像。當(dāng)前視點位置是播放端采用陀螺儀等獲取到,并發(fā)送給編碼端的。

在對每個分塊進(jìn)行編碼時,可以采用視頻編解碼技術(shù)標(biāo)準(zhǔn),如H264、H265、AVS等,在編碼實施過程中,都是基于宏塊對視頻序列分塊進(jìn)行幀內(nèi)和幀間編碼的編碼方式,去除信息冗余。首先將各分塊的圖像分成16×16或64×64的像素塊,作為編碼處理的基本單元,然后通過運動估計和變換編碼,消除時間和空間冗余,達(dá)到壓縮視頻信息的目的。

步驟120,所述編碼端將所述全景視頻幀發(fā)送至播放端,以指示播放端進(jìn)行解碼播放。

編碼端將由不同碼率編碼得到的分塊編碼數(shù)據(jù)組成的全景視頻幀發(fā)送至播放端,使得播放端在接收到全景視頻幀時進(jìn)行解碼播放。

本實施例的技術(shù)方案,通過全景視頻幀案子在播放端的播放位置進(jìn)行分塊,每個分塊編碼數(shù)據(jù)的碼率根據(jù)該分塊的播放位置與播放端當(dāng)前視點位置的相對位置關(guān)系確定,使得距離當(dāng)前視點位置較近的分塊的碼率較高,距離當(dāng)前視點位置較遠(yuǎn)的分塊的碼率較低,從而全景視頻幀中的分塊編碼數(shù)據(jù)采用不同的碼率,不再統(tǒng)一維持相同的高碼率,大大降低了編碼后的視頻碼率,減少了網(wǎng)絡(luò)帶寬的壓力,而且由于根據(jù)當(dāng)前視點位置確定各分塊的碼率,可以保證人眼始終能獲得高清視頻質(zhì)量的觀看效果,解決了全景直播視頻無法實時傳輸?shù)膯栴},使得全景直播視頻可以實時傳輸。

實施例二

圖2是本發(fā)明實施例二提供的一種全景視頻的編碼方法的流程圖,本實施例在實施例一的基礎(chǔ)上進(jìn)行了優(yōu)化,將編碼端獲取全景視頻幀的各分塊編碼數(shù)據(jù)進(jìn)一步優(yōu)化為:推流端按照全景視頻幀在播放端的播放位置進(jìn)行分塊,得到分塊視頻數(shù)據(jù);所述推流端從至少兩個碼率中順序選擇一個碼率,作為當(dāng)前碼率,并采用當(dāng)前碼率對所有分塊視頻數(shù)據(jù)進(jìn)行編碼;所述推流端按照碼率,將所有編碼后的分塊視頻數(shù)據(jù)進(jìn)行分類并封裝,發(fā)送給云平臺端;所述云平臺端作為所述編碼端,獲取根據(jù)播放端的當(dāng)前視點位置以及各分塊的播放位置確定的各分塊的碼率;所述云平臺端根據(jù)各分塊的碼率,從各碼率對應(yīng)的封裝包中查找對應(yīng)的分塊;所述云平臺端按照分塊的播放位置,將查找到的分塊拼合成為編碼后的全景視頻幀。該方法具體包括如下步驟:

步驟210,推流端按照全景視頻幀在播放端的播放位置進(jìn)行分塊,得到分塊視頻數(shù)據(jù)。

推流端獲取全景視頻幀,并對全景視頻幀進(jìn)行分塊,便于后續(xù)的編碼處理,可以按照全景視頻幀在播放端的播放位置進(jìn)行分塊,如可以分為16×16或64×64的分塊,當(dāng)然,還可以按照全景視頻幀在播放端的播放位置分為其他的分塊。

其中,推流端按照全景視頻幀在播放端的播放位置進(jìn)行分塊,得到分塊視頻數(shù)據(jù)優(yōu)選包括:

所述推流端依據(jù)人眼生理特點,對所述全景視頻幀進(jìn)行分塊。

根據(jù)人眼立體視覺透射原理及人眼生理特點,人兩眼重合視域有124度,也就是說在人眼觀看到的范圍內(nèi),只有這124度視角內(nèi)的物體才有立體感,但這個角度太大,通常人視覺在10度是敏感區(qū),10~20度可以正確識別信息,20~30度對動態(tài)東西比較敏感,因此,可以依據(jù)該特點,對全景視頻幀進(jìn)行分塊,且獲得較好的立體感。

其中,所述推流端依據(jù)人眼生理特點,對所述全景視頻幀進(jìn)行分塊優(yōu)選包括:

所述推流端依據(jù)人眼生理特點,將所述全景視頻幀分為水平方向為10塊、垂直方向為9塊的分塊。

當(dāng)圖像的垂直方向視角為20度,水平方向的視角為36度時,就會有非常好的視覺臨場感,而且也不會因為頻繁轉(zhuǎn)動眼球造成疲倦。基于人眼的這些特點,將全景視頻按照空間視角進(jìn)行分塊,在水平方向,水平360度視角區(qū)域可分成10個塊,每個分塊水平方向覆蓋視角為36度,在垂直方向,垂直180度視角分成9個塊,每個塊垂直方向覆蓋的視角為20度,最后得到的各個分塊覆蓋36度×20度視角,共形成90個分塊,如圖3所示,圖3是本發(fā)明實施例提供的全景視頻的編碼方法中的一個全景視頻幀的分塊示例圖。

步驟220,所述推流端從至少兩個碼率中順序選擇一個碼率,作為當(dāng)前碼率,并采用當(dāng)前碼率對所有分塊視頻數(shù)據(jù)進(jìn)行編碼。

其中,至少兩個碼率可以是預(yù)先設(shè)置的碼率,也可以是接收的用戶配置的碼率,還可以是根據(jù)預(yù)先設(shè)置的一個碼率或者用戶配置的一個碼率計算得到其他碼率。在根據(jù)一個碼率計算得到其他碼率時,假設(shè)該碼率為n,則以碼率n為基礎(chǔ),對全幀圖像即全景視頻幀的編碼可以采用多種檔次的碼率規(guī)格,這里以采用三種檔次的碼率規(guī)格為例,分別記為R1,R2,R3,其中R1=n,R2=R1/2,R3=R2/2,1<n<30,相應(yīng)的,各分塊的碼率分別R1f=R1/N,R2f=R2/N,R3f=R3/N,其中,N是全景視頻幀中分塊的總數(shù)量。

所述至少兩個碼率以從高到低的順序進(jìn)行了排序,推流端首先選擇碼率最高的碼率作為當(dāng)前碼率,并采用當(dāng)前碼率對全景視頻幀中的所有分塊視頻數(shù)據(jù)進(jìn)行編碼;然后再依次采用低一級的碼率作為當(dāng)前碼率,對所有分塊視頻數(shù)據(jù)進(jìn)行編碼。

步驟230,所述推流端按照碼率,將所有編碼后的分塊視頻數(shù)據(jù)進(jìn)行分類并封裝,發(fā)送給云平臺端。

推流端將按照同一碼率編碼的分塊視頻數(shù)據(jù)分為一類,并將按照相同碼率編碼后的分塊視頻數(shù)據(jù)按照該分塊在全景視頻幀中的位置進(jìn)行封裝,并發(fā)送給云平臺端。在進(jìn)行封裝時,將各個分塊按照分塊的播放位置從左到右、從上到下的順序封裝在一起。其中,在將封裝包發(fā)送給云平臺端時可以采用RTMP(Real Time Messaging Protocol,實時消息傳輸協(xié)議)進(jìn)行推流。

步驟240,所述云平臺端作為所述編碼端,獲取根據(jù)播放端的當(dāng)前視點位置以及各分塊的播放位置確定的各分塊的碼率。

所述云平臺端可以由多個服務(wù)器組成,以能夠處理大的數(shù)據(jù)量。所述云平臺端作為所述編碼端,獲取播放端反饋的當(dāng)前視點位置,并根據(jù)各分塊的播放位置與當(dāng)前視點位置的相對位置關(guān)系確定各分塊的碼率,使得播放位置距離當(dāng)前視點位置較近的分塊的碼率較高,播放位置距離當(dāng)前視點位置較遠(yuǎn)的分塊的碼率較低。

其中,所述編碼端獲取根據(jù)播放端的當(dāng)前視點位置以及各分塊的播放位置確定的各分塊的碼率可選包括:

所述編碼端從播放端獲取當(dāng)前視點位置;

所述編碼端根據(jù)所述當(dāng)前視點位置,確定分塊的類型為遞進(jìn)區(qū)域或閑置區(qū)域,其中,所述當(dāng)前視點位置在所述遞進(jìn)區(qū)域中,所述閑置區(qū)域在所述遞進(jìn)區(qū)域的外圍;

所述編碼端根據(jù)分塊的類型確定各分塊的碼率,其中,所述遞進(jìn)區(qū)域的分塊對應(yīng)的碼率大于所述閑置區(qū)域的分塊對應(yīng)的碼率。

所述云平臺端作為所述編碼端。所述編碼端從播放端獲取當(dāng)前視點位置,根據(jù)當(dāng)前視點位置,確定觀看視頻的遞進(jìn)區(qū)域和閑置區(qū)域,不同區(qū)域應(yīng)用不同碼率的編碼數(shù)據(jù),合成用戶觀看視頻幀壓縮碼流,當(dāng)用戶觀看視點發(fā)生變化時,實時地根據(jù)當(dāng)前視點位置調(diào)整遞進(jìn)區(qū)域和閑置區(qū)域,重新構(gòu)造視頻幀。在確定遞進(jìn)區(qū)域和閑置區(qū)域后,根據(jù)每個分塊在全景視頻幀中的播放位置,確定每個分塊的類型為遞進(jìn)區(qū)域或者閑置區(qū)域。并根據(jù)遞進(jìn)區(qū)域和閑置區(qū)域?qū)?yīng)的碼率,確定各分塊的碼率。由于當(dāng)前視點位置在所述遞進(jìn)區(qū)域中,閑置區(qū)域在所述遞進(jìn)區(qū)域的外圍,而且遞進(jìn)區(qū)域的分塊對應(yīng)的碼率大于閑置區(qū)域的分塊對應(yīng)的碼率,使得用戶可以清楚地觀看到眼前清晰的影像,后面看不到的影像可以相對模糊,從而大大降低了碼率。

其中,所述遞進(jìn)區(qū)域可以包括核心區(qū)、輔助區(qū)和擴充區(qū),所述當(dāng)前視點位置在所述核心區(qū)中,所述輔助區(qū)在所述核心區(qū)的外圍,所述擴充區(qū)在所述輔助區(qū)的外圍,所述閑置區(qū)域在所述擴充區(qū)的外圍。

在所述全景視頻幀分為水平方向為10塊、垂直方向為9塊的分塊中,遞進(jìn)區(qū)域可以為水平方向為5塊、垂直方向為5塊,從而構(gòu)建水平方向180度視野、垂直方向100度視野,構(gòu)建180×100度的視場,即該視場由核心區(qū)、輔助區(qū)和擴充區(qū)組成,不同區(qū)域采用不同的碼率進(jìn)行編碼,當(dāng)觀看視點發(fā)生變化時,通過播放端實時反饋的當(dāng)前視點位置,相應(yīng)的對核心區(qū)、輔助區(qū)、擴充區(qū)和閑置區(qū)域進(jìn)行同步更新,使得人眼始終能獲得高清視頻質(zhì)量的觀看效果。

圖4是本發(fā)明實施例提供的全景視頻的編碼方法中的當(dāng)前視點位置落在其中一個分塊中的示意圖,如圖4所示,當(dāng)前視點位置1落在某個分塊中時,可以根據(jù)當(dāng)前視點位置與該分塊的關(guān)系,對應(yīng)四種區(qū)域劃分方式,即,當(dāng)前視點位置在該分塊的中心的左上方、左下方、右上方、右下方,分別對應(yīng)圖5a-圖5d所示的四種區(qū)域劃分方式,當(dāng)前視點位置在該分塊的中心的左上方時,對應(yīng)圖5a的區(qū)域劃分方式;當(dāng)前視點位置在該分塊的中心的左下方時,對應(yīng)圖5b的區(qū)域劃分方式;視點位置在該分塊的中心的右上方時,對應(yīng)圖5c的區(qū)域劃分方式;視點位置在該分塊的中心的右下方時,對應(yīng)圖5d的區(qū)域劃分方式,在圖5a-圖5d中,10是核心區(qū),20是輔助區(qū),30是擴充區(qū),40是閑置區(qū)域。在上述三種檔次的碼率規(guī)格中,核心區(qū)的分塊采用的碼率為R1f=R1/N,輔助區(qū)的分塊采用的碼率為R2f=R2/N,擴充區(qū)的分塊采用的碼率為R3f=R3/N,閑置區(qū)域的分塊采用的碼率為0,這里,N為90。因為閑置區(qū)域在用戶的視野范圍之外,所以不顯示影像也不影響用戶的觀看,而且在檢測到用戶的當(dāng)前視點位置發(fā)生變化時,可以實時更新顯示的區(qū)域。通過這樣遞減的碼率,大大降低了傳輸?shù)拇a率,減少了網(wǎng)絡(luò)帶寬的壓力。

步驟250,所述云平臺端根據(jù)各分塊的碼率,從各碼率對應(yīng)的封裝包中查找對應(yīng)的分塊。

所述云平臺端對各碼率對應(yīng)的封裝包分別進(jìn)行解封裝,并根據(jù)確定的各分塊的碼率,從各碼率對應(yīng)的封裝包中查找對應(yīng)的分塊。

步驟260,所述云平臺端按照分塊的播放位置,將查找到的分塊拼合成為編碼后的全景視頻幀。

所述云平臺端按照各分塊在全景視頻幀中的播放位置,將查找到的分塊拼合成為編碼后的全景視頻幀并封裝。

步驟270,所述編碼端將所述全景視頻幀發(fā)送至播放端,以指示播放端進(jìn)行解碼播放。

本實施例的技術(shù)方案,通過推流端對全景視頻幀進(jìn)行分塊,并按照不同的碼率分別對全景視頻幀的各分塊視頻數(shù)據(jù)進(jìn)行編碼,將相同碼率編碼的分塊視頻數(shù)據(jù)封裝在一起并發(fā)送給云平臺端,由云平臺端根據(jù)播放端的當(dāng)前視點位置以及各分塊的播放位置確定各分塊的碼率,并從各碼率對應(yīng)的封裝包中提取對應(yīng)的分塊,并進(jìn)行碼流重構(gòu)即拼合成為編碼后的全景視頻幀,從而全景視頻幀中的分塊編碼數(shù)據(jù)采用不同的碼率,不再統(tǒng)一維持相同的高碼率,大大降低了編碼后的視頻碼率,減少了網(wǎng)絡(luò)帶寬的壓力,而且由于根據(jù)當(dāng)前視點位置確定各分塊的碼率,可以保證人眼始終能獲得高清視頻質(zhì)量的觀看效果,避免了全景視頻直播過程中由于網(wǎng)絡(luò)帶寬不足造成的視頻緩沖,解決了全景直播視頻無法實時傳輸?shù)膯栴},使得全景直播視頻可以實時傳輸,提升了高清全景視頻直播的體驗效果,而且通過推流端和云平臺端來協(xié)同處理,可以大大提高處理的速率。

實施例三

圖6是本發(fā)明實施例三提供的一種全景視頻的編碼方法的流程圖,本實施例在實施例一的基礎(chǔ)上進(jìn)行了優(yōu)化,將編碼端獲取全景視頻幀的各分塊編碼數(shù)據(jù)進(jìn)一步優(yōu)化為:所述編碼端按照全景視頻幀在播放端的播放位置進(jìn)行分塊,得到分塊視頻數(shù)據(jù);所述編碼端獲取根據(jù)播放端的當(dāng)前視點位置以及各分塊的播放位置確定的各分塊的碼率;所述編碼端根據(jù)各分塊的碼率對分塊視頻數(shù)據(jù)進(jìn)行編碼,以形成編碼后的全景視頻幀。該方法具體包括如下步驟:

步驟310,所述編碼端按照全景視頻幀在播放端的播放位置進(jìn)行分塊,得到分塊視頻數(shù)據(jù)。

所述編碼端按照全景視頻幀在播放端的播放位置進(jìn)行分塊,得到分塊視頻數(shù)據(jù),如可以分為16×16或64×64的分塊,當(dāng)然,還可以按照全景視頻幀在播放端的播放位置分為其他的分塊。

其中,編碼端按照全景視頻幀在播放端的播放位置進(jìn)行分塊,得到分塊視頻數(shù)據(jù)優(yōu)選包括:

所述編碼端依據(jù)人眼生理特點,對所述全景視頻幀進(jìn)行分塊。

其中,所述編碼端依據(jù)人眼生理特點,對所述全景視頻幀進(jìn)行分塊優(yōu)選包括:

所述編碼端依據(jù)人眼生理特點,將所述全景視頻幀分為水平方向為10塊、垂直方向為9塊的分塊。

步驟320,所述編碼端獲取根據(jù)播放端的當(dāng)前視點位置以及各分塊的播放位置確定的各分塊的碼率。

編碼端獲取播放端反饋的當(dāng)前視點位置,并根據(jù)各分塊的播放位置與當(dāng)前視點位置的相對位置關(guān)系確定各分塊的碼率,使得播放位置距離當(dāng)前視點位置較近的分塊的碼率較高,播放位置距離當(dāng)前視點位置較遠(yuǎn)的分塊的碼率較低。

其中,所述編碼端獲取根據(jù)播放端的當(dāng)前視點位置以及各分塊的播放位置確定的各分塊的碼率可選包括:

所述編碼端從播放端獲取當(dāng)前視點位置;

所述編碼端根據(jù)所述當(dāng)前視點位置,確定分塊的類型為遞進(jìn)區(qū)域或閑置區(qū)域,其中,所述當(dāng)前視點位置在所述遞進(jìn)區(qū)域中,所述閑置區(qū)域在所述遞進(jìn)區(qū)域的外圍;

所述編碼端根據(jù)分塊的類型確定各分塊的碼率,其中,所述遞進(jìn)區(qū)域的分塊對應(yīng)的碼率大于所述閑置區(qū)域的分塊對應(yīng)的碼率。

編碼端確定各分塊的碼率的方式與實施例二中的方式相同,這里不再贅述。

步驟330,所述編碼端根據(jù)各分塊的碼率對分塊視頻數(shù)據(jù)進(jìn)行編碼,以形成編碼后的全景視頻幀。

編碼端根據(jù)確定的每個分塊的碼率分別對該分塊對應(yīng)的分塊視頻數(shù)據(jù)進(jìn)行編碼,并按照分塊視頻數(shù)據(jù)在全景視頻幀中的播放位置進(jìn)行封裝,形成編碼后的全景視頻幀。

步驟340,所述編碼端將所述全景視頻幀發(fā)送至播放端,以指示播放端進(jìn)行解碼播放。

本實施例的技術(shù)方案,通過編碼端按照全景視頻幀在播放端的播放位置進(jìn)行分塊,獲取根據(jù)播放端的當(dāng)前視點位置以及各分塊的播放位置確定的各分塊的碼率,根據(jù)各分塊的碼率對相應(yīng)的分塊視頻數(shù)據(jù)進(jìn)行編碼,形成編碼后的全景視頻幀,以使得距離當(dāng)前視點位置較近的分塊的碼率較高,距離當(dāng)前視點位置較遠(yuǎn)的分塊的碼率較低,從而大大降低了碼率,且不影響用戶的觀看質(zhì)量,減少了網(wǎng)絡(luò)帶寬的壓力,解決了全景直播視頻無法實時傳輸?shù)膯栴},使得全景直播視頻可以實時傳輸。

實施例四

圖7是本發(fā)明實施例四提供的一種全景視頻的編碼裝置的結(jié)構(gòu)示意圖,如圖7所示,本實施例所述的全景視頻的編碼裝置包括:分塊數(shù)據(jù)獲取模塊410和視頻幀發(fā)送模塊420。

其中,分塊數(shù)據(jù)獲取模塊410,配置于編碼端中,用于獲取全景視頻幀的各分塊編碼數(shù)據(jù),其中,所述全景視頻幀按照在播放端的播放位置進(jìn)行分塊,每個分塊編碼數(shù)據(jù)的碼率根據(jù)該分塊的播放位置與播放端當(dāng)前視點位置的相對位置關(guān)系確定;

視頻幀發(fā)送模塊420,配置于所述編碼端中,用于將所述全景視頻幀發(fā)送至播放端,以指示播放端進(jìn)行解碼播放。

可選的,所述分塊數(shù)據(jù)獲取模塊包括:

第一視頻幀分塊單元,配置于推流端中,用于按照全景視頻幀在播放端的播放位置進(jìn)行分塊,得到分塊視頻數(shù)據(jù);

視頻幀編碼單元,配置于所述推流端中,用于從至少兩個碼率中順序選擇一個碼率,作為當(dāng)前碼率,并采用當(dāng)前碼率對所有分塊視頻數(shù)據(jù)進(jìn)行編碼;

視頻幀發(fā)送單元,配置于所述推流端中,用于按照碼率,將所有編碼后的分塊視頻數(shù)據(jù)進(jìn)行分類并封裝,發(fā)送給云平臺端;

第一分塊碼率獲取單元,配置于所述云平臺端中,所述云平臺端作為所述編碼端,用于獲取根據(jù)播放端的當(dāng)前視點位置以及各分塊的播放位置確定的各分塊的碼率;

分塊查找單元,配置于所述云平臺端中,用于根據(jù)各分塊的碼率,從各碼率對應(yīng)的封裝包中查找對應(yīng)的分塊;

碼流重構(gòu)單元,配置于所述云平臺端中,用于按照分塊的播放位置,將查找到的分塊拼合成為編碼后的全景視頻幀。

可選的,所述分塊數(shù)據(jù)獲取模塊包括:

第二視頻幀分塊單元,配置于所述編碼端中,用于按照全景視頻幀在播放端的播放位置進(jìn)行分塊,得到分塊視頻數(shù)據(jù);

第二分塊碼率獲取單元,配置于所述編碼端中,用于獲取根據(jù)播放端的當(dāng)前視點位置以及各分塊的播放位置確定的各分塊的碼率;

分塊編碼單元,用于所述編碼端根據(jù)各分塊的碼率對分塊視頻數(shù)據(jù)進(jìn)行編碼,以形成編碼后的全景視頻幀。

可選的,所述第一分塊碼率獲取單元或所述第二分塊碼率獲取單元具體用于:

從播放端獲取當(dāng)前視點位置;

根據(jù)所述當(dāng)前視點位置,確定分塊的類型為遞進(jìn)區(qū)域或閑置區(qū)域,其中,所述當(dāng)前視點位置在所述遞進(jìn)區(qū)域中,所述閑置區(qū)域在所述遞進(jìn)區(qū)域的外圍;

根據(jù)分塊的類型確定各分塊的碼率,其中,所述遞進(jìn)區(qū)域的分塊對應(yīng)的碼率大于所述閑置區(qū)域的分塊對應(yīng)的碼率。

可選的,第一視頻幀分塊單元或第二視頻幀分塊單元包括:

分塊子單元,配置于推流端或編碼端中,用于依據(jù)人眼生理特點,對所述全景視頻幀進(jìn)行分塊。

可選的,所述分塊子單元具體用于:

依據(jù)人眼生理特點,將所述全景視頻幀分為水平方向為10塊、垂直方向為9塊的分塊。

上述全景視頻的編碼裝置可執(zhí)行本發(fā)明任意實施例所提供的全景視頻的編碼方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。未在本實施例中詳盡描述的技術(shù)細(xì)節(jié),可參見本發(fā)明任意實施例提供的全景視頻的編碼方法。

實施例五

圖8是本發(fā)明實施例五提供的一種全景視頻的解碼方法的流程圖,本實施例可適用于對根據(jù)當(dāng)前視點位置而對全景視頻幀中的分塊采用的不同碼率編碼進(jìn)行解碼的情況,該方法可以由全景視頻的解碼裝置來執(zhí)行,該全景視頻的解碼裝置配置于播放端(如VR頭盔等)中,該方法具體包括如下步驟:

步驟510,播放端獲取用戶在全景視頻顯示屏中的當(dāng)前視點位置,并發(fā)送給編碼端,以指示編碼端采用所述當(dāng)前視點位置確定的分塊碼率對全景視頻幀進(jìn)行編碼。

播放端通過陀螺儀實時獲取位置信息,并根據(jù)位置信息,獲得用戶在全景視頻顯示屏中的當(dāng)前視點位置,并發(fā)送給編碼端,以指示編碼端采用所述當(dāng)前視點位置確定的分塊碼率對全景視頻幀進(jìn)行編碼。當(dāng)用戶轉(zhuǎn)頭、走動等引起位置發(fā)生變化時,相應(yīng)的當(dāng)前視點位置將觸發(fā)編碼端實時更新各分塊的碼率并重構(gòu)碼流進(jìn)行視頻傳輸分發(fā)。其中,所述編碼端為云平臺端和/或推流端,即所述編碼端可以為云平臺端或推流端,也可以是云平臺端和推流端共同作為編碼端。

其中,播放端獲取用戶在全景視頻顯示屏中的當(dāng)前視點位置,并發(fā)送給編碼端可選包括:

所述播放端根據(jù)所述當(dāng)前視點位置,確定分塊的類型為遞進(jìn)區(qū)域或閑置區(qū)域,其中,所述當(dāng)前視點位置在所述遞進(jìn)區(qū)域中,所述閑置區(qū)域在所述遞進(jìn)區(qū)域的外圍;

所述播放端將所述分塊的類型和/或各類型對應(yīng)的分塊碼率,發(fā)送給所述編碼端。

播放端也可以根據(jù)當(dāng)前視點位置確定全景顯示屏中的遞進(jìn)區(qū)域和閑置區(qū)域,從而確定各分塊的類型為遞進(jìn)區(qū)域或閑置區(qū)域,從而將分塊的類型發(fā)送給編碼端,或者將各類型對應(yīng)的分塊碼率發(fā)送給編碼端,或者同時將分塊的類型和各類型對應(yīng)的分塊碼率發(fā)送給編碼端。

步驟520,所述播放端接收編碼端發(fā)送的編碼后的全景視頻幀。

播放端按YV21的格式在視頻流中取出全景視頻幀。

步驟530,所述播放端對所述全景視頻幀進(jìn)行解封裝,得到分塊編碼數(shù)據(jù)及該分塊編碼數(shù)據(jù)在全景視頻幀中的位置。

播放端提取各分塊的信息,解封裝所述全景視頻幀,得到各分塊的壓縮信息,即分塊編碼數(shù)據(jù)及該分塊編碼數(shù)據(jù)在全景視頻幀中的位置。

步驟540,所述播放端對全景視頻幀的各分塊編碼數(shù)據(jù)進(jìn)行解碼。

根據(jù)各分塊編碼采用的標(biāo)準(zhǔn),對各分塊進(jìn)行視頻解碼,比如h264\h265等的解碼。

在解碼之后,還可以包括:對解碼的分塊編碼數(shù)據(jù)進(jìn)行分塊融合。

在分塊邊緣處,以邊界為中心,各分塊兩邊選取2~20個像素點為處理區(qū)域(如選取10個像素點為處理區(qū)域),采用8鄰域中值濾波的方式,融合分塊邊緣數(shù)據(jù),使得顯示的視頻在分塊邊緣處較為平滑。

步驟550,所述播放端播放解碼后的全景視頻幀。

播放端將解碼后的全景視頻幀采用常規(guī)方法,投影到球面上進(jìn)行雙屏輸出,用戶通過VR頭盔等可以觀看到該全景視頻。

本實施例的技術(shù)方案,通過播放端獲取用戶在全景視頻顯示屏中的當(dāng)前視點位置,并發(fā)送給編碼端,以指示編碼端采用所述當(dāng)前視點位置確定的分塊碼率對全景視頻幀進(jìn)行編碼,接收編碼端發(fā)送來的編碼后的全景視頻幀,對該全景視頻幀進(jìn)行解碼播放,由于編碼端傳輸來的全景視頻幀是根據(jù)當(dāng)前視點位置確定的不同的分塊碼率對各分塊進(jìn)行的編碼,使得距離當(dāng)前視點位置較近的分塊的碼率較高,距離當(dāng)前視點位置較遠(yuǎn)的分塊的碼率較低,從而大大降低了碼率,且不影響用戶的觀看質(zhì)量,減少了網(wǎng)絡(luò)帶寬的壓力,解決了全景直播視頻無法實時傳輸?shù)膯栴},使得全景直播視頻可以實時傳輸。

實施例六

圖9是本發(fā)明實施例六提供的一種全景視頻的解碼裝置的結(jié)構(gòu)示意圖,如圖9所示,本實施例所述的全景視頻的解碼裝置包括:視點位置獲取模塊610、視頻幀接收模塊620、解封裝模塊630、解碼模塊640和播放模塊650。

其中,視點位置獲取模塊610,配置于播放端中,用于獲取用戶在全景視頻顯示屏中的當(dāng)前視點位置,并發(fā)送給編碼端,以指示編碼端采用所述當(dāng)前視點位置確定的分塊碼率對全景視頻幀進(jìn)行編碼;

視頻幀接收模塊620,配置于所述播放端中,用于接收編碼端發(fā)送的編碼后的全景視頻幀;

解封裝模塊630,配置于所述播放端中,用于對所述全景視頻幀進(jìn)行解封裝,得到分塊編碼數(shù)據(jù)及該分塊編碼數(shù)據(jù)在全景視頻幀中的位置;

解碼模塊640,配置于所述播放端中,用于對全景視頻幀的各分塊編碼數(shù)據(jù)進(jìn)行解碼;

播放模塊650,配置于所述播放端中,用于播放解碼后的全景視頻幀。

可選的,所述視點位置獲取模塊包括:

分塊類型確定單元,配置于所述播放端中,用于根據(jù)所述當(dāng)前視點位置,確定分塊的類型為遞進(jìn)區(qū)域或閑置區(qū)域,其中,所述當(dāng)前視點位置在所述遞進(jìn)區(qū)域中,所述閑置區(qū)域在所述遞進(jìn)區(qū)域的外圍;

分塊碼率發(fā)送單元,配置于所述播放端中,用于將所述分塊的類型和/或各類型對應(yīng)的分塊碼率,發(fā)送給所述編碼端。

其中,所述編碼端可選為云平臺端和/或推流端。

上述全景視頻的解碼裝置可執(zhí)行本發(fā)明任意實施例所提供的全景視頻的解碼方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。未在本實施例中詳盡描述的技術(shù)細(xì)節(jié),可參見本發(fā)明任意實施例提供的全景視頻的解碼方法。

注意,上述僅為本發(fā)明的較佳實施例及所運用技術(shù)原理。本領(lǐng)域技術(shù)人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領(lǐng)域技術(shù)人員來說能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實施例對本發(fā)明進(jìn)行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1