本發(fā)明適用于視頻傳輸領(lǐng)域,尤其涉及一種碼流重要性計算方法和裝置。
背景技術(shù):
在對視頻進(jìn)行傳輸之前要進(jìn)行可伸縮視頻編碼(Scalable Video Coding SVC),并由發(fā)送端上傳到傳輸通道,經(jīng)網(wǎng)絡(luò)傳輸后,由接收端接收并解碼,用戶才可以通過終端播放器播放視頻。
由于互聯(lián)網(wǎng)帶寬的限制以及自身的傳輸特性,當(dāng)傳輸視頻數(shù)據(jù)量超過信道帶寬時,會出現(xiàn)丟包、誤碼、延遲等現(xiàn)象,導(dǎo)致用戶播出的視頻質(zhì)量明顯降低。因此,需要對視頻傳輸?shù)拇a流進(jìn)行重要性計算。優(yōu)先傳輸對視頻質(zhì)量影響較大的碼流,以適應(yīng)網(wǎng)絡(luò)狀態(tài),減少失真。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種碼流重要性計算方法和裝置,旨在解決當(dāng)傳輸視頻數(shù)據(jù)量超過信道帶寬時,出現(xiàn)丟包、誤碼、延遲等現(xiàn)象,導(dǎo)致用戶播出的視頻質(zhì)量降低的問題。
為解決上述技術(shù)問題,本發(fā)明是這樣實(shí)現(xiàn)的,一種碼流重要性計算方法,所述方法包括:
獲取待傳輸視頻的碼流,所述碼流為經(jīng)可伸縮視頻編碼后所述待傳輸視頻的多個數(shù)據(jù)包在單位時間內(nèi)傳輸?shù)牧髁?;在所述碼流中對所述數(shù)據(jù)包的失真度進(jìn)行最小值運(yùn)算得出所述數(shù)據(jù)包的率失真重要性;對所述碼流中所述數(shù)據(jù)包所在的幀進(jìn)行運(yùn)動矢量強(qiáng)度運(yùn)算得出所述數(shù)據(jù)包的運(yùn)動特性重要性;在所述碼流中將所述數(shù)據(jù)包的率失真重要性和所述數(shù)據(jù)包的運(yùn)動特性重要性進(jìn)行乘法運(yùn)算,得到所述數(shù)據(jù)包的重要性,以確定所述數(shù)據(jù)包傳輸?shù)膬?yōu)先級;在所述碼流中,按照所述數(shù)據(jù)包的重要性,對所述數(shù)據(jù)包進(jìn)行傳輸。
一種碼流重要性計算裝置,所述裝置包括:
獲取模塊用于獲取待傳輸視頻的碼流,所述碼流為經(jīng)可伸縮視頻編碼后所述待傳輸視頻的多個數(shù)據(jù)包在單位時間內(nèi)傳輸?shù)牧髁?;第一運(yùn)算模塊用于在所述碼流中對所述數(shù)據(jù)包的失真度進(jìn)行最小值運(yùn)算得出所述數(shù)據(jù)包的率失真重要性;第二運(yùn)算模塊用于對所述碼流中所述數(shù)據(jù)包所在的幀進(jìn)行運(yùn)動矢量強(qiáng)度運(yùn)算得出所述數(shù)據(jù)包的運(yùn)動特性重要性;第三運(yùn)算模塊用于在所述碼流中將所述數(shù)據(jù)包的率失真重要性和所述數(shù)據(jù)包的運(yùn)動特性重要性進(jìn)行乘法運(yùn)算,得到所述數(shù)據(jù)包的重要性,以確定所述數(shù)據(jù)包傳輸?shù)膬?yōu)先級;傳輸模塊用于在所述碼流中,按照所述數(shù)據(jù)包的重要性,對所述數(shù)據(jù)包進(jìn)行傳輸。
本發(fā)明與現(xiàn)有技術(shù)相比,有益效果在于:本發(fā)明通過獲取待傳輸視頻的碼流,該碼流為經(jīng)可伸縮視頻編碼后該待傳輸視頻的多個數(shù)據(jù)包在單位時間內(nèi)傳輸?shù)牧髁浚辉谠摯a流中對該數(shù)據(jù)包的失真度進(jìn)行最小值運(yùn)算得出率失真重要性;對該碼流中該數(shù)據(jù)包所在的幀進(jìn)行運(yùn)動矢量強(qiáng)度運(yùn)算得出該數(shù)據(jù)包的運(yùn)動特性重要性;對該數(shù)據(jù)包的率失真重要性和該數(shù)據(jù)包的運(yùn)動特性重要性做乘法運(yùn)算得到該數(shù)據(jù)包的重要性以確定該數(shù)據(jù)包傳輸?shù)膬?yōu)先級;按照該數(shù)據(jù)包的重要性,對該數(shù)據(jù)包進(jìn)行傳輸。本發(fā)明中,根據(jù)該數(shù)據(jù)包的率失真重要性和運(yùn)動特性重要性確定該數(shù)據(jù)包的重要性,并根據(jù)該數(shù)據(jù)包的重要性,優(yōu)先傳輸該數(shù)據(jù)包的重要性高的數(shù)據(jù)包,減少了丟包、誤碼、延遲等現(xiàn)象,提高了用戶播出的視頻質(zhì)量。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例。
圖1是本發(fā)明第一實(shí)施例提供的一種碼流重要性計算方法實(shí)現(xiàn)流程示意圖;
圖2是本發(fā)明第二實(shí)施例提供的一種碼流重要性計算方法實(shí)現(xiàn)流程示意圖;
圖3是本發(fā)明第三實(shí)施例提供的一種碼流重要性計算裝置示意圖;
圖4是本發(fā)明第四實(shí)施例提供的一種碼流重要性計算裝置示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
需要說明的是,碼流為本領(lǐng)域技術(shù)人員對經(jīng)可伸縮視頻編碼后的待傳輸視頻的多個數(shù)據(jù)包在單位時間內(nèi)傳輸?shù)牧髁康囊环N專有叫法。
本發(fā)明實(shí)施例提供的碼流重要性計算方法可以應(yīng)用于各種終端設(shè)備,如電腦、手機(jī)、平板電腦等終端以及其它終端。
作為本發(fā)明的第一個實(shí)施例,如圖1所示,圖1是本發(fā)明第一實(shí)施例提供的一種碼流重要性計算方法實(shí)現(xiàn)流程示意圖,圖1所示的碼流重要性計算方法的步驟包括:
S101、獲取待傳輸視頻的碼流;
該碼流為經(jīng)可伸縮視頻編碼后該待傳輸視頻的多個數(shù)據(jù)包在單位時間內(nèi)傳輸?shù)牧髁俊?/p>
獲取該待傳輸視頻的碼流的途徑不作限定,可以獲取終端存儲的待傳輸視頻的碼流,也可以獲取從服務(wù)器下載的待傳輸視頻的碼流,還可以獲取其它終端的待傳輸視頻的碼流。
S102、在該碼流中對該數(shù)據(jù)包的失真度進(jìn)行最小值運(yùn)算得出該數(shù)據(jù)包的率失真重要性;
該率失真重要性為由該數(shù)據(jù)包的失真度確定的該數(shù)據(jù)包傳輸?shù)膬?yōu)先級,該率失真重要性值越大,該數(shù)據(jù)包傳輸?shù)膬?yōu)先級越高。
S103、對該碼流中該數(shù)據(jù)包所在的幀進(jìn)行運(yùn)動矢量強(qiáng)度運(yùn)算得出該數(shù)據(jù)包的運(yùn)動特性重要性;
該幀的運(yùn)動矢量強(qiáng)度為人眼對不同視頻內(nèi)容變化的敏感程度,本發(fā)明實(shí)施例通過計算該數(shù)據(jù)包所在的幀的運(yùn)動矢量強(qiáng)度得到該數(shù)據(jù)包的運(yùn)動特性重要性,以獲得根據(jù)人眼對不同視頻內(nèi)容變化的敏感程度得到的該數(shù)據(jù)包傳輸?shù)膬?yōu)先級,其中,該數(shù)據(jù)包的運(yùn)動特性重要性越大,該數(shù)據(jù)包傳輸?shù)膬?yōu)先級越高。
需要說明的是,步驟S102和步驟103的順序可以相互替換。
S104、在該碼流中將該數(shù)據(jù)包的率失真重要性和該數(shù)據(jù)包的運(yùn)動特性重要性進(jìn)行乘法運(yùn)算,得到該數(shù)據(jù)包的重要性;
S105、在該碼流中按照該數(shù)據(jù)包的重要性,對該數(shù)據(jù)包進(jìn)行傳輸。
該數(shù)據(jù)包的重要性用于確定該數(shù)據(jù)包傳輸?shù)膬?yōu)先級,該數(shù)據(jù)包的重要性越大,該數(shù)據(jù)包傳輸?shù)膬?yōu)先級越高,則優(yōu)先對該數(shù)據(jù)包進(jìn)行傳輸。
本發(fā)明實(shí)施例通過獲取待傳輸視頻的碼流,該碼流為經(jīng)可伸縮視頻編碼后該待傳輸視頻的多個數(shù)據(jù)包在單位時間內(nèi)傳輸?shù)牧髁?;在該碼流中對該數(shù)據(jù)包的失真度進(jìn)行最小值運(yùn)算得出該數(shù)據(jù)包的率失真重要性;對該數(shù)據(jù)包所在的幀進(jìn)行運(yùn)動矢量強(qiáng)度運(yùn)算得出該數(shù)據(jù)包運(yùn)動特性重要性;對該數(shù)據(jù)包的率失真重要性和該數(shù)據(jù)包的運(yùn)動特性重要性做乘法運(yùn)算得到該數(shù)據(jù)包的重要性,以確定該數(shù)據(jù)包傳輸?shù)膬?yōu)先級;按照該數(shù)據(jù)包的重要性,對該數(shù)據(jù)包進(jìn)行傳輸。本發(fā)明中,根據(jù)該數(shù)據(jù)包的率失真重要性和該數(shù)據(jù)包的運(yùn)動特性重要性確定該數(shù)據(jù)包的重要性,并根據(jù)該數(shù)據(jù)包的重要性,優(yōu)先傳輸該數(shù)據(jù)包的重要性高的數(shù)據(jù)包,減少了丟包、誤碼、延遲等現(xiàn)象,提高了用戶播出的視頻質(zhì)量。
作為本發(fā)明的第二個實(shí)施例,如圖2所示,圖2是本發(fā)明第二實(shí)施例提供的一種碼流重要性計算方法實(shí)現(xiàn)流程示意圖,圖2所示的一種碼流重要性計算方法的步驟包括:
S201、獲取待傳輸視頻的碼流;
該碼流為經(jīng)可伸縮視頻編碼后該待傳輸視頻的多個數(shù)據(jù)包在單位時間內(nèi)傳輸?shù)牧髁俊?/p>
獲取待傳輸視頻的碼流的途徑不作限定,可以獲取終端存儲的待傳輸視頻的碼流,也可以獲取從服務(wù)器下載的待傳輸視頻的碼流,還可以獲取其它終端的待傳輸視頻的碼流。
S202、計算該數(shù)據(jù)包的重建失真和漂移失真;
該數(shù)據(jù)包的重建失真為該數(shù)據(jù)包丟失后而導(dǎo)致該幀的解碼失真。該數(shù)據(jù)包漂移失真為該數(shù)據(jù)包丟失后導(dǎo)致同一畫面組中其它幀的錯誤擴(kuò)散而導(dǎo)致的失真。
計算丟失該數(shù)據(jù)包后,該數(shù)據(jù)包所在的幀與編碼時參考該幀的其它重建幀的均方誤差之和得到該幀的漂移失真,該重建幀為該幀丟失數(shù)據(jù)包后重建的幀。
設(shè)Bk表示第i幀第k個數(shù)據(jù)包的碼流,Dkrec(Bk)表示第i幀第k個數(shù)據(jù)包的重建失真,Dkdra(Bk)表示第i幀第k個數(shù)據(jù)包的漂移失真,則
其中,F(xiàn)(i,k,m),F(xiàn)(i-1,k,m)分別為i幀和i-1幀中第k個數(shù)據(jù)包的第m個重建宏塊,E[x]2表示相鄰兩幀的均方誤差,表示丟失m宏塊后的重建幀。
需要說明的是,經(jīng)可伸縮視頻編碼后的該待傳輸視頻在傳輸過程中包含I幀、P幀和B幀,本發(fā)明實(shí)施例中,設(shè)定的第i幀僅表示幀的順序,對幀的類型不作限制。
S203、對該數(shù)據(jù)包的重建失真和該數(shù)據(jù)包的漂移失真進(jìn)行加法運(yùn)算得到該數(shù)據(jù)包的失真度;
由步驟202計算出的該數(shù)據(jù)包的重建失真和該數(shù)據(jù)包的漂移失真,計算該數(shù)據(jù)包的失真度,則第i幀第k個數(shù)據(jù)包的失真度為:
Dk(Bk)=Dkrec(Bk)+Dkdra(Bk)
S204、在該碼流中對該數(shù)據(jù)包的失真度進(jìn)行最小值運(yùn)算得出該數(shù)據(jù)包的率失真重要性;
則當(dāng)傳輸帶寬為CB時,第i幀第k個數(shù)據(jù)包的率失真重要性可以表示為:
其中,
利用拉格朗日乘子法,該數(shù)據(jù)包重要性公式變換為:
其中,則
[PD(i,k)]=λ
S205、計算每個幀的背景運(yùn)動矢量強(qiáng)度和對象運(yùn)動矢量強(qiáng)度;
該背景運(yùn)動矢量強(qiáng)度表示該幀的背景變化強(qiáng)度。該對象運(yùn)動矢量強(qiáng)度表示該幀的對象變化強(qiáng)度。
對該幀進(jìn)行背景運(yùn)動矢量強(qiáng)度運(yùn)算得到該幀的背景運(yùn)動矢量強(qiáng)度;對該幀進(jìn)行對象運(yùn)動矢量強(qiáng)度運(yùn)算得到該幀的對象運(yùn)動矢量強(qiáng)度;設(shè)第i幀的背景運(yùn)動矢量強(qiáng)度為MiB,第i幀的對象運(yùn)動矢量強(qiáng)度為MiO,則,
其中,該幀的背景(vxib,vyib)為宏塊(m,n)從運(yùn)動估計的參考幀到當(dāng)前幀的運(yùn)動矢量,Vmax為該幀運(yùn)動矢量的最大值,Nib為背景非零運(yùn)動矢量的宏塊數(shù),該幀的對象(vxio,vyio)為宏塊(m,n)從運(yùn)動估計的參考幀到當(dāng)前幀的運(yùn)動矢量,Nio為對象非零運(yùn)動矢量的宏塊數(shù)。
S206、對該幀的背景運(yùn)動矢量強(qiáng)度和對象運(yùn)動矢量強(qiáng)度進(jìn)行加權(quán)運(yùn)算,得到該幀的運(yùn)動特性重要性;
對該幀的背景運(yùn)動矢量強(qiáng)度和對象運(yùn)動矢量強(qiáng)度進(jìn)行加權(quán)運(yùn)算得到該幀的運(yùn)動矢量強(qiáng)度,該運(yùn)動矢量強(qiáng)度為人眼對不同視頻內(nèi)容變化的敏感程度,設(shè)第i幀的運(yùn)動矢量強(qiáng)度為:Mi,則,
Mi=ωBMiB+ωOMiO
其中,ωB、ωO分別為背景運(yùn)動矢量的權(quán)重和對象運(yùn)動矢量的權(quán)重,其中,ωB,ωO∈[0,1],且ωB+ωO=1。
令該背景運(yùn)動矢量的權(quán)重ωB由空域分布ω1、運(yùn)動強(qiáng)度ω2和運(yùn)動復(fù)雜度ω3的三個因素構(gòu)成,則,
ωB=ω1+ω2+ω3,
其中,NB為背景中運(yùn)動矢量非零的宏塊數(shù),Num(s)為該幀的宏塊數(shù);
其中,mvx,mvy分別為運(yùn)動矢量的橫坐標(biāo)和縱坐標(biāo),ω2表示運(yùn)動強(qiáng)度,即運(yùn)動能量的大小,該運(yùn)動能量越大,運(yùn)動信息越豐富。
其中,令s=[s1,s2,…,sm],其中m≦36,sl是運(yùn)動矢量方向直方圖中各個非空的維度,Num(sl)是各個維度內(nèi)運(yùn)動矢量非零的宏塊數(shù),則ω3即為運(yùn)動復(fù)雜度。
該幀的運(yùn)動特性重要性為根據(jù)人眼對該幀中不同內(nèi)容變化的敏感程度而得到的該幀傳輸?shù)膬?yōu)先級。
本發(fā)明實(shí)施例通過計算該幀的運(yùn)動矢量強(qiáng)度得到該幀的運(yùn)動特性重要性PV(i),以獲得根據(jù)人眼對不同視頻內(nèi)容變化的敏感程度得到的該幀傳輸?shù)膬?yōu)先級,則第i幀的運(yùn)動特性重要性為:
PV(i)=Mi
S207、將該數(shù)據(jù)包所在的幀的運(yùn)動特性重要性確定為數(shù)據(jù)包的運(yùn)動特性重要性。
第i幀第k個數(shù)據(jù)包的重要性為PV(i,k)=Mi。
S208、在該碼流中將該數(shù)據(jù)包的率失真重要性和該數(shù)據(jù)包運(yùn)動特性重要性進(jìn)行乘法運(yùn)算,得到該幀的重要性;
由步驟S202至S207所示的公式,第i幀第k個數(shù)據(jù)包的重要性為:
PRI(i,k)=[PD(i,k)]α×[PV(i,k)]β
進(jìn)一步地,第i幀的重要性為:
PRI(i,k)=λα×Miβ
其中,α,β∈[0,1],且α+β=1,α,β為經(jīng)驗(yàn)值,其取值根據(jù)該待傳輸視頻的內(nèi)容特性決定,對于運(yùn)動特性復(fù)雜的視頻場景,例如足球賽等,或者畫面中包含多個運(yùn)動區(qū)域的視頻場景,例如演出直播等,則需要設(shè)置較大的β值且通常大于0.5;對于運(yùn)動特性簡單的視頻場景,如新聞播報等,則需要設(shè)置較大的α值且通常大于0.5。
S209、在該碼流中按照該數(shù)據(jù)包的重要性,對該數(shù)據(jù)包進(jìn)行傳輸。
該數(shù)據(jù)包重要性用于確定該數(shù)據(jù)包傳輸?shù)膬?yōu)先級,該數(shù)據(jù)包重要性越大,該數(shù)據(jù)包傳輸?shù)膬?yōu)先級越高,則優(yōu)先對該數(shù)據(jù)包進(jìn)行傳輸。
本發(fā)明實(shí)施例通過獲取待傳輸視頻的碼流,該碼流為經(jīng)可伸縮視頻編碼后該待傳輸視頻的多個數(shù)據(jù)包在單位時間內(nèi)傳輸?shù)牧髁?;計算該?shù)據(jù)包的重建失真和漂移失真,對該數(shù)據(jù)包的重建失真和漂移失真進(jìn)行加法運(yùn)算得出該數(shù)據(jù)包的失真度,對該數(shù)據(jù)包的失真度進(jìn)行最小值運(yùn)算得出該數(shù)據(jù)包率失真重要性;計算該幀的背景運(yùn)動矢量強(qiáng)度和對象運(yùn)動矢量強(qiáng)度,并對該幀的背景運(yùn)動矢量強(qiáng)度和對象運(yùn)動矢量強(qiáng)度進(jìn)行加權(quán)運(yùn)算得出該幀的運(yùn)動特性重要性;根據(jù)該幀的運(yùn)動特性重要性確定該數(shù)據(jù)包的運(yùn)動特性重要性,對該數(shù)據(jù)包的率失真重要性和該數(shù)據(jù)包的運(yùn)動特性重要性做乘法運(yùn)算得到該數(shù)據(jù)包的重要性,以確定該數(shù)據(jù)包傳輸?shù)膬?yōu)先級;按照該數(shù)據(jù)包的重要性,對該數(shù)據(jù)包進(jìn)行傳輸。
本發(fā)明中,根據(jù)該數(shù)據(jù)包的率失真重要性和運(yùn)動特性重要性確定該數(shù)據(jù)包的重要性,并根據(jù)該數(shù)據(jù)包的重要性,優(yōu)先傳輸數(shù)據(jù)包的重要性高的數(shù)據(jù)包,減少了丟包、誤碼、延遲等現(xiàn)象,提高了用戶播出的視頻質(zhì)量。
作為本發(fā)明的第三個實(shí)施例,如圖3所示,圖3是本發(fā)明第三實(shí)施例提供的一種碼流重要性計算裝置示意圖,圖1所示的一種碼流重要性計算裝置,該裝置主要包括:獲取模塊31、第一運(yùn)算模塊32、第二運(yùn)算模塊32、第三運(yùn)算模塊34和傳輸模塊35;
其中,獲取模塊31,用于獲取待傳輸視頻的碼流;
該碼流為經(jīng)可伸縮視頻編碼后所述待傳輸視頻的多個數(shù)據(jù)包在單位時間內(nèi)傳輸?shù)牧髁俊?/p>
第一運(yùn)算模塊32,用于在該碼流中對該數(shù)據(jù)包的失真度進(jìn)行最小值運(yùn)算得出該數(shù)據(jù)包的率失真重要性;
該率失真重要性為由該數(shù)據(jù)包的失真度確定的該數(shù)據(jù)包傳輸?shù)膬?yōu)先級,該率失真重要性值越大,該數(shù)據(jù)包傳輸?shù)膬?yōu)先級越高。
第二運(yùn)算模塊33,用于在該碼流中對該數(shù)據(jù)包所在的幀進(jìn)行運(yùn)動矢量強(qiáng)度運(yùn)算得出該數(shù)據(jù)包的運(yùn)動特性重要性;
該幀的運(yùn)動矢量強(qiáng)度為人眼對不同視頻內(nèi)容變化的敏感程度,本發(fā)明實(shí)施例通過計算該數(shù)據(jù)包所在的幀的運(yùn)動矢量強(qiáng)度得到該數(shù)據(jù)包的運(yùn)動特性重要性,以獲得根據(jù)人眼對不同視頻內(nèi)容變化的敏感程度得到的該數(shù)據(jù)包傳輸?shù)膬?yōu)先級,其中,該數(shù)據(jù)包的運(yùn)動特性重要性值越大,該數(shù)據(jù)包傳輸?shù)膬?yōu)先級越高。
第三運(yùn)算模塊34,用于在該碼流中將該數(shù)據(jù)包的率失真重要性和該數(shù)據(jù)包的運(yùn)動特性重要性進(jìn)行乘法運(yùn)算,得到該數(shù)據(jù)包的重要性,以確定該數(shù)據(jù)包傳輸?shù)膬?yōu)先級;
傳輸模塊35,用于在該碼流中,按照該數(shù)據(jù)包的重要性對該數(shù)據(jù)包進(jìn)行傳輸。
該數(shù)據(jù)包的重要性用于確定該數(shù)據(jù)包傳輸?shù)膬?yōu)先級,該數(shù)據(jù)包的重要性值越大,該數(shù)據(jù)包傳輸?shù)膬?yōu)先級越高,則優(yōu)先對該數(shù)據(jù)包進(jìn)行傳輸。
本發(fā)明實(shí)施例中未盡細(xì)節(jié)請參照圖1所示的第一實(shí)施例,在此不再贅述。
本發(fā)明實(shí)施例通過獲取模塊31獲取待傳輸視頻的碼流,該碼流為經(jīng)可伸縮視頻編碼后該待傳輸視頻的多個數(shù)據(jù)包在單位時間內(nèi)傳輸?shù)牧髁?;第一運(yùn)算模塊32在該碼流中對該數(shù)據(jù)包的失真度進(jìn)行最小值運(yùn)算得出率失真重要性;第二運(yùn)算模塊33對該數(shù)據(jù)包所在的幀進(jìn)行運(yùn)動矢量強(qiáng)度運(yùn)算得出該數(shù)據(jù)包運(yùn)動特性重要性;第三運(yùn)算模塊34對該數(shù)據(jù)包的率失真重要性和該數(shù)據(jù)包的運(yùn)動特性重要性做乘法運(yùn)算得到該數(shù)據(jù)包的重要性,以確定該數(shù)據(jù)包傳輸?shù)膬?yōu)先級;傳輸模塊35按照該數(shù)據(jù)包的重要性,對該數(shù)據(jù)包進(jìn)行傳輸。本發(fā)明中,根據(jù)該數(shù)據(jù)包的率失真重要性和運(yùn)動特性重要性確定該數(shù)據(jù)包的重要性,并根據(jù)該數(shù)據(jù)包的重要性,優(yōu)先傳輸數(shù)據(jù)包的重要性高的數(shù)據(jù)包,減少了丟包、誤碼、延遲等現(xiàn)象,提高了用戶播出的視頻質(zhì)量。
作為本發(fā)明的第四個實(shí)施例,如圖4所示,圖4是本發(fā)明第四實(shí)施例提供的一種碼流重要性計算裝置示意圖,圖4所示的一種碼流重要性計算裝置,該裝置主要包括:獲取模塊41、第一運(yùn)算模塊42、第二運(yùn)算模塊43、第三運(yùn)算模塊44、傳輸模塊45、重建計算模塊46、漂移計算模塊47、背景計算模塊48和對象計算模塊49;其中,第三運(yùn)算模塊44包括:第一得到模塊441、第二得到模塊442和乘法計算模塊443;各個模塊的功能詳述如下:
獲取模塊41,用于獲取待傳輸視頻的碼流;
該碼流為經(jīng)可伸縮視頻編碼后所述待傳輸視頻的多個數(shù)據(jù)包在單位時間內(nèi)傳輸?shù)牧髁俊?/p>
第一運(yùn)算模塊42,用于在該碼流中對該數(shù)據(jù)包的失真度進(jìn)行最小值運(yùn)算得出該數(shù)據(jù)包的率失真重要性;
該數(shù)據(jù)包的率失真重要性為由該數(shù)據(jù)包的失真度確定的該數(shù)據(jù)包傳輸?shù)膬?yōu)先級,該率失真重要性值越大,該數(shù)據(jù)包傳輸?shù)膬?yōu)先級越高。
當(dāng)傳輸帶寬為CB時,第i幀第k個數(shù)據(jù)包的率失真重要性可以表示為:
其中,
利用拉格朗日乘子法,第i幀第k個數(shù)據(jù)包的率失真重要性公式變換為:
其中,則
[PD(i,k)]=λ
第二運(yùn)算模塊43,用于在該碼流中對該數(shù)據(jù)包所在的幀進(jìn)行運(yùn)動矢量強(qiáng)度運(yùn)算得出該數(shù)據(jù)包的運(yùn)動特性重要性;
該數(shù)據(jù)包所在的幀的運(yùn)動矢量強(qiáng)度為人眼對不同視頻內(nèi)容變化的敏感程度,本發(fā)明實(shí)施例通過計算該數(shù)據(jù)包所在的幀的運(yùn)動矢量強(qiáng)度得到該數(shù)據(jù)包的運(yùn)動特性重要性,以獲得根據(jù)人眼對不同視頻內(nèi)容變化的敏感程度得到的該數(shù)據(jù)包傳輸?shù)膬?yōu)先級,其中,該數(shù)據(jù)包的運(yùn)動特性重要性值越大,該數(shù)據(jù)包傳輸?shù)膬?yōu)先級越高。
設(shè)第i幀的運(yùn)動矢量強(qiáng)度為:Mi,則第i幀第k個數(shù)據(jù)包的的運(yùn)動特性重要性為:
PV(i,k)=Mi
第三運(yùn)算模塊44,用于在該碼流中將該數(shù)據(jù)包的所述率失真重要性和該數(shù)據(jù)包的運(yùn)動特性重要性進(jìn)行乘法運(yùn)算,得到該數(shù)據(jù)包的重要性,以確定該數(shù)據(jù)包傳輸?shù)膬?yōu)先級;
其中,第三運(yùn)算模塊44包括:
第一得到模塊441,用于對該數(shù)據(jù)包的率失真重要性進(jìn)行指數(shù)運(yùn)算得到第一重要性參數(shù);
第二得到模塊442,用于對該數(shù)據(jù)包的運(yùn)動特性重要性進(jìn)行指數(shù)運(yùn)算得到第二重要性參數(shù);
乘法計算模塊443,用于將該第一重要性參數(shù)與該第二重要性參數(shù)做乘法運(yùn)算得到該數(shù)據(jù)包的重要性。
第i幀第k個數(shù)據(jù)包的重要性為:
PRI(i,k)=[PD(i,k)]α×[PV(i,k)]β
進(jìn)一步地,第i幀第k個數(shù)據(jù)包的重要性為:
PRI(i,k)=λα×Miβ
其中,α,β∈[0,1],且α+β=1,α,β為經(jīng)驗(yàn)值,其取值根據(jù)該待傳輸視頻的內(nèi)容特性決定,對于運(yùn)動特性復(fù)雜的視頻場景,例如足球賽等,或者畫面中包含多個運(yùn)動區(qū)域的視頻場景,例如演出直播等,則需要設(shè)置較大的β值且通常大于0.5;對于運(yùn)動特性簡單的視頻場景,如新聞播報等,則需要設(shè)置較大的α值且通常大于0.5。
傳輸模塊45,用于按照該數(shù)據(jù)包的重要性,優(yōu)先傳輸該數(shù)據(jù)包的重要性高的數(shù)據(jù)包。
該數(shù)據(jù)包的重要性用于確定該數(shù)據(jù)包傳輸?shù)膬?yōu)先級,該數(shù)據(jù)包的重要性值越大,該數(shù)據(jù)包傳輸?shù)膬?yōu)先級越高,則優(yōu)先對該數(shù)據(jù)包進(jìn)行傳輸。
第一運(yùn)算模塊42,還用于對該數(shù)據(jù)包的重建失真和該數(shù)據(jù)包的漂移失真進(jìn)行加法運(yùn)算得到該數(shù)據(jù)包的失真度;
第i幀第k個數(shù)據(jù)包的重建失真為Dkrec(Bk),第i幀第k個數(shù)據(jù)包的漂移失真為Dkdra(Bk),則第i幀第k個數(shù)據(jù)包的失真度為:
Dk(Bk)=Dkrec(Bk)+Dkdra(Bk)
重建計算模塊46,用于計算該數(shù)據(jù)包丟失后,該數(shù)據(jù)包所在的幀和與該幀相鄰的前一個幀的均方誤差得到該數(shù)據(jù)包的重建失真;
該數(shù)據(jù)包的重建失真為該數(shù)據(jù)包丟失后而導(dǎo)致該數(shù)據(jù)包所在的幀的解碼失真。
設(shè)Bk表示第i幀第k個數(shù)據(jù)包的碼流,Dkrec(Bk)表示第i幀第k個數(shù)據(jù)包的重建失真,則
其中,F(xiàn)(i,k,m),F(xiàn)(i-1,k,m)分別為i幀和i-1幀中第k個數(shù)據(jù)包的第m個重建宏塊,E[x]2表示相鄰兩幀的均方誤差。
漂移計算模塊47,用于計算該數(shù)據(jù)包丟失后,該數(shù)據(jù)包所在的幀與編碼時參考該幀的其它重建幀的均方誤差之和得到該數(shù)據(jù)包的漂移失真;
該數(shù)據(jù)包的漂移失真為該數(shù)據(jù)包丟失后導(dǎo)致同一畫面組中其它幀的錯誤擴(kuò)散而導(dǎo)致的失真。該重建幀為該數(shù)據(jù)包丟失宏塊后重建的幀。
設(shè)Bk表示第i幀第k個數(shù)據(jù)包的碼流,Dkdra(Bk)表示第i幀第k個數(shù)據(jù)包的漂移失真,則
其中,F(xiàn)(i,k,m)為i幀第k個數(shù)據(jù)包的第m個重建宏塊,E[x]2表示兩幀的均方誤差,表示丟失m宏塊后的重建幀。
需要說明的是,經(jīng)可伸縮視頻編碼后的該待傳輸視頻在傳輸過程中包含I幀、P幀和B幀,本發(fā)明實(shí)施例中,設(shè)定的第i幀僅表示幀的順序,對幀的類型不作限制。
第二運(yùn)算模塊43,還用于對該幀的背景運(yùn)動矢量強(qiáng)度和對象運(yùn)動矢量強(qiáng)度進(jìn)行加權(quán)運(yùn)算,得到該幀的運(yùn)動特性重要性。
對該幀的背景運(yùn)動矢量強(qiáng)度和對象運(yùn)動矢量強(qiáng)度進(jìn)行加權(quán)運(yùn)算得到該幀的運(yùn)動矢量強(qiáng)度,該運(yùn)動矢量強(qiáng)度為人眼對不同視頻內(nèi)容變化的敏感程度,設(shè)第i幀的運(yùn)動矢量強(qiáng)度為:Mi,則,
Mi=ωBMiB+ωOMiO
其中,ωB、ωO分別為背景運(yùn)動矢量的權(quán)重和對象運(yùn)動矢量的權(quán)重,其中,ωB,ωO∈[0,1],且ωB+ωO=1。
令該背景運(yùn)動矢量的權(quán)重ωB由空域分布ω1、運(yùn)動強(qiáng)度ω2和運(yùn)動復(fù)雜度ω3的三個因素構(gòu)成,則,
ωB=ω1+ω2+ω3,
其中,NB為背景中運(yùn)動矢量非零的宏塊數(shù),Num(s)為該幀的宏塊數(shù);
其中,mvx,mvy分別為運(yùn)動矢量的橫坐標(biāo)和縱坐標(biāo),ω2表示運(yùn)動強(qiáng)度,即運(yùn)動能量的大小,該運(yùn)動能量越大,運(yùn)動信息越豐富。
其中,令s=[s1,s2,…,sm],其中m≦36,sl是運(yùn)動矢量方向直方圖中各個非空的維度,Num(sl)是各個維度內(nèi)運(yùn)動矢量非零的宏塊數(shù),則ω3即為運(yùn)動復(fù)雜度。
該幀的運(yùn)動特性重要性為根據(jù)人眼對該幀中不同內(nèi)容變化的敏感程度而得到的該幀傳輸?shù)膬?yōu)先級。
本發(fā)明實(shí)施例通過計算該幀的運(yùn)動矢量強(qiáng)度得到該幀的運(yùn)動特性重要性PV(i),以獲得根據(jù)人眼對不同視頻內(nèi)容變化的敏感程度得到的該幀傳輸?shù)膬?yōu)先級,則第i幀的運(yùn)動特性重要性為:
PV(i)=Mi
第二運(yùn)算模塊43,還用于將該數(shù)據(jù)包所在幀的運(yùn)動特性重要性確定為該數(shù)據(jù)包的運(yùn)動特性重要性。
第i幀第k個數(shù)據(jù)包的重要性為:
PV(i,k)=Mi。
背景計算模塊48,用于對該幀進(jìn)行背景運(yùn)動矢量強(qiáng)度運(yùn)算得到該幀的背景運(yùn)動矢量強(qiáng)度;
該背景運(yùn)動矢量強(qiáng)度表示該幀的背景變化強(qiáng)度。設(shè)第i幀的背景運(yùn)動矢量強(qiáng)度為MiB,則,
其中,該幀的背景(vxib,vyib)為宏塊(m,n)從運(yùn)動估計的參考幀到當(dāng)前幀的運(yùn)動矢量,Vmax為該幀運(yùn)動矢量的最大值,Nib為背景非零運(yùn)動矢量的宏塊數(shù)。
對象計算模塊49,用于對該幀進(jìn)行對象運(yùn)動矢量強(qiáng)度運(yùn)算得到該幀的對象運(yùn)動矢量強(qiáng)度。
該對象運(yùn)動矢量強(qiáng)度表示該幀的對象變化強(qiáng)度。設(shè)第i幀的對象運(yùn)動矢量強(qiáng)度為MiO,則,
其中,該幀的對象(vxio,vyio)為宏塊(m,n)從運(yùn)動估計的參考幀到當(dāng)前幀的運(yùn)動矢量,Vmax為該幀運(yùn)動矢量的最大值,Nio為對象非零運(yùn)動矢量的宏塊數(shù)。
本發(fā)明實(shí)施例的未盡細(xì)節(jié),請參照圖2所示的第二實(shí)施例,在此不再贅述。
本發(fā)明實(shí)施例通過獲取模塊41獲取待傳輸視頻的碼流,該碼流為經(jīng)可伸縮視頻編碼后該待傳輸視頻的多個數(shù)據(jù)包在單位時間內(nèi)傳輸?shù)牧髁?;重建計算模塊46計算該數(shù)據(jù)包的重建失真,漂移計算模塊47計算該數(shù)據(jù)包的漂移失真,第一運(yùn)算模塊42對該數(shù)據(jù)包的重建失真和漂移失真進(jìn)行加法運(yùn)算得出該數(shù)據(jù)包的失真度,第一運(yùn)算模塊42對該數(shù)據(jù)包的失真度進(jìn)行最小值運(yùn)算得出率失真重要性;背景計算模塊48計算該幀的背景運(yùn)動矢量強(qiáng)度和對象計算模塊48計算對象運(yùn)動矢量強(qiáng)度,第二運(yùn)算模塊43對該幀的背景運(yùn)動矢量強(qiáng)度和對象運(yùn)動矢量強(qiáng)度進(jìn)行加權(quán)運(yùn)算得出該幀的運(yùn)動特性重要性;第二運(yùn)算模塊43根據(jù)該數(shù)據(jù)包所在的幀的運(yùn)動特性重要性確定該數(shù)據(jù)包的運(yùn)動特性重要性;第三運(yùn)算模塊44對該數(shù)據(jù)包的率失真重要性和該數(shù)據(jù)包的運(yùn)動特性重要性做乘法運(yùn)算得到該數(shù)據(jù)包的重要性,以確定該數(shù)據(jù)包傳輸?shù)膬?yōu)先級;傳輸模塊45按照該數(shù)據(jù)包的重要性,對該數(shù)據(jù)包進(jìn)行傳輸。
本發(fā)明中,根據(jù)該數(shù)據(jù)包的率失真重要性和運(yùn)動特性重要性確定該數(shù)據(jù)包的重要性,并根據(jù)該數(shù)據(jù)包的重要性,優(yōu)先傳輸數(shù)據(jù)包的重要性高的數(shù)據(jù)包,減少了丟包、誤碼、延遲等現(xiàn)象,提高了用戶播出的視頻質(zhì)量。
在本申請所提供的多個實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個模塊或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信鏈接可以是通過一些接口,裝置或模塊的間接耦合或通信鏈接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)模塊上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個實(shí)施例中的各功能模塊可以集成在一個處理模塊中,可以是各個模塊單獨(dú)物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。
需要說明的是,對于前述的各方法實(shí)施例,為了簡便描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其它順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定都是本發(fā)明所必須的。
在上述實(shí)施例中,對各個實(shí)施例的描述都各有側(cè)重,某個實(shí)施例中沒有詳述的部分,可以參見其它實(shí)施例的相關(guān)描述。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。