專利名稱:一種基于時間分辨率變換的視頻轉(zhuǎn)換處理方法
技術(shù)領域:
本發(fā)明涉及計算,尤其涉及一種基于時間分辨率變換的視頻轉(zhuǎn)換處理方法。
背景技術(shù):
視頻轉(zhuǎn)換編碼可以理解為從一種視頻壓縮格式到另一種視頻壓縮格式的轉(zhuǎn)換,這里所說的格式包括碼流的句法和碼流中的相關參數(shù),如編碼碼率、視頻圖像空間分辨率、時間分辨率、對網(wǎng)絡帶寬的適應能力等,其實質(zhì)就是為適應傳輸網(wǎng)絡的不同帶寬情況或根據(jù)客戶端的解碼能力,把一種壓縮格式的視頻流轉(zhuǎn)換為同種或另一種壓縮格式的視頻流。
可擴展視頻編碼是另一種以多層的方式壓縮視頻并根據(jù)網(wǎng)絡帶寬的變化情況傳輸其中合適的幾層的編碼方法。它將原始視頻數(shù)據(jù)壓縮成一個基本層和若干個增強層,基本層必須保證全部傳輸,帶寬越寬,能傳輸?shù)脑鰪妼訑?shù)就越多,重建視頻圖像質(zhì)量越好,增強層依賴于基本層,沒有基本層有再多的增強層也沒有用。
可擴展視頻編碼方法主要有空域分層、時域分層、信噪比(SNR)分層、精細可分層(FGS)等方法,它通過進行一次編碼,就可以生成一路適合多種信道環(huán)境的碼流,因而其靈活性高于視頻轉(zhuǎn)換編碼方法,但是可擴展視頻要求解碼器支持多層解碼,這種復雜的解碼功能在手持終端上不容易被支持,另外,其碼率控制方式遠遠復雜于視頻轉(zhuǎn)換編碼,導致流媒體服務器端的運算復雜度提高,而且由于分層導致頭信息增加,這種編碼方式得到的重建視頻圖像質(zhì)量與在相同的帶寬條件下視頻轉(zhuǎn)換編碼獲得的重建視頻圖像質(zhì)量相比要差。多描述編碼是一種將原始視頻編碼成多路視頻流,其中任何一路視頻流都可單獨解碼播放,通過多路解碼視頻流的合并來獲得更好的重建圖像質(zhì)量并增強視頻流對網(wǎng)絡的適應性,但是其實現(xiàn)復雜度很高,而且重建視頻圖像質(zhì)量的波動通常較大。因此,可擴展視頻編碼方法與視頻轉(zhuǎn)換編碼方法相比,運算復雜度高,應用范圍有限。
隨著無線網(wǎng)絡傳輸帶寬的不斷提高,以及多媒體檢索業(yè)務的不斷發(fā)展,對已有編碼視頻流進行時間轉(zhuǎn)換編碼的需求越來越強烈。時間分辨率變換(幀率變換),實際上就是指通過丟幀的方式來滿足網(wǎng)絡帶寬變化或終端對輸入視頻流的解碼需求。最簡單的時間分辨率變換方法是丟棄雙向預測幀(B幀),由于B幀在編碼時不用做其它幀的參考幀,因此轉(zhuǎn)換編碼器僅需要對原碼流進行語法轉(zhuǎn)換,不會影響解碼器對其它幀的正確解碼。然而,當丟棄幀不僅限于B幀時,原碼流的部分運動矢量由于其參考幀在新碼流中被丟棄而變得無效,需要對運動矢量進行修正,因此視頻時間分辨率變換(視頻時間分辯率變換就是根據(jù)實際網(wǎng)絡傳輸帶寬的變化去掉編碼視頻流中某些幀的數(shù)據(jù)比特)的關鍵問題也歸結(jié)為運動矢量的快速重估,即尋找既能利用原碼流中運動矢量信息而又不致引入明顯的重建視頻圖像質(zhì)量降低的方案。
在現(xiàn)有的處理方法中,歸納起來主要有三種方法最直接的時間視頻分辨率轉(zhuǎn)換編碼方式是先把待轉(zhuǎn)換的編碼視頻流完全解碼,再用需要的編碼格式采用全搜索塊匹配算法(FS)重新進行運動估計而不利用編碼視頻流中已有的任何運動信息,得到符合轉(zhuǎn)換要求的具有較好重建視頻圖像質(zhì)量的編碼視頻流,但是全搜索塊匹配算法會消耗處理器大部分的計算資源,因此一般不采用;另外一種是對運動矢量采用雙線性內(nèi)插(BILINEAR),對內(nèi)插后的運動矢量進行修正,可以根據(jù)跳幀數(shù)和運動矢量累計幅度確定搜索范圍,在此范圍內(nèi)搜索得到更新的運動矢量。
還有一種是Jeongnam Youn和Ming-Ting Sun在文章《A fast motion vectorcomposition method for temporal transcoding》提出的稱為前向主控矢量選擇法FDVS,相對上述兩種方法,具有較小的計算量和更好的性能,如圖1所示,每幀中構(gòu)成一個大正方形的四個小正方形分別稱之為編碼宏塊S1(左上)、S2(右上)、S3(左下)、S4(右下),該方法通過從丟棄幀(n-1)中找到以該幀數(shù)據(jù)為參考的后續(xù)幀(n)中的編碼宏塊S1(運動矢量為I1(n))的匹配宏塊MB1’的對應位置,從其部分覆蓋的四個編碼宏塊S1、S2、S3、S4對應的運動矢量選擇一個主控運動矢量,這個主控運動矢量為主控宏塊S2的運動矢量I2(n-1),主控宏塊是指四個宏塊中被匹配宏塊覆蓋最大的那個宏塊,然而,當其在參考幀(n-1)中的對應匹配位置覆蓋的四個編碼宏塊的面積比較接近時,如圖2所示,此時主控矢量選擇法FDVS仍然簡單的按照覆蓋面積大小選擇主控運動矢量,獲得的主控運動矢量缺乏代表性,從而影響解碼端的重建視頻圖像質(zhì)量。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于時間分辨率變換的視頻轉(zhuǎn)換處理方法,以解決現(xiàn)有技術(shù)FDVS算法中在覆蓋面積接近的情況下選取的運動矢量缺乏代表性的問題,獲得較好的重建視頻圖像質(zhì)量。
本發(fā)明所采用的基于時間分辨率變換的視頻轉(zhuǎn)換處理方法包括如下步驟
A、在采用主控矢量選擇法的時間視頻分辨率轉(zhuǎn)換中,檢測待轉(zhuǎn)換編碼視檢測頻流中采用幀間編碼方式編碼的宏塊對于被丟棄的參考幀的覆蓋狀態(tài);B、至少當匹配宏塊在參考幀中的對應匹配位置所覆蓋的編碼宏塊為兩塊或四塊,所述各個編碼宏塊的面積比較接近并且均采用幀間編碼方式編碼時,根據(jù)與所述編碼宏塊相關的離散余弦變換(DCT,Discrete Cosine Transform)直流系數(shù)確定當前編碼宏塊在前一參考幀中的匹配位置,據(jù)此取得當前編碼宏塊的運動矢量。
所述的步驟B中,若所述匹配宏塊在參考幀中的對應匹配位置所覆蓋的編碼宏塊為四塊時,根據(jù)四個被覆蓋的編碼宏塊的各自運動矢量,確定所述編碼宏塊的DCT直流系數(shù)計算參照值。
所述的步驟B之后,若當前編碼宏塊參考幀的參考幀也被丟棄,則向前搜尋,直到當前編碼宏塊的參考幀不是丟棄幀為止,獲得當前編碼宏塊的運動矢量。
所述的步驟B包括如下步驟B1、若所覆蓋的編碼宏塊為四塊時,判斷是否存在大于像素點數(shù)閥值T的被覆蓋部分,進行如下操作B11、若存在大于像素點數(shù)閥值T的被覆蓋部分,則相應宏塊被選為主控宏塊,若該主控宏塊采用幀內(nèi)編碼方式,則當前宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束;若該主控宏塊采用幀間編碼方式,則轉(zhuǎn)入步驟B2;B12、否則,判斷其中是否存在采用幀內(nèi)編碼方式編碼的被覆蓋部分,進行如下操作B121、若存在采用幀內(nèi)編碼方式編碼的被覆蓋部分,當前宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束;B122、否則,判斷四個被覆蓋編碼宏塊的運動矢量是否都不相等,進行如下操作B1221、若四個被覆蓋編碼宏塊的運動矢量都不相等,則選擇殘差DCT直流系數(shù)最大的被覆蓋編碼宏塊在前一參考幀中的對應位置作為當前編碼宏塊在前一參考幀中的匹配位置,繼續(xù)如下步驟B2;B1222、否則,選擇殘差DCT直流系數(shù)最小的被覆蓋編碼宏塊在前一參考幀中的對應位置作為當前編碼宏塊在前一參考幀中的匹配位置,繼續(xù)如下步驟B2;B2、判斷當前編碼宏塊參考幀的參考幀是否也被丟棄,進行如下操作
B21、若未被丟棄,直接更新當前獲得的運動矢量;B22、否則,則向前搜尋,直到當前編碼宏塊的參考幀不是丟棄幀為止,獲得當前編碼宏塊的運動矢量。
所述的步驟B中還包括如下步驟BA、若所覆蓋的編碼宏塊為兩塊時,判斷是否存在大于像素點數(shù)閥值T的被覆蓋部分,進行如下操作BA1、若存在大于像素點數(shù)閥值T的被覆蓋部分,若該覆蓋編碼宏塊采用幀間編碼方式編碼,則采用該被覆蓋編碼宏塊在前一參考幀中的匹配位置作為當前編碼宏塊在前一參考幀中的匹配位置,繼續(xù)步驟BB,若該覆蓋編碼宏塊采用幀內(nèi)編碼方式編碼,則當前編碼宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束;BA2、否則,判斷其中是否存在采用幀內(nèi)編碼方式編碼的被覆蓋部分,進行如下操作BA21、若存在采用幀內(nèi)編碼方式編碼的被覆蓋部分,當前宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束;BA22、否則,比較兩個宏塊中覆蓋面積較大的兩個8*8塊的直流系數(shù)之和的大小,選擇兩者之中較大的一個被覆蓋編碼宏塊在前一參考幀中的匹配位置作為當前編碼宏塊在前一參考幀中的匹配位置,繼續(xù)如下步驟BB;BB、判斷當前編碼宏塊參考幀的參考幀是否也被丟棄,進行如下操作BB1、若未被丟棄,直接更新當前獲得的運動矢量;BB2、否則,則向前搜尋,直到當前編碼宏塊的參考幀不是丟棄幀為止,獲得當前編碼宏塊的運動矢量。
所述的步驟BB之后還包括如下步驟BCBC、進一步選擇搜索窗口以更新運動矢量,所述的搜索窗口以下式更新SW=±m(xù)in(defaultSW,α*βj-1)其中,SW為當前運動矢量更新時所需的搜索窗口的大小,defaultSW為全搜索塊匹配計算中缺省的搜索窗大小,j為當前幀與非丟棄幀的參考幀之間丟幀的個數(shù),α=1,β=1.25。
所述的步驟B中還包括如下步驟Ba、若所覆蓋的編碼宏塊為一塊時,若該宏塊采用幀間編碼方式編碼,則把該宏塊在前一參考幀中的匹配位置作為當前宏塊在前一參考幀中的匹配位置,轉(zhuǎn)入步驟Bb,若該宏塊采用幀內(nèi)編碼方式編碼,則當前宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束;Bb、判斷當前編碼宏塊參考幀的參考幀是否也被丟棄,進行如下操作Bb1、若未被丟棄,直接更新當前獲得的運動矢量;Bb2、否則,則向前搜尋,直到當前編碼宏塊的參考幀不是丟棄幀為止,獲得當前編碼宏塊的運動矢量。
所述的步驟B之后還包括如下步驟CC、根據(jù)四個覆蓋宏塊的運動矢量的情況及丟幀數(shù)進一步選擇搜索窗口以更新。
所述的步驟C包括如下步驟C1、判斷四個被覆蓋編碼宏塊的運動矢量是否都相等,進行如下操作C11、若都相等,不需要對運動矢量進行更新;C12、否則,判斷四個被覆蓋編碼宏塊的運動矢量是否都不相等,進行如下操作C121、若都不相等,選取較大的搜索窗口對其進行更新,所述的搜索窗口以下式更新SW=±m(xù)in(defaultSW,α*βj-1)其中,SW為當前運動矢量更新時所需的搜索窗口的大小,defaultSW為全搜索塊匹配計算中缺省的搜索窗大小,j為當前幀與非丟棄幀的參考幀之間丟幀的個數(shù),α=2,β=1.5;C122、否則,選取較大的搜索窗口對其進行更新,所述的搜索窗口以下式更新SW=±m(xù)in(defaultSW,α*βj-1)其中,SW為當前運動矢量更新時所需的搜索窗口的大小,defaultSW為全搜索塊匹配計算中缺省的搜索窗大小,j為當前幀與非丟棄幀的參考幀之間丟幀的個數(shù),α=1,β=1.25。
本發(fā)明的有益效果為在本發(fā)明中,通過利用已編碼視頻流中的運動信息和DCT變換得到的直流系數(shù)重新估計轉(zhuǎn)換編碼后視頻流的運動矢量,可減少視頻轉(zhuǎn)換編碼過程中的計算量,提高編碼速度,本方法可極大地減少視頻轉(zhuǎn)換編碼過程中的計算量,而且獲得接近于全搜索塊匹配方法的重建視頻圖像質(zhì)量,同時可以有效地降低網(wǎng)絡帶寬變化對重建視頻圖像質(zhì)量的影響,提高網(wǎng)絡帶寬的利用率,以保證視頻流的可擴展性和交互性,為用戶提供極佳的視覺體驗。
圖1是前向主控矢量選擇法示意圖;圖2是前向主控矢量選擇法特殊情況示意圖;圖3為本發(fā)明總體控制流程示意圖;圖4為本發(fā)明中對于覆蓋四塊的基本控制流程示意圖;圖5為本發(fā)明中對于覆蓋四塊的具體控制流程示意圖;圖6為本發(fā)明中對于覆蓋二塊的具體控制流程示意圖;圖7為本發(fā)明中對于覆蓋一塊的具體控制流程示意圖;具體實施方式
下面根據(jù)附圖和實施例對本發(fā)明作進一步詳細說明視頻編碼國際標準中,幀間預測編碼可采用幀預測和場預測兩種方式,因此前向預測幀的每一宏塊運動矢量的個數(shù)可能是一個或兩個。如果時間分辨率轉(zhuǎn)換編碼前輸入編碼視頻流中使用幀間編碼方式編碼的宏塊采用幀預測方式,那么所得的運動矢量就是該宏塊的運動矢量。如果采用場預測,每一宏塊被分成16*8奇偶兩個塊,則該宏塊的運動矢量為DCT變換后擁有大的直流系數(shù)之和的16*8塊對應的運動矢量,這樣做的原因在于塊匹配方法建立宏塊內(nèi)所有像素都處于平動狀態(tài)下且擁有相同的運動趨勢這一假設條件下,但通常在物體邊緣處,這一條件很難滿足,所以塊匹配方法在物體邊緣處存在產(chǎn)生大的預測誤差這一趨勢,同時經(jīng)過運動補償?shù)玫降臍埐詈陦K的像素值服從拉普拉斯分布,這意味著量化后直流系數(shù)不為零的可能性大于交流系數(shù),且實驗證明宏塊的活動性與DCT系數(shù)的能量有關,所以選擇大的DC系數(shù)作為宏塊活動性的判斷標志。
根據(jù)圖3,本發(fā)明的總體控制流程如下1)在采用主控矢量選擇法的時間視頻分辨率轉(zhuǎn)換中,檢測待轉(zhuǎn)換編碼視頻流中采用幀間編碼方式編碼的宏塊對于被丟棄的參考幀的覆蓋狀態(tài)。
2)至少當匹配宏塊在參考幀中的對應匹配位置所覆蓋的編碼宏塊為兩塊或四塊,所述各個編碼宏塊的面積比較接近并且均采用幀間編碼方式編碼時,根據(jù)與所述編碼宏塊相關的DCT直流系數(shù)確定當前編碼宏塊在前一參考幀中的匹配位置,據(jù)此取得當前編碼宏塊的運動矢量。
如上所述,需要指出的是,本發(fā)明的處理均是在像素域進行的,不在頻域進行的主要原因在于頻域視頻轉(zhuǎn)換編碼建立在運動補償過程的線性化、不考慮幀緩存前的截斷函數(shù)、DCT/IDCT變換在編解碼過程中具有一致的算術(shù)精度以及轉(zhuǎn)換編碼后每個宏塊的編碼模式和轉(zhuǎn)換前的編碼模式相一致的四個假設條件下,但是通常情況下這四種假設很難成立,由此會產(chǎn)生漂移錯誤而降低重建視頻圖像的質(zhì)量。
如圖4所示,對于匹配宏塊在參考幀中的對應匹配位置所覆蓋的編碼宏塊為四塊時,采用如下的基本控制流程a)檢測待轉(zhuǎn)換編碼視頻流中采用幀間編碼方式編碼的宏塊對于被丟棄的參考幀的覆蓋狀態(tài)。
b)所覆蓋的編碼宏塊為四塊,各個編碼宏塊的面積比較接近并且均采用幀間編碼方式編碼。
c)根據(jù)四個被覆蓋的編碼宏塊的各自運動矢量,確定所述編碼宏塊的DCT直流系數(shù)計算參照值。
d)判斷當前編碼宏塊參考幀的參考幀是否也被丟棄,進行如下操作d1)若未丟棄,直接更新當前獲得的運動矢量,繼續(xù)如下步驟e)。
d2)否則,向前搜尋,直到當前編碼宏塊的參考幀不是丟棄幀為止,獲得當前編碼宏塊的運動矢量,繼續(xù)如下步驟e)。
e)根據(jù)四個覆蓋宏塊的運動矢量的情況及丟幀數(shù)進一步選擇搜索窗口以更新。
如圖5所示,下面就匹配宏塊在參考幀中的對應匹配位置所覆蓋的編碼宏塊為四塊時的具體控制流程作如下詳細說明1、檢測待轉(zhuǎn)換編碼視頻流中采用幀間編碼方式編碼的宏塊對于被丟棄的參考幀的覆蓋狀態(tài)。
2、所覆蓋的編碼宏塊為四塊時,判斷是否存在大于像素點數(shù)閥值T的被覆蓋部分,進行如下操作21、若存在大于像素點數(shù)閥值T的被覆蓋部分,則相應宏塊被選為主控宏塊,判斷該宏塊是否采用幀內(nèi)編碼方式編碼,進行如下操作211、若是采用幀內(nèi)編碼方式編碼,則流程結(jié)束。
212、否則,直接更新當前獲得的運動矢量 繼續(xù)如下步驟4。
22、否則,判斷其中是否存在采用幀內(nèi)編碼方式編碼的被覆蓋部分,進行如下操作221、若存在采用幀內(nèi)編碼方式編碼的被覆蓋部分,當前宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束。
222、否則,判斷四個被覆蓋編碼宏塊的運動矢量 是否都不相等,進行如下操作2221、若四個被覆蓋編碼宏塊的運動矢量 都不相等,則選擇殘差DCT直流系數(shù)最大的被覆蓋編碼宏塊在前一參考幀中的對應位置作為當前編碼宏塊在前一參考幀中的匹配位置,繼續(xù)如下步驟3。
在這種情況下,適用下式v→ref=v→nbi|maxdc8*8,i=1,2,3,4]]>其中, 即為主控宏塊的運動矢量。
2222、否則,選擇殘差DCT直流系數(shù)最小的被覆蓋編碼宏塊在前一參考幀中的對應位置作為當前編碼宏塊在前一參考幀中的匹配位置,繼續(xù)如下步驟3。
在這種情況下,適用下式v→ref=v→nbi|mindc8*8,i=1,2,3,4]]>其中, 即為主控宏塊的運動矢量。
3、判斷當前編碼宏塊參考幀的參考幀是否也被丟棄,進行如下操作31、若未被丟棄,直接更新當前獲得的運動矢量 繼續(xù)如下步驟4。
32、否則,則向前搜尋,直到當前編碼宏塊的參考幀不是丟棄幀為止,獲得當前編碼宏塊的運動矢量 在此,采用如下計算vtx=xn-j-xnvty=y(tǒng)n-j-yn其中,(xn,yn)為當前編碼宏塊在當前幀中的位置,(xn-j,yn-j)為匹配宏塊在最終未丟棄參考幀中的位置,vtx、vty為當前宏塊運動矢量 的水平分量和垂直分量,j為當前幀與非丟棄幀的參考幀之間丟幀的個數(shù)。
以此取得當前編碼宏塊的運動矢量 繼續(xù)如下步驟4。
4、判斷四個被覆蓋編碼宏塊的運動矢量是否都相等,進行如下操作41、若都相等,不需要對運動矢量 進行更新。
42、否則,判斷四個被覆蓋編碼宏塊的運動矢量 是否都不相等,進行如下操作421、若都不相等,選取較大的搜索窗口對其進行更新,所述的搜索窗口以下式更新SW=±m(xù)in(defaultSW,α*βj-1)其中,SW為當前運動矢量更新時所需的搜索窗口的大小,defaultSW為全搜索塊匹配計算中缺省的搜索窗大小,j為當前幀與非丟棄幀的參考幀之間丟幀的個數(shù),α=2,β=1.5。
422、否則,選取較大的搜索窗口對其進行更新,所述的搜索窗口以下式更新SW=±m(xù)in(defaultSW,α*βj-1)其中,SW為當前運動矢量更新時所需的搜索窗口的大小,defaultSW為全搜索塊匹配計算中缺省的搜索窗大小,j為當前幀與非丟棄幀的參考幀之間丟幀的個數(shù),α=1,β=1.25。
這樣,通過上述步驟4、41、42、421、422,就根據(jù)四個覆蓋宏塊的運動矢量的情況及丟幀數(shù)進一步選擇搜索窗口以更新。
如圖6所示,對于匹配宏塊在參考幀中的對應匹配位置所覆蓋的編碼宏塊為二塊時,采用如下的具體控制流程I、檢測待轉(zhuǎn)換編碼視頻流中采用幀間編碼方式編碼的宏塊對于被丟棄的參考幀的覆蓋狀態(tài)。
II、若所覆蓋的編碼宏塊為兩塊時,判斷是否存在大于像素點數(shù)閥值T的被覆蓋部分,進行如下操作II1、若存在大于像素點數(shù)閥值T的被覆蓋部分,若該覆蓋編碼宏塊采用幀間編碼方式編碼,采用該被覆蓋編碼宏塊在前一參考幀中的匹配位置作為當前編碼宏塊在前一參考幀中的匹配位置,繼續(xù)如下步驟III;若該覆蓋編碼宏塊采用幀內(nèi)編碼方式編碼,則當前編碼宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束。
II2、否則,判斷其中是否存在采用幀內(nèi)編碼方式編碼的被覆蓋部分,進行如下操作II2l、若存在采用幀內(nèi)編碼方式編碼的被覆蓋部分,當前宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束。
II22、否則,比較兩個宏塊中覆蓋面積較大的兩個8*8塊的直流系數(shù)之和的大小,選擇兩者之中較大的一個被覆蓋編碼宏塊在前一參考幀中的匹配位置作為當前編碼宏塊在前一參考幀中的匹配位置,繼續(xù)如下步驟III。
III、判斷當前編碼宏塊參考幀的參考幀是否也被丟棄,進行如下操作III1、若未被丟棄,直接更新當前獲得的運動矢量,繼續(xù)如下步履IV。
III2、否則,則向前搜尋,直到當前編碼宏塊的參考幀不是丟棄幀為止,獲得當前編碼宏塊的運動矢量,繼續(xù)如下步履IV。
IV、進一步選擇搜索窗口以更新運動矢量,所述的搜索窗口以下式更新SW=±m(xù)in(defaultSW,α*βj-1)其中,SW為當前運動矢量更新時所需的搜索窗口的大小,defaultSW為全搜索塊匹配計算中缺省的搜索窗大小,j為當前幀與非丟棄幀的參考幀之間丟幀的個數(shù),α=1,β=1.25。
如圖6所示,對于匹配宏塊在參考幀中的對應匹配位置所覆蓋的編碼宏塊為一塊時,采用如下的具體控制流程i.檢測待轉(zhuǎn)換編碼視頻流中采用幀間編碼方式編碼的宏塊對于被丟棄的參考幀的覆蓋狀態(tài)。
ii.若所覆蓋的編碼宏塊為一塊時,若該宏塊采用幀間編碼方式編碼,把該宏塊在前一參考幀中的匹配位置作為當前宏塊在前一參考幀中的匹配位置,轉(zhuǎn)入步驟iii;若該宏塊采用幀內(nèi)編碼方式編碼,則當前宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束。
iii.判斷當前編碼宏塊參考幀的參考幀是否也被丟棄,進行如下操作iii1、若未被丟棄,直接更新當前獲得的運動矢量。
iii2、否則,則向前搜尋,直到當前編碼宏塊的參考幀不是丟棄幀為止,獲得當前編碼宏塊的運動矢量。
例如,在時間分辨率轉(zhuǎn)換編碼實驗中,對七個不同運動復雜度、編碼速率為384kbit/s、幀率為30幀/s的CIF格式視頻序列做了測試,每個序列均編碼240幀,缺省搜索窗口大小為±7,GOP采用IPPPPPPPPP這樣的結(jié)構(gòu),轉(zhuǎn)換編碼后的視頻流速率為100kbit/s、幀率為12幀/s(每三個相鄰前向預測幀中丟棄兩個)。
如下表1所示,采用BILINEAR、FDVS、TFMVRE、TFMVRE+R方法(TFMVRE即本發(fā)明方法,TFMVRE+R為本發(fā)明中采用進一步更新的方法,如前述步驟e)或步驟4所述)相對于FS算法的PSNR變化情況進行比較,可以看出,用BILINEAR算法對運動緩慢的視頻序列進行時間分辨率轉(zhuǎn)換所得重建視頻圖像質(zhì)量和FDVS、TFMVRE算法相差不大,但是當視頻運動劇烈時,通過本發(fā)明獲得重建視頻質(zhì)量與FDVS、TFMVRE算法相差很大。
原因在于視頻運動平緩時,待轉(zhuǎn)換編碼流中采用幀間編碼方式編碼的宏塊在其參考幀的最佳匹配位置覆蓋參考幀某一宏塊很大一部分面積的可能性較大,如視頻序列Akiyo,此時通過BILINEAR算法獲得的運動矢量比較接近于通過FDVS、TFMVRE算法獲得的運動矢量。
但是,當視頻運動劇烈時,其在參考幀中的最佳匹配位置在四個或兩個覆蓋宏塊中面積接近的可能性增大,此時BILINEAR算法獲得的運動矢量缺乏代表性,所以重建視頻圖像質(zhì)量比較差(如視頻序列Football);用FDVS算法對運動緩慢的視頻序列進行時間分辨率轉(zhuǎn)換編碼時,獲得的運動矢量大部分同TFMVRE算法相同,只是在偶爾的局部運動劇烈區(qū)域的重建視頻圖像質(zhì)量低于TFMVRE算法,所以總體重建視頻質(zhì)量相差不大,但是當視頻運動劇烈時,該算法獲得的重建視頻圖像質(zhì)量低于TFMVRE算法,同時對于運動相對平緩的視頻序列Foreman、Paris,F(xiàn)DVS算法獲得重建視頻圖像質(zhì)量優(yōu)于運動劇烈的視頻序列Tennis、Football,原因同BILINEAR算法對運動劇烈的視頻編碼表現(xiàn)下降相同。
本發(fā)明針對FDVS算法對覆蓋宏塊面積接近時選擇的運動矢量缺乏代表性做了修改,尤其在視頻運動劇烈時本發(fā)明獲得的重建視頻質(zhì)量大大優(yōu)于FDVS算法;本發(fā)明TFMVRE+R(refinement)的進一步更新的方法,通過對得到的運動矢量進行更新,可獲得接近于FS算法的重建視頻圖像質(zhì)量。
該表1中不同序列使用各種時域轉(zhuǎn)換編碼算法所得PSNR(單位dB)(相對于FS)表1綜上所述,本發(fā)明利用已編碼視頻流中的運動信息和DCT變換得到的直流系數(shù)重新估計轉(zhuǎn)換編碼后視頻流的運動矢量,可減少視頻轉(zhuǎn)換編碼過程中的計算量,提高編碼速度。
權(quán)利要求
1.一種基于時間分辨率變換的視頻轉(zhuǎn)換處理方法,其特征在于它包括如下步驟A、在采用主控矢量選擇法的時間視頻分辨率轉(zhuǎn)換中,檢測待轉(zhuǎn)換編碼視頻流中采用幀間編碼方式編碼的宏塊對于被丟棄的參考幀的覆蓋狀態(tài);B、至少當匹配宏塊在參考幀中的對應匹配位置所覆蓋的編碼宏塊為兩塊或四塊,所述各個編碼宏塊的面積比較接近并且均采用幀間編碼方式編碼時,根據(jù)與所述編碼宏塊相關的DCT直流系數(shù)確定當前編碼宏塊在前一參考幀中的匹配位置,據(jù)此取得當前編碼宏塊的運動矢量。
2.根據(jù)權(quán)利要求1所述的基于時間分辨率變換的視頻轉(zhuǎn)換處理方法,其特征在于所述的步驟B中,若所述匹配宏塊在參考幀中的對應匹配位置所覆蓋的編碼宏塊為四塊時,根據(jù)四個被覆蓋的編碼宏塊的各自運動矢量,確定所述編碼宏塊的DCT直流系數(shù)計算參照值。
3.根據(jù)權(quán)利要求2所述的基于時間分辨率變換的視頻轉(zhuǎn)換處理方法,其特征在于所述的步驟B之后,若當前編碼宏塊參考幀的參考幀也被丟棄,則向前搜尋,直到當前編碼宏塊的參考幀不是丟棄幀為止,獲得當前編碼宏塊的運動矢量。
4.根據(jù)權(quán)利要求1-3中任意一項所述的基于時間分辨率變換的視頻轉(zhuǎn)換處理方法,其特征在于所述的步驟B包括如下步驟B1、若所覆蓋的編碼宏塊為四塊時,判斷是否存在大于像素點數(shù)閥值T的被覆蓋部分,進行如下操作B11、若存在大于像素點數(shù)閥值T的被覆蓋部分,則相應宏塊被選為主控宏塊,若該主控宏塊采用幀內(nèi)編碼方式,則當前宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束,若該主控宏塊采用幀間編碼方式,則轉(zhuǎn)入步驟B2;B12、否則,判斷其中是否存在采用幀內(nèi)編碼方式編碼的被覆蓋部分,進行如下操作B121、若存在采用幀內(nèi)編碼方式編碼的被覆蓋部分,當前宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束;B122、否則,判斷四個被覆蓋編碼宏塊的運動矢量是否都不相等,進行如下操作B1221、若四個被覆蓋編碼宏塊的運動矢量都不相等,則選擇殘差DCT直流系數(shù)最大的被覆蓋編碼宏塊在前一參考幀中的對應位置作為當前編碼宏塊在前一參考幀中的匹配位置,繼續(xù)如下步驟B2;B1222、否則,選擇殘差DCT直流系數(shù)最小的被覆蓋編碼宏塊在前一參考幀中的對應位置作為當前編碼宏塊在前一參考幀中的匹配位置,繼續(xù)如下步驟B2;B2、判斷當前編碼宏塊參考幀的參考幀是否也被丟棄,進行如下操作B21、若未被丟棄,直接更新當前獲得的運動矢量;B22、否則,則向前搜尋,直到當前編碼宏塊的參考幀不是丟棄幀為止,獲得當前編碼宏塊的運動矢量。
5.根據(jù)權(quán)利要求4所述的基于時間分辨率變換的視頻轉(zhuǎn)換處理方法,其特征在于所述的步驟B中還包括如下步驟BA、若所覆蓋的編碼宏塊為兩塊時,判斷是否存在大于像素點數(shù)閥值T的被覆蓋部分,進行如下操作BA1、若存在大于像素點數(shù)閥值T的被覆蓋部分,若該覆蓋編碼宏塊采用幀間編碼方式編碼,則采用該被覆蓋編碼宏塊在前一參考幀中的匹配位置作為當前編碼宏塊在前一參考幀中的匹配位置,繼續(xù)步驟BB,若該覆蓋編碼宏塊采用幀內(nèi)編碼方式編碼,則當前編碼宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束;BA2、否則,判斷其中是否存在采用幀內(nèi)編碼方式編碼的被覆蓋部分,進行如下操作BA21、若存在采用幀內(nèi)編碼方式編碼的被覆蓋部分,當前宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束;BA22、否則,比較兩個宏塊中覆蓋面積較大的兩個8*8塊的直流系數(shù)之和的大小,選擇兩者之中較大的一個被覆蓋編碼宏塊在前一參考幀中的匹配位置作為當前編碼宏塊在前一參考幀中的匹配位置,繼續(xù)如下步驟BB;BB、判斷當前編碼宏塊參考幀的參考幀是否也被丟棄,進行如下操作BB1、若未被丟棄,直接更新當前獲得的運動矢量;BB2、否則,則向前搜尋,直到當前編碼宏塊的參考幀不是丟棄幀為止,獲得當前編碼宏塊的運動矢量。
6.根據(jù)權(quán)利要求5所述的基于時間分辨率變換的視頻轉(zhuǎn)換處理方法,其特征在于所述的步驟BB之后還包括如下步驟BCBC、進一步選擇搜索窗口以更新運動矢量,所述的搜索窗口以下式更新SW=±m(xù)in(defaultSW,α*βj-1)其中,SW為當前運動矢量更新時所需的搜索窗口的大小,defaultSW為全搜索塊匹配計算中缺省的搜索窗大小,j為當前幀與非丟棄幀的參考幀之間丟幀的個數(shù),α=1,β=1.25。
7.根據(jù)權(quán)利要求4所述的基于時間分辨率變換的視頻轉(zhuǎn)換處理方法,其特征在于所述的步驟B中還包括如下步驟Ba、若所覆蓋的編碼宏塊為一塊時,若該宏塊采用幀間編碼方式編碼,則把該宏塊在前一參考幀中的匹配位置作為當前宏塊在前一參考幀中的匹配位置,轉(zhuǎn)入步驟Bb,若該宏塊采用幀內(nèi)編碼方式編碼,則當前宏塊也采用幀內(nèi)編碼方式編碼,流程結(jié)束;Bb、判斷當前編碼宏塊參考幀的參考幀是否也被丟棄,進行如下操作Bb1、若未被丟棄,直接更新當前獲得的運動矢量;Bb2、否則,則向前搜尋,直到當前編碼宏塊的參考幀不是丟棄幀為止,獲得當前編碼宏塊的運動矢量。
8.根據(jù)權(quán)利要求1-3中任意一項所述的基于時間分辨率變換的視頻轉(zhuǎn)換處理方法,其特征在于所述的步驟B之后還包括如下步驟CC、根據(jù)四個覆蓋宏塊的運動矢量的情況及丟幀數(shù)進一步選擇搜索窗口以更新。
9.根據(jù)權(quán)利要求8所述的基于時間分辨率變換的視頻轉(zhuǎn)換處理方法,其特征在于所述的步驟C包括如下步驟C1、判斷四個被覆蓋編碼宏塊的運動矢量是否都相等,進行如下操作C11、若都相等,不需要對運動矢量進行更新;C12、否則,判斷四個被覆蓋編碼宏塊的運動矢量是否都不相等,進行如下操作C121、若都不相等,選取較大的搜索窗口對其進行更新,所述的搜索窗口以下式更新SW=±m(xù)in(defaultSW,α*βj-1)其中,SW為當前運動矢量更新時所需的搜索窗口的大小,defaultSW為全搜索塊匹配計算中缺省的搜索窗大小,j為當前幀與非丟棄幀的參考幀之間丟幀的個數(shù),α=2,β=1.5;C122、否則,選取較大的搜索窗口對其進行更新,所述的搜索窗口以下式更新SW=±m(xù)in(defaultSW,α*βj-1)其中,SW為當前運動矢量更新時所需的搜索窗口的大小,defaultSW為全搜索塊匹配計算中缺省的搜索窗大小,j為當前幀與非丟棄幀的參考幀之間丟幀的個數(shù),α=1,β=1.25。
全文摘要
一種涉及計算的基于時間分辨率變換的視頻轉(zhuǎn)換處理方法,它采用A.在采用主控矢量選擇法的時間視頻分辨率轉(zhuǎn)換中,檢測待轉(zhuǎn)換編碼視頻流中采用幀間編碼方式編碼的宏塊對于被丟棄的參考幀的覆蓋狀態(tài),B.至少當匹配宏塊在參考幀中的對應匹配位置所覆蓋的編碼宏塊為兩塊或四塊,所述各個編碼宏塊的面積比較接近并且均采用幀間編碼方式編碼時,根據(jù)與所述編碼宏塊相關的DCT直流系數(shù)確定當前編碼宏塊在前一參考幀中的匹配位置,據(jù)此取得當前編碼宏塊的運動矢量;還包括步驟C根據(jù)四個覆蓋宏塊的運動矢量的情況及丟幀數(shù)進一步選擇搜索窗口以更新,本發(fā)明解決了FDVS算法中運動矢量缺乏代表性的問題,獲得較好的重建視頻圖像質(zhì)量。
文檔編號G06T9/00GK101094398SQ200610061250
公開日2007年12月26日 申請日期2006年6月20日 優(yōu)先權(quán)日2006年6月20日
發(fā)明者魯照華 申請人:中興通訊股份有限公司