本發(fā)明涉及一種數(shù)據(jù)通信技術(shù)領(lǐng)域的方法和系統(tǒng),具體地,涉及一種適用于動態(tài)自適應(yīng)視頻流媒體的編碼碼率控制與版本選擇方法及系統(tǒng)。
背景技術(shù):
隨著移動數(shù)據(jù)流量的迅速增長以及智能終端設(shè)備的日益普及,以移動視頻服務(wù)為代表的無線視頻流媒體技術(shù)在近幾年得到了越來越廣泛的應(yīng)用。與此同時,移動用戶在所使用的移動設(shè)備終端、點播內(nèi)容以及網(wǎng)絡(luò)連接性等方面呈現(xiàn)出更為復(fù)雜的異構(gòu)特性,從而大大增加了視頻流媒體服務(wù)復(fù)雜度和難度。動態(tài)自適應(yīng)流媒體技術(shù)能夠為用戶提供同一視頻內(nèi)容的不同版本,以提高異構(gòu)網(wǎng)絡(luò)中用戶的視頻觀看滿意度。其中,每個視頻版本以給定的碼率和/或分辨率進行編碼,從而使得各用戶能夠根據(jù)自己的視頻點播需求和網(wǎng)絡(luò)狀況來確定下載最合適的視頻版本。
一方面,單一碼率的視頻編碼技術(shù)需要消耗很高的編碼復(fù)雜度以實現(xiàn)高更高的視頻壓縮性能。對于執(zhí)行動態(tài)自適應(yīng)流媒體技術(shù)的編碼服務(wù)器而言,往往受到自身物理功耗的限制,無法通過編碼得到過多的視頻碼率版本以適應(yīng)不同用戶的需求,因此需要將有限的計算資源合理地分配給各個視頻的不同版本。另一方面,收到服務(wù)器本身存儲空間的限制以及網(wǎng)絡(luò)傳輸中瓶頸帶寬的限制,所有視頻的各不同版本的碼率總和也收到限制,因此還需要將有限的碼率資源合理的分配給各個視頻的不同版本。
經(jīng)過對現(xiàn)有技術(shù)的檢索發(fā)現(xiàn),L.Toni等人在《ACM Transactions on Multimedia Computing,Communications,and Applications,F(xiàn)eb.2015,(計算機協(xié)會多媒體計算、通信與應(yīng)用學(xué)報,2015年2月)》上發(fā)表了題為“Optimal selection of adaptive streaming representations(自適應(yīng)流媒體版本的最優(yōu)化選擇)”的文章,以及R.Aparicio-Pardo等人在《Proceedings of ACM Multimedia Systems Conference,Mar.2015,pp.49-60,(計算機協(xié)會多媒體系統(tǒng)會議論文集,2015年3月,第49-60頁)》上發(fā)表了題為“Transcoding live adaptive video streams at a massive scale in the cloud(大規(guī)模云端轉(zhuǎn)碼直播自適應(yīng)視頻流)”的文章,這兩篇文章分別研究了服務(wù)器在編碼碼率和功耗受限情況下,如何最優(yōu)地選擇各視頻版本的編碼碼率和分別率。但是,上述工作的主要方法是將最優(yōu)版本選擇問題建模為一個極為復(fù)雜的整數(shù)線性規(guī)劃問題,通過求解該問題得到最優(yōu)的視頻編碼版本。這一方法的復(fù)雜度隨系統(tǒng)的規(guī)模呈指數(shù)趨勢增長,因此需要消耗極高的復(fù)雜度和計算資源,從而占用了服務(wù)器進行視頻編碼的計算資源,具有很大的局限性。另一方面,上述工作假設(shè)各視頻的不同視頻版本已經(jīng)通過預(yù)編碼獲得,其最終目標(biāo)是從這些已知版本中選取最優(yōu)的版本子集,這一假設(shè)在實際系統(tǒng)中并不成立。例如在實時視頻通信系統(tǒng)中,所有視頻流通過實時編碼后將碼率傳輸給用戶,因此沒有足夠的時間對所有視頻進行預(yù)編碼。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種適用于動態(tài)自適應(yīng)視頻流媒體的編碼碼率控制與版本選擇的方法及系統(tǒng)。
為實現(xiàn)以上目的,本發(fā)明采用的技術(shù)方案是:
根據(jù)本發(fā)明的一個方面,提供一種動態(tài)自適應(yīng)視頻流媒體的編碼碼率控制與版本選擇方法,所述方法結(jié)合動態(tài)自適應(yīng)流媒體編碼技術(shù),在服務(wù)器處將各原始視頻編碼為多個不同碼率的版本,同時兼顧各不同原始視頻內(nèi)容的編碼復(fù)雜度-碼率-失真模型、服務(wù)器的編碼碼率和計算資源限制、不同用戶的網(wǎng)絡(luò)連接情況(比如用戶帶寬資源)以及視頻點播概率分布,確定各原始視頻所需編碼的視頻版本子集以及每個視頻版本的具體編碼參數(shù),服務(wù)器最終通過編碼輸出視頻最優(yōu)版本集合,以實現(xiàn)用戶觀看視頻整體質(zhì)量的最大化。
具體的,所述動態(tài)自適應(yīng)視頻流媒體的編碼碼率控制與版本選擇方法,包括以下步驟:
第一步、視頻模型抽取步驟:
抽取各原始視頻的前若干幀,得到各原始視頻的編碼復(fù)雜度-碼率-失真模型;
第二步、碼率控制與版本選擇步驟:
根據(jù)服務(wù)器處可編碼得到的各視頻不同版本組成的全集、第一步中得到的各原始視頻的編碼復(fù)雜度-碼率-失真模型、服務(wù)器的編碼碼率和計算資源限制、以及用戶的網(wǎng)絡(luò)連接情況和視頻點播概率分布,建立適用于動態(tài)自適應(yīng)視頻流媒體的編碼碼率控制與版本選擇的優(yōu)化問題,采用最優(yōu)版本集合碼率控制與版本選擇方法,得到各視頻各最優(yōu)版本的編碼參數(shù);
第三步、視頻版本編碼步驟:
使用動態(tài)自適應(yīng)流媒體編碼技術(shù),并采用第二步中得到的各視頻各最優(yōu)版本的編碼參數(shù),將各原始視頻編碼為多個不同碼率的視頻版本,輸出得到視頻最優(yōu)版本集合。
優(yōu)選地,第一步中,所述的前若干幀為任意大于二的正整數(shù)幀。
優(yōu)選地,第一步中,所述的各原始視頻由于內(nèi)容的不同呈現(xiàn)出不同的編碼復(fù)雜度-碼率-失真性能。
優(yōu)選地,第一步中,所述的編碼復(fù)雜度-碼率-失真模型將編碼復(fù)雜度、碼率和失真表示為具體編碼參數(shù)的函數(shù)。
優(yōu)選地,第二步中,所述的適用于動態(tài)自適應(yīng)視頻流媒體的編碼碼率控制與版本選擇的優(yōu)化問題,結(jié)合服務(wù)器處可編碼得到的各視頻不同版本組成的全集、第一步中得到的各視頻的編碼復(fù)雜度-碼率-失真模型、服務(wù)器的編碼碼率和計算資源限制、以及用戶的網(wǎng)絡(luò)連接情況和視頻點播概率分布,并使用網(wǎng)絡(luò)效用最大化建模方法得到。
更優(yōu)選地,所述的建立適用于動態(tài)自適應(yīng)視頻流媒體的編碼碼率控制與版本選擇的優(yōu)化問題,包括:
目標(biāo)優(yōu)化問題:
約束條件:
其中:視頻文件集合視頻版本集合用戶集合F、M、U為任意大于二的正整數(shù);λm表示視頻版本m在編碼時運動估計模塊中的搜索范圍,Qm表示視頻版本m在編碼時量化模中塊的量化步長,Rf(λm,Qm)表示視頻文件f的第m個視頻版本的編碼碼率,Cf(λm,Qm)表示視頻文件f的第m個視頻版本的編碼復(fù)雜度;定義基集合表示所有服務(wù)器處可編碼得到的各視頻不同版本組成的全集,其中元素vf,m表示服務(wù)器編碼輸出視頻文件f的第m個視頻版本;對于每個用戶將其通過鏈路帶寬Bu能夠下載的所有視頻的所有版本的集合記為:
優(yōu)化變量為:表示實際編碼輸出的各視頻版本組成的集合;具體地,某一個元素表示視頻文件f的第m個視頻版本由服務(wù)器編碼輸出;
優(yōu)化目標(biāo)為:最大化所有用戶的預(yù)期視頻失真減少量之和其中所有服務(wù)器處可編碼得到的各原始視頻不同版本集合是所述優(yōu)化問題的基集合;當(dāng)用戶請求視頻f時,將從集合中選擇該視頻碼率最高的版本進行下載觀看;因此,表示已知用戶u請求視頻文件f的概率為Pu,f,服務(wù)器實際編碼輸出的視頻版本集合能夠造成用戶u觀看視頻時的預(yù)期視頻失真減少量,即:
上式中:指示函數(shù)的值在的時候為1、在的時候為0;Dmax分別表示當(dāng)視頻無法解碼時的最大失真常量,Df(λm,Qm)表示視頻文件f的第m個視頻版本的編碼失真,Dmax-Df(λm,Qm)表示用戶在成功解碼視頻文件f的第m個視頻版本之后的視頻失真減少量;
約束條件為:服務(wù)器編碼碼率限制條件,即要求所有視頻版本的碼率之和不超過服務(wù)器最大碼率資源Rmax;以及服務(wù)器計算限制條件,即要求所有視頻版本的編碼復(fù)雜度之和不超過服務(wù)器最大計算資源Cmax。
優(yōu)選地,第二步中,所述的最優(yōu)版本集合碼率控制與版本選擇方法,在為各原始視頻確定最優(yōu)版本的編碼參數(shù)時,采用具有多項式時間復(fù)雜度和高近似優(yōu)化性能的高成本效益貪心算法,最終快速高效地實現(xiàn)各原始視頻最優(yōu)版本的碼率控制與版本選擇。
更優(yōu)選地,所述的最優(yōu)版本集合碼率控制與版本選擇方法的步驟為:
(1)初始化:設(shè)置初始局部最優(yōu)解集合為空集、初始搜索集合為服務(wù)器處可編碼得到的各視頻不同版本組成的全集,以及初始步數(shù)為1;
(2)迭代搜索步驟:根據(jù)已有的局部最優(yōu)解集合,在剩余搜索集合中尋找使得邊際增量與碼率代價的比值與邊際增量與復(fù)雜度代價的比值加權(quán)和最大的元素;其中:所述剩余搜索集合為局部最優(yōu)解對于搜索集合的補集,所述剩余搜索集合中的一個元素對應(yīng)于某一視頻編碼得到的某一碼率版本;
(3)更新步驟:如果添加(2)中搜索得到的元素仍能滿足服務(wù)器處的編碼碼率和計算資源約束,則將該元素添加至局部最優(yōu)解集合,并且搜索集合保持不變;如果添加該元素不能滿足服務(wù)器處的編碼碼率和計算資源約束,則局部最優(yōu)解集合保持不變,并且將該元素從搜索集合中移除;
(4)判定步驟:如果剩余搜索集合不是空集,則令搜索步數(shù)加一并返回(2)迭代搜索步驟;否則,停止迭代,并將當(dāng)前的局部最優(yōu)解集合輸出為最優(yōu)結(jié)果。
優(yōu)選地,第三步中:
所述的動態(tài)自適應(yīng)流媒體編碼技術(shù)將任意一個原始視頻文件編碼為多個具有不同編碼碼率的視頻版本;
所述的視頻最優(yōu)版本集合由服務(wù)器使用動態(tài)自適應(yīng)流媒體編碼技術(shù)并且采用第二步中得到的各視頻各最優(yōu)版本的編碼參數(shù)編碼獲得。
根據(jù)本發(fā)明的另一個方面,提供一種動態(tài)自適應(yīng)視頻流媒體的編碼碼率控制與版本選擇系統(tǒng),所述系統(tǒng)包括:
視頻模型抽取模塊:用于抽取各原始視頻的前若干幀,得到各原始視頻的編碼復(fù)雜度-碼率-失真模型;
碼率控制與版本選擇模塊:利用服務(wù)器處可編碼得到的各視頻不同版本組成的全集、視頻模型抽取模塊中得到的各原始視頻的編碼復(fù)雜度-碼率-失真模型、服務(wù)器的編碼碼率和計算資源限制、以及用戶的網(wǎng)絡(luò)連接情況和視頻點播概率分布,建立適用于動態(tài)自適應(yīng)視頻流媒體的編碼碼率控制與版本選擇的優(yōu)化問題,采用最優(yōu)版本集合碼率控制與版本選擇方法,得到各視頻各最優(yōu)版本的編碼參數(shù);
視頻版本編碼模塊:使用動態(tài)自適應(yīng)流媒體編碼技術(shù),并采用碼率控制與版本選擇模塊中得到的各視頻各最優(yōu)版本的編碼參數(shù),將各原始視頻編碼為多個不同碼率的視頻版本,輸出得到視頻最優(yōu)版本集合。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
本發(fā)明為適應(yīng)動態(tài)自適應(yīng)流媒體技術(shù)的需要,提供了一種在服務(wù)器編碼碼率和計算資源受限情況下高效快速確定最優(yōu)版本碼率控制與版本選擇的方法,提高了服務(wù)器處編碼視頻內(nèi)容的碼率和計算資源的利用率,為用戶提供更佳的視頻服務(wù)質(zhì)量。
附圖說明
通過閱讀參照以下附圖對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:
圖1為本發(fā)明一實施例的系統(tǒng)原理及方法流程圖;
圖2為本發(fā)明一實施例編碼參數(shù)選擇方法的流程圖;
圖3為本發(fā)明一實施例視頻編碼復(fù)雜度-碼率-失真性能的示意圖;
圖4為本發(fā)明一實施例最優(yōu)視頻版本碼率控制與版本選擇方法性能的示意圖。
具體實施方式
下面結(jié)合具體實施例對本發(fā)明進行詳細說明。以下實施例將有助于本領(lǐng)域的技術(shù)人員進一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進。這些都屬于本發(fā)明的保護范圍。
如圖1所示,一種用于實現(xiàn)動態(tài)自適應(yīng)視頻流媒體的碼率控制與版本選擇的系統(tǒng),包括設(shè)置于服務(wù)器內(nèi)的視頻模型抽取模塊、碼率控制與版本選擇模塊、視頻版本編碼模塊,其中:
視頻模型抽取模塊:抽取各原始視頻的前若干幀,得到各原始視頻的編碼復(fù)雜度-碼率-失真模型;
碼率控制與版本選擇模塊:利用服務(wù)器處可編碼得到的各視頻不同版本組成的全集、視頻模型抽取模塊中得到的各原始視頻的編碼復(fù)雜度-碼率-失真模型、服務(wù)器的編碼碼率和計算資源限制、以及用戶的網(wǎng)絡(luò)連接情況和視頻點播概率分布,建立適用于動態(tài)自適應(yīng)視頻流媒體的編碼碼率控制與版本選擇的優(yōu)化問題,采用最優(yōu)版本集合碼率控制與版本選擇方法,得到各視頻各最優(yōu)版本的編碼參數(shù);
視頻版本編碼模塊:使用動態(tài)自適應(yīng)流媒體編碼技術(shù),并采用碼率控制與版本選擇模塊中得到的各視頻各最優(yōu)版本的編碼參數(shù),將各原始視頻編碼為多個不同碼率的視頻版本,輸出得到視頻最優(yōu)版本集合。
如圖1所示,對動態(tài)自適應(yīng)流媒體的內(nèi)容分發(fā)網(wǎng)絡(luò)進行實例分析。假設(shè)服務(wù)器處有F個原始視頻文件(F為任意大于2的正整數(shù)),記為視頻文件集合使用動態(tài)自適應(yīng)流媒體編碼技術(shù),將任意一個視頻文件編碼為M個不同碼率的視頻版本(M為任意大于2的正整數(shù)),記為視頻版本集合每一個視頻版本對應(yīng)于一對具體的編碼參數(shù)(λm,Qm),其中:λm表示視頻版本m在編碼時運動估計模塊中的搜索范圍,Qm表示視頻版本m在編碼時量化模塊中的量化步長。將視頻文件f的第m個視頻版本的編碼碼率記為Rf(λm,Qm),并且將視頻版本集合按照編碼碼率呈降序排列,即從而,可以定義基集合表示所有服務(wù)器處可編碼得到的各視頻不同版本組成的全集,其中元素vf,m表示服務(wù)器編碼輸出視頻文件f的第m個視頻版本。
網(wǎng)絡(luò)中隨機分布的U個用戶,記為用戶集合用戶可以向服務(wù)器提出視頻點播請求,并且根據(jù)其鏈路帶寬Bu選擇從服務(wù)器下載碼率小于Bu的視頻版本;對于每個用戶而言,將其通過鏈路帶寬Bu能夠下載的所有視頻的所有版本的集合記為
基于上述,一種適用于動態(tài)自適應(yīng)視頻流媒體的碼率控制與版本選擇方法,具體實現(xiàn)包括如下步驟:
1、視頻模型抽取
服務(wù)器抽取每個原始視頻的前K幀(K為任意大于2的正整數(shù)),通過編碼和參數(shù)分析過程將視頻版本的編碼復(fù)雜度、編碼碼率和編碼失真表示為編碼參數(shù)對(λm,Qm)的函數(shù),分別記為:Cf(λm,Qm)、Rf(λm,Qm)和Df(λm,Qm)。此步驟可以通過圖1中所示視頻模型抽取模塊來實現(xiàn)。
2、碼率控制與版本選擇
此步驟可以通過圖1中所示碼率控制與版本選擇模塊來實現(xiàn)。
建立適用于動態(tài)自適應(yīng)視頻流媒體的編碼碼率控制與版本選擇的優(yōu)化問題如下(其中每個參數(shù)的含義可在上下文中對應(yīng)獲取):
目標(biāo)優(yōu)化問題:
約束條件:
其中:
優(yōu)化變量為:表示實際編碼輸出的各視頻版本組成的集合,具體地,某一個元素表示視頻文件f的第m個視頻版本由服務(wù)器編碼輸出;
優(yōu)化目標(biāo)為:最大化所有用戶的預(yù)期視頻失真減少量之和其中,所有服務(wù)器處可編碼得到的各視頻不同版本集合是所述優(yōu)化問題的基集合。當(dāng)用戶請求視頻f時,將從集合中選擇該視頻碼率最高的版本進行下載觀看;因此,表示已知用戶u請求視頻文件f的概率為Pu,f,服務(wù)器實際編碼輸出的視頻版本集合能夠造成用戶u觀看視頻時的預(yù)期視頻失真減少量,即:
上式中:指示函數(shù)的值在的時候為1,在的時候為0;Dmax分別表示當(dāng)視頻無法解碼時的最大失真常量,Dmax-Df(λm,Qm)表示用戶在成功解碼視頻文件f的第m個視頻版本之后的視頻失真減少量;
約束條件為:服務(wù)器編碼碼率限制條件,即要求所有視頻版本的碼率之和不超過服務(wù)器最大碼率資源Rmax;以及服務(wù)器計算限制條件,即要求所有視頻版本的編碼復(fù)雜度之和不超過服務(wù)器最大計算資源Cmax。
如圖2所示,給出具有多項式時間復(fù)雜度和高近似優(yōu)化性能的高成本效益貪心算法,最終快速高效地實現(xiàn)視頻最優(yōu)版本集合的碼率控制與版本選擇。
所述的最優(yōu)版本集合的碼率控制與版本選擇方法的執(zhí)行過程如下(其中每個參數(shù)的含義可在上下文中對應(yīng)獲取):
(1)初始化:設(shè)置初始局部最優(yōu)解集合初始搜索集合初始步數(shù)t=1;
(2)迭代搜索步驟(t=1,2,3...):
根據(jù)已有的局部最優(yōu)解集合在剩余搜索集合(即對于的補集)中尋找使得邊際增量與碼率代價Rf(λm,Qm)和復(fù)雜度代價Cf(λm,Qm)的比值的加權(quán)和最大的元素即:
上式中:元素vf,m表示在服務(wù)器編碼輸出視頻文件f的第m個視頻版本,元素表示在第t個搜索步驟中搜索得到的邊際增量與碼率代價和復(fù)雜度代價的比值加權(quán)和最大的元素,權(quán)重為ω,Rf(λm,Qm)表示視頻文件f的第m個視頻版本的編碼碼率,Cf(λm,Qm)表示視頻文件f的第m個視頻版本的編碼復(fù)雜度;
(3)更新步驟:
如果添加元素仍能滿足服務(wù)器的編碼碼率和計算資源約束,即:
則將該元素添加至局部最優(yōu)解集合,并且搜索集合保持不變,即令以及
如果添加該元素不能滿足服務(wù)器的編碼碼率和計算資源約束,則局部最優(yōu)解集合保持不變,并且將該元素從搜索集合中移除,即令以及
(4)判定步驟:
如果剩余搜索集合不是空集,則令t=t+1并返回(2)迭代搜索步驟;否則,停止迭代并且將當(dāng)前的局部最優(yōu)解集合輸出為最優(yōu)結(jié)果
3、視頻版本編碼
此部分可以采用圖1所示的視頻版本編碼模塊來實現(xiàn)。
對應(yīng)于第二步中求解得到的最優(yōu)結(jié)果服務(wù)器進一步使用動態(tài)自適應(yīng)流媒體編碼技術(shù)將各原始視頻編碼為多個不同碼率的視頻版本,輸出得到視頻最優(yōu)版本集合;
具體地:
服務(wù)器將采用編碼參數(shù)(λm,Qm)對原始視頻f進行實際編碼操作,得到該視頻f的第m個碼率版本;
服務(wù)器將不會采用編碼參數(shù)(λm,Qm)對原始視頻f進行實際編碼操作。
如圖3所示,服務(wù)器處三個具體視頻文件(Crowd Run、Tractor和Sunflower)的編碼復(fù)雜度-碼率-失真性能曲面,其中三個視頻的空間分辨率均為1080p(1920×1080),編碼幀率均為30幀每秒。
如圖4所示,在服務(wù)器碼率約束Rmax=30Mbps和計算資源約束Cmax=30GHz的設(shè)置下,所述的視頻最優(yōu)版本集合的碼率控制與版本選擇方法的視頻失真性能隨權(quán)重ω變化的情況,其中最大視頻失真為Dmax=500。
本發(fā)明為適應(yīng)動態(tài)自適應(yīng)視頻流媒體多碼率版本傳輸以及異構(gòu)網(wǎng)絡(luò)用戶差異化帶寬條件和點播需求的需要,建立了服務(wù)器編碼碼率和計算資源受限情況下的最優(yōu)版本碼率控制與版本選擇問題,并且相應(yīng)地提供了一種高效快速的最優(yōu)版本集合的碼率控制與版本選擇方法,實現(xiàn)了用戶下載觀看視頻整體質(zhì)量的最大化。本發(fā)明提高了服務(wù)器處編碼視頻內(nèi)容的碼率和計算資源的利用率,為用戶提供更佳的視頻服務(wù)質(zhì)量。
以上對本發(fā)明的具體實施例進行了描述。需要理解的是,本發(fā)明并不局限于上述特定實施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實質(zhì)內(nèi)容。