專利名稱:用于細粒度可伸縮視頻的運動補償的制作方法
技術領域:
本發明公開直接涉及細粒度可伸縮的(“FGS”)視頻編碼器,尤其是涉及利用細粒度可伸縮性進行視頻數據的編碼的自適應運動補償技術。
背景技術:
通常以位流的形式處理和傳輸數字視頻數據。如果能以在預定的最小和最大速率之間具有微小間隔的位速率組中的任何一種速率對位流進行解碼,則位流是細粒度可伸縮的(“FGS”)。不幸的是,這種類型的可伸縮性造成的編碼效率通常遠小于非可伸縮的視頻編碼器-解碼器(“CODEC”)的編碼效率。
運動圖像專家組(“MPEG”)采用用于流動視頻的標準。MPEG-4標準包括FGS視頻的模式。在MPEG-4 FGS視頻中,使用最小的位速率重構的版本的在先幀預測當前幀。通過MPEG-4,如果更高的位速率版本的在先幀被用于預測,則在任何時候以比在編碼器中用于預測的速率更小的速率解碼位流時這都可能導致預測偏差。通過在編碼器的參考幀和解碼器的參考幀之間的差值產生預測偏差。因此,理想的是改善CODEC效率以使其高于典型的FGS方案(例如在MPEG-4標準中采用的FGS視頻方案)的效率。
發明概述通過細粒度可伸縮視頻數據的運動補償的設備和方法可以解決在已有技術中的這些和其它的缺陷和不足。細粒度可伸縮視頻數據由編碼器和自適應運動補償器產生,該編碼器用于將輸入視頻數據編碼為最小位速率宏塊數據以產生具有表示宏塊數據的最小位速率版本的離散余弦變換(“DCT”)系數的DCT數據并將輸入視頻數據編碼為中間位速率宏塊數據以產生具有表示宏塊數據的中間位速率版本的DCT系數的DCT數據,該自適應運動補償器與編碼器進行信號通信以預測解碼版本的中間位速率宏塊數據是否具有超過最大閾值的累積的預測的誤差幀能量。
附圖概述本發明根據如下的實例性附圖公開教導了用于細粒度可伸縮視頻的運動補償的有效的方法,其中附
圖1所示為僅具有底層運動補償的細粒度可伸縮的(“FGS”)編碼器的方塊圖;附圖2所示為根據本發明的優選實施例的具有自適應運動補償的細粒度可伸縮的(“FGS”)編碼器的方塊圖;和附圖3所示為根據本發明的原理的附圖2的自適應運動補償的流程圖。
詳細描述根據在此所描述的本發明的實施例,一種視頻數據編碼器-解碼器(“CODEC”)利用基于離散余弦變換(“DCT”)的視頻數據的控制。可取的是該視頻數據組織為宏塊。
MPEG-4細粒度可伸縮性(“FGS”)使用用于運動補償的最小位速率在先幀。根據本發明的原理,編碼器基于宏塊在最小位速率在先幀和更高位速率在先幀之間選擇。編碼器跟蹤在每個幀上累積的預測偏差。
對于給定的宏塊,如果使用用于運動補償的更高位速率在先幀導致高于最大極限的預測偏差能量,則編碼器選擇最小位速率在先幀以預測該宏塊。否則,編碼器選擇更高位速率在先幀以預測該宏塊。編碼器在編碼的宏塊中設定位(標志)以將那些用于預測的在先幀版本傳遞給解碼器。
如附圖1所示,FGS編碼器10能夠從功能上分解為底層部分11和增強層部分33。底層部分11包括與傳到求和塊14的正輸入的信號耦合的輸入端12。該求和塊14又耦合到功能塊16以執行離散余弦變換(“DCT”)。塊16耦合到功能塊18以實施量化變換Q。功能塊18耦合到功能塊20以實施可變長度編碼(“VLC”)。塊18進一步耦合到功能塊22以實施反向量化變換Q-1。
塊22又耦合到功能塊24以實施反向離散余弦變換(“IDCT”)。塊24耦合到求和塊26的正輸入,該求和塊26耦合到塊28以實施幀緩沖器。塊28耦合到功能塊30以執行運動估計。輸入端12還耦合到塊30以提供輸入視頻信號。幀緩沖器28和運動估計塊30每個都耦合到塊32以執行運動補償。功能塊32耦合到求和塊14的負輸入并也通到求和塊26的正輸入。
增強層部分33包括求和塊34,該求和塊34具有耦合到DCT16的輸出的正輸入和耦合到反向量化塊22的輸出的負輸入。塊34的輸出耦合到功能塊36以實施位平面編碼。位平面編碼器36的輸出又耦合到功能塊38以實施可變長度編碼(“VLC”)。
在操作中,附圖1的FGS編碼器僅使用用于預測的底層,如MPEG-4 FGS中那樣。底層編碼器11是簡單的基于單層DCT的運動補償的編碼器。首先,使用從運動估計過程中獲得的運動矢量對輸入視頻進行運動補償。然后,使用DCT變換預測誤差,以及使用可變長度編碼對所得的DCT系數進行量化和熵編碼。為重構底層幀,首先,執行反向量化,然后執行IDCT。然后在運動補償過程中將減去的預測加回來,并將所重構的幀存儲在幀緩沖器中以用作將來畫面的基準。
在增強層中編碼的初始步驟用于從未量化的系數中減去在底層中的反向量化的DCT系數。然后該位平面被掃描一次并被可變長度編碼。解碼器根據在解碼時可用的位速率對在這些位平面中的某些子集進行解碼。
轉到附圖2,根據本發明的原理,實例性FGS編碼器110可在概念上分解為底層部分111和增強層部分133。底層部分111包括與求和塊114的正輸入進行信號通信耦臺的輸入端112。求和塊114又耦合到功能塊116以實施離散余弦變換(“DCT”)。塊116耦合到功能塊118以實施量化變換Q。功能塊118耦合到功能塊120以實施可變長度編碼(“VLC”)。塊118進一步耦合到功能塊122以實施反向量化變化Q-1。
塊122又耦合到功能塊124以實施反向離散余弦變換(“IDCT”)。塊124耦合到求和塊126的正輸入,求和塊126又耦合到塊128以實施幀緩沖器。塊128耦合到功能塊130以執行運動估計。輸入端112也耦合到塊130以提供輸入視頻信號。幀緩沖器128和運動估計器130每個都耦合到功能塊132以執行自適應運動補償。功能塊132耦合到求和塊114的負輸入并也傳到求和塊126的正輸入。
增強層部分133包括求和塊134,求和塊134具有耦合到DCT116的輸出的正輸入和耦合到反向量化塊122的輸出的負輸入。塊134的輸出耦合到功能塊136以實施位平面編碼。位平面編碼器136的輸出又耦合到功能塊138以實施可變長度編碼(“VLC”)。位平面編碼器136的輸出也耦合到由底層部分111組成的求和塊139的正輸入。
返回到底層部分111,求和塊139具有從反向量化塊122的輸出耦合的另一正輸入。求和塊139的輸出耦合到功能塊140以實施另一IDCT。IDCT140耦合到求和塊142的正輸入,求和塊142具有從自適應運動補償器132的輸出耦合的另一正輸入。求和塊142的輸出耦合到增強層幀緩沖器144。增強層幀緩沖器144又耦合到自適應運動補償器132。偏差幀緩沖器146與自適應運動補償器132雙向信號通信地耦合。
在運行中,附圖2的FGS編碼器根據本發明的原理實施優選的FGS方法。在附圖2的FGS編碼器和附圖1的FGS編碼器之間的重要差別在于在附圖2的編碼器中將在增強層中用于位平面的子集的編碼的位平面輸出加入到在底層中的反向量化DCT系數,作為在獲得重構的增強層幀fmid的過程中的初始步驟。然后執行IDCT,并反向加入來自運動補償步驟中的預測。結果fmid存儲在增強層幀緩沖器中。重構的底層幀fmid存儲在底層幀緩沖器中。在并入了本發明的原理的自適應運動補償方法、設備和系統中,讀取底層和增強層預測,假設使用了增強層預測,計算累積預測偏差,并選擇適當的預測。如果選擇了增強層預測,則累積的預測偏差被更新并被寫入到偏差幀緩沖器。
參考附圖3,根據本發明的原理,參考附圖2及附加的描述的自適應運動補償的過程作為方法200示出。方法200在開始塊210中開始并進行到決定塊212。在決定塊212中,確定當前的圖像是否開始了新的畫面組(“GOP”)。如果當前的圖像沒有開始新的GOP,則控制進行到功能塊214以使累積的預測誤差幀Fd復位到零。在塊214之后,或者如果在塊212中沒有檢側到新的GOP,則控制進行到功能塊216,功能塊216選擇中間位速率Rmid,這里Rmid是在最小位速率Rmin和最大位速率Rmax之間的任何值。為說明的目的,Rmid被認為是在Rmin和Rmax之間的一半。塊216然后傳送到功能塊218,功能塊218從對應于以最小的位速率Rmin編碼的在先幀的幀Fmin中獲取宏塊。塊218然后傳送到功能塊220,功能塊220從對應于以中間位速率Rmid編碼的先前幀的幀Fmid中獲取宏塊。塊220然后傳送到功能塊222,功能塊222從對應于在先幀累積預測誤差的幀Fd中獲取宏塊。
功能塊222將控制傳送到功能塊226。塊226計算相對于累積預測誤差Fd的中間位速率預測Pmid的能量E并傳送到決定塊228。決定塊228確定所計算的能量E是否大于閾值Emax,并且如果它不大于,則將控制傳送給功能塊230。功能塊230選擇中間位速率預測Pmid,并傳送給功能塊232。功能塊232更新累積的預測誤差幀Fd并傳送給返回塊236。在決定塊228中,如果能量E大于閾值Emax,則控制被傳送給功能塊234。塊234選擇最小位速率預測Pmin并傳送給返回塊236。
在本發明運動補償方法的操作中,編碼數據流的最小和最大位速率分別為Rmin和Rmax。Rmid是在Rmin和Rmax之間的任何中間位速率。因此,為對宏塊進行編碼,編碼器從在Rmin下的在先幀中獲取運動補償塊并從在Rmid下的在先幀中獲取運動補償塊。
編碼器也從表示累積的預測偏差誤差的幀中獲取另一塊。在每個畫面組(“GOP”)的開始累積預測偏差誤差幀被復位到零。表示最小速率預測、中間速率預測和累積預測偏差誤差的塊分別稱為Pmin、Pmid和Pd。為了確定使用哪種預測,編碼器計算對于Pmid預測的預測偏差誤差的能量。如果能量“E”定義為測量塊的能量的函數,并且如果Emax是最大允許的偏差能量閾值,則按照如下選擇適當的預測If E(Pd+Pmin-Pmid)>Emax(1)預測=PminELSE預測=PminPd=Pd+Pmin-PmidEND If在本實例性實施例中,位被包括在宏塊頭部中以傳遞給選擇預測塊的接收解碼器。在解碼器中,分別將每個幀Fmin和Fmid的兩個解碼版本寫到存儲器中作為參考幀。幀Fmin代表最小的位速率的幀,而幀Fmid代表中間位速率的幀。如果以低于Rmid的位速率對幀進行解碼,則使用以這種較低位速率解碼的幀近似Fmid基于在此的教導在相關領域中的普通技術人員容易確定本發明公開的這些和其它的特征和優點。將會理解的是本發明公開的教導可以以各種形式的硬件、軟件、固件、專用處理器或其組合實施。
最為可取的是,本發明公開的教導作為硬件和軟件的組合實施。此外,軟件優選實施為在程序存儲單元中有形地體現的應用程序。該應用程序可以通過包括任何適合的結構體系的機器加載并執行。可取的是,該機器實施在具有硬件(比如一個或多個中央處理單元(“CPU”)、隨機存取存儲器(“RAM”)和輸入/輸出(“I/O”)接口)的計算機平臺上。計算機平臺也可以包括操作系統和微指令代碼。在此描述的各種處理和功能都可以是可通過CPU執行的應用程序的一部分或微指令代碼的一部分或者它們的任何組合。此外,各種其它的外設單元可以連接到計算機平臺,比如附加的數據存儲單元和打印單元。
進一步應該理解的是,因為在附圖中描述的某些構成的系統部件和方法優選以軟件實施,所以在系統部件或過程功能塊之間的實際連接根據設計本發明公開方案的方式可能不同。根據在此的教導,本領域的普通技術人員能夠設想本發明公開的這些以及類似的實施方式或結構。
雖然已經參考附圖在此描述了實例性實施例,但是應該理解的是本發明公開并不限于這些精確的實施例,本領域普通技術人員在不脫離本發明公開的精神和范圍的前提下可以實施各種改變和修改。所有這些變化和改變都希望包括在附加的權利要求中所闡述的本發明公開的范圍內。
權利要求
1.一種細粒度可伸縮視頻數據設備,包括編碼器(110),該編碼器用于將輸入視頻數據編碼為最小位速率宏塊數據以產生具有表示宏塊數據的最小位速率版本的DCT系數的DCT數據并將輸入視頻數據編碼為中間位速率宏塊數據以產生具有表示宏塊數據的中間位速率版本的DCT系數的DCT數據;和自適應運動補償器(132),該自適應運動補償器與編碼器進行信號通信以預測中間位速率宏塊數據的解碼版本是否具有超過最大閾值(228)的累積的預測的誤差幀能量。
2.如權利要求1所述的設備,其中輸入視頻數據在最小位速率和最大位速率之間是細粒度可伸縮的,中間位速率是落入它們之間的任何值。
3.如權利要求1所述的設備,其中編碼器包括自適應運動補償器。
4.如權利要求1所述的設備,其中編碼器包括增強層幀緩沖器(144);與增強層幀緩沖器進行信號通信的自適應運動補償器(132);和與增強層幀緩沖器進行信號通信的偏差幀緩沖器(146)。
5.如權利要求1所述的設備,其中自適應運動補償器包括使每個新畫面組(212)的偏差幀緩沖器復位的畫面組檢測器;計算相對于偏差幀緩沖器(226)的中間速率預測的能量的能量單元(226);和使用宏塊數據(228)的運動矢量從在先畫面的數據中選擇要預測的每個像素塊的中間速率預測和最小速率預測中的一個的預測單元。
6.一種用于接收編碼的視頻宏塊數據的細粒度可伸縮視頻數據設備,其中每個宏塊由代表宏塊數據的最小位速率版本的DCT系數和代表宏塊數據的中間位速率版本的DCT系數中的一個表示,該設備包括響應累積的預測誤差幀的預測能量將從編碼器中接收的每個宏塊的中間和最小位速率編碼的DCT數據中的一個進行解碼以形成重構的宏塊數據的解碼器。
7.一種執行細粒度可伸縮視頻數據操作的方法,該方法包括將輸入視頻數據編碼為最小位速率宏塊數據以形成具有代表宏塊數據的最小位速率版本的DCT系數的DCT數據;將輸入視頻數據編碼為中間位速率宏塊數據以形成具有代表宏塊數據的中間位速率版本的DCT系數的DCT數據;和補償編碼的數據以預測中間位速率宏塊數據的解碼版本是否具有超過最大閾值的累積的預測的誤差幀能量。
8.如權利要求7所述的方法,進一步包括響應累積的預測誤差幀的預測能量從編碼的輸入視頻數據中對中間和最小位速率編碼的DCT數據中的一個進行解碼以形成重構的宏塊數據。
9.如權利要求7所述的方法,其中輸入視頻數據在最小位速率和最大位速率之間是細粒度可伸縮的,中間位速率是落入它們之間的任何值。
10.如權利要求7所述的方法,進一步包括以在先畫面的增強層數據和宏塊數據的運動矢量補償增強層塊數據以形成補償的增強層塊數據以便相對于補償的增強層塊數據執行DCT以形成增強層DCT數據。
11.一種用于接收編碼的視頻宏塊數據的方法,其中每個宏塊由代表宏塊數據的最小位速率版本的DCT系數和代表宏塊數據的中間位速率版本的DCT系數中的一個表示,該方法包括響應累積的預測誤差幀的預測能量將從編碼器中接收的每個宏塊的中間和最小位速率編碼的DCT數據中的一個進行解碼以形成重構的宏塊數據。
12.一種機器可讀的程序存儲裝置,有形地實施可通過機器執行的指令的程序以執行實施細粒度可伸縮的視頻數據操作的步驟,該步驟包括將輸入視頻數據編碼為最小位速率宏塊數據以形成具有代表宏塊數據的最小位速率版本的DCT系數的DCT數據;將輸入視頻數據編碼為中間位速率宏塊數據以形成具有代表宏塊數據的中間位速率版本的DCT系數的DCT數據;和補償編碼的數據以預測中間位速率宏塊數據的解碼版本是否具有超過最大閾值的累積的預測的誤差幀能量。
13.如權利要求12所述的程序存儲裝置,該步驟進一步包括響應累積的預測誤差幀的預測能量從編碼的輸入視頻數據中對中間和最小位速率編碼的DCT數據中的一個進行解碼以形成重構的宏塊數據。
14.如權利要求12所述的程序存儲裝置,其中輸入視頻數據在最小位速率和最大位速率之間是細粒度可伸縮的,中間位速率是落入它們之間的任何值。
15.如權利要求12所述的程序存儲裝置,該步驟進一步包括以在先畫面的增強層數據和宏塊數據的運動矢量補償增強層塊數據以形成補償的增強層塊數據以便相對于補償的增強層塊數據執行DCT以形成增強層DCT數據。
16.一種機器可讀的程序存儲裝置,有形地實施通過機器可執行的指令的程序以執行實施細粒度可伸縮的視頻數據操作的步驟,其中每個宏塊由代表宏塊數據的最小位速率版本的DCT系數和代表宏塊數據的中間位速率版本的DCT系數中的一個表示,該步驟包括響應累積的預測誤差幀的預測能量將從編碼器中接收的每個宏塊的中間和最小位速率編碼的DCT數據中的一個進行解碼以形成重構的宏塊數據。
17.一種執行細粒度可伸縮視頻數據操作的細粒度可伸縮視頻數據系統,該系統包括將輸入視頻數據編碼為最小位速率宏塊數據以形成具有代表宏塊數據的最小位速率版本的DCT系數的DCT數據的最小編碼裝置;將輸入視頻數據編碼為中間位速率宏塊數據以形成具有代表宏塊數據的中間位速率版本的DCT系數的DCT數據的中間編碼裝置;和補償編碼的數據以預測中間位速率宏塊數據的解碼版本是否具有超過最大閾值的累積的預測的誤差幀能量的補償裝置。
18.如權利要求17所述的系統,該步驟進一步包括響應累積的預測誤差幀的預測能量從編碼的輸入視頻數據中對中間和最小位速率編碼的DCT數據中的一個進行解碼以形成重構的宏塊數據的解碼裝置。
19.如權利要求17所述的系統,其中輸入視頻數據在最小位速率和最大位速率之間是細粒度可伸縮的,中間位速率是落入它們之間的任何值。
20.如權利要求17所述的系統,該步驟進一步包括以在先畫面的增強層數據和宏塊數據的運動矢量補償增強層塊數據以形成補償的增強層塊數據以便相對于補償的增強層塊數據執行DCT以形成增強層DCT數據的補償裝置。
全文摘要
本發明公開了一種細粒度可伸縮視頻數據設備、系統和方法以及數據結構。編碼器(110)用于將輸入視頻數據編碼為最小位速率宏塊以產生具有表示宏塊數據的最小位速率版本的DCT系數的DCT數據。該編碼器(110)還將輸入視頻數據編碼為中間位速率宏塊數據以產生具有表示宏塊數據的中間位速率版本的DCT系數的DCT數據。自適應運動補償器(132)(并入在編碼器的內部或外部)與編碼器進行通信以預測中間位速率宏塊數據的解碼版本是否具有超過最大閾值(228)的累積的預測的誤差幀能量。
文檔編號H04N7/36GK1515085SQ02811763
公開日2004年7月21日 申請日期2002年6月11日 優先權日2001年6月11日
發明者M·L·科默, M L 科默, I·H·伊扎特, 伊扎特 申請人:湯姆森許可公司