專利名稱:基于運動向量外推及運動向量搜索的視頻差錯掩蓋方法
技術領域:
本發明屬于數字視頻通信領域,尤其涉及公共電話交換網(PSTN)、無線移動通信等低速率及惡劣環境下的數字視頻傳輸的差錯掩蓋與恢復技術。
從已有的研究成果來看,差錯掩蓋技術可分為空間掩蓋和時域掩蓋兩種。
當視頻圖像受損區域為幀內(Intra)編碼時,可用其周圍的空域(spatial)信息或頻域(frequency)信息進行插值掩蓋,但這類技術容易產生明顯的“塊狀”現象,不易恢復圖像的細節。
當受損區域為幀間(Inter)編碼時,則主要采用時域(temporal)掩蓋,即根據周圍正確的運動向量信息來估算并恢復差錯丟失的圖像信息。時域掩蓋處理過程分為“運動向量(Motion Vector,簡稱MV)估算”和“補償替代”兩個階段,其成功的關鍵是如何正確地找出受損圖像塊的運動向量。
目前,受損運動向量的估算主要是利用空間的相關特性。例如,當運動向量損壞或丟失時,可將運動向量設為零,進行簡單地時域替代(Temporal Replacement,簡稱TR),它對于相對靜止的區域,如背景等,效果很好,但對快速運動的區域效果極差。丟失的運動向量也可用其周圍鄰塊運動向量的平均值(Average,簡稱AV)或中值(Median)來估計,或用其上下、左右、對角等方向的插值來替代。這些方法在平滑的運動區域效果很好,但在非平滑的運動區域,如不同方向的運動、物體邊界等,則掩蓋效果較差。
邊界匹配(Side Matching)技術是一種較好的運動向量估算方法,它以邊界匹配失真度(Side Match Distortion)最小為準則,從一組候選運動向量中選擇最合適的運動向量。這種用圖像受損區域邊界的連續性來判斷運動向量的主要優點是運動向量估算基于失真度測量,缺點是在具有特殊紋理的運動區域以及物體邊界處,容易造成掩蓋失敗。
上述這些方法,主要是利用受損宏塊(Macroblock,簡稱MB)與其周圍鄰近宏塊的運動向量具有一定的相關性這一特征,當受損宏塊周圍運動向量正確時較為有效。但如果連續多行的宏塊受損或整幀圖像丟失,則上述方法會失效,通常只能采取簡單的時域掩蓋方法。在基于IP的Internet視頻應用或移動通信環境中,數據丟失率通常都很高,在這種情況下,多個宏塊損壞甚至一幀圖像受損都是有可能發生的。由于實時視頻傳輸的限制,這些受損的圖像又不可能采用重新傳送的方法來恢復。
本發明的目的是提出一種基于運動向量外推及運動向量搜索的視頻差錯掩蓋方法,它能在連續多行的宏塊受損或整幀圖像丟失情況下進行視頻圖像的差錯掩蓋,恢復受損圖像,克服現有技術的不足,提高數字視頻電話傳輸的圖像質量。
本發明的有益效果是基于時域外推的塊掩蓋方法,在連續多行的宏塊受損或整幀圖像丟失情況下,利用參考幀的有效信息,較好地解決了整個圖像幀丟失時的掩蓋問題,可以明顯地提高數字視頻圖像傳輸的可靠性,改善圖像的顯示效果;并且本發明與H.26X標準兼容,適用范圍廣。
上述的基于運動向量外推及運動向量搜索的視頻差錯掩蓋方法,當受損或丟失圖像區域在相鄰空間上存在正確接收到的信息時,可與邊框匹配相結合,優化預測估算出的運動向量,其具體作法是將受損塊周圍正確塊的運動向量、受損塊在參考幀中對應位置及其周圍相鄰的正確運動向量,以及估算出的受損塊的運動向量,組成候選運動向量集合;從候選運動向量集合中依次選擇一個運動向量,在參考幀中得到相應位置的圖像塊,將圖像塊四周邊界向外擴展1到2個像素,形成邊框;并將受損圖像塊邊框與所形成的圖像塊邊框進行匹配,邊框匹配最好的一個運動向量為優化后的運動向量。
上述基于運動向量外推及運動向量搜索的視頻差錯掩蓋方法,還可對優化后的運動向量通過搜索再進行最優選擇,即根據優化后的運動向量,在參考幀中確定出補償塊的中心位置,作為起始點;運用全搜索或快速搜索原則,對其周圍一定范圍內的所有相鄰象素點進行搜索,依據邊框匹配原則最終確立最優的運動向量。
運用運動向量搜索和邊框比配方法,在一定程度上克服了在物體邊界上產生不正確替代的缺點,進一步改善圖像的顯示效果。
圖1是本發明實施例的流程框2是實施例的外推運動向量及插值預測宏塊示例。
圖3是實施例的最大的重疊區域和估算的塊運動向量示意圖。
圖4是實施例的候選運動向量集示意圖。
圖5是實施例的基于塊的邊框匹配示意圖。
圖6是實施例的視頻測試序列“Foreman”在115幀丟失整幀以及不同丟包率情況下各種掩蓋方法客觀性能比較。
圖7是實施例的視頻測試序列“Foreman”第115幀全部丟失,進行差錯掩蓋后,擴散到第118幀的主觀圖像質量。
圖8是實施例的視頻測試序列“Foreman”15%的丟包率下,進行差錯掩蓋后的第86幀的圖像效果。
實施例在數字視頻電話系統實現解碼時,首先需要考慮可能出現的各種信息干擾和丟包問題,增加大量異常控制,如,判斷數據包的時間戳或序號是否正確,或判斷每個編碼基本單位的運動向量是否超出了可能的范圍、接收到的壓縮編碼數據是否超出規定范圍、判斷解碼時查表入口地址是否為非法、解碼后的數據是否正常、每個數據塊中的個數是否大于正常等等。在基于包的傳輸中一旦發生傳輸干擾,則整個數據包都會被丟棄;在基于數據流的傳輸中,當解碼器確定發生差錯后,通常不可能精確地確定差錯發生的實際位置,只能在數據流中向前搜索,尋找有別于正常視頻數據的重同步字,一旦找到,解碼器便又重新得到同步。在這兩個同步字之間,則不得不丟棄部分數據信息。無論何種情況,都必須采用差錯掩蓋技術來彌補丟失的數據。
當發現數據丟失后,對于幀內編碼圖像,則進行空域或頻域掩蓋;對于幀間編碼圖像,由于連續的視頻圖像幀之間具有很強的相關性,前面幀中所表現的物體運動,通常會在后續幀中繼續沿著原方向運動,只有在運動物體出現、消失、或視頻場景切換時才會例外。因此,當圖像區域甚至整幀圖像丟失時,本發明就是利用此規律來估計和恢復運動向量,進而進行時域掩蓋恢復,改善圖像質量的。
圖1示出了本發明實施例處理步驟視頻解碼時(差錯檢測前),存儲記錄下當前幀所有的運動向量;差錯檢測發現傳輸差錯時,進行運動向量外推,依照其運動趨勢得到外推預測宏塊,將外推預測宏塊與受損塊之間重疊的面積最大的外推宏塊的運動向量設為受損塊的運動向量,作為估算出的運動向量;當周圍圖像塊正確時,進行邊框匹配以及運動向量搜索;然后根據最優運動向量進行時域掩蓋。
具體來說,本實施例詳細過程如下差錯檢測前,存儲記錄當前幀運動向量(只需記錄一幀圖像的運動向量);發現傳輸差錯時,為了更加精確地補償和掩蓋,將圖像受損區域劃分成8×8像素的受損塊,以塊作為掩蓋的基本單元;然后再進行運動向量外推,如圖2所示。
當編碼器是以16×16像素的塊進行編碼,則將參考幀中所有16×16像素的宏塊運動向量外推,依照其運動趨勢得到外推預測宏塊;判斷外推預測宏塊與受損塊之間重疊的面積,重疊面積最大的外推宏塊的運動向量設為受損塊的運動向量,從而估算出受損塊的運動向量,如圖3所示。舉例來說,假設MB 29在較短時間內以恒定不變的平移速度從第n-2幀運動到第n-1幀,再外推至第n幀,由此在第n幀中建立起外推預測宏塊。根據外推預測宏塊占據受損塊的面積,即統計重疊區域中像素的個數,受損塊的運動向量便可以確定。如果受損塊與所有的外推預測宏塊都不重疊,則該塊的運動向量設為等于其左邊塊的運動向量。如果是圖像左邊界的塊或幀內編碼塊,則其運動向量設置為0。
當編碼器是以8×8像素的塊進行編碼,則將塊的運動向量進行外推,得到外推預測塊,將其運動向量設為受損塊的運動向量,從而估算出受損塊的運動向量;根據以上步驟估算出的運動向量,用參考幀中的相應位置的圖像塊替代損壞的圖像塊。
當受損或丟失圖像區域在相鄰空間上存在正確接收到的信息(即圖像受損部分不是整幅圖像)時,可與邊框匹配相結合,優化預測估算出的運動向量,充分利用周圍正確區域的信息,進一步提高掩蓋塊的正確性,具體步驟包括a)將受損塊周圍正確塊的運動向量、受損塊在參考幀中對應位置及其周圍相鄰的正確運動向量,以及估算出的受損塊的運動向量,組成候選運動向量集合;通常情況下,受損塊左右的數據都不可靠,為此,在選擇候選MV時,按如下方案選擇對于當前幀選受損塊上、下6個塊的運動向量,再加上本塊估算出的運動向量;對于參考幀對應位置及其周圍9個塊的MV;候選運動向量集中共計16個,如圖4所示。
b)從候選運動向量集合中依次選擇一個運動向量,在參考幀中得到相應位置的圖像塊,將圖像塊四周邊界向外擴展1到2個像素,形成邊框,如圖5所示。
已有的一些研究文獻提出的邊界匹配原則是判斷受損宏塊周圍相鄰象素與掩蓋替代的運動補償宏塊邊界象素之間誤差最小(即連續性最好),其缺點是不能較好地保證物體邊緣的連續性。為此,本發明方法對基于塊的邊界匹配,采用了修改的邊界匹配原則。即不再判斷受損塊邊界是否連續,而是將參考幀中的運動補償塊周圍擴大1-2個象素寬度(稱為邊框匹配),判斷這些邊框與當前幀中受損圖像塊周圍是否最匹配(平均方差最小,簡稱MSE)。同時,適當考慮周圍相鄰塊的正確程度,對于正確的相鄰塊的MSE給以較大的權值。
c)將受損圖像塊邊框與所形成的圖像塊邊框進行匹配,邊框匹配最好的一個運動向量為優化后的運動向量。考慮到實時運算的需要,通常只考慮三個方向的邊框,匹配失真度計算如公式(1)DT=wUDU+WLDL+wDDD(1)即邊框失真度DT為受損的圖像塊上、下、左邊三個方向相鄰的邊界象素與運動補償塊之間邊框失真度加權之和。如果相鄰塊為正確接收的,則權值w=1,如果為外推掩蓋得到的,則權植w=1/4。三個相鄰邊框(1個像素寬度)失真度定義如公式(2)DL=Σi=07[f^n(p-i,q+1)-fn(p-i,q+1)]2]]>DU=Σi=07[f^n(p+i,q-1)-fn(p+i,q-1)]2]]>DD=Σi=07[f^n(p+i,q+8)-fn(p+i,q+8)]2---(2)]]>這里,f^n(p,q)=fn-1(p+dx(B),q+dy(B)),]]>即等于第n幀中的像素fn(p,q)在第n-1幀中的運動補償值。d(B)為8×8的受損圖像塊的候選運動向量。按照這些運動向量,得到運動補償塊,再進行邊框匹配,將邊框最匹配的作為優化后的運動向量。
本發明對優化后的運動向量還可以通過運動向量搜索再進行最優選擇,即根據優化后的運動向量,在參考幀中確定出補償塊的中心位置,作為起始點;運用全搜索或快速搜索原則,對其周圍一定范圍內的所有相鄰象素點進行搜索,依據邊框匹配原則最終確立最優的運動向量。
最后,根據最優運動向量,從參考幀中找到運動補償塊,替代當前受損的塊,完成差錯掩蓋。
下面結合一個具體圖例對本發明方法作更加具體的解釋將172×144大小的QCIF(Quarter Common Intermediate Format)視頻測試序列,用ITU-T視頻壓縮標準H.263+的測試模型TMN8編碼器進行壓縮,采用缺省方式,每個MB一個運動向量,編碼的幀頻為30幀/秒,參考幀頻為30幀/秒,缺省的量化步長為13,只有第一幀為I幀。
為了便于在Internet環境下的視頻傳輸,使用了GOB(Group of Block,1行9個MB作為1個GOB)交織(interleaved)封裝策略,將一幀視頻流的奇數、偶數GOB分別對應兩個UDP數據包,并且在數據包外層再封裝RFC2429 RTP(Real-time Transport Protocol)協議。在劇烈運動情況下,平均每個IP數據包大約有500字節左右。該方法具有較高的傳輸效率和健壯性(Robustness),在丟失一個包的情況下,仍然有可能夠根據上下GOB的數據,對丟失的GOB進行掩蓋恢復。
在此僅以一個宏塊中的1個塊的丟失來說明本發明掩蓋方法。
假定第114幀正確接收并解碼,第115幀的奇數GOB丟失,現在來考察第3個GOB中的第30#MB中的第3#塊的恢復和掩蓋情況(圖3)。如果圖像第1行第1列的像素點坐為(0,0),則30#MB左上角的坐標為(96,32),其中的第3#塊的坐標為(96,40),29#MB的左上角坐標為(80,32)。
第1步將第114幀所有宏塊依據其運動向量進行外推,(實際上由于H.263+對運動向量限制在±16像素范圍內,只需要對30#及其周圍8個宏塊進行外推),例如29#MB,其正確接收到的運動向量為(5,3),按照運動趨勢,則該宏塊外推的運動預測宏塊左上角為(85,35)。
第2步根據30#MB中的第3#塊的坐標和大小(8×8像素),可計算得到重疊區域為5×8=40像素。經過計算比較,在這個塊中,該外推預測區域所占的重疊面積最大,則將其運動向量(5,3)作為這個受損塊的運動向量。
第3步用114幀中左上角為(96-5=91,30-3=37)的8×8區域塊來替代已經損壞或丟失的圖像數據。
第4步由于奇數GOB受損,30#MB左右的宏塊均丟失,但其上下的宏塊是正確的。因此,對3#塊周圍上邊、左邊的邊框匹配度的權值取1/4,而下邊的權值為1。在第115幀,選取該塊上面3個、下面3個塊的運動向量以及恢復出的運動向量(5,3),再取114幀中與該塊對應空間位置及其周圍8個塊的運動向量。將這16個運動向量依次作為受損塊的運動向量,找到114幀中對應塊的邊框,與115幀30#MB中3#塊的3個邊框按公式(1)(2)進行計算,最后找到失真度最小的一個運動向量;第5步對此運動向量為中心,再按照逆時針方向從內向外逐點搜索距中心周圍±4個的所有象素點,找出邊框匹配失真度最小的運動向量,作為最優的運動向量,并用114幀中對應的數據塊來掩蓋損壞的圖像數據。
對所有丟失的塊均按照上述步驟處理,即可掩蓋所有的出錯圖像信息。如果是整幀圖像完全丟失(連續奇偶GOB均丟失),則由于丟失塊周圍無可信任的信息,因此,也就不必再進行第4、5步邊框匹配計算。
為客觀評價本方法,采用重建圖像峰值信噪比PSNR作為評價參數。單幀圖像的峰值信噪比PSNR按公式(3)計算。一個視頻測試序列的PSNR按公式(4)計算。PSNR=10log1025521KΣx,y(ψ1(x,y)-ψ2(x,y))2---(3)]]>10PSNR=10log1025521K·NΣnΣx,y(ψ1(x,y,n)-ψ2(x,y,n))2---(4)]]>這里,ψ1為原始視頻圖像像素值,ψ2為解壓縮后重建圖像像素值,K為一幀像素的總和,N為視頻序列總的幀數。
為對比實驗,本實施例還實現了用受損MB上方3個運動向量平均值作為估算運動向量的AV方法。以及假設圖像丟失后所有運動向量都完全正確恢復這種特殊情況,這實際上是時域掩蓋方法的上限。如果出現整幀圖像丟失,由于不存在空間相鄰MB,則AV方法被運動向量為0的時域替代方法,即用前一幀來替代。對于不同的隨機丟包率的重復實驗30次,去掉兩個最高和兩個最低的峰值信噪比(PSNR),計算其余24次PSNR的平均值。
圖6給出了本發明方法對劇烈運動測試序列“Foreman”的實驗結果,圖7給出了第115幀全部丟失進行差錯掩蓋后第118幀圖像的視頻主觀效果,圖8為15%丟包率下第86幀的視頻效果。
本發明的方法,較好地解決了高誤碼率情況下圖像幀受損而帶來的嚴重擴散問題,具有較好強視頻數據掩蓋和恢復能力。計算復雜度低,特別適合于干擾嚴重情況下的實時視頻傳輸應用。
權利要求
1.一種基于運動向量外推及運動向量搜索的視頻差錯掩蓋方法,由接收端視頻解碼的差錯檢測、運動向量外推、時域掩蓋等步驟組成,其特征在于(1)差錯檢測前,存儲記錄下當前幀所有的運動向量;差錯檢測發現傳輸差錯時,將圖像受損區域劃分成8×8像素的受損塊;然后再進行運動向量外推;具體方法是a、如果編碼器是以16×16像素的宏塊進行編碼,則將參考幀中所有16×16像素的宏塊運動向量外推,依照其運動趨勢得到外推預測宏塊;判斷外推預測宏塊與受損塊之間重疊的面積,重疊面積最大的外推宏塊的運動向量設為受損塊的運動向量,從而估算出受損塊的運動向量;b、如果編碼器是以8×8像素的塊進行編碼,則將塊的運動向量進行外推,得到外推預測塊,將其運動向量設為受損塊的運動向量,從而估算出受損塊的運動向量;(2)根據步驟(1)估算出的運動向量,用參考幀中的相應位置的圖像塊替代損壞的圖像塊。
2.如權利要求1所述的一種基于運動向量外推及運動向量搜索的視頻差錯掩蓋方法,其特征在于當受損或丟失圖像區域在相鄰空間上存在正確接收到的信息時,可與邊框匹配相結合,優化預測估算出的運動向量a、將受損塊周圍正確塊的運動向量、受損塊在參考幀中對應位置及其周圍相鄰的正確運動向量,以及估算出的受損塊的運動向量,組成候選運動向量集合;b、從候選運動向量集合中依次選擇一個運動向量,在參考幀中得到相應位置的圖像塊,將圖像塊四周邊界向外擴展1到2個像素,形成邊框;c、將受損圖像塊邊框與步驟b所形成的圖像塊邊框進行匹配,邊框匹配最好的一個運動向量為優化后的運動向量。
3.如權利要求2所述的一種基于運動向量外推及運動向量搜索的視頻差錯掩蓋方法,其特征在于對優化后的運動向量通過搜索再進行最優選擇,即根據優化后的運動向量,在參考幀中確定出補償塊的中心位置,作為起始點;運用全搜索或快速搜索原則,對其周圍一定范圍內的所有相鄰象素點進行搜索,依據邊框匹配原則最終確立最優的運動向量。
全文摘要
本發明公開了一種基于運動向量外推及運動向量搜索的視頻差錯掩蓋方法。當發生傳輸差錯時,對視頻解碼時存儲的正確運動向量信息按運動趨勢進行外推,以外推宏塊與受損區域的重疊面積估算出受損圖像塊(8×8像素)運動向量,進行圖像差錯掩蓋。當受損區域周圍存在正確信息時,可以與邊框匹配以及運動向量搜索優化相結合,得到最優的運動向量估算值,以此進行更為精確的掩蓋。該方法可有效地掩蓋和恢復丟失及損壞的視頻圖像信息,甚至當整幀圖像丟失或損壞時,仍能夠較為滿意地得到恢復。利用本發明方法能顯著地提高視頻傳輸的可靠性,改善視頻圖像的質量,尤其適合于具有較差傳輸性能的PSTN或無線信道。
文檔編號H04N7/64GK1455596SQ0311737
公開日2003年11月12日 申請日期2003年3月3日 優先權日2003年3月3日
發明者彭強, 楊天武, 諸昌鈐 申請人:西南交通大學