專利名稱:生成非逐行掃描偽雙向預(yù)測(cè)圖像的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的方案一般來講涉及視頻系統(tǒng),更具體來講涉及記錄或者播放數(shù)字編碼視頻序列的視頻系統(tǒng)。
背景技術(shù):
在今天的家電市場(chǎng)中,數(shù)字電視(DTV)和高清晰度電視(HDTV)正漸漸受歡迎起來。為了觀看先前記錄的節(jié)目或者記錄他們中意的節(jié)目,這種電視的許多購(gòu)買者還購(gòu)買了數(shù)字錄像機(jī)或者播放器,例如數(shù)字影碟(DVD)錄像機(jī)或者播放器。特別是,DTV(或者HDTV)和數(shù)字視頻數(shù)字錄像機(jī)或者播放器的組合可能是家庭影院娛樂系統(tǒng)的不可分割的部分。
數(shù)字錄像機(jī)或者播放器通常包含運(yùn)動(dòng)圖像專家組(MPEG)解碼器,用來對(duì)在錄像機(jī)或者播放器所播放的盤上存儲(chǔ)的數(shù)字編碼多媒體數(shù)據(jù)進(jìn)行解碼。如果數(shù)字錄像機(jī)或者播放器與傳統(tǒng)的(非DTV或者非HDTV)電視連接,則在被顯示在傳統(tǒng)電視上之前,由數(shù)字錄像機(jī)或者播放器的MPEG解碼器對(duì)數(shù)字編碼信號(hào)進(jìn)行解碼。然而,相當(dāng)多的DTV包含它們自己的MPEG解碼器。照此,如果數(shù)字視頻記錄器或者播放器與DTV相連,那么將從所述盤讀取的視頻信號(hào)通過DTV的譯碼器來遠(yuǎn)程地譯碼??梢詫⒋私Y(jié)構(gòu)稱為遠(yuǎn)程譯碼器結(jié)構(gòu)。
然而,利用遠(yuǎn)程DTV譯碼器來譯碼數(shù)字編碼信號(hào)存在重大的缺陷。也就是說,按照此類結(jié)構(gòu)很難執(zhí)行特技模式(trick modes)。所述特技模式可以是沒有以正常速度或者按向前的方向進(jìn)行重放的任何一種視頻重放操作。通常,特技模式涉及在視頻信號(hào)中重復(fù)多個(gè)圖像,諸如在慢運(yùn)動(dòng)或者凍結(jié)特技模式期間。由于數(shù)字視頻記錄器或者播放器與DTV之間的帶寬是受限的,因此在被送到DTV的信號(hào)中重復(fù)圖像、可以引起所述信號(hào)超過傳輸通道的最大比特率限制。如果所述圖像是幀內(nèi)(I)圖像或者預(yù)測(cè)(P)圖像,那么所述問題將更加尖銳,這是由于這些圖像利用了相對(duì)大量的比特來進(jìn)行編碼。
此外,諸如在快速移動(dòng)特技模式期間的跳過圖像的處理,能夠引起視頻信號(hào)的平均比特率超過正常比特率。具體來講,在快速移動(dòng)特技模式中待跳過的圖像組(GOP)中的第一圖像通常是雙向預(yù)測(cè)(B)圖像。當(dāng)跳過B圖像時(shí),在GOP中,剩余圖像的編碼數(shù)據(jù)的平均數(shù)、或者每一圖像的比特平均數(shù)將會(huì)增加。如果超過傳輸通道的比特率限制,就會(huì)造成緩沖器溢出,并且會(huì)導(dǎo)致在顯示特技模式視頻信號(hào)期間丟失圖像。
除比特率問題外,遠(yuǎn)程譯碼視頻信號(hào)還存在其它缺點(diǎn)如果重復(fù)的圖像包含運(yùn)動(dòng)對(duì)象,那么以這種結(jié)構(gòu)重復(fù)顯示的非逐行掃描圖像、可以引起在顯示處理中出現(xiàn)振動(dòng)效應(yīng)。為解釋此缺點(diǎn),有理由對(duì)隔行掃描作一簡(jiǎn)短說明。
許多電視機(jī)使用隔行掃描技術(shù)。在此格式之下,通常將視頻信號(hào)分為預(yù)定數(shù)量的水平行。在每個(gè)場(chǎng)周期期間,只掃描這些行的二分之一;通常,在第一場(chǎng)周期期間掃描奇數(shù)行,而在下一場(chǎng)周期期間掃描偶數(shù)行。每一掃描稱為一場(chǎng),并且當(dāng)合并時(shí),兩個(gè)場(chǎng)形成一個(gè)完整的圖像或者幀。對(duì)于NTSC制來說,每秒顯示60場(chǎng),因而產(chǎn)生每秒30幀的速率。
當(dāng)運(yùn)動(dòng)對(duì)象在隔行掃描電視中移動(dòng)穿過屏幕時(shí),每個(gè)場(chǎng)往往只顯示該運(yùn)動(dòng)對(duì)象的一部分。所述局部顯示是因?yàn)橐粋€(gè)場(chǎng)只是每隔全部圖像的水平行的一行來進(jìn)行顯示。例如,對(duì)于特定的場(chǎng)n來說,只掃描奇數(shù)水平行,并且待于場(chǎng)n中顯示的運(yùn)動(dòng)對(duì)象的部分、是在對(duì)場(chǎng)n掃描奇數(shù)水平行期間掃描的部分。在1/60秒以后,創(chuàng)建下一場(chǎng)、即場(chǎng)n+1,并且將顯示該圖像的偶數(shù)水平行。由此,在場(chǎng)n+1中顯示的運(yùn)動(dòng)對(duì)象部分、是在對(duì)場(chǎng)n+1掃描偶數(shù)水平行期間掃描的部分。雖然每個(gè)場(chǎng)暫時(shí)不同,但是由于場(chǎng)的顯示速度,因而人眼感覺場(chǎng)的連續(xù)顯示像是平滑運(yùn)動(dòng)。
如果觀看者激活特技模式,那么特技模式視頻信號(hào)可以包含重復(fù)的圖像,所述圖像是根據(jù)隔行掃描格式記錄的。例如,如果觀看者對(duì)特定的圖像啟動(dòng)凍結(jié)特技模式,那么可以將該圖像重復(fù)地發(fā)送到包含遠(yuǎn)程譯碼器的DTV,并且在所述DTV上被譯碼并且顯示。然而,重復(fù)圖像的顯示是與非逐行掃描圖像的正常顯示一致的,即,交替地顯示組成非逐行掃描圖像的場(chǎng)。
如先前所述,如果運(yùn)動(dòng)對(duì)象出現(xiàn)在根據(jù)隔行掃描格式記錄的圖像中,那么每個(gè)場(chǎng)將在一個(gè)特殊位置中顯示運(yùn)動(dòng)對(duì)象。由此,由于在凍結(jié)特技模式期間交替地顯示這些場(chǎng),所以顯示器中的運(yùn)動(dòng)對(duì)象快速地從顯示器中的一個(gè)位置移動(dòng)到另一個(gè)位置;實(shí)際上,所述運(yùn)動(dòng)對(duì)象看起來像是振動(dòng)的。產(chǎn)生此振動(dòng)的原因是因?yàn)楦粜袙呙鑸?chǎng)是暫時(shí)不同的,并且運(yùn)動(dòng)對(duì)象出現(xiàn)在每個(gè)場(chǎng)的不同位置中。
此問題也存在于包括去隔行(deinterlacer)的DTV中。如現(xiàn)有技術(shù)中所公知的那樣,去隔行可以根據(jù)隔行掃描場(chǎng)來構(gòu)造完整的幀。由此,去隔行可以從包括重復(fù)的非逐行掃描幀的場(chǎng)中構(gòu)造完整的幀。不過,這些根據(jù)隔行掃描場(chǎng)構(gòu)造的完整的幀也將以交替的方式進(jìn)行顯示,由此產(chǎn)生了振動(dòng)假象的可能性。此外,此振動(dòng)效應(yīng)不僅出現(xiàn)在凍結(jié)特技模式中,而且還存在于其中重復(fù)非逐行掃描圖像的任何其它特技模式中。由此,人們需要在沒有提高系統(tǒng)開銷或增加系統(tǒng)復(fù)雜性的情況下,消除比特率問題和振動(dòng)假象。
發(fā)明內(nèi)容
本發(fā)明涉及一種用于生成偽雙向(B)預(yù)測(cè)圖像的方法,所述偽雙向預(yù)測(cè)圖像在顯示期間能夠基本上不振動(dòng)地進(jìn)行重復(fù),其中所述偽雙向預(yù)測(cè)圖像包含至少兩個(gè)場(chǎng)。所述方法包括以下步驟設(shè)置偽雙向預(yù)測(cè)圖像的參數(shù),以指出不進(jìn)行剩余信號(hào)的編碼,并且使用基于場(chǎng)的預(yù)測(cè)來預(yù)測(cè)偽雙向預(yù)測(cè)圖像的至少兩個(gè)場(chǎng)。在一種結(jié)構(gòu)中,所述設(shè)置步驟還可以包括設(shè)置偽雙向預(yù)測(cè)圖像的參數(shù),以指出不進(jìn)行剩余信號(hào)的離散余弦變換編碼。
在另一個(gè)結(jié)構(gòu)中,所述偽雙向預(yù)測(cè)圖像可以包括多個(gè)宏塊,并且每個(gè)宏塊可以包含至少兩個(gè)場(chǎng)的至少一部分,并且所述參數(shù)可以是宏塊參數(shù)。每個(gè)宏塊可以包含至少兩個(gè)具有水平和垂直運(yùn)動(dòng)分量的運(yùn)動(dòng)矢量,并且所述方法還可以包括以下步驟設(shè)置每個(gè)宏塊的至少兩個(gè)運(yùn)動(dòng)矢量,以指出所述水平和垂直運(yùn)動(dòng)分量將為0。
在本發(fā)明的一個(gè)方面中,所述偽雙向預(yù)測(cè)圖像可以是單向(one-directional)預(yù)測(cè)圖像。此外,使用基于場(chǎng)的預(yù)測(cè)步驟可以包括以下步驟根據(jù)與獨(dú)立的數(shù)字編碼非逐行掃描圖像相關(guān)的單個(gè)場(chǎng)來預(yù)測(cè)偽雙向預(yù)測(cè)圖像的至少兩個(gè)場(chǎng)。此外,所述偽雙向預(yù)測(cè)圖像可以是正向預(yù)測(cè)或者反向預(yù)測(cè)圖像。所述獨(dú)立的數(shù)字編碼非逐行掃描圖像可以是幀內(nèi)圖像或者預(yù)測(cè)圖像。在另一個(gè)方面中,所述偽雙向預(yù)測(cè)圖像可以是這樣一種雙向預(yù)測(cè)圖像,其中所述偽雙向預(yù)測(cè)圖像的第一場(chǎng)可以根據(jù)第一參考圖像來預(yù)測(cè),而偽雙向預(yù)測(cè)圖像的第二場(chǎng)可以根據(jù)第二參考圖像來預(yù)測(cè)。另外,所述偽雙向預(yù)測(cè)圖像的第一場(chǎng)可以根據(jù)與第一參考圖像相關(guān)的單個(gè)場(chǎng)來預(yù)測(cè),而所述偽雙向預(yù)測(cè)圖像的第二場(chǎng)可以根據(jù)與第二參考圖像相關(guān)的單個(gè)場(chǎng)來預(yù)測(cè)。所述偽雙向預(yù)測(cè)圖像可以根據(jù)非逐行掃描圖像、逐行掃描圖像或者場(chǎng)圖像來預(yù)測(cè)。
本發(fā)明還涉及一種用于根據(jù)非逐行掃描圖像來生成偽雙向預(yù)測(cè)圖像的系統(tǒng),其中所述偽雙向預(yù)測(cè)圖像包含至少兩個(gè)場(chǎng)。所述系統(tǒng)包括用于從存儲(chǔ)媒體讀數(shù)據(jù)的控制器,并且還包括處理器,其中所述處理器被編程以用來設(shè)置偽雙向預(yù)測(cè)圖像的參數(shù),使其指出不進(jìn)行剩余信號(hào)的編碼,并且使用基于場(chǎng)的預(yù)測(cè)來預(yù)測(cè)偽雙向預(yù)測(cè)圖像的至少兩個(gè)場(chǎng)。所述系統(tǒng)還包括適當(dāng)?shù)能浖碗娐?,以?shí)現(xiàn)如上所述的方法。
圖1是用于依照此處的本發(fā)明結(jié)構(gòu)來根據(jù)非逐行掃描圖像生成偽雙向預(yù)測(cè)圖像的系統(tǒng)框圖。
圖2是用于舉例說明依照本發(fā)明結(jié)構(gòu)、根據(jù)非逐行掃描圖像生成偽雙向預(yù)測(cè)圖像的操作的流程圖。
圖3是具有代表性的MPEG語(yǔ)法的確定部分的插圖。
具體實(shí)施例方式
在圖1中以框圖的形成示出了依照本發(fā)明結(jié)構(gòu)的用于實(shí)現(xiàn)不同改進(jìn)的操作特征的系統(tǒng)100。然而,本發(fā)明不局限于圖1中舉例說明的特定系統(tǒng),而是可以將本發(fā)明以任何其它系統(tǒng)來實(shí)踐,其中所述其它任何系統(tǒng)能夠接收數(shù)字編碼信號(hào)并且向顯示裝置傳輸該信號(hào)。此外,系統(tǒng)100不局限于從特定類型的存儲(chǔ)媒體中讀數(shù)據(jù),或者向其中寫數(shù)據(jù),凡是能夠存儲(chǔ)數(shù)字編碼數(shù)據(jù)的任何存儲(chǔ)媒體都可以用于系統(tǒng)100。
系統(tǒng)100可以包括控制器110,用于從/向存儲(chǔ)媒體112讀/寫數(shù)據(jù)。所述系統(tǒng)100還可以具有預(yù)處理引擎114、微處理器116、存儲(chǔ)器118、傳輸緩存器120和顯示裝置122。所述預(yù)處理引擎114可以包含適當(dāng)?shù)能浖碗娐?,以便為生成偽B圖像而在數(shù)字編碼視頻信號(hào)中定位、設(shè)置或者調(diào)節(jié)一個(gè)或多個(gè)特定標(biāo)記或者參數(shù)。還可以提供一個(gè)控制和數(shù)據(jù)接口,以便允許微處理器116控制控制器110和預(yù)處理引擎114的操作??梢栽诖鎯?chǔ)器中提供使微處理器116執(zhí)行傳統(tǒng)操作所使用的適當(dāng)軟件或者固件。此外,依照本發(fā)明的結(jié)構(gòu),可以為微處理器116提供例行程序。
應(yīng)該理解的是,在本發(fā)明的意圖內(nèi),預(yù)處理引擎114和微處理器116的全部或者部分可以是處理器。此外,在本發(fā)明的意圖內(nèi),控制器110、預(yù)處理引擎114、微處理器116和傳輸緩存器120的全部或者部分可以是位流源126。
在一種結(jié)構(gòu)中,顯示裝置122可以包含其自身的譯碼器(未示出),用于譯碼從存儲(chǔ)媒體112讀取的全部或者部分視頻信號(hào),并且由位流源126處理。在此特定的結(jié)構(gòu)中,位流源126中的譯碼器(未示出)通常不對(duì)從存儲(chǔ)媒體112中讀取的視頻信號(hào)進(jìn)行譯碼??梢詫⒋颂囟ǖ膶?shí)施例稱為遠(yuǎn)程譯碼器結(jié)構(gòu)。然而,應(yīng)當(dāng)指出,本發(fā)明不局限于此結(jié)構(gòu),本發(fā)明能夠在其它適當(dāng)?shù)南到y(tǒng)中實(shí)現(xiàn)。
在操作中,控制器110可以從存儲(chǔ)媒體112中讀取包含多個(gè)圖像的視頻信號(hào)。這些圖像可以是非逐行掃描圖像、逐行掃描圖像或者場(chǎng)圖像。在一種結(jié)構(gòu)中,如果微處理器116接收特技模式命令,那么微處理器116可以通知預(yù)處理引擎114以生成偽B圖像,所述偽B圖像是根據(jù)以數(shù)字視頻信號(hào)編碼的圖像通過對(duì)例如這些圖像的MPEG語(yǔ)法的多個(gè)預(yù)定標(biāo)記和參數(shù)定位、設(shè)置或調(diào)劑進(jìn)行預(yù)測(cè)的。然后,將所述偽B圖像傳送到傳輸緩存器120并且傳送到顯示裝置122上。所述偽B圖像可以在顯示裝置122處被譯碼并且被顯示。
上述內(nèi)容是一旦微處理器116接收到特技模式命令如何生成偽B圖像的例子。將這種處理稱為“即時(shí)地”生成偽B圖像。然而,作為選擇,預(yù)處理引擎114和微處理器116可以在啟動(dòng)特技模式命令之前生成偽B圖像。作為一個(gè)例子,偽B圖像可以被生成,并且微處理器116可以命令預(yù)處理引擎114向存儲(chǔ)器118傳送一個(gè)或多個(gè)偽B圖像。在存儲(chǔ)器118處,可以存儲(chǔ)偽B圖像,直到接收到特技模式命令為止,此時(shí),微處理器116可以將偽B圖像插入到視頻信號(hào)中。下面將更加詳細(xì)地來論述本發(fā)明的整體操作。
圖2舉例說明了用于演示生成偽B圖像的一種方式的方法200。所述偽B圖像可以是具有至少兩個(gè)場(chǎng)的非逐行掃描圖像。在一個(gè)實(shí)施例中,本發(fā)明可以按照遠(yuǎn)程譯碼器結(jié)構(gòu)來實(shí)現(xiàn)。對(duì)本發(fā)明來說,遠(yuǎn)程譯碼器結(jié)構(gòu)可以是任何系統(tǒng),其中,視頻信號(hào)中的至少一部分圖像可以由譯碼器譯碼,且其中,所述譯碼器在位流源的外部并不受該位流源的控制,所述位流源用于向譯碼器提供圖像。作為一個(gè)例子,所述位流源可以是光存儲(chǔ)媒體播放器或者記錄器,用于從光存儲(chǔ)媒體中讀取多媒體數(shù)據(jù),并且經(jīng)由傳輸通道將這些數(shù)據(jù)傳送到數(shù)字電視,所述數(shù)字電視包含其自身的譯碼器。然而應(yīng)該理解的是,本發(fā)明不局限于此例子乃至遠(yuǎn)程譯碼器結(jié)構(gòu),本發(fā)明可以按照任何其它適當(dāng)?shù)南到y(tǒng)或者結(jié)構(gòu)來實(shí)現(xiàn)。
參見圖3,示出了數(shù)字編碼圖像的具有代表性的MPEG語(yǔ)法300的一部分。此語(yǔ)法300可以指出依照本發(fā)明結(jié)構(gòu)的偽B圖像的語(yǔ)法。為了描述如何根據(jù)非逐行掃描圖像來生成偽B圖像,圖3將結(jié)合圖2進(jìn)行論述。應(yīng)該注意的是,下面只討論那些與根據(jù)非逐行掃描幀來生成偽B圖像有關(guān)的部分語(yǔ)法300,尤其是可以減少振動(dòng)圖像假象的偽B圖像。本領(lǐng)域的普通技術(shù)人員將理解的是,通過使用傳統(tǒng)的B圖像,在此未討論的語(yǔ)法300的部分是公知的。
返回參見圖2,在步驟210,開始根據(jù)非逐行掃描圖像生成偽B圖像的處理。在步驟212,可以設(shè)置語(yǔ)法300的圖像標(biāo)題310中包含的picture_coding_type參數(shù),以指出所述偽B圖像是B圖像。最好是,所述picture_coding_type參數(shù)是三比特參數(shù),并且可以將其值設(shè)置為“011”。在步驟214,可以設(shè)置f-code參數(shù)。在圖3中,所述f_code參數(shù)312位于圖像編碼擴(kuò)展首部314中,并且其通常包括四比特參數(shù)f_code
、f_code
[1]、f_code[1]
和f_code[1][1]。
在一種結(jié)構(gòu)中,所述偽B圖像可以是單向預(yù)測(cè)圖像。單向預(yù)測(cè)圖像僅僅根據(jù)一個(gè)圖像進(jìn)行預(yù)測(cè),而B圖像通常根據(jù)兩個(gè)獨(dú)立的圖像進(jìn)行預(yù)測(cè)。通常,單向偽B圖像可以是正向預(yù)測(cè)偽B圖像或者是反向預(yù)測(cè)偽B圖像。如果所述偽B圖像是正向預(yù)測(cè)偽B圖像,那么偽B圖像可以根據(jù)偽B圖像之前(按照顯示順序)的參考圖像來預(yù)測(cè)。與此相反,如果偽B圖像是反向預(yù)測(cè)偽B圖像,那么所述偽B圖像可以根據(jù)偽B圖像之后的(按照顯示順序)參考圖像來預(yù)測(cè)。因?yàn)樗鼈儍H僅根據(jù)一個(gè)圖像來預(yù)測(cè),所以單向預(yù)測(cè)偽B圖像可以適用于重復(fù)或者復(fù)制的圖像。
如果偽B圖像是反向預(yù)測(cè)圖像,那么f_code
和f_code
[1]可以設(shè)置為值“1111”,以指出不進(jìn)行正向預(yù)測(cè)。此外,可以設(shè)置f_code[1]
和f_code[1][1]來反映反向預(yù)測(cè)的運(yùn)動(dòng)矢量范圍值。與此相反,如果偽B圖像是正向預(yù)測(cè)圖像,那么可以將f_code[1]
和f_code[1][1]設(shè)置為值“1111”,以指出不進(jìn)行反向預(yù)測(cè),而可以將f_code
和f_code
[1]設(shè)置為反映正向預(yù)測(cè)的運(yùn)動(dòng)矢量范圍值。
返回參見所述方法200,可以將frame_pred_frame_dct標(biāo)記(圖3中的frame_pred_frame_dct標(biāo)記316)和progressive_frame標(biāo)記(圖3中的progressive_frame標(biāo)記318)設(shè)置為值“0”,如步驟216所示。將progressive_frame標(biāo)記318設(shè)置為值“0”,可以引起偽B圖像被視為非逐行掃描圖像。此外,將frame_pred_frame_dct標(biāo)記316設(shè)置為值“0”,可以引起譯碼器譯碼偽B圖像,以便當(dāng)構(gòu)造偽B圖像時(shí)使用基于場(chǎng)的預(yù)測(cè)。
在方法200的步驟218處,可以將以下標(biāo)記設(shè)置為值“0”Q_scale_type(圖3中的Q_scale_type標(biāo)記320)、Intra_vlc_format(圖3中的lntra_vlc_format標(biāo)記322)和Alternate_scan(圖3中的Alternate_scan標(biāo)記324)。因?yàn)椴贿M(jìn)行預(yù)測(cè)誤差或者剩余信號(hào)的編碼,所以可以將這些標(biāo)記設(shè)置為值“0”。此外,因?yàn)椴粚?duì)剩余信號(hào)進(jìn)行編碼,所以可以將Quantiser_scale_code參數(shù)(圖3中的Quantiser_scale_code參數(shù)326)設(shè)置為值“00101”。
返回參見圖3,由于偽B圖像可以包括多個(gè)宏塊,所以語(yǔ)法300可以包括宏塊首部328。macroblock_type參數(shù)330可以位于宏塊首部328內(nèi)。在方法200的步驟220處,可以設(shè)置參數(shù)來指出不進(jìn)行剩余信號(hào)的編碼。作為一個(gè)例子,在傳統(tǒng)的B圖像中,通常使用離散余弦變換來編碼剩余信號(hào)。由此,在一種結(jié)構(gòu)中,不進(jìn)行每個(gè)偽B圖像的剩余信號(hào)的DCT編碼。
在一種結(jié)構(gòu)中,可以將所述macroblock_type參數(shù)330設(shè)置為指出不進(jìn)行剩余信號(hào)的編碼。作為一個(gè)例子,可以將所述macroblock_type參數(shù)設(shè)置為值“010”。另外,所述設(shè)置處理可以指出將以下標(biāo)記(未示出)設(shè)置為“0”macroblock_quant;macroblock_pattern;macroblockjntra;spatial_temporal_weight_code_flag和permitted__spatial_temporal_weight_classes。此外,此設(shè)置處理指出可以將macroblock_motion__backward標(biāo)記設(shè)置為值“1”,如果將反向預(yù)測(cè)偽B圖像時(shí),使用該值。在另一個(gè)例子中,可以將所述macroblock_type參數(shù)330設(shè)置為值“0010”。在此例子中,除了可以將macrobock_motion_forward標(biāo)記設(shè)置為值“1”外,所述設(shè)置處理與上述處理相同。
返回參見圖2,可以如步驟222所示設(shè)置frame_motion_type參數(shù)(圖3中的frame_motion_type參數(shù)332)。在一種結(jié)構(gòu)中,因?yàn)樗鰂rame_pred_frame_dct標(biāo)記316已經(jīng)設(shè)置為“0”,所以可以將frame_motion_type參數(shù)332設(shè)置為值“10”。此設(shè)置處理指出預(yù)測(cè)類型是基于幀的預(yù)測(cè),所述motion_vector_count是“2”,所述mv_format是場(chǎng),并且所述dmv是“0”。
繼續(xù)方法200,在步驟224,可以設(shè)置多個(gè)motion_vertical_field_select標(biāo)記和motion_code標(biāo)記。例如,參見圖3,可以設(shè)置motion_vertical_field_select
[1]或者
標(biāo)記334以及motion_vertical_field_select[1]
336來指出將根據(jù)參考圖像的哪個(gè)場(chǎng)來預(yù)測(cè)包括偽B圖像的場(chǎng)。標(biāo)記334的第一組下標(biāo)與反向預(yù)測(cè)偽B圖像相關(guān),而第二組與正向預(yù)測(cè)偽B圖像相關(guān)。作為一個(gè)例子,如果所述偽B圖像是反向預(yù)測(cè)圖像,那么可以將motion__vertical_field_select
[1]標(biāo)記334以及motion_vertical_field_select[1]
336設(shè)置為值“0”,以指出將根據(jù)參考圖像的頂場(chǎng)來預(yù)測(cè)偽B圖像的兩個(gè)場(chǎng)。作為選擇,可以將這些標(biāo)記的值設(shè)置為“1”,以指出將根據(jù)參考圖像的底場(chǎng)來預(yù)測(cè)偽B圖像的場(chǎng)。然而應(yīng)當(dāng)指出,本發(fā)明不局限于此例子,而可以使用其它基于場(chǎng)的預(yù)測(cè)方案來實(shí)現(xiàn)。此外,參考圖像例如可以是I圖像或者P圖像。
根據(jù)與參考圖像相關(guān)的單個(gè)場(chǎng)來預(yù)測(cè)包括偽B圖像的場(chǎng),能有助于消除振動(dòng)圖像假象。因?yàn)樵趥蜝圖像的場(chǎng)中,存在于參考圖像的此單個(gè)場(chǎng)中的運(yùn)動(dòng)對(duì)象將處于同一位置,所以這樣做是可能的。由此,當(dāng)反復(fù)交替顯示這些場(chǎng)時(shí),例如在諸如凍結(jié)特技模式之類的特技模式期間按照一串偽B圖像來進(jìn)行顯示時(shí),運(yùn)動(dòng)對(duì)象看起來像是呆在同一位置,而不是在兩個(gè)獨(dú)立的位置之間前后跳動(dòng)。
繼續(xù)步驟224,可以設(shè)置多個(gè)motion_code標(biāo)記。例如,依照本發(fā)明的結(jié)構(gòu),組成偽B圖像的每個(gè)場(chǎng)可以包括具有水平和垂直運(yùn)動(dòng)分量的至少兩個(gè)運(yùn)動(dòng)矢量。如圖3所示,這些運(yùn)動(dòng)矢量可以包括motion_code
[1]
或者
標(biāo)記338、motion_code
[1][1]或者
[1]標(biāo)記340、motion_code[1][1]
或者[1]
標(biāo)記342以及motion_code[1][1][1]或者[1]
[1]標(biāo)記344。與這些標(biāo)記相關(guān)的第一組下標(biāo)涉及反向預(yù)測(cè)偽B圖像,而第二組用于正向預(yù)測(cè)偽B圖像。在一種結(jié)構(gòu)中,可以將這些運(yùn)動(dòng)矢量中的每一個(gè)設(shè)置為值“1”,由此指出這些運(yùn)動(dòng)矢量的水平和垂直運(yùn)動(dòng)分量將具有“0”值。
在沒有編碼剩余信號(hào)的情況下將水平和垂直運(yùn)動(dòng)分量設(shè)置為值“0”,有助于允許偽B圖像包含非常少的比特,特別是當(dāng)與I、P乃至傳統(tǒng)的B圖像相比時(shí)更明顯。據(jù)此,可以將這些圖像經(jīng)由傳輸線路發(fā)送到遠(yuǎn)程譯碼器,以減少特技模式視頻信號(hào)的平均比特率。然而應(yīng)當(dāng)指出,根據(jù)非逐行掃描幀預(yù)測(cè)的偽B圖像不局限于進(jìn)行遠(yuǎn)程譯碼的系統(tǒng),可以利用任何其它適當(dāng)?shù)慕Y(jié)構(gòu)來使用這些圖像。最后,返回參見圖2,在步驟226結(jié)束方法200。
應(yīng)該理解的是,本發(fā)明不局限于單向預(yù)測(cè)圖像。舉例來說,一個(gè)或多個(gè)偽B圖像可以是雙向預(yù)測(cè)圖像。作為一個(gè)例子,所述偽B圖像的第一場(chǎng)可以根據(jù)與第一參考圖像相關(guān)的場(chǎng)來預(yù)測(cè),而偽B圖像的第二場(chǎng)可以根據(jù)與第二參考圖像相關(guān)的場(chǎng)來預(yù)測(cè)。此預(yù)測(cè)方案可以依照上述這樣一種方式來實(shí)現(xiàn),其中偽B圖像的其中一個(gè)場(chǎng)可以是向后或者正向預(yù)測(cè)圖像,而偽B圖像的另一個(gè)場(chǎng)可以具有與第一場(chǎng)相反的預(yù)測(cè)方向。
例如,所述偽B圖像的第一場(chǎng)可以是根據(jù)第一參考圖像預(yù)測(cè)的正向預(yù)測(cè)圖像,而所述偽B圖像的第二場(chǎng)可以是根據(jù)第二參考圖像預(yù)測(cè)的反向預(yù)測(cè)圖像。用這樣的方式預(yù)測(cè)偽B圖像,提供了與利用單向預(yù)測(cè)圖像進(jìn)行預(yù)測(cè)的同樣的優(yōu)點(diǎn),即降低了比特率并且能夠控制振動(dòng)圖像的問題。然而應(yīng)該理解的是,本發(fā)明不局限于上述例子,而是可以使用使用雙向預(yù)測(cè)圖像的其它預(yù)測(cè)方案。
還應(yīng)該理解的是,本發(fā)明不局限于根據(jù)非逐行掃描參考圖像來預(yù)測(cè)非逐行掃描偽B圖像。照此,可以依照涉及圖2和3的論述、根據(jù)逐行掃描地掃描圖像乃至圖像中的場(chǎng)來預(yù)測(cè)非逐行掃描偽B圖像。具體來講,可以根據(jù)單個(gè)逐行掃描參考圖像或者單個(gè)參考場(chǎng)圖像來預(yù)測(cè)偽B圖像的兩個(gè)場(chǎng)。同樣,利用兩個(gè)獨(dú)立的逐行掃描參考圖像或者兩個(gè)獨(dú)立的參考場(chǎng)圖像,可以使用諸如上述那些雙向的預(yù)測(cè)方案。
雖然已經(jīng)結(jié)合在此公開的實(shí)施例描述了本發(fā)明,但是應(yīng)該理解的是,上述描述是用來舉例說明的,而非限制本發(fā)明的范圍,本發(fā)明的范圍由權(quán)利要求書定義。
權(quán)利要求
1.一種用于生成偽雙向預(yù)測(cè)圖像的方法,所述偽雙向預(yù)測(cè)圖像在顯示期間能夠基本上不振動(dòng)地進(jìn)行重復(fù),其中,所述偽雙向預(yù)測(cè)圖像包含至少兩個(gè)場(chǎng),所述方法包括以下步驟設(shè)置偽雙向預(yù)測(cè)圖像的參數(shù),以指出不進(jìn)行剩余信號(hào)的編碼;以及使用基于場(chǎng)的預(yù)測(cè)來預(yù)測(cè)偽雙向預(yù)測(cè)圖像的至少兩個(gè)場(chǎng)。
2.如權(quán)利要求1所述的方法,其中,所述設(shè)置步驟還可以包括設(shè)置偽雙向預(yù)測(cè)圖像的參數(shù),以指出不會(huì)進(jìn)行剩余信號(hào)的離散余弦變換編碼。
3.如權(quán)利要求1所述的方法,其中,所述偽雙向預(yù)測(cè)圖像包括多個(gè)宏塊,并且每個(gè)宏塊包含至少兩個(gè)場(chǎng)的至少一部分,并且,其中所述參數(shù)是宏塊參數(shù)。
4.如權(quán)利要求3所述的方法,其中,每個(gè)宏塊包含至少兩個(gè)具有水平和垂直運(yùn)動(dòng)分量的運(yùn)動(dòng)矢量,并且所述方法還包括以下步驟設(shè)置每個(gè)宏塊的至少兩個(gè)運(yùn)動(dòng)矢量,以指出所述水平和垂直運(yùn)動(dòng)分量將為0。
5.如權(quán)利要求1所述的方法,其中,所述偽雙向預(yù)測(cè)圖像是單向預(yù)測(cè)圖像。
6.如權(quán)利要求5所述的方法,其中,使用基于場(chǎng)的預(yù)測(cè)步驟包括以下步驟根據(jù)與獨(dú)立的數(shù)字編碼非逐行掃描圖像相關(guān)的單個(gè)場(chǎng)來預(yù)測(cè)偽雙向預(yù)測(cè)圖像的至少兩個(gè)場(chǎng)。
7.如權(quán)利要求5所述的方法,其中,所述偽雙向預(yù)測(cè)圖像是正向預(yù)測(cè)圖像。
8.如權(quán)利要求5所述的方法,其中,所述偽雙向預(yù)測(cè)圖像是反向預(yù)測(cè)圖像。
9.如權(quán)利要求6所述的方法,其中所述獨(dú)立的數(shù)字編碼非逐行掃描圖像是幀內(nèi)圖像。
10.如權(quán)利要求6所述的方法,其中,所述獨(dú)立的數(shù)字編碼非逐行掃描圖像是預(yù)測(cè)圖像。
11.如權(quán)利要求1所述的方法,其中,所述偽雙向預(yù)測(cè)圖像是一個(gè)兩個(gè)方向的預(yù)測(cè)圖像,即,所述偽雙向預(yù)測(cè)圖像的第一場(chǎng)根據(jù)第一參考圖像來預(yù)測(cè),而偽雙向預(yù)測(cè)圖像的第二場(chǎng)根據(jù)第二參考圖像來預(yù)測(cè)。
12.如權(quán)利要求11所述的方法,其中,所述偽雙向預(yù)測(cè)圖像的第一場(chǎng)根據(jù)與第一參考圖像相關(guān)的單個(gè)場(chǎng)來預(yù)測(cè),而所述偽雙向預(yù)測(cè)圖像的第二場(chǎng)根據(jù)與第二參考圖像相關(guān)的單個(gè)場(chǎng)來預(yù)測(cè)。
13.如權(quán)利要求1所述的方法,其中,可以根據(jù)非逐行掃描圖像來預(yù)測(cè)所述偽雙向預(yù)測(cè)圖像。
14.如權(quán)利要求1所述的方法,其中,可以根據(jù)逐行掃描圖像來預(yù)測(cè)所述偽雙向預(yù)測(cè)圖像。
15.如權(quán)利要求1所述的方法,其中,根據(jù)場(chǎng)圖像來預(yù)測(cè)所述偽雙向預(yù)測(cè)圖像。
16.一種用于生成偽雙向(B)預(yù)測(cè)圖像的方法,可以在沒有顯示振動(dòng)的情況下重復(fù)所述偽雙向(B)預(yù)測(cè)圖像,所述方法包括以下步驟通過在圖像語(yǔ)法中調(diào)節(jié)預(yù)定設(shè)置,根據(jù)數(shù)字編碼視頻流中的至少一個(gè)圖像來建立偽雙向預(yù)測(cè)圖像。
17.如權(quán)利要求16所述的方法,其中,所述預(yù)定設(shè)置是將frame_pred_frame_dct標(biāo)記以及frame_pred_frame_dct標(biāo)記設(shè)置為值0。
18.如權(quán)利要求16所述的方法,其中,所述的預(yù)定設(shè)置是progressive_frame標(biāo)記以及將progressive_frame標(biāo)記設(shè)置為值0。
19.如權(quán)利要求16所述的方法,其中,所述偽雙向預(yù)測(cè)圖像是反向預(yù)測(cè)圖像,并且預(yù)定設(shè)置是motion_vertical_field_select
[1]以及motion_vertical_field_selet[1]
標(biāo)記,其中,當(dāng)根據(jù)參考圖像的頂場(chǎng)預(yù)測(cè)偽雙向預(yù)測(cè)圖像時(shí)、將所述標(biāo)記設(shè)置為值0,當(dāng)根據(jù)參考圖像的底場(chǎng)預(yù)測(cè)時(shí)、將所述標(biāo)記設(shè)置為值1。
20.如權(quán)利要求16所述的方法,其中,所述偽雙向預(yù)測(cè)圖像是正向預(yù)測(cè)圖像,并且預(yù)定設(shè)置是motion_vertical_field_select
以及motion_vertical_field_select[1]
標(biāo)記,其中,當(dāng)根據(jù)參考圖像的頂場(chǎng)預(yù)測(cè)偽雙向預(yù)測(cè)圖像時(shí)、將所述標(biāo)記設(shè)置為值0,當(dāng)根據(jù)參考圖像的底場(chǎng)預(yù)測(cè)時(shí)、將所述標(biāo)記設(shè)置為值1。
21.一種用于生成偽雙向預(yù)測(cè)圖像的系統(tǒng),其中,所述偽雙向預(yù)測(cè)圖像包含至少兩個(gè)場(chǎng),所述系統(tǒng)包括控制器,用于從存儲(chǔ)媒體中讀數(shù)據(jù);以及處理器,其中所述處理器被編程以用來設(shè)置偽雙向預(yù)測(cè)圖像的參數(shù),以指出不進(jìn)行剩余信號(hào)的編碼;并且使用基于場(chǎng)的預(yù)測(cè)來預(yù)測(cè)偽雙向預(yù)測(cè)圖像的至少兩個(gè)場(chǎng)。
22.如權(quán)利要求21所述的系統(tǒng),其中,所述處理器還被編程以用來設(shè)置偽雙向預(yù)測(cè)圖像的參數(shù),以指出不進(jìn)行剩余信號(hào)的離散余弦變換編碼。
23.如權(quán)利要求21所述的系統(tǒng),其中,所述偽雙向預(yù)測(cè)圖像包括多個(gè)宏塊,并且每個(gè)宏塊包含至少兩個(gè)場(chǎng)的至少一部分,并且其中所述參數(shù)是宏塊參數(shù)。
24.如權(quán)利要求23所述的系統(tǒng),其中,每個(gè)宏塊包含至少兩個(gè)具有水平和垂直運(yùn)動(dòng)分量的運(yùn)動(dòng)矢量,并且所述處理器還被編程以用于設(shè)置每個(gè)宏塊的至少兩個(gè)運(yùn)動(dòng)矢量,以指出所述水平和垂直運(yùn)動(dòng)分量將為0。
25.如權(quán)利要求21所述的系統(tǒng),其中,所述偽雙向預(yù)測(cè)圖像是單向預(yù)測(cè)圖像。
26.如權(quán)利要求25所述的系統(tǒng),其中,所述處理器還被編程以用于根據(jù)與獨(dú)立的數(shù)字編碼非逐行掃描圖像相關(guān)的單個(gè)場(chǎng)來預(yù)測(cè)偽雙向預(yù)測(cè)圖像的至少兩個(gè)場(chǎng)。
27.如權(quán)利要求25所述的系統(tǒng),其中,所述偽雙向預(yù)測(cè)圖像是正向預(yù)測(cè)圖像。
28.如權(quán)利要求25所述的系統(tǒng),其中,所述偽雙向預(yù)測(cè)圖像是反向預(yù)測(cè)圖像。
29.如權(quán)利要求26所述的系統(tǒng),其中,所述獨(dú)立的數(shù)字編碼非逐行掃描圖像是幀內(nèi)圖像。
30.如權(quán)利要求26所述的系統(tǒng),其中所述獨(dú)立的數(shù)字編碼非逐行掃描圖像是預(yù)測(cè)圖像。
31.如權(quán)利要求21所述的系統(tǒng),其中,所述偽雙向預(yù)測(cè)圖像是這樣一種雙向預(yù)測(cè)圖像,其中所述偽雙向預(yù)測(cè)圖像的第一場(chǎng)根據(jù)第一參考圖像來預(yù)測(cè),而偽雙向預(yù)測(cè)圖像的第二場(chǎng)根據(jù)第二參考圖像來預(yù)測(cè)。
32.如權(quán)利要求31所述的系統(tǒng),其中,所述處理器還被編程以用于根據(jù)與第一參考圖像相關(guān)的單個(gè)場(chǎng)來預(yù)測(cè)所述偽雙向預(yù)測(cè)圖像的第一場(chǎng),并且根據(jù)與第二參考圖像相關(guān)的單個(gè)場(chǎng)來預(yù)測(cè)所述偽雙向預(yù)測(cè)圖像的第二場(chǎng)。
33.如權(quán)利要求21所述的系統(tǒng),其中,所述偽雙向預(yù)測(cè)圖像根據(jù)非逐行掃描圖像來預(yù)測(cè)。
34.如權(quán)利要求21所述的系統(tǒng),其中,所述偽雙向預(yù)測(cè)圖像根據(jù)逐行掃描圖像來預(yù)測(cè)。
35.如權(quán)利要求21所述的系統(tǒng),其中,所述偽雙向預(yù)測(cè)圖像根據(jù)場(chǎng)圖像來預(yù)測(cè)。
36.一種用于生成偽雙向(B)預(yù)測(cè)圖像的系統(tǒng),所述偽雙向(B)預(yù)測(cè)圖像可以在不顯示出振動(dòng)的情況下進(jìn)行重復(fù),所述系統(tǒng)包括處理器,其中所述處理器被編程以用來通過在圖像語(yǔ)法中調(diào)節(jié)預(yù)定設(shè)置、根據(jù)數(shù)字編碼視頻流中的至少一個(gè)圖像來建立偽雙向預(yù)測(cè)圖像。
37.如權(quán)利要求36所述的系統(tǒng),其中,所述預(yù)定設(shè)置是frame_pred_frame_dct標(biāo)記,并且所述處理器還被編程以用來將frame_pred_frame_dct標(biāo)記設(shè)置為值0。
38.如權(quán)利要求36所述的系統(tǒng),其中,所述預(yù)定設(shè)置是progressive_frame標(biāo)記,并且所述處理器還被編程以用來將progressive_frame標(biāo)記設(shè)置為值0。
39.如權(quán)利要求36所述的系統(tǒng),其中,所述偽雙向預(yù)測(cè)圖像是反向預(yù)測(cè)圖像,并且預(yù)定設(shè)置是motion_vertical_field_select
[1]以及motion_vertical_field_select[1]
標(biāo)記,其中所述處理器還被編程以用于當(dāng)根據(jù)參考圖像的頂場(chǎng)預(yù)測(cè)偽雙向預(yù)測(cè)圖像時(shí)將標(biāo)記設(shè)置為值0,當(dāng)根據(jù)參考圖像的底場(chǎng)預(yù)測(cè)時(shí)將標(biāo)記設(shè)置為值1。
40.如權(quán)利要求36所述的系統(tǒng),其中,所述偽雙向預(yù)測(cè)圖像是正向預(yù)測(cè)圖像,并且預(yù)定設(shè)置是motion_vertical_field_select
以及motion_vertical_field_select[1]
標(biāo)記,其中,所述處理器還被編程以用于當(dāng)根據(jù)參考圖像的頂場(chǎng)預(yù)測(cè)偽雙向預(yù)測(cè)圖像時(shí)將標(biāo)記設(shè)置為值0,當(dāng)根據(jù)參考圖像的底場(chǎng)預(yù)測(cè)時(shí)將標(biāo)記設(shè)置為值1。
全文摘要
本發(fā)明涉及一種用于生成包括至少兩個(gè)場(chǎng)的偽雙向預(yù)測(cè)圖像的方法(200)和系統(tǒng)(100),其中所述偽雙向預(yù)測(cè)圖像在顯示期間基本上不振動(dòng)地進(jìn)行重復(fù)。所述方法包括以下步驟設(shè)置偽雙向預(yù)測(cè)圖像的參數(shù)以便指出不進(jìn)行剩余信號(hào)的編碼,而使用(216、222、224)基于場(chǎng)的預(yù)測(cè)來預(yù)測(cè)偽雙向預(yù)測(cè)圖像的至少兩個(gè)場(chǎng)。所述設(shè)置步驟還包括設(shè)置偽雙向預(yù)測(cè)圖像的參數(shù)以指出不進(jìn)行剩余信號(hào)的離散余弦變換編碼。所述偽雙向預(yù)測(cè)圖像可包括多個(gè)宏塊,并且每個(gè)宏塊可包括至少兩個(gè)場(chǎng)的至少一部分,并且所述參數(shù)是宏塊參數(shù)。
文檔編號(hào)G06T9/00GK1575609SQ02820964
公開日2005年2月2日 申請(qǐng)日期2002年10月18日 優(yōu)先權(quán)日2001年10月23日
發(fā)明者林書, 唐納德·H·威利斯 申請(qǐng)人:湯姆森特許公司