專利名稱:基于動態(tài)紋理模型的視頻整幀丟失差錯掩蓋方法
技術領域:
本發(fā)明涉及視頻傳輸誤差糾正技術領域,尤其涉及一種基于動態(tài)紋理模型的視頻整幀丟失差錯掩蓋方法。
背景技術:
視頻流在網(wǎng)絡傳輸時,由于受到網(wǎng)絡帶寬及網(wǎng)絡傳輸情況的影響,會發(fā)生誤碼或丟包,從而導致解碼視頻質(zhì)量的惡化,這就需要采用某種錯誤恢復方法來恢復錯誤的視頻信號;一種簡單的錯誤恢復方法是在解碼端引入差錯掩蓋機制;所謂差錯掩蓋就是利用視頻信號的時域或者空域相關性,對損壞或者丟失的視頻信號進行恢復的一種技術。
目前現(xiàn)有的視頻錯誤隱藏方法利用了視頻信號在時間和空間上的相關性,通過在解碼端采用后處理技術在一定程度上恢復了丟失圖像信息;然而,現(xiàn)有的視頻錯誤隱藏方法大都只適用于一幀圖像中的一個或者多個局部區(qū)域的數(shù)據(jù)丟失,對于整幀圖像的丟失情況則恢復效果欠佳。
雖然傳統(tǒng)的差錯掩蓋方法在視頻傳輸系統(tǒng)中得到一定應用,但在較低碼率的網(wǎng)絡視頻服務中卻很少應用。究其原因是在低碼率的情況下,一幀圖像的數(shù)據(jù)量往往小于一個基本網(wǎng)絡傳輸單元。在這種情況下,當網(wǎng)絡傳輸中出現(xiàn)數(shù)據(jù)包丟失時,往往對應于一整幀圖像內(nèi)容的丟失。
在現(xiàn)有的差錯掩蓋方法中,有的方法(參考文獻1S.K.Bandyopadhyay,Z.Y.Wu,P.Panditet al.,″An error concealment scheme for entire frame losses for H.264/AVC.″pp.97-100.)利用丟失幀與前一幀時間上的相關性,采用直接拷貝前一幀的方法對其進行恢復,但是當相鄰幀與當前丟失幀相關性較弱時,這種方法的掩蓋效果比較差;有的方法(參考文獻2Z.Y.Wu,J.M.Boyce,and Ieee,″An error concealment scheme for entire frame losses based on H.264/AVC.″pp.4463-4466.)利用圖像的運動趨勢引入外推運動向量,利用塊的外推運動向量在前一幀中進行運動搜索來恢復丟失幀,然而由于沒有準確的針對整幀丟失條件下運動向量判斷準則,導致外推的運動向量不太準確,使得圖像的掩蓋效果不好。
因此,鑒于目前大多數(shù)差錯掩蓋方法不能取得較好的技術效果,因此設計一種性能優(yōu)秀的針對整幀圖像丟失的差錯掩蓋方法對低碼率下的視頻傳輸服務具有重要的意義。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于動態(tài)紋理模型的視頻整幀丟失差錯掩蓋方法,提高低碼率下的視頻傳輸服務。
為達到上述目的,本發(fā)明采用如下的技術方案 (1)根據(jù)動態(tài)紋理模型對當前丟失幀的前n幀合成新的一幀,所述新的一幀和丟失幀的前一幀共同構(gòu)成當前待恢復幀的候選參考幀集合,其中n≥2; (2)判斷當前要恢復塊在前一幀對應位置處塊的運動向量是否大于給定閾值T1;如果不成立,則以當前要恢復塊在前一幀對應位置4×4塊的運動向量作為其運動向量,如果成立則轉(zhuǎn)入下一步驟; (3)計算當前要恢復塊在前一幀對應位置4×4塊的周圍8個運動向量的中值,作為其運動向量; (4)判斷當前要恢復幀的前n幀是否正確接收;如果成立,則以動態(tài)紋理模型合成的新的一幀作為恢復當前塊的參考幀;如果不成立則以當前要恢復幀的前一幀作為恢復當前塊的參考幀; (5)判斷當前塊的前一幀對應位置處運動向量是否大于給定閾值T2;如果成立則對當前塊周圍8個鄰居塊的運動向量求中值,并將該中值運動向量在參考幀中做運動補償?shù)玫降南袼刂底鳛樽罱K的差錯掩蓋值,如果不成立則不進行后處理操作。
步驟(1)包括以下子步驟 ①記Y(y12,y13)為當前丟失幀的前2幀的亮度和色度值矩陣,每列中依次存放了一幀中所有像素的亮度值和色度值,svd為奇異值分解法,得到U,S,V共3個矩陣。
[U,S,V]=svd(Y,0); ②取出矩陣U中1~2列的所有元素,形成矩陣Chat Chat=U(:,1:2); ③將矩陣S中的1~2行、1~2列的元素形成矩陣S(1:2,1:2),將矩陣V中1~2列的所有元素形成矩陣V(:,1:2)并對其求轉(zhuǎn)置得到矩陣(V(:,1:2))′,然后把S(1:2,1:2)和(V(:,1:2))′相乘得到矩陣Xhat Xhat=S(1:2,1:2)*(V(:,1:2))′; ④取出矩陣Xhat中2~2列(即第2列)的所有元素形成矩陣Xhat(:,2),取出矩陣Xhat中1:(2-1)(即第1列)列的所有元素形成矩陣(Xhat(:,1)),并對其求廣義逆矩陣pinv(Xhat(:,1)),然后把Xhat(:,2)和pinv(Xhat(:,1))相乘得到矩陣Ahat Ahat=Xhat(:,2)*pinv(Xhat(:,1)); ⑤取出矩陣Xhat中的第一列元素形成矩陣x0 x0=Xhat(:,1); ⑥把x0作為矩陣x的第一列元素 x(:,1)=x0; ⑦設變量t,對t進行2次循環(huán)賦值將矩陣X的第t列的元素形成矩陣X(:,t),將X(:,t)和矩陣Ahat進行相乘,結(jié)果作為矩陣X第t+1列的值x(:,t+1);再把矩陣X第t+1列的元素形成矩陣X(:,t+1),將X(:,t+1)和矩陣Chat進行相乘,結(jié)果作為矩陣I第t+1列I(:,t+1) for t=1:2{x(:,t+1)=Ahat*X(:,t); I(:,t+1)=Chat*X(:,t+1);} ⑧將得到的矩陣I中的第3列的值作為最終動態(tài)紋理合成的亮度和色度值矩陣 I=I(:,3); 把I矩陣中亮度值和色度值存入?yún)⒖紟彺嬗洖閅1,它和丟失幀的前一幀Y13共同構(gòu)成當前待恢復幀的候選參考幀集合。
步驟(3)中當前要恢復塊在前一幀對應位置4×4塊的周圍8個運動向量是指當前要恢復塊前一幀對應位置4×4塊正上方,正下方,左方,右方和左上方,右上方,左下方和右下方的8個4×4塊運動向量。
步驟(5)中當前塊周圍8個鄰居塊是指當前4×4塊正上方,正下方,左方,右方和左上方,右上方,左下方和右下方的8個4×4塊。
步驟(2)中根據(jù)測試序列運動劇烈程度來設定閾值T1,運動緩慢時為20,中等運動為60,劇烈運動為90。
步驟(5)中根據(jù)測試序列內(nèi)容的不同來設定閾值T2。
本發(fā)明具有以下優(yōu)點和積極效果 1)丟失幀在解碼端能得到更好的恢復效果,提高了視頻服務質(zhì)量; 2)能夠根據(jù)圖像的運動劇烈程度自適應的選擇參考幀和運動向量;
圖1是本發(fā)明提供的方法流程圖。
圖2是本發(fā)明的仿真實驗結(jié)果圖。
具體實施例方式 下面以具體實施例結(jié)合附圖對本發(fā)明作進一步說明 圖1所示為本發(fā)明提供的基于動態(tài)紋理模型的視頻整幀丟失差錯掩蓋方法的流程圖, 步驟S1根據(jù)動態(tài)紋理模型對當前丟失幀的前n(n≥2)幀合成新的一幀,所述新的一幀和丟失幀的前一幀共同構(gòu)成當前待恢復幀的候選參考幀集合;步驟S2判斷當前要恢復的4×4塊的前一幀對應位置處塊的運動向量是否大于給定閾值T1;根據(jù)步驟S2的執(zhí)行結(jié)果判斷,如果結(jié)果成立則執(zhí)行步驟S3以當前要恢復塊在前一幀對應位置4×4塊的運動向量作為其運動向量;如果結(jié)果不成立則執(zhí)行步驟S4計算當前要恢復塊在前一幀對應位置4×4塊的周圍8個運動向量的中值,作為其運動向量;步驟S5判斷當前要恢復的幀的前n幀是否正確接收;根據(jù)步驟S5的執(zhí)行結(jié)果判斷,如果結(jié)果不成立則執(zhí)行步驟S6以當前待恢復幀的前一幀作為恢復當前塊的參考幀;如果結(jié)果成立則執(zhí)行步驟S7以動態(tài)紋理模型合成的新的一幀作為恢復當前塊的參考幀;步驟S8判斷當前塊在前一幀對應位置處運動向量是否大于給定閾值T2;根據(jù)步驟S8的執(zhí)行結(jié)果判斷,如果結(jié)果成立則執(zhí)行步驟S9對當前塊周圍8個鄰居塊的運動向量求中值,并將該中值運動向量在參考幀中做運動補償?shù)玫降南袼刂底鳛樽罱K的差錯掩蓋值;如果執(zhí)行結(jié)果不成立則不作后續(xù)處理。
下面進一步以具體的實施例結(jié)合本發(fā)明提供的基于動態(tài)紋理模型的視頻整幀丟失差錯掩蓋方法進行描述。
本實施例的實施環(huán)境如下采用H.264的參考軟件JM12.4作為編解碼器,網(wǎng)絡傳輸丟包模型采用ITU-T標準組織提供的Internet傳輸錯誤模板,丟包率設為5%,選取CIF分辨率大小(352×288)的“stefan”序列作為測試序列,以解碼stefan序列中丟失的第14幀圖像為例,結(jié)合本發(fā)明的每個步驟具體描述如下 (1)由當前丟失幀的前2幀根據(jù)動態(tài)紋理模型外推合成新的一幀,由以下子步驟完成 ①記Y(y12,y13)為當前丟失幀的前2幀的亮度和色度值矩陣,每列中依次存放了一幀中所有像素的亮度值和色度值,svd為奇異值分解法,得到U,S,V共3個矩陣。
[U,S,V]=svd(Y,0); ②取出矩陣U中1~2列的所有元素,形成矩陣Chat Chat=U(:,1:2); ③將矩陣S中的1~2行、1~2列的元素形成矩陣S(1:2,1:2),將矩陣V中1~2列的所有元素形成矩陣V(:,1:2)并對其求轉(zhuǎn)置得到矩陣(V(:,1:2))′,然后把S(1:2,1:2)和(V(:,1:2))′相乘得到矩陣Xhat Xhat=S(1:2,1:2)*(V(:,1:2))′; ④取出矩陣Xhat中2~2列(即第2列)的所有元素形成矩陣Xhat(:,2),取出矩陣Xhat中1:(2-1)(即第1列)列的所有元素形成矩陣(Xhat(:,1)),并對其求廣義逆矩陣pinv(Xhat(:,1)),然后把Xhat(:,2)和pinv(Xhat(:,1))相乘得到矩陣Ahat Ahat=Xhat(:,2)*pinv(Xhat(:,1)); ⑤取出矩陣Xhat中的第一列元素形成矩陣x0 x0=Xhat(:,1); ⑥把x0作為矩陣x的第一列元素 x(:,1)=x0; ⑦設變量t,對t進行2次循環(huán)賦值將矩陣X的第t列的元素形成矩陣X(:,t),將X(:,t)和矩陣Ahat進行相乘,結(jié)果作為矩陣X第t+1列的值x(:,t+1);再把矩陣X第t+1列的元素形成矩陣X(:,t+1),將X(:,t+1)和矩陣Chat進行相乘,結(jié)果作為矩陣I第t+1列I(:,t+1) for t=1:2{x(:,t+1)=Ahat*X(:,t); I(:,t+1)=Chat*X(:,t+1);} ⑧將得到的矩陣I中的第3列的值作為外推出來的亮度和色度值矩陣 I=I(:,3); 把I矩陣中亮度值和色度值存入?yún)⒖紟彺嬗洖閅I,它和丟失幀的前一幀Y13共同構(gòu)成當前待恢復幀的候選參考幀集合。
(2)判斷當前要恢復的4×4塊Mbnk在前一幀對應位置處運動向量MVn-1k是否大于給定閾值Threshold1,如果則以當前要恢復塊在前一幀對應位置4×4塊Mbn-1k的運動向量MVn-1k作為其運動向量,否則轉(zhuǎn)入下一步驟,其中Threshold1在在本實施例中設置為60。
(3)當前要恢復的4*4塊Mbnk在前一幀對應位置左方4×4塊為Mbn-1left,運動向量為MVn-1left,右方4×4塊為Mbn-1right,運動向量為MVn-1right,上方4×4塊為Mbn-1up,運動向量為MVn-1up,下方4×4塊為Mbn-1down,運動向量為MVn-1down,左上方4×4塊為Mbn-1left-up,運動向量為MVn-1left-up,右上方4×4塊為Mbn-1right-up,運動向量為MVn-1right-up,左下方4×4塊為Mbn-1left-down,運動向量為MVn-1left-down,右下方4×4塊為Mbn-1right-down,運動向量為MVn-1right-down,計算這8個向量的中值 并把MV*作為當前要恢復的4×4塊Mbnk的運動向量。
(4)判斷當前要恢復的幀的前2幀是否正確接收,若成立,則以動態(tài)紋理外推合成的新的一幀YI作為恢復當前塊的參考幀。否則則以當前要恢復幀的前一幀Y13作為恢復當前塊的參考幀。
(5)對已恢復的整幀Y14進行后處理,設當前要恢復的4×4塊Mbnk的前一幀對應位置左方4×4塊為Mbn-1left,運動向量為MVn-1left,右方4×4塊為Mbn-1right,運動向量為MVn-1right,上方4×4塊為Mbn-1up,運動向量為MVn-1up,下方4×4塊為Mbn-1down,運動向量為MVn-1down,左上方4×4塊為Mbn-1left-up,運動向量為MVn-1left-up,右上方4×4塊為Mbn-1right-up,運動向量為MVn-1right-up,左下方4×4塊為Mbn-1left-down,運動向量為MVn-1left-down,右下方4×4塊為Mbn-1right-down,運動向量為MVn-1right-down。如果當前塊Mbnk的前一幀對應位置處運動向量MVn-1k>Threshold2,則對當前塊周圍8個鄰居塊的運動向量求中值 并將該中值運動向量MV*在參考幀中做運動補償?shù)玫降南袼刂底鳛樽罱K的差錯掩蓋值,否則不進行后處理操作。其中Threshold2在在本實施例中設置為0。
本實施例對CIF格式的stefan序列進行了測試,編碼幀數(shù)為90幀,幀率為30幀/秒,順序為IPPPPPP,丟包率為5%。其中,解碼端分別用參考文獻1中的直接拷前一幀方法、參考文獻2中的外推運動向量方法以及本發(fā)明所提出的方法進行掩蓋,掩蓋后的峰值信噪比PSNR結(jié)果如圖2所示。
由圖2所示的仿真實驗結(jié)果圖可以看出本發(fā)明獲得的視頻峰值信噪比始終高于以上2種對比方法,取得了良好的視頻服務質(zhì)量。
權利要求
1.一種基于動態(tài)紋理模型的視頻整幀丟失差錯掩蓋方法,其特征在于,包括以下步驟
(1)根據(jù)動態(tài)紋理模型對當前丟失幀的前n幀合成新的一幀,所述新的一幀和丟失幀的前一幀共同構(gòu)成當前待恢復幀的候選參考幀集合,其中n≥2;
(2)判斷當前要恢復塊在前一幀對應位置處塊的運動向量是否大于給定閾值T1;如果不成立,則以當前要恢復塊在前一幀對應位置4×4塊的運動向量作為其運動向量,如果成立則轉(zhuǎn)入下一步驟;
(3)計算當前要恢復塊在前一幀對應位置4×4塊的周圍8個運動向量的中值,作為其運動向量;
(4)判斷當前要恢復幀的前n幀是否正確接收;如果成立,則以動態(tài)紋理模型合成的新的一幀作為恢復當前塊的參考幀;如果不成立則以當前要恢復幀的前一幀作為恢復當前塊的參考幀;
(5)判斷當前塊的前一幀對應位置處運動向量是否大于給定閾值T2;如果成立則對當前塊周圍8個鄰居塊的運動向量求中值,并將該中值運動向量在參考幀中做運動補償?shù)玫降南袼刂底鳛樽罱K的差錯掩蓋值,如果不成立則不進行后處理操作。
2.根據(jù)權利要求1所述的基于動態(tài)紋理模型的視頻整幀丟失差錯掩蓋方法,其特征在于步驟(1)包括以下子步驟
①記Y(y12,y13)為當前丟失幀的前2幀的亮度和色度值矩陣,每列中依次存放了一幀中所有像素的亮度值和色度值,svd為奇異值分解法,得到U,S,V共3個矩陣。
[U,S,V]=svd(Y,0);
②取出矩陣U中1~2列的所有元素,形成矩陣Chat
Chat=U(:,1:2);
③將矩陣S中的1~2行、1~2列的元素形成矩陣S(1:2,1:2),將矩陣V中1~2列的所有元素形成矩陣V(:,1:2)并對其求轉(zhuǎn)置得到矩陣(V(:,1:2))′,然后把S(1:2,1:2)和(V(:,1:2))′相乘得到矩陣Xhat
Xhat=S(1:2,1:2)*(V(:,1:2))′;
④取出矩陣Xhat中2~2列(即第2列)的所有元素形成矩陣Xhat(:,2),取出矩陣Xhat中1:(2-1)(即第1列)列的所有元素形成矩陣(Xhat(:,1)),并對其求廣義逆矩陣pinv(Xhat(:,1)),然后把Xhat(:,2)和pinv(Xhat(:,1))相乘得到矩陣Ahat
Ahat=Xhat(:,2)*pinv(Xhat(:,1));
⑤取出矩陣Xhat中的第一列元素形成矩陣x0
x0=Xhat(:,1);
⑥把x0作為矩陣x的第一列元素
x(:,1)=x0;
⑦設變量t,對t進行2次循環(huán)賦值將矩陣X的第t列的元素形成矩陣X(:,t),將X(:,t)和矩陣Ahat進行相乘,結(jié)果作為矩陣X第t+1列的值x(:,t+1);再把矩陣X第t+1列的元素形成矩陣X(:,t+1),將X(:,t+1)和矩陣Chat進行相乘,結(jié)果作為矩陣I第t+1列I(:,t+1)
for t=1:2
{
x(:,t+1)=Ahat*X(:,t);
I(:,t+1)=Chat*X(:,t+1);
}
⑧將得到的矩陣I中的第3列的值作為最終動態(tài)紋理合成的亮度和色度值矩陣
I=I(:,3);
把I矩陣中亮度值和色度值存入?yún)⒖紟彺嬗洖閅I,它和丟失幀的前一幀Y13共同構(gòu)成當前待恢復幀的候選參考幀集合。
3.根據(jù)權利要求1或2所述的基于動態(tài)紋理模型的視頻整幀丟失差錯掩蓋方法,其特征在于
步驟(3)中當前要恢復塊在前一幀對應位置4×4塊的周圍8個運動向量是指當前要恢復塊前一幀對應位置4×4塊正上方,正下方,左方,右方和左上方,右上方,左下方和右下方的8個4×4塊運動向量。
4.根據(jù)權利要求1或2所述的基于動態(tài)紋理模型的視頻整幀丟失差錯掩蓋方法,其特征在于
步驟(5)中當前塊周圍8個鄰居塊是指當前4×4塊正上方,正下方,左方,右方和左上方,右上方,左下方和右下方的8個4×4塊。
5.根據(jù)權利要求1或2所述的基于動態(tài)紋理模型的視頻整幀丟失差錯掩蓋方法,其特征在于
步驟(2)中根據(jù)測試序列運動劇烈程度來設定閾值T1,運動緩慢時為20,中等運動為60,劇烈運動為90。
6.根據(jù)權利要求1或2所述的基于動態(tài)紋理模型的視頻整幀丟失差錯掩蓋方法,其特征在于
步驟(5)中根據(jù)測試序列內(nèi)容的不同來設定閾值T2。
全文摘要
本發(fā)明涉及視頻傳輸誤差糾正技術領域,尤其涉及一種基于動態(tài)紋理模型的視頻整幀丟失差錯掩蓋方法。本發(fā)明根據(jù)動態(tài)紋理模型對當前丟失幀的前n幀(n≥2)合成新的一幀;判斷當前要恢復塊在前一幀對應位置處塊的運動向量是否大于給定閾值T1,根據(jù)判斷結(jié)果選擇合適的運動向量;判斷當前要恢復幀的前n幀是否正確接收,根據(jù)判斷結(jié)果決定選用參考幀;判斷當前塊的前一幀對應位置處運動向量是否大于給定閾值T2,根據(jù)判斷結(jié)果決定是否進行后續(xù)處理。本具備丟失幀在解碼端能得到更好的恢復效果,提高了視頻服務質(zhì)量的特點。
文檔編號H04N7/64GK101594543SQ200910062868
公開日2009年12月2日 申請日期2009年6月26日 優(yōu)先權日2009年6月26日
發(fā)明者胡瑞敏, 皓 陳, 丹 毛, 巋 張, 歡 汪 申請人:武漢大學