專利名稱:運動補償方法及可執(zhí)行運動補償?shù)募呻娐返闹谱鞣椒?br>
技術領域:
本發(fā)明是關于視頻編碼,特別是關于一種運動補償(motion compensation)方 法及可執(zhí)行運動補償?shù)募呻娐贰?br>
背景技術:
基于塊的碎見頻編碼標準,如運動圖4象專家組(Motion Picture Experts Group, MPEG) 1/2/4與H.26x標準,通過減少一見頻幀之間的時間冗余(temporal redundancy)及減少視頻幀內的空間冗余來達到lt據(jù)壓縮的目的。符合上述標準
每一視頻幀包含一個像素陣列(pixel array)。 一個宏塊(macro block)是 一組《象素,通常為16x16的4象素陣列。16x16的宏塊可進一步分割(partition) 為符合某些視頻編碼標準的16x8、 8x16、 8x8、 8x4、 4x8或4x4的塊?;诤?塊來估計視頻幀之間的圖像移動是常用的手段,即所謂運動估計, 一般包括比 較當前幀的宏塊與其它參照幀的多個宏塊的相似性。當前視頻幀的宏塊與最相 似的參照幀的宏塊之間的空間位移(displacement)即為運動向量(Motion Vector, MV)。通過插入?yún)⒄諑南袼兀\動向量的估計值可控制在一個像素片段 (fraction)內。
運動補償涉及視頻幀重建(reconstruction)的相反過程,視頻幀重建是依據(jù) 視頻解碼器中的參照幀與運動向量來進行。RV9 (Real Video 9)實際視頻規(guī)格 包括用于運動補償?shù)倪\動向量裁剪(clipping)方案。圖la與圖lb是在實際視 頻規(guī)格RV9格式下的運動向量裁剪方案的實施例的示意圖,分別顯示宏塊中一 個4x4色度分量(chrominance component)的視J貞塊的運動向量在右邊界(圖la 的10a)及下邊界(圖lb的10b)裁剪的情況。RV9規(guī)格提供兩種運動向量裁剪方 案,包含無限制運動向量(Unrestricted Motion Vector, UMV)裁剪方案及4x4的視 頻塊運動向量裁剪方案。UMV裁剪方案將邊界^f象素(border pixel)向四個方向無 限延伸,而4x4的視頻塊運動向量裁剪方案僅將像素在視頻幀的幀邊界周圍有限延伸。在4x4的視頻塊運動向量裁剪方案中,當色度分量的子塊位于幀邊界 之外時,RV9規(guī)格會調整運動向量,使子塊位于右邊界(圖la)與下邊界(圖lb) 之外小于一個像素的位置,導致重建的圖像不夠準確。
因此,需要一種用于運動解碼器的運動補償方法來確定準確的運動向量, 以用于在實際視頻應用中執(zhí)行幀邊界附近的運動補償。
發(fā)明內容
本發(fā)明提供了運動(motion)補償方法及可執(zhí)行運動補償?shù)募呻娐罚糜趲?邊界附近的運動補償,解決了現(xiàn)有技術中重建(reconstruction)圖像不準確的技 術問題。
依據(jù)本發(fā)明的實施例,提供一種運動補償方法,包含有接收具有預設塊 尺寸(block dimension)的視頻塊;當一見頻塊位于一見頻幀的幀邊界時,將一見頻塊分 割(partition)為多個子塊,子塊具有小于預設塊尺寸的子塊尺寸;以及對子塊執(zhí) 行運動補償。
依據(jù)本發(fā)明的另一實施例,揭露一種運動補償方法,包含有接收控制信 號,以選擇無限制運動向量(Unrestricted Motion Vector, UMV)模式與分離受限運 動向量裁剪模式(split restricted MV clipping mode)其中之一;接收一見頻塊;在 UMV模式下基于視頻塊執(zhí)行運動補償;以及將視頻塊劃分(split)為兩個運動向 量(MotionVector,MV)裁剪子塊,當視頻塊位于^L頻幀的幀邊界時,將其中一個 運動向量裁剪子塊向幀邊界的左方或上方移位,并且在分離受限運動向量裁剪 模式下對移位后的運動向量裁剪子塊及另一運動向量裁剪子塊執(zhí)行運動補償。
依據(jù)本發(fā)明的另一實施例,提供一種可執(zhí)行運動補償?shù)募呻娐?,包含?分割單元,用于接收具有預設塊尺寸的視頻塊,并在視頻塊位于視頻幀的幀邊 界時,將視頻塊分割為具有小于預設塊尺寸的子塊尺寸的多個子塊;以及運動 補償單元,耦合至分割單元,用于對子塊執(zhí)行運動補償。
依據(jù)本發(fā)明的另一實施例,提供一種可執(zhí)行運動補償?shù)募呻娐?,包含?控制器,用于產生控制信號,以選擇UMV模式與分離受限運動向量裁剪模式其 中之一;無限制運動向量單元,耦合至控制器,用于接收視頻塊,在選擇了 UMV 模式時對視頻塊執(zhí)行運動補償;以及運動向量裁剪單元,耦合至控制器,當選 擇分離受限運動向量裁剪模式時,運動向量裁剪單元將視頻塊劃分為兩個運動 向量裁剪子塊,當視頻塊位于視頻幀的幀邊界時,運動向量裁剪單元將其中一個運動向量裁剪子塊向幀邊界的左方或上方移位,并對移位后的運動向量裁剪 子塊及另一運動向量裁剪子塊執(zhí)行運動補償。
本發(fā)明的運動補償方法及可執(zhí)行運動補償?shù)募呻娐放c現(xiàn)有技術相比較,
其有益效果包括通過將視頻塊分割為多個子塊,提高了用于運動估計與補償 的邊界塊的編碼效率,從而改善了圖像質量。
圖la與圖lb是在實際視頻規(guī)格RV9格式下的運動向量裁剪操作的實施例 的示意圖。
圖2是依據(jù)本發(fā)明實施例的視頻解碼器的方框圖。
圖3是結合于圖2的視頻解碼器的無限制運動向量方案的實施例的示意圖。 圖4a至圖4c是結合于圖2的視頻解碼器的運動向量裁剪方案的實施例的示 意圖。
圖5是圖2中的運動向量裁剪單元的實施例的方框圖。 圖6是依據(jù)本發(fā)明實施例的運動補償方案的示意圖。
具體實施例方式
在本說明書以及權利要求當中使用了某些詞匯來指稱特定的元件,本領域 的技術人員應可理解,硬件制造商可能會用不同的名詞來稱呼同一個元件,本 說明書及權利要求并不以名稱的差異作為區(qū)分元件的方式,而是以元件在功能 上的差異作為區(qū)分的準則,在通篇說明書及權利要求書當中所提及的"包含有" 是開放式的用語,故應解釋成"包含有但不限定于",此外,"耦合,, 一詞在此 包含任何直接及間接的電氣連接手段,因此,若文中描述第一裝置耦合于第二 裝置,則代表第一裝置可以直接電氣連接于第二裝置,或通過其它裝置或連接 手段間接地電氣連接至第二裝置。
下文描述了實現(xiàn)本發(fā)明的實施例,僅用于闡釋基本原理,并非用于限定本 發(fā)明。閱讀了下文對于附圖所示實施例的詳細描述之后,本發(fā)明對所屬技術領 域的技術人員而言將顯而易見。
圖2是依據(jù)本發(fā)明實施例的視頻解碼器的方框圖。視頻解碼器2包含控制 器20、無限制運動向量(Unrestricted Motion Vector, UMV)單元22以及運動 向量裁剪(Motion Vector clipping)單元24。控制器20耦合于無限制運動向量單元22及運動向量裁剪單元24。
視頻解碼器2可在正常UMV模式下以及分離受限運動向量裁剪模式(split restricted MV clipping mode)下執(zhí)行運動補償??刂破?0接收視頻塊Db以產生控 制信號Dc,以在UMV模式與分離受限運動向量裁剪模式中選擇一個。接著, 無限制運動向量單元22與運動向量裁剪單元24獲取控制信號Dc,使得根據(jù)運 動向量模式只能激活其中的一個。當選擇UMV模式時,無限制運動向量單元 22接收視頻塊Db并對其進行運動補償以產生重建(reconstruction)的視頻塊 Dc。mpl。運動向量裁剪單元24將視頻塊Db劃分為兩個運動向量裁剪子塊,當視 頻塊位于視頻幀的幀邊界時,將其中一個運動向量裁剪子塊向幀邊界的左方或 上方移位,并對移位后的運動向量裁剪子塊及其它運動向量裁剪子塊執(zhí)行運動 補償以產生重建的視頻塊De。mp2。
控制器20基于視頻塊Db的數(shù)據(jù)類型確定控制信號De。舉例來說,當視頻 塊Db為MPEG數(shù)據(jù)時,控制器20產生控制信號Dc以啟動UMV模式;當視頻 塊Db為RV9(Real Video 9)數(shù)據(jù)時,控制器20則啟動分離受限運動向量裁剪模 式。視頻塊Db為通常包含兩個宏塊分割(macro block partition)的宏塊(macro block),宏塊分割包括亮度(luminance)與色度(chrominance)分量。某些實施例中, 亮度分量的塊大小為色度分量塊大小的兩倍。舉例來說, 一個16x16的宏塊包 含兩個16x8或8x16的宏塊分割,每一宏塊分割包含8x8亮度分量與4x4色度 分量。
圖3是結合于圖2的視頻解碼器的無限制運動向量方案的實施例的示意圖。 無限制運動向量單元22執(zhí)行圖3所示的普通UMV方案。其中,視頻解碼器2 接收多個運動向量,對每一宏塊分割執(zhí)行運動補償,以獲得當前塊分割。圖3 顯示在上、下、左、右四個方向上進行延伸的參照幀320的示意圖,其中延伸 是通過重復或填充(padding)邊界像素至延伸區(qū)域322來實現(xiàn)。視頻編碼器(未 顯示于圖中)估計當前塊32與參照塊30之間的位移,以作為運動向量,其中, 當前塊32部分位于參照幀320的幀邊R外。舉例來說,視頻編碼器計算當前 塊32與搜尋窗324中候選的每一參照塊之間的誤差,確定最小誤差作為匹配最 佳的塊(如參照塊30),并估計當前塊32與參照塊之間的位移,作為傳送給視 頻解碼器2的運動向量。當前塊32與每一候選參照塊之間的誤差可通過當前塊 32的每一像素與每一候選參照塊之間的絕對差值的和(Sum of Absolute Difference, SAD)計算出來。無限制運動向量單元22 4妄收運動向量,將指向幀邊界之外的運動向量加到參照塊,以重建近似的當前塊。舉例來說,運動向量
(MVx,MVy)可為(3, -3),指示當前塊32與參照塊30的水平位移為3像素, 垂直位移為-3像素。UMV預測技術提高了用于運動估計與補償?shù)倪吔鐗K的編碼 效率,從而改善了圖像質量。
當接收到幀邊界上的色度分量時,運動向量裁剪單元24執(zhí)行符合實際視頻 規(guī)格RV9的運動向量裁剪方案,如圖4a至圖4c所示。圖4a至圖4c是結合于 圖2的視頻解碼器的運動向量裁剪方案的實施例的示意圖。運動向量裁剪單元 24接收8x4色度分量的視頻塊42 (圖4a所示),將其劃分為兩個4x4運動向 量裁剪子塊42a與42b (圖4b所示),將位于幀邊界之外的4x4運動向量裁剪 子塊42b向左或向上移位預設距離(圖4c所示),并對運動向量裁剪子塊42a 與42b執(zhí)行運動補償。幀邊界上的運動向量裁剪子塊可向上與向左移位至不超 出視頻幀之外三個像素的位置。本實施例中,運動向量裁剪方案實施于色度分 量,方案執(zhí)行以下步驟
對每一視頻塊,計算視頻塊的多個運動向量;
對每一運動向量裁剪子塊,計算其移位后的邊界(如向左移位后的右邊界或 向上移位后的下邊界)與視頻塊的寬度或高度的差值,并將差值與反向運動向 量作比較,依據(jù)其中的較小者對運動向量裁剪子塊進行運動補償,其中運動向 量裁剪子塊為運動向量裁剪單元。
對運動向量裁剪子塊的操作可表示為下列函it:
TRUNCATE—LO(mvxF, (crWi她-xRefPos - 3) * INTERP—FACTOR - 1, lo); TRUNCATE—LO(mvyF, (crHeight - yRefPos - 3) * INTERP FACTOR - 1, lo);
}
TRUNCATE一LO(val, lim, tmp) (tmp) = (lim); if((tmp)<(val)) (val)=(加p); 其中,mvxF為沿水平方向的反向運動向量; mvyF為沿垂直方向的反向運動向量; crWidth為^L頻塊的寬度; crHeight為岸見頻塊的高度;xRefPos為運動向量裁剪子塊的最左端; yRefPos為運動向量裁剪子塊的最上端; INTERP—FACTOR為內插分數(shù)因子;以及 lo為臨時變量。
圖5是圖2中的運動向量裁剪單元的實施例的方框圖。運動向量裁剪單元5 包含分割(partition)單元50與耦合于分割單元50的運動補償單元52。分割單 元50接收具有預設塊尺寸(block dimension)的視頻塊Db,當視頻塊Db位于視 頻幀的幀邊界時,將其分割為多個子塊Dsub,這些子塊具有小于預,沒塊尺寸的子 塊尺寸。舉例來說,預設塊尺寸為8x4像素,則子塊尺寸可為4x4、 2x2、 2x4 或4x2像素。運動補償單元52接著對子塊Dsub執(zhí)行運動補償以產生重建的視頻 塊De。mp。再如,視頻塊Db為具有預設塊尺寸8x4的色度分量,當色度分量覆蓋 到視頻幀邊界時,分割單元50分割色度分量以提供兩個4x4的子塊,運動補償 單元52對所纟是供的子塊4丸行運動補償,因而其運動向量不發(fā)生改變。
圖6是依據(jù)本發(fā)明實施例的運動補償方案的示意圖,請一并參照圖5的運 動向量裁剪單元5。
當視頻塊Db位于視頻幀66內部時,如圖6所示視頻塊60,塊分割尚未分 離,仍保持完整。當視頻塊Db(如視頻塊62)靠近視頻幀邊界時,分割單元50將 視頻塊62的位置與預設邊界閾值TH作比較,若視頻塊62的位置超出預設邊界 閾值TH,將視頻塊62分為子塊620與622。運動補償單元52則對子塊620與 622執(zhí)行運動補償以產生重建的當前塊。當視頻塊Db(如視頻塊64)位于右邊界 或下邊界上時,分割單元50將其分為子塊640與642,從而使兩個子塊的運動 向量保持相同。運動補償單元52對子塊640與642執(zhí)行運動補償以產生重建的 當前塊。分割單元50將視頻塊Db分為兩個運動向量裁剪子塊(未顯示于圖中), 當運動向量裁剪子塊位于視頻幀的右邊界或下邊界時,調整運動向量使其向左 或向上移位,并在運動向量調整之后對其進行分割,從而可確定浮見頻塊Db位于 右邊界還是下邊界。
所屬技術領域的技術人員可輕易完成的均等改變或潤飾均屬于本發(fā)明所主 張的范圍,本發(fā)明的權利范圍應以權利要求書所限定的范圍為準。
權利要求
1. 一種運動補償方法,包含有接收具有預設的塊尺寸的視頻塊;當所述視頻塊位于視頻幀的幀邊界時,將所述視頻塊分割為多個子塊,所述子塊具有小于所述預設的塊尺寸的子塊尺寸;以及對所述子塊執(zhí)行運動補償。
2. 如權利要求1所述的運動補償方法,其特征在于,所述分割步驟包含有 當所述視頻塊位于所述視頻幀的右邊界或下邊界時,將所述視頻塊分割為所述 子塊。
3. 如權利要求1所述的運動補償方法,其特征在于,更包含 將所述^L頻塊劃分為兩個運動向量裁剪子塊;當所述視頻塊位于所述視頻幀的所述幀邊界時,將其中的一個運動向量裁 剪子塊移位至不超出視頻幀之外三個像素的位置;以及對所述移位后的運動向量裁剪子塊與另一運動向量裁剪子塊執(zhí)行運動補 償,以產生兩個運動向量;其中,所述分割步驟包括當由所述運動向量裁剪子塊產生的所述運動向 量不同時,分割所述視頻塊。
4. 如權利要求1所述的運動補償方法,其特征在于,所述分割步驟包含 當所述視頻塊的位置超出所述^L頻幀的預設邊界閾值時,分割所述視頻塊。
5.如權利要求1所述的運動補償方法,其特征在于,所述視頻塊為色度視 頻塊。
6. —種運動補償方法,包含有接收控制信號,以選擇無限制運動向量模式與分離受限運動向量裁剪模式 其中之一;接收纟見頻塊;在所述無限制運動向量模式下對所述視頻塊執(zhí)行運動補償;以及 將所述視頻塊劃分為兩個運動向量裁剪子塊,當所述視頻塊位于視頻幀的 幀邊界時,將其中一個運動向量裁剪子塊向所述幀邊界的左方或上方移位,并 且在所述分離受限運動向量裁剪模式下對所述移位后的運動向量裁剪子塊及另一運動向量裁剪子塊執(zhí)行運動補償。
7. 如權利要求6所述的運動補償方法,其特征在于,在所述分離受限運動 向量裁剪模式下的所述劃分操作、所述移位操作以及所述執(zhí)行運動補償?shù)牟僮?包含對每一視頻塊,計算所述視頻塊的多個運動向量;對每一運動向量裁剪子塊,計算其移位后的邊界與所述視頻塊的寬度或高 度的差值,并將所述差值與反向運動向量作比較,依據(jù)其中的較小者對所述運 動向量裁剪子塊進行運動補償,其中所述運動向量裁剪子塊為運動向量裁剪單元。
8. 如權利要求6所述的運動補償方法,其特征在于,更包含基于所述視 頻塊的lt據(jù)類型確定所述控制信號。
9. 如權利要求6所述的運動補償方法,其特征在于,所述視頻塊具有預設 塊尺寸,所述運動補償方法更包含當所述視頻塊位于所述視頻幀的所述幀邊 界時,將所述視頻塊分割為多個子塊,所述子塊具有小于所述預設塊尺寸的子 塊尺寸,并在所述分離受限運動向量裁剪模式下對所述子塊執(zhí)行運動補償。
10. 如權利要求9所述的運動補償方法,其特征在于,所述分割步驟包含 當所述視頻塊位于所述視頻幀的右邊界或下邊界時,將所述視頻塊分割為所述 子塊。
11. 如權利要求9所述的運動補償方法,其特征在于,其中 對所述移位后的運動向量裁剪子塊及另一運動向量裁剪子塊執(zhí)行運動補償?shù)牟襟E包含對所述移位后的運動向量裁剪子塊與另 一運動向量裁剪子塊執(zhí)行 運動補償,以產生兩個運動向量;以及所述分割步驟包含當由所述運動向量裁剪子塊產生的所述運動向量不同 時,分割所述視頻塊。
12. 如權利要求9所述的運動補償方法,其特征在于,所述分割步驟包含 當所述視頻塊的位置超出所述視頻幀的預設邊界閾值時,分割所述視頻塊。
13. —種可執(zhí)行運動補償?shù)募呻娐?,包含有分割單元,用于接收具有預設塊尺寸的視頻塊,并在所述視頻塊位于視頻 幀的幀邊界時,將所述視頻塊分割為多個子塊,所述子塊具有小于所述預設塊 尺寸的子塊尺寸;以及運動補償單元,耦合至所述分割單元,用于對所述子塊執(zhí)行運動補償。
14. 如權利要求13所述的可執(zhí)行運動補償?shù)募呻娐罚涮卣髟谟?,當?述視頻塊位于所述視頻幀的右邊界或下邊界時,所述分割單元將所述視頻塊分 割為所述子塊。
15. 如權利要求13所述的可執(zhí)行運動補償?shù)募呻奮各,其特征在于,更包含運動向量裁剪單元,用于將所述視頻塊劃分為兩個運動向量裁剪子塊,當 所述視頻塊位于所述視頻幀的所述幀邊界時,將其中的一個運動向量裁剪子塊 移位至不超出視頻幀之外三個像素的位置,并且對所述移位后的運動向量裁剪 子塊及另一運動向量裁剪子塊才丸行運動補償,以產生兩個運動向量,其中當由所述運動向量裁剪子塊產生的所述運動向量不同時,所述分割單 元分割所述^L頻塊。
16. 如權利要求13所述的可執(zhí)行運動補償?shù)募呻娐?,其特征在于,當?述視頻塊的位置超出所述視頻幀的預設邊界閾值時,所述分割單元分割所述視 頻塊。
17. 如權利要求13所述的可執(zhí)行運動補償?shù)募呻娐?,其特征在于,所?^見頻塊為色度視頻塊。
18. —種可執(zhí)行運動補償?shù)募呻娐?,包含有控制器,用于產生控制信號,以選擇無限制運動向量模式與分離受限運動向量裁剪模式其中之一;無限制運動向量單元,耦合至所述控制器,用于接收視頻塊,在選擇所述無限制運動向量模式時對所述一見頻塊執(zhí)行運動補償;以及運動向量裁剪單元,耦合至所述控制器,在所述分離受限運動向量裁剪模 式下,所述運動向量裁剪單元將所述視頻塊劃分為兩個運動向量裁剪子塊,當 所述視頻塊位于視頻幀的幀邊界時,所述運動向量裁剪單元將其中一個運動向 量裁剪子塊向所述幀邊界的左方或上方移位,并對所述移位后的運動向量裁剪 子塊及另 一運動向量裁剪子塊執(zhí)行運動補償。
19. 如權利要求18所述的可執(zhí)行運動補償?shù)募呻娐?,其特征在于,所?運動向量裁剪單元依據(jù)如下步驟運作對每一視頻塊,計算所述一見頻塊的多個運動向量;對每一運動向量裁剪子塊,計算其移位后的邊界與所述視頻塊的寬度或高 度的差值,并將所述差值與反向運動向量作比較,依據(jù)其中的較小者對所述運動向量裁剪子塊進行運動補償,其中所述運動向量裁剪子塊為所述運動向量裁剪單元。
20. 如權利要求18所述的可執(zhí)行運動補償?shù)募呻娐?,其特征在于,所?控制器更基于所述視頻塊的數(shù)據(jù)類型確定所述控制信號。
21. 如權利要求18所述的可執(zhí)行運動補償?shù)募呻娐?,其特征在于,所?視頻塊具有預設塊尺寸,所述集成電路更包含耦合至所述控制器的分割單元, 在所述視頻塊位于所述視頻幀的所述幀邊界時,將所述視頻塊分割為多個子塊, 所述子塊具有小于所述預設塊尺寸的子塊尺寸,并在所述分離受限運動向量裁 剪模式下對所述子塊執(zhí)行運動補償。
22. 如權利要求21所述的可執(zhí)行運動補償?shù)募呻娐罚涮卣髟谟?,當?述視頻塊位于所述視頻幀的右邊界或下邊界時,所述分割單元將所述-見頻塊分 割為所述子塊。
23. 如權利要求21所述的可執(zhí)行運動補償?shù)募呻娐?,其特征在于,其?所述運動向量裁剪單元對所述移位后的運動向量裁剪子塊與另一運動向量裁剪子塊執(zhí)行運動補償?shù)牟襟E包含對所述移位后的運動向量裁剪子塊與另一 運動向量裁剪子塊執(zhí)行運動補償,以產生兩個運動向量;以及當由所述運動向量裁剪子塊產生的所述運動向量不同時,所述分割單元分 割所述^L頻塊。
24. 如權利要求21所述的可執(zhí)行運動補償?shù)募呻娐?,其特征在于,當?述視頻塊的位置超出所述視頻幀的預設邊界閾值時,所述分割單元分割所述視 頻塊。
全文摘要
本發(fā)明揭露一種運動補償方法及可執(zhí)行運動補償?shù)募呻娐???蓤?zhí)行運動補償?shù)募呻娐钒蟹指顔卧?,用于接收具有預設塊尺寸的視頻塊,并在視頻塊位于視頻幀的幀邊界時,將視頻塊分割為多個子塊,子塊的尺寸小于預設塊尺寸;以及運動補償單元,耦合至分割單元,用于對多個子塊執(zhí)行運動補償。本發(fā)明的運動補償方法及可執(zhí)行運動補償?shù)募呻娐罚ㄟ^將視頻塊分割為多個子塊,提高了用于運動估計與補償?shù)倪吔鐗K的編碼效率,從而改善了圖像質量。
文檔編號H04N7/26GK101448154SQ20081014660
公開日2009年6月3日 申請日期2008年9月2日 優(yōu)先權日2007年11月27日
發(fā)明者朱啟誠, 王智鳴, 陳俊嘉 申請人:聯(lián)發(fā)科技股份有限公司