專利名稱:基于時空域相關性運動矢量預測的視頻編碼方法
技術領域:
本發明涉及計算機數字視頻編碼技術領域,針對的是視頻編碼系統,如HDTV、HD-DVD、流媒體服務器等應用。
在基于運動補償/DCT的混合編碼方法中,運動估計得到運動矢量需要編碼,并同紋理信息一起形成壓縮碼流,以便在解碼時能正確重建視頻圖像。據統計,在整個輸出碼流中運動矢量輸出的碼流通常可以占到10~40%左右。運動矢量編碼通常包括運動矢量的預測和熵編碼兩部分。運動矢量通過一定方法預測后,可以有效降低熵,從而提高其編碼效率。另外,在采用基于H.264的編碼框架時,運動矢量的預測還會影響到運動矢量和參考幀的最終選擇。因此運動矢量預測對提高視頻編碼效率具有重要意義。
在現有的視頻編碼方法中,如H.264、H.263和MPEG-4等,運動矢量編碼都采用了中值預測的方法。即如
圖1所示,E表示當前編碼宏塊,A、B、C和D分別表示其在空間域上左側、上側、右上側和左上側相鄰宏塊,宏塊E運動矢量的預測因子取A、B、C三個宏塊運動矢量的中值。應該說,中值預測方法是一種簡單、高效運動矢量預測方法,其主要缺點在于(1)沒有利用運動矢量在時間域上的相關性。(2)對于運動復雜的視頻序列其編碼效率通常會大為降低。
本發明的技術方案參見圖3-圖6。這種基于時空域相關性運動矢量預測的視頻編碼方法,是由攝像機(1),將目標物狀態轉換成視頻信號置于采集卡(2)中;采集卡將視頻信號轉換成數字視頻序列,并存放在視頻緩存中,這些數字視頻序列或是以視頻序列文件形式存放在計算機硬盤中的視頻數據,都被稱為原始視頻序列,作為該系統的輸入用于壓縮;計算機(3)存放原始視頻序列和執行視頻編碼子程序,并生成壓縮后的碼流文件,本發明的特征在于計算機首先從采集卡的視頻存儲器或存放在計算機硬盤上的視頻序列文件中讀一幀視頻數據到計算機的緩沖區中,通過執行視頻編碼子程序對該幀進行編碼;計算機讀取視頻數據的時間間隔通常為1/30秒。
視頻編碼子程序采用了基于運動補償/DCT的混合編碼方法,除運動矢量預測子程序這一部分外,采用了國際視頻編碼標準H.264 JM6.0的編碼框架。
視頻編碼子程序在視頻編碼時,一個輸入的視頻序列幀被分為16×16的宏塊,編碼過程是以宏塊為單位進行的;計算機開始執行視頻編碼子程序后,首先對編碼進行初始化,這些初始化工作主要包括對編碼參數和緩沖區的設置。
然后計算機按照從上到下、從左到右的次序先對第一個宏塊做運動估計與補償;運動估計與補償之后得到該宏塊的運動矢量和殘差圖像,對其中的運動矢量,首先執行運動矢量子程序進行預測,然后對預測差值進行上下文自適應的變長編碼(CAVLC);而對殘差圖像則首先進行DCT變換,然后對DCT系數進行量化和CAVLC編碼;之后輸出該宏塊的壓縮碼流放入計算機的緩沖區中;最后進行解碼、生成相應參考宏塊;該宏塊編碼結束后,對當前編碼幀的所有宏塊循環執行上述編碼過程,完成對一個視頻序列幀的編碼;一幀編碼結束后循環編碼下一幀,至到視頻序列的最后一幀編碼結束,并生成壓縮后的碼流文件,系統執行程序結束。
在上述的視頻編碼子程序中,運動矢量預測子程序中所采用的預測方法,是根據相鄰宏塊間運動相關性的不同,綜合利用了時間和空間域上的相關性對其進行預測編碼的。
其所述的運動矢量預測子程序中,其預測方法如下(1)首先進行相鄰宏塊間運動相關性的判斷;對于圖2所示的宏塊在時間域和空間域上的相鄰關系,設Ei是當前幀i的編碼宏塊,Ai、Bi、Ci、Di、Gi、Hi分別為其左側、上側、右上側、左上側、右側和下側的相鄰宏塊,在前一幀(i-1)對應位置上的宏塊分別表示為Ei-1、Ai-1、Bi-1、Gi-1、Di-1、Gi-1和Hi-1。
這里設B={C1C2C3C4C5}為Ei相鄰宏塊Ai、Bi、Ei-1、Gi-1和Hi-1的運動矢量組成的集合。
(a)如果對于i,i∈[1,5],都滿足|Ci-C3|≤TH則Ei相鄰宏塊間的運動相關性為高。
(b)如果對于i,i∈[1,5],都滿足|Ci-C3|>TH則Ei相鄰宏塊間的運動相關性為低。
(2)根據(1)的判斷結果,當前編碼宏塊的運動矢量的預測方法如下為了利用時間、空間域上的相關性,本發明選取Ai、Bi和Ci的運動矢量作為空間域上的侯選預測因子,Ei-1、Gi-1和Hi-1的運動矢量作為時間域上的侯選預測因子,運動矢量預測的具體算法如下(1)當Ei-1、Gi-1和Hi-1都不存在時,則以Ai、Bi、Ci作為侯選預測因子;(2)當相鄰宏塊間的運動相關性為高時,則選取Ai、Bi和Ei-1為侯選預測因子;(3)當相鄰宏塊間的運動相關性為低時,則選取Ai、Bi、Gi-1和Hi-1為侯選預測因子;(4)當任意一個Ai、Bi、Ci和Di采用幀內編碼時,如果在(i-1)幀與其對應位置宏塊的運動矢量存在,則該宏塊的運動矢量選取在(i-1)幀與其對應位置塊相同的運動矢量和參考幀,否則該塊的運動矢量置為(0,0);(5)如果在Ai、Bi、Ci、Ei-1、Gi-1和Hi-1中存在與Ei具有相同參考幀的宏塊,則預測因子選取該宏塊相同的運動矢量,否則預測因子選取侯選預測因子的中值;預測因子即為當前編碼宏塊的運動矢量的預測值;運動矢量在水平和垂直方向上的分量都采用上述預測方法。
依據大量實驗測試結果,我們選取TH=8。
本發明的視頻編碼系統設計了一種結合運動矢量在時間域和空間域上相關性的運動矢量預測方法。這種預測方法根據宏塊間運動相關性的不同,綜合利用了時間和空間域上的相關性,有效地提高了運動矢量的預測的精度,最終提高了系統的編碼效率。
下面將結合附圖對具體實施方式
進行詳細說明。
圖2是宏塊在時間域和空間域上的相鄰關系;圖3是視頻編碼系統框圖;圖4是視頻編碼系統主程序框圖;圖5是視頻編碼子程序框圖;圖6是運動矢量預測方法的子程序框圖。
圖4所示是該系統執行程序的總體框圖。在圖4中,視頻編碼子程序采用了基于運動補償/DCT的混合編碼方法。除運動矢量預測子程序這一部分外,本發明采用了國際視頻編碼標準H.264 JM6.0的基本編碼框架,其程序流程如圖5所示。應該指出,在視頻編碼時,一個輸入的視頻序列幀被分為16×16的宏塊,編碼過程是以宏塊為單位進行的。計算機開始執行視頻編碼子程序后,首先對編碼進行初始化,這些初始化工作包括對視頻序列格式、幀率、量化參數、運動矢量的搜索范圍、參考幀的數目、各緩沖區以及輸出碼流文件名等的設置。然后計算機按照從上到下、從左到右的次序先將第一個宏塊的數據讀入緩沖區,對該宏塊做運動估計與補償,運動估計與補償之后得到該宏塊的運動矢量和殘差圖像,對其中的運動矢量,首先執行如圖6所示的運動矢量子程序進行預測,然后對預測差值進行上下文自適應的變長編碼(CAVLC);而對殘差圖像則首先進行DCT變換,然后對DCT系數進行量化和CAVLC編碼,之后輸出該宏塊的壓縮碼流并存放在緩沖區中。為了下一幀編碼的需要,最后進行解碼、生成相應參考宏塊,存放在計算機內存中。該宏塊編碼結束后,對當前編碼幀的所有宏塊循環執行上述編碼過程,完成對一個視頻序列幀的編碼。
對于圖5所示的視頻編碼子程序,其中的運動矢量預測子程序部分其程序框圖如圖6所示,該運動矢量預測方法是本發明的核心,與目前國際視頻編碼標準中運動矢量預測方法不同。該預測方法根據相鄰宏塊間運動相關程度的不同,綜合利用了時間和空間域上的相關性進行運動矢量的預測。其具體執行過程如下所述。在圖5所示的初始過程中,設置兩個長度都為L=W×H8]]>的緩沖區,其中W為圖像幀的寬度,H圖像幀的高度,用于存放前一幀和當前幀所有4×4子塊的運動矢量。
在計算機進入圖6的運動矢量預測子程序后,首先對當前編碼宏塊Ei進行相鄰宏塊間運動相關性的判斷,執行的算法程序如前所述。在執行完Ei相鄰宏塊間運動相關性的判斷之后,根據這一判斷結果,開始執行宏塊Ei運動矢量預測程序,執行的程序步驟也如前所述。
最后,當前編碼宏塊的運動矢量與預測因相減,得到預測差值。
應該說明的是,計算機需要對運動矢量在水平和垂直方向上的分量單獨執行上述程序,完成運動矢量的預測。
為了驗證本發明的實際編碼效率,進行了如下的對比實驗。對相同的視頻序列,這里以Bus(352×288,150幀,30fps)序列為例,在本發明的編碼系統上執行(1)本發明的編碼程序;(2)國際編碼標準H.264 JM6.0的基本編碼程序,表2是本發明與H.264編碼效率的比較。本發明的編碼方法與H.264的唯一不同之處是選用的運動矢量預測方法的不同,其中本發明采用了基于時空域相關性的運動矢量預測方法。編碼參數兩者都按如表1所示的編碼配置文件設置,量化參數QP都分別取20,28,34和40四個值進行實驗。
表1是編碼系統的配置文件。配置文件用于設置系統的編碼參數,其中主要包括運動估計的精度為1/4像素,搜索范圍為±32像素;參考幀的數目為2幀;熵編碼采用上下文自適應的變長編碼(CAVLC);禁止塊大小自適應變換(ABT);必須執行Hadamard變換和R-D優化;圖像組的結構是第一幀為I幀,以后都為P幀;表2中PSNR表示重建視頻圖像的峰值信噪比。比特率是指每秒輸出的比特數。節約碼率定義為在量化參數一定時,執行H.264與本發明編碼輸出碼率的差值與執行H.264編碼輸出碼率的百分比。平均節約碼率定義為在不同量化參數條件下節約碼率的均值。
表2編碼效率結果的比較,是兩者在采用同一量化參數時,在重建視頻質量(PSNR)相同的條件下,輸出比特率結果的比較。輸出比特率越小說明編碼效率越高。可以看出本發明優于采用H.264編碼系統的編碼效率。表1是編碼系統的配置文件
表2是編碼結果示例
權利要求
1.基于時空域相關性運動矢量預測的視頻編碼方法,是由攝像機(1),將目標物狀態轉換成視頻信號置于采集卡(2)中;采集卡將視頻信號轉換成數字視頻序列,并存放在視頻緩存中,這些數字視頻序列或是以視頻序列文件形式存放在計算機硬盤中的視頻數據,作為該系統的輸入用于壓縮;計算機(3)存放原始視頻序列和執行視頻編碼程序,并生成壓縮后的碼流文件,本發明的特征在于計算機首先從采集卡的視頻存儲器或存放在計算機硬盤上的視頻序列文件中讀一幀視頻數據到計算機的緩沖區中,通過執行視頻編碼子程序對該幀進行編碼;視頻編碼子程序在視頻編碼時,一個輸入的視頻序列幀被分為16×16的宏塊,編碼過程是以宏塊為單位進行的;計算機開始執行視頻編碼子程序后,首先對編碼進行初始化;然后計算機按照從上到下、從左到右的次序先對第一個宏塊做運動估計與補償;運動估計與補償之后得到該宏塊的運動矢量和殘差圖像,對其中的運動矢量,首先執行運動矢量子程序進行預測,然后對預測差值進行上下文自適應的變長編碼(CAVLC);而對殘差圖像則首先進行DCT變換,然后對DCT系數進行量化和CAVLC編碼;之后輸出該宏塊的壓縮碼流放入計算機的緩沖區中;最后進行解碼、生成相應參考宏塊;該宏塊編碼結束后,對當前編碼幀的所有宏塊循環執行上述編碼過程,完成對一個視頻序列幀的編碼;一幀編碼結束后循環編碼下一幀,至到視頻序列的最后一幀編碼結束,并生成壓縮后的碼流文件,系統執行程序結束;在上述的視頻編碼子程序中,運動矢量預測子程序中所采用的預測方法,是根據相鄰宏塊間運動相關性的不同,綜合利用了時間和空間域上的相關性對其進行預測編碼的。
2.根據權利要求1所述的基于時空域相關性運動矢量預測的視頻編碼方法,其特征在于,視頻編碼子程序采用了基于運動補償/DCT的混合編碼方法,除運動矢量預測子程序這一部分外,采用了國際視頻編碼標準H.264 JM6.0的編碼框架。
3.根據權利要求1所述的基于時空域相關性運動矢量預測的視頻編碼方法,其特征在于所述的運動矢量預測子程序中所采用的根據相鄰宏塊間運動相關性的不同,綜合利用運動矢量在時間域和空間域上相關性的運動矢量預測方法,其預測方法如下(1)首先進行相鄰宏塊間運動相關性的判斷;對當前任一編碼宏塊,其相鄰宏塊間運動相關性的描述方法為設Ei是當前幀i的編碼宏塊,Ai、Bi、Ci、Di、Gi、Hi分別為其左側、上側、右上側、左上側、右側和下側的相鄰宏塊,在前一幀(i-1)對應位置上的宏塊分別表示為Ei-1、Ai-1、Bi-1、Ci-1、Di-1、Gi-1和Hi-1;這里設B={C1C2C3C4C5}為Ei相鄰宏塊Ai、Bi、Ei-1、Gi-1和Hi-1的運動矢量組成的集合;(a)如果對于i,i∈[1,5],都滿足|Ci-C3|≤TH則Ei相鄰宏塊間的運動相關性為高;(b)如果對于i,i∈[1,5],都滿足|Ci-C3|>TH則Ei相鄰宏塊間的運動相關性為低;(2)根據(1)的判斷結果,當前編碼宏塊的運動矢量的預測方法如下為了利用時間、空間域上的相關性,本發明選取Ai、Bi和Ci的運動矢量作為空間域上的侯選預測因子,Ei-1、Gi-1和Hi-1的運動矢量作為時間域上的侯選預測因子,運動矢量預測的具體算法如下(1)當Ei-1、Gi-1和Hi-1都不存在時,則以Ai、Bi、Ci作為侯選預測因子;(2)當相鄰宏塊間的運動相關性為高時,則選取Ai、Bi和Ei-1為侯選預測因子;(3)當相鄰宏塊間的運動相關性為低時,則選取Ai、Bi、Gi-1和Hi-1為侯選預測因子;(4)當任意一個Ai、Bi、Ci和Di采用幀內編碼時,如果在(i-1)幀與其對應位置宏塊的運動矢量存在,則該宏塊的運動矢量選取在(i-1)幀與其對應位置塊相同的運動矢量和參考幀,否則該塊的運動矢量置為(0,0);(5)如果在Ai、Bi、Ci、Ei-1、Gi-1和Hi-1中存在與Ei具有相同參考幀的宏塊,則預測因子選取該宏塊相同的運動矢量,否則預測因子選取侯選預測因子的中值;預測因子即為當前編碼宏塊的運動矢量的預測值;運動矢量在水平和垂直方向上的分量都采用上述預測方法;計算機需要對運動矢量在水平和垂直方向上的分量單獨執行上述程序,完成運動矢量的預測。
全文摘要
基于時空域相關性運動矢量預測的視頻編碼方法,屬于計算機數字視頻編碼技術領域。本發明特征在于,提出一種結合運動矢量在時間域和空間域上相關性的運動矢量預測方法,及相鄰宏塊間運動相關性的描述方法。方法步驟依次為攝像機將目標物狀態轉換成視頻信號,視頻信號通過采集卡轉換成數字視頻序列,并存放在視頻緩存中,作為系統輸入用于壓縮;計算機進入完成對原始視頻幀進行基于運動補償/DCT的混合編碼子程序,進行視頻壓縮并生成碼流文件。本發明重點在于運動矢量預測子程序,其預測方法主要為首先進行相鄰宏塊間運動相關性的判斷,再根據這一判斷結果,開始執行宏塊運動矢量預測程序。該系統有效地提高了運動矢量的預測的精度及視頻編碼效率。
文檔編號H04N7/015GK1457196SQ0312294
公開日2003年11月19日 申請日期2003年4月25日 優先權日2003年4月25日
發明者薛金柱, 沈蘭蓀 申請人:北京工業大學