一種svc視頻fgs優先級調度方法
2023-05-08 10:47:26 1
專利名稱:一種svc視頻fgs優先級調度方法
技術領域:
本發明涉及一種SVC視頻FGS優先級調度方法,特別是關於一種基於誤差漂 移失真模型的SVC視頻FGS優先級調度方法。
技術背景近年來,隨著網際網路技術的發展和普遍應用,網絡越來越影響人們的生活方 式。由於視頻信息具有直觀性強,內容豐富等特點,因此視頻傳輸在網絡傳輸領 域佔據了越來越重要的地位。然而,在網際網路上進行視頻傳輸,對視頻壓縮、網 絡傳輸等提出了新的挑戰。由於網絡擁塞導致的網絡帶寬不穩定,以及終端設備 應用需求和解碼播放能力的差異,所有這些都要求視頻編碼和傳輸具有可伸縮的 特性。可伸縮視頻編碼(SVC)便是在這種需求下由高壓縮效率標準H.264/AVC發 展而來的視頻編碼方案,它不僅能夠提供空域、質量和時域的可伸縮性,提供精 確到位的碼率截斷,而且使得SVC效率大大提高,接近傳統定碼率視頻編碼的壓 縮率。在H. 264/AVC的SVC擴展中,空間可伸縮性使用分層的方法,首先將圖像分 解為多個空間解析度的信號,每個解析度都是一個空間編碼層,幀內預測和幀間 預測可以跨層進行,具體包括層間幀內預測、層間幀間預測、層間殘差預測。質量可伸縮主要通過對變換係數的重複量化和位平面編碼來實現質量SNR的 可伸縮性。具體通過粗糙粒度可伸縮性(CGS),中等粒度可伸縮性(MGS),精細 粒度可伸縮性(FGS)等技術實現質量的可伸縮性。其基本思想為將視頻的每一 幀都分為一個可以單獨解碼的基本層(BL)碼流和在基本層解碼器之上的增強層 (EL)碼流。基本層採用混合編碼的方法,通常碼率比較低,只能保證最基本的 質量要求,確保解碼端有足夠的能力接收並解碼基本層的碼流。增強層則通過嵌 入式的對各增強層變換係數進行子位平面編碼,以實現碼流可以在任意點截斷。為實現時域可伸縮性,每個空間層內都使用層次化B幀編碼結構,高時間級 的圖像通過低時間級的圖像作為參考幀進行時間預測。如同先前的大多數編碼方 案,SVC也採用運動預測和補償的方法來消除時間冗餘,達到壓縮效果。誤差漂移 是SVC技術遇到的一個重要問題,如果運動預測採用增強層圖像作為參考幀,則 在解碼端,由於碼流截斷造成重建參考幀和原始參考幀失配,會造成解碼誤差, 這樣隨著解碼端高時間級的幀以低時間級的幀作參考不斷地運動補償和解碼,會 造成誤差的逐步擴散,形成誤差漂移。在MPEG-4FGS中,運動預測只能以基本層
為參考幀,雖然這樣可以有效防止誤差漂移,卻導致了率失真性能的低下。因此, 在SVC中,運動預測的參考幀採用前一幀的最高質量重建幀,這樣提高了率失真 性能,縮短了與不可伸縮編碼效率的差距。但是一旦解碼端沒有接受到所有增強 層的信息,便會造成編碼器和解碼器之間的失配,引起誤差漂移。為防止誤差漂 移,SVC中提出了關鍵幀(key picture)的概念,關鍵幀與這個關鍵幀之前的關 鍵幀之間的所有圖像形成一個圖像組(G0P),關鍵幀允許以基本層圖像作為參考 幀,關鍵幀之間的其它幀形成層次化B幀,以提供時間可伸縮性,從而將誤差漂 移限制在一個GOP範圍內,這本質上是一個編碼效率和誤差漂移控制之間的權衡。 為了最大限度發揮SVC FGS的優勢,應該有一個比特流提取方法將目標比特 最優地分配給每個FGS圖像。對於一個FGS碼流,可以通過對不同的FGS層選擇 截斷以達到目標碼率,但是不同的提取方案會造成率失真性能很大的差別。通常 地,最優碼流提取要考慮到兩個因素, 一個是每一幀FGS增強層的率失真函數, 另一個就是在每一個GOP中的誤差漂移問題。也就是說,判斷一個質量包的優先 級,既要考慮其對所在幀的率失真性能的提高,同時也要考慮由於誤差漂移引起 的對其它幀率失真性能的影響。先前對碼流截斷方法的研究很不完善,很多算法 仍然採用對碼流任意截斷的方法,這樣沒有考慮各質量包率失真性能的差異以及 對整個序列率失真性能的影響,顯然效率是不高的。而在參考代碼中提出的碼流 截斷方案,類似的提出了獨立率失真信息和非獨立率失真信息的概念,並用加權 的方式計算每個質量包對整個序列率失真性能的影響,以此來判斷其優先級,該方法共需要對碼流進行2NT次的提取和解碼,N是FGS層數,T為時間可伸縮級數。 可見,其計算複雜性相當大,因此, 一個簡單快速而不失準確性的碼率截斷方法 還是相當必要的。 發明內容針對上述問題,本發明提出的是一種基於誤差漂移失真模型的SVC視頻FGS 優先級調度方法,以較小的複雜度儘可能的提高重建視頻的主觀以及客觀質量。 為實現上述目的,本發明採用如下技術方案1) 提出一種偽GOP的概念,每個偽GOP包含兩個相鄰的關鍵幀和之間的所有B幀;2) 建立一個由誤差漂移導致的失真模型,所述模型描述為E(S) = E(4) + O何+ ^ )E(《)+ (A w + * )E(《)+ //E(《)E(《)+ " (1)其中,£(^), 五(《)分別表示偽GOP中B幀和它的參考幀A,C的MSE, Sw表示b幀的當前殘差幀h中原始殘差值和重建殘差值之間的差,;v^;^^,/^w分
別表示B幀中採用前向預測、後向預測和雙向預測的像素的百分比,//, V是兩 個待定的係數;3)基於公式(1)所建立的誤差漂移失真模型,按如下方法對SVC視頻進行 FGS優先級調度(1) 計算估計公式(1)中兩個參數/i, V,具體方法為先對碼流進行基本 層抽取和全部抽取後解碼,並統計每一幀在基本層的MSE以及每個殘差幀在各質 量級的£(《),同時統計出在基本層提取後的每個非關鍵幀的p^,A^^,w,而後對於每一個非關鍵幀,根據其/7^,^^,p^和殘差幀基本層的E(《),以及該幀和其參考幀基本層解碼後的MSE,代入公式(1)計算出每一個非關鍵幀的//, V;(2) 為每個偽GOP中的各FGS質量包設置優先級,具體方法為根據每個質 量包對整個偽G0P平均率失真性能的影響來確定其優先級,其影響包括對所在幀 造成的非漂移失真和由於誤差漂移導致的其它幀的MSE下降;其中,所在幀的非 漂移失真即為步驟(1)中得到的殘差幀在傳輸該質量包前後的£(《),而後根據 公式(1)算出由於誤差漂移造成的其他幀的MSE下降,從而得到偽G0P的平均MSE下降,通過循環選取造成偽G0P的MSE下降最小的質量包來得到優先級順序及相 應的碼率失真數據,具體步驟如下① 用一個序列MM^
存放偽GOP中每一幀的MSE,將偽GOP的 MS£ra。/)
, 似1^^."0..(伊/7」^)]由步驟(1)中對碼流進行基本層截斷解碼後得到,其中 g叩—w&為偽GOP的大小;用序列array—level存放當前比較優先級的質量包, 將array—level初始化為偽GOP的第一個FGS增強層;② 按照以下循環方法通過選擇率失真斜率最大的質量包來逐步排列 array—level中各質量包的優先級,直至array」evel為空;i )將PSNR-rate斜率CurrMaxSl叩evG。p初始化為0,偽GOP的平均率失真斜率為PSNRVGOP = 20 log 255 - 10metm(log10(MS£「GO;J[l ..gop — +1])); ii)對於array—level中的每個質量包level (frame—no, FGS—level—no),判 斷第k個質量包是不是當前最優的a)根據步驟(1)中得到的其所在幀的殘差幀在傳輸該質量包前後的£(《), 即為該質量包對所在幀造成的非漂移的MSE下降,與當前 ^5£^^
中對應的所在幀的MSE相減得到該質量包所在幀的新MSE, 然後利用公式(l),並根據當前的MS£,(,[l..(g叩—+ 計算由誤差漂移造成的/"MS&^ ;b)然後利用MS£ra。P和^cM促,p ,按下式計算PSNR增加,incPSNR一Level VGOP = 10 weflfw(log10 (MS五,屍[1 — w—ze +1]))—1 Owe—log10 (MS五柳屍[1_ w'ze +1] — cfecMSE柳屍[1— +1]))如果incPSNR—LevelVGOP 〃eve/ —w'ze > CurrMaxSlopeV(J。p ,即該質量包的率失真斜率大於先前的最大率失真斜率,則令decOptiMSE,p =decMSEV(J。p ,CurrMaxSlopeVGOP=incPSNR_LevelVGOP /LevelSize ,並令該質量包為當前最優質量包,如果關鍵幀包含在了兩個偽GOP中,則Level—Size等於原始大小的一半,Level—Size為質量包的大小;令l^k+l,回到步驟ii)直到對array—level中的所有質量包檢査完畢,進行步驟iii);iii) 輸出本次循環中得到的最優質量包,更新 MS£VG0P = MS£VGOP — fifec(9; ft'MSEvoop ;iv) 更新array—level:將先前得到的最優質量包移出array—level,並放入 相應幀高一層的質量包,如果該質量包為該幀的最高質量包,則不放入任何質量 包,直至array—level為空。③計算每個FGS質量包的率失真斜率,其中對於關鍵幀,如果包含在兩個偽 G0P中,其質量包的率失真斜率等於其在兩個偽GOP中的率失真斜率的平均;其餘 質量包的率失真斜率等於其在偽GOP中的率失真斜率,這些率失真斜率用於最終 的質量包調度。本發明由於採取以上技術方案,在每次解碼時只需要對碼流進行兩次提取就 可以得到各質量包的優先級時序,比起碼流任意截斷的方法,本發明方法能夠提 高視頻的率失真性能,計算複雜度低了很多,並且還可以得到各個偽GOP的率失 真信息,這些信息可以用於SVC視頻平滑重建。
圖1是本發明偽G0P示意2是本發明基於像素的當前幀和參考幀之間的預測關係圖具體實施方式
下面結合附圖和實施例,對本發明進行詳細的描述。如圖1所示,針對SVC的編碼結構特性,我們提出了偽GOP的概念,每個偽 GOP包含兩個相鄰的關鍵幀和之間的所有B幀。我們首先分析基於像素的誤差漂移,如圖2所示,顯示了基於像素的當前幀 和參考幀之間的預測關係,和^分別表示參考幀A, C中原始幀和重建幀的差,和&。,分別表示相應的原始幀A, C的編解碼失配值,表示當前殘差幀H中 原始殘差值和重建殘差值之間的差,所有變量。,sc, C4,, ,和^都可以是正數或者負數。為了便於分析而不失準確性,分數像素預測的分析可由整 數像素預測的分析近似。對於當前幀B中的幀內編碼像素,MSE可以表示為《加),;) (1)對於當前幀B中的前向/後向編碼像素,不失一般性,假設參考幀為A, MSE為五(《Re/一》=+ 、, )2) = £(4 + < + 2~ ) a五(4) +) (2 )上式中假設 和s^,不相關並且均值為0,因此將2 &^略去。對於當前幀B中的雙向編碼像素,MSE為 《£(4) +1 )+ 士 )+ + £(、 ttCe,)(3)上式中假設^和f^ 、 不相關,因此將^D^,禾卩項省略,^,a^,項保留是因為、,禾p ^,是相關的並且很有可能相關的。 基於以上結果,我們進一步推導基於像素的誤差漂移公式。 令A,Pyw,i^w,;^w分別表示B幀中採用幀內預觀"前向預測、後向預測和雙向預測的像素的百分比,P,,/V,P編,P編^0,並且A+Z^W+PfeW+ArW^L利用公式(1) ~ (3),並假設各參考幀中各種參考像素(例如參考幀A中的 前向、雙向和非參考像素)的MSE相同,則B幀的MSE為=a五(《)+ (五(4)+餘i,))+Aw (五(4)+)) (4)+)++)++《)+*五K,、))=五(《)+ (P/^ + { i^w )五(《')+ (Aw + + )+ * 0^,)為了簡化最後一項R、,D^,), 一個直覺的方法是使用/Vs(sl)W(《,),但是實驗證明,£(4)是£(《)或者E(《,)的線性函數,因此使用近似更合適。式(4)可以近似為£(s)=£(《)+ (p何+ j ~w)+ (Pw + 士 Pw)+ )(5)為了簡化,我們用五(g)和五(《)代替五(《)和五(《),最後的誤差漂移公 式可以寫為E(S) = E(4) + (Pyw +|;^w)E(《)+ (Av^ +|pb,wJE(《)+ 〃E(《)E(《)+ v/ (6) 式中五(s),五(《)分別表示偽GOP中B幀和它的參考幀A,C的MSE, ^表
示B幀的當前殘差幀H中原始殘差值和重建殘差值之間的差,//, V是兩個待定的係數,v用於補償^(g)和E(《《,)之間的失配,尤其當E(fi)二o時,//和V需要由已編幀的實際失真數據估計得出。基於公式(6)建立的誤差漂移失真模型,進行SVC視頻FGS優先級調度,具 體的調度方法可以按如下步驟(1) 計算估計公式(6)中兩個參數//, V。具體方法為先對碼流進行基本層抽取和全部抽取後解碼,並統計每一幀在基本層的MSE以及每個殘差幀在各質 量級的£(《),同時統計出在基本層提取後的每個非關鍵幀的;v^M,A^,而後 對於每一個非關鍵幀,根據其 ^^,^^和殘差幀基本層的£(《),以及該幀和 其參考幀基本層解碼後的MSE,代入公式(6)計算出每一個非關鍵幀的A, v。(2) 為每個偽GOP中的各FGS質量包設置優先級。具體方法為根據每個質 量包對整個偽G0P平均率失真性能的影響來確定其優先級,其影響包括對所在幀 造成的非漂移的失真和由於誤差漂移導致的其它幀的MSE下降。其中,所在幀的 非漂移失真即為步驟(1)中得到的殘差幀在傳輸該質量包前後的£(《),而後根 據公式(6)算出由於誤差漂移造成的其他幀的MSE下降,從而得到偽GOP的平均 MSE下降,通過循環選取造成偽G0P的MSE下降最小的質量包來得到優先級順序及 相應的碼率失真數據,具體步驟如下 用一個序列肘促^^
存放偽G0P中每一幀的MSE,將偽GOP的 MS£ra。P
初始化為基本層的MSE序列MMSa,J0..(go/ 」/Ze)], MS£s
由步驟(1)中對碼流進行基本層截斷解碼後得到。其中, gc^」&為偽GOP的大小,用序列array—level存放當前要比較優先級的質量包, 將array—level初始化為偽GOP的第一個FGS增強層。如圖1所示,array—level 初始化為[(O,l), (l,l), (2,1), (3,1), (4,1), (5,1), (6,1), (7,1), (S,l)], (*, *) 表示(幀序號,質量包序號)。②按照以下循環方法通過選擇率失真斜率最大的質量包來逐步排列 array—level中各質量包的優先級,直至array—level為空;i )將PSNR-rate曲線斜率CurrMaxSlopev,初始化為0,偽GOP的平均率失 真斜率為PSNRVGOP =201og255 —10mea"(log10(MS£rao/)[l,.gop —+ (7) ii)對於array—level中的第k個質量包(frame—no, FGS—level—no),找出 這次循環中最優先的質量包,即判斷第k個質量包是不是當前最優的。a)根據步驟(1)中得到的其所在幀的殘差幀在傳輸該質量包前後的五(g),
即為該質量包對所在幀造成的非漂移的MSE下降,與當前 ^^,/(;。/)
中對應的所在幀的MSE相減得到該質量包所在幀的新MSE, 然後利用公式(6),並根據當前的MMra。P[l..(g0/7 —Wm + 1)]計算由誤差漂移造成的 偽G0P中其它幀的MSE下降Adl^E,《觀。如圖1所示,對於處於最低時間級的質量 包(0, 1),要依次計算對高時間級的幀的影響,先根據剛算出的所在幀第O幀的 新MSE以及當前第4和第8幀的MSE代入公式(6),得到第4幀新的MSE,用第4 幀這個新算出的MSE用相同方法計算第2, 6幀的新MSE,最後計算1, 3, 5, 7 幀的新MSE,將所有新MSE與當前似化「(,[1..(^;7」& + 1)]相減即可得到 &cMS£ra。P[l..(go;7 —w'ze + l)]。而對於質量包(6, 1)由於其只影響到更高層時間級 的幀5, 7的MSE,則只需通過公式(6)計算5, 7幀的MSE變化。對於1, 3, 5, 7幀,已經是最高的時間級,則不需要計算對其它幀造成的MSE下降。b)利用MS£raOT和^fecM^^。p ,按下式計算PSNR增加,incPSNR—Level VGOp = 10wea"(log10 (M促,屍[1. — w'ze +1])) ,。、— 一 (8)—10附ea"(log!。 (MSS柳屍[1. .gop — +1] - tfecMS^g。屍[1. — w'ze +1]))如果incPSNR—LevelVGOP 〃eve/ —Wze > CurrMaxSlopeve。P ,即該質量包的率失真斜率大 於先前的最大率失真斜率,則令decOptiMSEve。p = decMSEVQ。p , CurrMaxSlopeVGOP=incPSNR—LevelVG0P /LevelSize ,並令該質量包為當前最優質量包, 如果關鍵幀包含在了兩個偽GOP中,則Level—Size等於原始大小的一半, Level—Size為質量包的大小。令k=k+l,回到步驟ii)直到對array—level中的所有質量包檢查完畢,進行步驟iii)。iii) 輸出本次循環中得到的最優質量包,更新vgop — ^cQpriMS"五vQQp oiv) 更新array—level:將先前得到的最優質量包移出array—level,並放入 相應幀高一層的質量包。如果該質量包為該幀的最高質量包,則不放入任何質量 包,直至array—level為空。如圖1所示,如果第一次循環最優層為(4, 1),則更 新後的array—level為[(0, 1) , (1, 1) , (2, 1) , (3, 1) , (4, 2) , (5, 1) , (6, 1) , (7, 1), (8, l)]。③計算每個FGS質量包的率失真斜率,其中對於關鍵幀,如果包含在兩個偽 G0P中,其質量包的率失真斜率等於其在兩個偽GOP中的率失真斜率的平均;其餘 質量包的率失真斜率等於其在偽GOP中的率失真斜率,即在②ii) b)中得到的 incPSNR—LevelVG0P / LevelSize ,這些率失真斜率用於最終的質量包調度。
權利要求
1、 一種SVC視頻FGS優先級調度方法,其包括以下步驟1) 提出一種偽GOP的概念,每個偽GOP包含兩個相鄰的關鍵幀和之間的所有B幀;2) 建立一個由誤差漂移導致的失真模型,所述模型描述為e(s)=e(《)+ (/v +w)E(《)+ (/w ^e(《)喊+ v ( 1)其中,五(《)分別表示偽G0P中B幀和它的參考幀A,C的MSE, S" 表示B幀的當前殘差幀H中原始殘差值和重建殘差值之間的差,^^,/^rf, A,w分 別表示B幀中採用前向預測、後向預測和雙向預測的像素的百分比,//, V是兩 個待定的係數;3) 基於公式(1)所建立的誤差漂移失真模型,按如下方法對SVC視頻進行 FGS優先級調度(1) 計算估計公式(1)中兩個參數//, V,具體方法為先對碼流進行基本層抽取和全部抽取後解碼,並統計每一幀在基本層的MSE以及每個殘差幀在各質 量級的£(《),同時統計出在基本層提取後的每個非關鍵幀的;7—,;^,A^,而後 對於每一個非關鍵幀,根據其 ";v^^w和殘差幀基本層的五(《),以及該幀和 其參考幀基本層解碼後的MSE,代入公式(1)計算出每一個非關鍵幀的/^, v;(2) 為每個偽GOP中的各FGS質量包設置優先級,具體方法為根據每個質 量包對整個偽G0P平均率失真性能的影響來確定其優先級,其影響包括對所在幀 造成的非漂移失真和由於誤差漂移導致的其它幀的MSE下降;其中,所在幀的非 漂移失真即為步驟(1)中得到的殘差幀在傳輸該質量包前後的£(《),而後根據 公式(1)算出由於誤差漂移造成的其他幀的MSE下降,從而得到偽GOP的平均MSE 下降,通過循環選取造成偽GOP的MSE下降最小的質量包來得到優先級順序及相 應的碼率失真數據。
2、 如權利1 一種SVC視頻FGS優先級調度方法,在執行步驟(2)時,具體 步驟如下 用一個序列71^^,
存放偽GOP中每一幀的MSE,將偽GOP的 MS^GOT
, MS£B。sg
由步驟(1)中對碼流進行基本層截斷解碼後得到,其中 gc^」&為偽G0P的大小;用序列array—level存放當前比較優先級的質量包, 將array—level初始化為偽GOP的第一個FGS增強層;② 按照循環方法通過選擇率失真斜率最大的質量包來逐步排列array—level 中各質量包的優先級,直至array—level為空;③ 計算每個FGS質量包的率失真斜率,其中對於關鍵幀,如果包含在兩個偽 G0P中,其質量包的率失真斜率等於其在兩個偽GOP中的率失真斜率的平均;其餘 質量包的率失真斜率等於其在偽GOP中的率失真斜率,這些率失真斜率用於最終 的質量包調度。
3、如權利2所述一種SVC視頻FGS優先級調度方法,在執行步驟②時,按如 下方法進行i )將PS服-rate斜率CurrMaxSlope,p初始化為0,偽G0P的平均率失真斜率為formula see original document page 3ii) 對於array—level中的每個質量包level (frame—no, FGS一leve1—no),判 斷第k個質量包是不是當前最優的a) 根據步驟(1)中得到的其所在幀的殘差幀在傳輸該質量包前後的£(《), 即為該質量包對所在幀造成的非漂移的MSE下降,與當前似formula see original document page 3中對應的所在幀的MSE相減得到該質量包所在幀的新MSE, 然後利用公式(l),並根據當前的似formula see original document page 3計算由誤差漂移造成的 偽GOP中其它幀的MSE下降AcM^ra。P ;b) 然後利用Mffira。P和^cMS^^ ,按下式計算PSNR增加,formula see original document page 3如果incPSNR_LevelVGOP / /eve/ _ > CurrMaxSlopeVCi。P ,即該質量包的率失真斜率大 於先前的最大率失真斜率,則令decOptiMSEVGOP = decMSEVQ。p , CurrMaxSlopeVGOP =incPSNR_LevelVG0P / LevelSize ,並令該質量包為當前最優質量包, 如果關鍵幀包含在了兩個偽GOP中,則Level—Size等於原始大小的一半, Level—Size為質量包的大小;令bk+l,回到步驟ii )直到對array—level中的所 有質量包檢查完畢,進行步驟iii);iii) 輸出本次循環中得到的最優質量包,更新 formula see original document page 3iv) 更新array—level:將先前得到的最優質量包移出array—level,並放入 相應幀高一層的質量包,如果該質量包為該幀的最高質量包,則不放入任何質量 包,直至array—level為空。
全文摘要
本發明涉及一種基於誤差漂移失真模型的SVC視頻FGS優先級調度方法,其包括以下步驟(1)提出一種偽GOP的概念,每個偽GOP包含兩個相鄰的關鍵幀和之間的所有B幀;(2)建立一個由誤差漂移導致的失真模型,所述模型描述為E(ε2B)=E(ε2H)+(Pfwd+1/4PBiwd)E(ε2A)+(P2bwd+1/4PbiwdE(ε2C)+μE(ε2A)E(ε2C)+ν;(3)根據所述誤差漂移失真模型,對SVC視頻進行FGS優先級調度。本發明以偽GOP為基本調度單位,通過計算偽GOP中每一個質量包對所在幀和其他幀造成的率失真性能的影響來設置其優先級。利用該方法,可以以較小的複雜度實現FGS質量包調度,儘可能的提高重建視頻的主觀以及客觀質量。
文檔編號H04N7/26GK101146229SQ20071017647
公開日2008年3月19日 申請日期2007年10月29日 優先權日2007年10月29日
發明者俊 孫, 悅 王, 文 高 申請人:北京大學