一種自適應(yīng)運(yùn)動估計方法和模塊的制作方法
【技術(shù)領(lǐng)域】
[0001] 本申請涉及視頻編解碼領(lǐng)域,具體涉及一種自適應(yīng)運(yùn)動估計方法和模塊。
【背景技術(shù)】
[0002] 隨著眾多如數(shù)字電視、互聯(lián)網(wǎng)高清視頻、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)等高清數(shù)碼產(chǎn)品的 逐漸普及,人們對視頻清晰度的要求越來越高,視頻的分辨率也越來越高。因此,新一代高 效視頻編碼標(biāo)準(zhǔn)的開發(fā)迫在眉睫。
[0003] 大多數(shù)主流的視頻編解碼標(biāo)準(zhǔn)為了充分利用視頻的時間冗余性,都采用幀間預(yù)測 的方法來提高壓縮的效率,而運(yùn)動估計是幀間預(yù)測中最重要的環(huán)節(jié),在某些視頻編碼標(biāo)準(zhǔn) 中甚至占用了一半以上的編碼時間。在視頻壓縮編碼中,運(yùn)動估計作為減少視頻序列時間 冗余度的有效手段,其運(yùn)算效率對整個編碼系統(tǒng)的性能有著重大影響。運(yùn)動估計算法一般 有像素遞歸法和塊匹配法兩種,其中塊匹配法是現(xiàn)在最常用的方法。塊匹配法中精度最高 運(yùn)算復(fù)雜度也最大的是全搜索(Full Search,F(xiàn)S)算法。為加快搜索速度人們提出了許多 快速算法,以損失一定的搜索精度為代價來降低運(yùn)算復(fù)雜度,如三步搜索法(Three Step Search,TSS)、菱形搜索法(Diamond Search,DS)、六邊形搜索法(Hexagon-based Search, HEXBS)等。
[0004] 然而,隨著分辨率的不斷提高,運(yùn)動估計的準(zhǔn)確性與高效性越來越受到重視。現(xiàn)有 的運(yùn)動估計方法要么速度快但不適合快速運(yùn)動的場景;要么性能好但設(shè)計得很復(fù)雜,搜索 速度慢。
【發(fā)明內(nèi)容】
[0005] 本申請?zhí)峁┝艘环N自適應(yīng)運(yùn)動估計方法和模塊,能夠在不影響運(yùn)動估計準(zhǔn)確性的 情況下,盡可能提高運(yùn)動估計的搜索速度。
[0006] 根據(jù)本申請的第一方面,本申請?zhí)峁┝艘环N自適應(yīng)運(yùn)動估計方法,包括:
[0007] 將待編碼的視頻幀劃分宏塊;
[0008] 依次選擇視頻幀中的圖像塊作為當(dāng)前圖像塊;
[0009] 判斷當(dāng)前圖像塊的運(yùn)動強(qiáng)度,并根據(jù)當(dāng)前圖像塊的運(yùn)動強(qiáng)度自適應(yīng)選擇用于對當(dāng) 前圖像塊進(jìn)行運(yùn)動估計的運(yùn)動估計方法;所述運(yùn)動強(qiáng)度用于表征視頻圖像幀中物體的運(yùn)動 幅度和/或運(yùn)動頻率;
[0010] 根據(jù)所選擇的運(yùn)動估計方法對當(dāng)前圖像塊進(jìn)行運(yùn)動估計。
[0011] 在某些實施例中,判斷當(dāng)前圖像塊的運(yùn)動強(qiáng)度是否滿足預(yù)設(shè)條件,如果不滿足,判 斷為當(dāng)前圖像塊的運(yùn)動強(qiáng)度高,則選擇第一運(yùn)動估計方法;如果滿足,判斷為當(dāng)前圖像塊的 運(yùn)動強(qiáng)度低,則選擇第二運(yùn)動估計方法;所述第二運(yùn)動估計方法比第一運(yùn)動估計方法的搜 索速度快。
[0012] 在某些實施例中,根據(jù)當(dāng)前圖像塊及其相鄰已編碼圖像塊的運(yùn)動信息判斷當(dāng)前圖 像塊的運(yùn)動強(qiáng)度。
[0013] 在某些實施例中,根據(jù)當(dāng)前圖像塊的預(yù)測運(yùn)動矢量和相鄰已編碼圖像塊的運(yùn)動矢 量差判斷當(dāng)前圖像塊的運(yùn)動強(qiáng)度。
[0014] 在某些實施例中,所述預(yù)設(shè)條件為:
[0016] 其中,THl和TH2分別為兩個預(yù)設(shè)的門限值,f為矢量運(yùn)算函數(shù),PMV為當(dāng)前圖像塊 的預(yù)測運(yùn)動矢量,MVD為當(dāng)前圖像塊的相鄰已編碼圖像塊的運(yùn)動矢量差。
[0017] 根據(jù)本申請的第二方面,本申請?zhí)峁┝艘环N自適應(yīng)運(yùn)動估計模塊,包括:
[0018] 宏塊劃分單元,用于將待編碼的視頻幀劃分宏塊;
[0019] 宏塊選擇單元,用于依次選擇視頻幀中的圖像塊作為當(dāng)前圖像塊;
[0020] 運(yùn)動強(qiáng)度判斷單元,用于判斷當(dāng)前圖像塊的運(yùn)動強(qiáng)度,并根據(jù)當(dāng)前圖像塊的運(yùn)動 強(qiáng)度自適應(yīng)選擇用于對當(dāng)前圖像塊進(jìn)行運(yùn)動估計的運(yùn)動估計方法;所述運(yùn)動強(qiáng)度用于表征 視頻圖像幀中物體的運(yùn)動幅度和/或運(yùn)動頻率;
[0021] 運(yùn)動估計單元,根據(jù)運(yùn)動強(qiáng)度判斷單元所選擇的運(yùn)動估計方法對當(dāng)前圖像塊進(jìn)行 運(yùn)動估計。
[0022] 在某些實施例中,所述運(yùn)動強(qiáng)度判斷單元用于判斷當(dāng)前圖像塊的運(yùn)動強(qiáng)度是否滿 足預(yù)設(shè)條件,如果不滿足,判斷為當(dāng)前圖像塊的運(yùn)動強(qiáng)度高,則選擇第一運(yùn)動估計方法;如 果滿足,判斷為當(dāng)前圖像塊的運(yùn)動強(qiáng)度低,則選擇第二運(yùn)動估計方法;所述第二運(yùn)動估計方 法比第一運(yùn)動估計方法的搜索速度快。
[0023] 在某些實施例中,運(yùn)動強(qiáng)度判斷單元用于根據(jù)當(dāng)前圖像塊及其相鄰已編碼圖像塊 的運(yùn)動信息判斷當(dāng)前圖像塊的運(yùn)動強(qiáng)度。
[0024] 在某些實施例中,運(yùn)動強(qiáng)度判斷單元用于根據(jù)當(dāng)前圖像塊的預(yù)測運(yùn)動矢量和相鄰 已編碼圖像塊的運(yùn)動矢量差判斷當(dāng)前圖像塊的運(yùn)動強(qiáng)度。
[0025] 在某些實施例中,所述預(yù)設(shè)條件為:
[0027] 其中,THl和TH2分別為兩個預(yù)設(shè)的門限值,f為矢量運(yùn)算函數(shù),PMV為當(dāng)前圖像塊 的預(yù)測運(yùn)動矢量,MVD為當(dāng)前圖像塊的相鄰已編碼圖像塊的運(yùn)動矢量差。
[0028] 本申請?zhí)峁┑淖赃m應(yīng)運(yùn)動估計方法和模塊,在對圖像塊進(jìn)行運(yùn)動估計之前,先判 斷圖像塊的運(yùn)動強(qiáng)度,根據(jù)當(dāng)前圖像塊的運(yùn)動強(qiáng)度自適應(yīng)選擇用于對當(dāng)前圖像塊進(jìn)行運(yùn)動 估計的運(yùn)動估計方法,以提高視頻編解碼中運(yùn)動估計的效率。
【附圖說明】
[0029] 圖1為視頻編碼中劃分宏塊及當(dāng)前圖像塊的相鄰已編碼圖像塊的選擇示意圖;
[0030] 圖2為一種視頻編碼標(biāo)準(zhǔn)米用的編碼框圖;
[0031] 圖3為本申請一種實施例中自適應(yīng)運(yùn)動估計模塊的示意圖;
[0032] 圖4為本申請一種實施例中自適應(yīng)運(yùn)動估計方法的流程不意圖;
[0033] 圖5為本申請一種實施例中當(dāng)前圖像塊的相鄰已編碼圖像塊的選擇示意圖。
【具體實施方式】
[0034] 在目前主流視頻編解碼標(biāo)準(zhǔn)(如MPEG4、H. 264/AVC、H. 264/AVS)和相關(guān)視頻處 理應(yīng)用(如超分辨率及幀率上采樣)中,大多數(shù)的運(yùn)動估計方法都按照從上到下從左往右 的掃描順序?qū)ΧS視頻幀中的圖像塊進(jìn)行掃描來搜索對應(yīng)的運(yùn)動矢量。同時,在對每一個 圖像塊進(jìn)行估計時,一般用其左側(cè)和上方區(qū)域中的相鄰塊的運(yùn)動矢量作為空間參考運(yùn)動矢 量,用前一幀對應(yīng)圖像塊右下方的圖像塊的運(yùn)動矢量作為時間參考運(yùn)動矢量,然后采用某 種策略在參考運(yùn)動矢量中選擇最準(zhǔn)確的作為當(dāng)前圖像塊的初始運(yùn)動矢量。運(yùn)用這一種方 法,先估計出的運(yùn)動矢量能夠按照從上到下從左往右的掃描順序從左上的圖像塊傳遞到右 下角的圖像塊,起到逐步細(xì)化運(yùn)動矢量的目的。
[0035] 請參考圖1,例如將一幀圖像劃分為16*16像素的宏塊(圖像塊),每個宏塊具有 固定大小,每一宏塊的大小為16*16像素,對圖像的處理順序為,先從左到右處理第一行的 圖像塊,然后再依次處理第二行,直到整幀圖像被處理完畢。
[0036] 假設(shè)圖像塊P為待編碼的當(dāng)前圖像塊,在某些實施例中,在對當(dāng)前圖像塊P進(jìn)行處 理時,以其參考圖像塊的運(yùn)動矢量作為參考值來計算當(dāng)前圖像塊的運(yùn)動矢量。由于幀圖像 中的每一個圖像塊與其相鄰已編碼圖像塊具有最高的相似性,因此,一般的,參考圖像塊采 用當(dāng)前圖像塊的相鄰已編碼圖像塊。如圖1中,當(dāng)前圖像塊P的參考圖像塊為A、B、C、D。
[0037] 在某些實施例中,參考圖像塊在選擇時,也可以選擇當(dāng)前圖像塊相鄰的上塊、右上 塊和左塊圖像塊作為參考圖像塊,例如圖1中當(dāng)前圖像塊P的參考圖像塊為A、B、C ;如果當(dāng) 前圖像塊的右上塊圖像塊不存在(當(dāng)前圖像塊位于右邊第一列時)或者圖像塊C不具有運(yùn) 動矢量時,則用當(dāng)前圖像塊的左上塊圖像塊來代替,例如圖1中當(dāng)前圖像塊P的參考圖像塊 選為A、B、D。
[0038] 所以,在具體實施例中,當(dāng)前圖像塊的相鄰圖像塊可以根據(jù)實際需求進(jìn)行定義。
[0039] 請參考圖2,為當(dāng)前主流的視頻編碼標(biāo)準(zhǔn)采用的編碼框圖。對輸入的幀圖像劃分成 若干宏塊(圖像塊),然后對當(dāng)前圖像塊進(jìn)行幀內(nèi)預(yù)測(幀內(nèi)編碼)或運(yùn)動補(bǔ)償(幀間編 碼),通過模式?jīng)Q策過程選擇編碼代價最小的編碼模式,從而得到當(dāng)前圖像塊的預(yù)測塊,當(dāng) 前圖像塊與預(yù)測塊相差得到殘差值,并對殘差進(jìn)行變換、量化、掃描和熵編碼,形成碼流序 列輸出。圖2所示編碼框圖為本領(lǐng)域技術(shù)人員所熟知,此處不對其進(jìn)行細(xì)述。
[0040] 為解決現(xiàn)有技術(shù)存在的缺陷,本申請的發(fā)明構(gòu)思在于:提出一種基于上下文的自 適應(yīng)運(yùn)動估計方法,通過利用當(dāng)前圖像塊以及其相鄰圖像塊的運(yùn)動信息來判斷當(dāng)前圖像塊 的運(yùn)動強(qiáng)度,如果運(yùn)動強(qiáng)度低,就可以采用搜索速度快的運(yùn)動估計方法;否則,采用較復(fù)雜 的運(yùn)動方法來提高準(zhǔn)確性。常用的運(yùn)動信息有圖像塊的預(yù)測運(yùn)動矢量、運(yùn)動矢量、運(yùn)動矢量 差等。
[0041] 下面通過【具體實施方式】結(jié)合附圖對本申請作進(jìn)一步詳細(xì)說明。
[0042] 本實施例提供了一種用于視頻編碼的自適應(yīng)運(yùn)動估計方法和模塊。
[0043] 請參考圖3,自適應(yīng)運(yùn)動估計模塊包括宏塊劃分單元101、宏塊選擇單元104、運(yùn)動 強(qiáng)度判斷單元102和運(yùn)動估計單元103。
[0044] 請參考圖4,自適應(yīng)運(yùn)動估計方法包括下面步驟:
[0045] 步驟I. 1:宏塊劃分單元101將待編碼的視頻幀劃分宏塊。
[0046] 步驟I. 2 :宏塊選擇單元104依次選擇視頻幀中的圖像塊作為當(dāng)前圖像塊,以進(jìn)行 處理。本實施例中,圖像塊的處理順序可以按照從左往右、從上到下的方式。
[0047] 在步驟1.2后,運(yùn)動強(qiáng)度判斷單元102便對當(dāng)前圖像塊的運(yùn)動強(qiáng)度進(jìn)行判斷,本實 施例中,判斷當(dāng)前圖像塊的運(yùn)動強(qiáng)度是否滿足預(yù)設(shè)條件,如果不滿足,判斷為當(dāng)前圖像塊的 運(yùn)動強(qiáng)度高,則選擇第一運(yùn)動估計方法;如果滿足,判斷為當(dāng)前圖像塊的運(yùn)動強(qiáng)度低,則選 擇第二運(yùn)動估計方法。運(yùn)動強(qiáng)度用于表征視頻圖像幀中物體的運(yùn)動幅度和/或運(yùn)動頻率。 例如在視頻圖像幀中,物體運(yùn)動幅度和