一種適用于h.264視頻編解碼的整像素運動估計方法
【專利摘要】本發(fā)明公開了一種適用于H.264視頻編解碼的整像素運動估計方法,其算法的步驟包括:a.對參考幀進(jìn)行邊界填充;b.進(jìn)行場景檢測;c.并行的絕對誤差和計算;d.求候選運動矢量;e.求預(yù)測運動矢量;f.求最佳預(yù)測運動矢量;g.求最佳匹配塊。本發(fā)明提出的運動估計算法可提高運動搜索的準(zhǔn)確度,降低視頻編碼時殘差塊的數(shù)據(jù)量,有效提高H.264視頻編碼的質(zhì)量。
【專利說明】一種適用于Η. 264視頻編解碼的整像素運動估計方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于視頻編解碼【技術(shù)領(lǐng)域】,尤其涉及一種適用于Η. 264視頻編解碼的整像 素運動估計方法。
【背景技術(shù)】
[0002] Η. 264較之前的視頻編解碼標(biāo)準(zhǔn)MPEG1/2/4、Η. 261、Η. 263相比,具有更高的數(shù)據(jù) 壓縮比率、更好的網(wǎng)絡(luò)適應(yīng)性。在同等圖像質(zhì)量的條件下,Η. 264的壓縮比是MPEG-2的2倍 以上,是MPEG-4的1. 5?2倍。Η. 264性能的改善是許多技術(shù)改進(jìn)的結(jié)果。Η. 264在沿用 之前的整體編解碼框架結(jié)構(gòu)的基礎(chǔ)上采用了許多新的技術(shù),例如:多宏塊分割方式、多幀預(yù) 測、亞像素精度運動估計。
[0003] 基于塊匹配的運動估計是視頻編碼標(biāo)準(zhǔn)里最重要的部分,準(zhǔn)確而高效的塊匹配運 動估計算法,將大大減少食品序列的時間相關(guān)性以及冗余,從而帶來高的壓縮比。所謂運 動估計就是在進(jìn)行幀間預(yù)測時,為確定當(dāng)前幀中待編碼宏塊在參考幀中的位置所進(jìn)行的搜 索過程。在基于塊的運動估計中,前一幀將對分為一些像素方塊,就是所說的宏塊和塊的概 念,運動估計的目的就是根據(jù)預(yù)定義的偏差標(biāo)準(zhǔn),在參考幀中找到當(dāng)前宏塊的最佳匹配塊。 在運動估計結(jié)束之后,對于當(dāng)前塊,只要將當(dāng)前塊和匹配塊的殘差塊以及運動信息即運動 矢量編碼即可,從而減少了編碼所需的數(shù)據(jù)量。尤其對于運動量不大的圖像,前后圖像的區(qū) 別不大,用運動估計可以有效的提高壓縮比。因此,提供一個更加精確的運動估計算法,在 視頻編碼中顯得相當(dāng)重要。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問題是提供一種提高了運動估計的匹配準(zhǔn)確度,降低了殘 差塊的編碼數(shù)據(jù)量,提高了 Η. 264視頻編碼的質(zhì)量的整像素運動估計算法。
[0005] 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種適用于Η. 264視頻編解碼的整 像素運動估計方法,包括本發(fā)明的方法通過以下具體步驟實現(xiàn):
[0006] 一、找到最佳初始預(yù)測點:
[0007] 現(xiàn)有的運動估計算法,容易陷入局部最小點,由于物體在運動時表現(xiàn)出的完整性, 使時域和空域相鄰塊具有相關(guān)性,我們可以利用時域和空域相鄰塊運動矢量的相關(guān)性,找 到距離最佳匹配點最近的初始預(yù)測點,尋找初始預(yù)測點的方法如下:
[0008] 1、對參考幀進(jìn)行邊界填充:
[0009] 進(jìn)行幀間運動估計之前,先進(jìn)行參考幀的邊界填充。使參考幀滿足16*16倍數(shù)的 大小。
[0010] 2、場景檢測:
[0011] 場景檢測即為確定當(dāng)前幀是否是一個新的圖片,場景檢測可用來確定當(dāng)前幀運動 矢量預(yù)測類型,設(shè)置當(dāng)前幀運動矢量預(yù)測類型為變量type_pred。若場景檢測出此幀為新的 圖片,則將此幀設(shè)為I幀,此幀的宏塊在進(jìn)行運動矢量預(yù)測時只進(jìn)行幀內(nèi)預(yù)測,不進(jìn)行幀間 預(yù)測。若幀率小于5,或者當(dāng)前場景太接近前一個I幀,則不進(jìn)行場景檢測,不進(jìn)行場景檢測 時當(dāng)前巾貞運動矢量預(yù)測類型為2,即type_pred = 2。
[0012] 3、并行計算絕對誤差和SAD :
[0013] 在用塊匹配法進(jìn)行運動估計時,衡量在參考幀中搜索到的匹配點是否是最優(yōu)匹配 點,用到的匹配準(zhǔn)則較多為SAD(sum of absolute differences),如下所示:
[0014]
【權(quán)利要求】
1. 一種適用于Η. 264視頻編解碼的整像素運動估計方法,其特征在于,包括如下步驟: a. 邊界填充:對解碼后的參考幀進(jìn)行邊界像素值上下左右的邊界填充,獲得具有邊界 和有效邊界的參考幀,使參考幀滿足16*16倍數(shù)的大?。? b. 場景檢測:確定當(dāng)前幀是否為全新圖片以及確定當(dāng)前幀運動矢量預(yù)測類型,設(shè)置當(dāng) 前幀運動矢量預(yù)測類型為變量type_pred,若場景檢測出此幀為全新圖片,則將此幀設(shè)為I 幀,若場景檢測出此幀的幀率小于5或當(dāng)前場景接近前一個I幀,則不進(jìn)行場景檢測,不進(jìn) 行場景檢測時當(dāng)前幀運動矢量預(yù)測類型為2,即type_p red = 2 ; c. 并行計算絕對誤差和SAD :每次對16*16的宏塊進(jìn)行運動估計,并采用SMD技術(shù) 進(jìn)行計算,即通過移位、與、或操作,每次并行計算多個像素,若ref為指向參考幀對應(yīng)像素 的指針,貝1J判斷式子(uint32)ref&0x3是否等于零,若(uint32)ref&0x3等于零,說明ref 所指向的數(shù)據(jù)是字對齊的,若(uint32)ref&0x3不等于零,貝U先對指針ref左移(uint32) ref&0x3位后再進(jìn)行操作; d. 求宏塊候選運動矢量:對當(dāng)前宏塊預(yù)測類型的時空預(yù)測和空間預(yù)測; e. 求宏塊的預(yù)測運動矢量:判斷當(dāng)前幀中或參考幀中的當(dāng)前宏塊是否滿足存在左鄰 居宏塊A (運動矢量為pmvA_X),同時不存在上部B (運動矢量為pmvB_X)和右上部鄰居宏塊 C(運動矢量為pmvC_X)的條件,滿足則當(dāng)前宏塊的預(yù)測運動矢量為當(dāng)前宏塊左鄰居宏塊的 運動矢量,即cmvx = pmvA_x,cmvy = pmvA_y ;不滿足則當(dāng)前宏塊的預(yù)測運動矢量為cmvx =MEDIAN(pmvA_x, pmvB_x, pmvC_x), cmvy = MEDIAN(pmvA_y, pmvB_y, pmvC_y); f. 求宏塊的最佳預(yù)測運動矢量:由候選運動矢量分別確定待編碼宏塊在參考幀中對 應(yīng)的參考宏塊位置,通過步驟c,計算當(dāng)前宏塊和參考宏塊的SAD以及候選運動矢量與預(yù)測 運動矢量的差值MV_COST,選擇SAD+MV_COST最小的運動矢量,為最佳運動矢量,此時可得 到參考宏塊的位置,記為(imin, jmin); g. 查找最佳匹配塊:從最佳初始預(yù)測點開始進(jìn)行一次小菱形搜索,計算SAD的值,若 SAD值小于1,說明運動物體較大,直接進(jìn)行六角形搜索;若SAD值小于2,說明運動物體較 小,繼續(xù)小菱形搜索,當(dāng)代價函數(shù)最小值位于搜索中心點時,停止搜索。
2. 根據(jù)權(quán)利要求1所述的一種適用于H. 264視頻編解碼的整像素運動估計方法,其特 征在于,所述d.求宏塊候選運動矢量具體步驟為: A、 若當(dāng)前宏塊預(yù)測類型為時空預(yù)測且precLtpye等于0,則候選運動矢量分別為: a) 參考幀中與當(dāng)前宏塊坐標(biāo)相同的宏塊的運動矢量, b) 參考幀中與當(dāng)前宏塊坐標(biāo)相同的宏塊左鄰居或右鄰居的運動矢量, c) 參考幀中與當(dāng)前宏塊坐標(biāo)相同的宏塊頂部或底部鄰居的運動矢量, d) 參考幀中與當(dāng)前宏塊坐標(biāo)相同的宏塊左上部宏塊的運動矢量, e) 參考幀中與當(dāng)前宏塊坐標(biāo)相同的宏塊右上部宏塊的運動矢量; B、 若當(dāng)前宏塊預(yù)測類型為時空預(yù)測且precLtpye等于1,則候選運動矢量分別為: a) 參考幀中與當(dāng)前宏塊坐標(biāo)相同的宏塊的運動矢量, b) 當(dāng)前幀中當(dāng)前宏塊左鄰居宏塊的運動矢量, c) 當(dāng)前幀中當(dāng)前宏塊上部宏塊的運動矢量, d) 參考幀中當(dāng)前宏塊右邊宏塊的運動矢量, e) 參考幀中當(dāng)前宏塊下部宏塊的運動矢量; C、 若當(dāng)前宏塊預(yù)測類型僅為空間預(yù)測且precLtpye等于0,則候選運動矢量分別為: a) 當(dāng)前幀中當(dāng)前宏塊左邊宏塊的運動矢量, b) 當(dāng)前幀中當(dāng)前宏塊左上部宏塊運動矢量, c) 當(dāng)前幀中當(dāng)前宏塊右上部宏塊運動矢量; D、 若當(dāng)前宏塊預(yù)測類型僅為空間預(yù)測且precLtpye等于1,則候選運動矢量分別為: a) 當(dāng)前幀中此宏塊左部宏塊的運動矢量, b) 當(dāng)前幀中此宏塊上部宏塊的運動矢量, c) 當(dāng)前幀中此宏塊右部宏塊的運動矢量, d) 當(dāng)前幀中此宏塊下部宏塊的運動矢量。
【文檔編號】H04N19/56GK104113756SQ201310138420
【公開日】2014年10月22日 申請日期:2013年4月22日 優(yōu)先權(quán)日:2013年4月22日
【發(fā)明者】王飛躍, 孔慶杰 申請人:蘇州派瑞雷爾智能科技有限公司