專利名稱:可執(zhí)行區(qū)塊比對移動補償與全域移動補償?shù)难b置與方法
技術領域:
本發(fā)明涉及一種數(shù)字視頻,特別涉及一種可對包含有使用區(qū)塊比對移動補償或是全域移動補償所編碼得出的宏區(qū)塊的一編碼視頻比特流進行譯碼的方法及相關裝置。
背景技術:
長久以來,使用模擬視頻信號(analog video signal)的全動態(tài)視頻播放(full-motion video display)即常見于各式各樣的電視系統(tǒng)之中。而由于近幾年來計算機處理能力的快速進步以及越降越低的系統(tǒng)成本,使用數(shù)字視頻信號(digital video signal)的全動態(tài)視頻播放也有越來越普遍化的趨勢。相較于傳統(tǒng)的模擬視頻系統(tǒng),數(shù)字視頻系統(tǒng)在建立、修改、傳送、儲存、以及播放全動態(tài)視頻序列(full-motion video sequence)的功能上都有相當長足的進步。
然而,在視頻序列(video sequence)中通常都包含有極大量的原始數(shù)字信息(raw digital information)。對一般的個人計算機系統(tǒng)而言,要儲存或是傳送如此大量的視頻信息通常是不可行的。舉例來說,對于一個具有較低分辨率(例如320×480個像素)的VHS圖像格式而言,經(jīng)過數(shù)字化以后,兩個小時的全動態(tài)視頻播放必須使用大約100GB的數(shù)字視頻信息。而相對的,一般的只讀光盤片(CD-ROM)的容量通常只有0.7GB,至于DVD則具有至多8GB的容量而已。
為了解決必須儲存或是傳送如此大量數(shù)字視頻的難題,各式各樣的視頻壓縮標準或是程序也就陸續(xù)地被提出,例如MPEG-1、MPEG-2、MPEG-4、H.26X等等。這些視頻壓縮技術利用了個別圖像幀中靜態(tài)圖像的相似性(可稱為幀內(nèi)關連intra-frame correlation)、或是連續(xù)圖像幀之間的相似性(可稱為幀間關連,inter-frame correlation),來進行壓縮工作,以使用較高的壓縮率(compression ratio)對數(shù)字視頻信息進行編碼。
在已知技術中,「區(qū)塊比對移動補償」(block-matching motioncompensation,BMMC)是在對數(shù)字視頻信息進行編碼時常會使用到的一種技術。若一圖像序列中顯示的是移動的物體,系統(tǒng)可以依據(jù)這些物體的移動狀況,針對一些特定的「區(qū)塊」(block,或是「宏區(qū)塊」(macroblock,MB))(這些特定的區(qū)塊中包含有移動中的物體)產(chǎn)生適當?shù)囊苿酉蛄?motionvector,MV)。而所得出的移動向量則可用來預測在上述的圖像序列中,相對的宏區(qū)塊后續(xù)的位置狀況。相對于傳送一整張新的圖像,此時系統(tǒng)只需傳送移動物體所在的宏區(qū)塊對應的移動向量即可。因此,BMMC的技術可以大幅減低對于包含有移動物體的圖像序列所需傳送的數(shù)據(jù)量。然而,當圖像變化得太劇烈時,有時則必須傳送所有宏區(qū)塊的移動向量,此舉卻會大幅降低編碼效率(coding efficiency)。為了解決此一問題,已知技術中則發(fā)展出另一種編碼技術,稱為「全域移動補償」(global motion compensation,GMC),舉例來說,MPEG-4(亦即ISO/IEC 14496-2)中的「精靈編碼」(sprite coding)技術即是GMC技術的一種例子。在GMC技術中會考慮到前次幀(previousframe)與目前幀(current frame)之間的全域圖像變化(global imagechange)。關于每個幀的全域移動參數(shù)則可用來指出使用GMC編碼得出的每個宏區(qū)塊中所有像素(pixel)的移動向量。如此一來,每個幀僅需使用一組的全域移動參數(shù)即可,故對于具有全域圖像變化的視頻序列而言,此舉可以大幅增加編碼效率。
請參閱圖1,圖1為已知技術中一視頻譯碼器的示意圖(由美國第6,483,877號的專利案件所揭露)。圖1中的視頻譯碼器100是接收一輸入編碼視頻比特流102,經(jīng)由一解多工器104將之分成量化后的(quantized)離散余弦轉(zhuǎn)換(discrete cosine transform,DCT)參數(shù)106,宏區(qū)塊移動向量與全域移動參數(shù)108,以及幀內(nèi)/幀間編碼區(qū)別標記110。量化后的離散余弦轉(zhuǎn)換參數(shù)106會由一逆量化器(inverse quantizer)112以及一反離散余弦轉(zhuǎn)換處理器(inverse DCT processor)譯碼成一誤差圖像(error image)116。一加法器122則將一幀內(nèi)/幀間切換單元120所輸出的一輸出圖像118加入誤差圖像116中,以產(chǎn)生一重建圖像124。
幀內(nèi)/幀間切換單元120可依據(jù)幀內(nèi)/幀間編碼區(qū)別標記110切換其所輸出的輸出圖像118。一預測圖像合成器(predicted image synthesizer)126可合成出一預測圖像128,至于預測圖像128則可用來執(zhí)行幀間解碼。預測圖像合成器126可自至少一解碼圖像130(即儲存于一幀內(nèi)存134中已譯碼過的圖像)中提取預測區(qū)塊,并執(zhí)行移動補償?shù)倪\算。依據(jù)一特定宏區(qū)塊所使用的編碼類型,預測圖像合成器126可以選擇執(zhí)行BMMC或是GMC。在幀內(nèi)編碼(intraframe coding)的情形下,幀內(nèi)/幀間切換單元120會輸出等于“0”的幀內(nèi)/幀間切換信號132,此時系統(tǒng)就不會使用預測圖像合成器126所輸出的信號。
接下來請參閱圖2。圖2為圖1中預測圖像合成器126較詳細的示意圖。圖2中的預測圖像合成器126可以平行地處理GMC以及BMMC。宏區(qū)塊移動向量與全域移動參數(shù)108是作為一解多工器202的輸入信號,解多工器202則可以提供全域移動參數(shù)204至一GMC圖像合成器210,提供一宏區(qū)塊移動向量206至一BM圖像合成器212,并提供一選擇信號208(用來指明是BMMC、還是GMC)至一切換單元214。BM圖像合成器212可對使用BMMC編碼得出的區(qū)塊合成出預測圖像,至于GMC圖像合成器210則可對使用GMC編碼得出的區(qū)塊合成出預測圖像。個別的預測圖像數(shù)據(jù)216與218則輸出至切換單元214,由切換單元214依據(jù)接收自解多工器202的選擇信號208選擇出其中一個信號。接下來,預測圖像128則會輸出至切換單元120,如圖1所示。
由以上的描述中可以了解,在可同時支持BMMC以及GMC的視頻譯碼器中,必須使用到兩個不同的圖像合成器。如圖2的例子,第一個圖像合成器212是用來執(zhí)行BMMC,第二個圖像合成器210則用來執(zhí)行GMC。在處理使用BMMC技術編碼得出的區(qū)塊時,GMC圖像合成器210會處于閑置狀態(tài);相似的,在處理使用GMC技術編碼得出的區(qū)塊時,BM圖像合成器212則會處于閑置狀態(tài)。很明顯的,上述使用兩個圖像合成器的作法并不是最佳的解決方案,且會增加圖像合成器的硬件復雜度、以及整體的系統(tǒng)成本。這是已知技術所面臨的一個問題。
發(fā)明內(nèi)容
因此本發(fā)明的一個目的在于提供一種可對使用區(qū)塊比對移動補償與使用全域移動補償所編碼得出的宏區(qū)塊進行移動補償?shù)难b置及相關方法,以解決已知技術所面臨的問題。
根據(jù)以下所提出的實施例,本發(fā)明所揭露的裝置可用來于對包含有多個幀的一輸入視頻比特流進行譯碼工作。這些幀中可包含有使用區(qū)塊比對移動補償所編碼得出或是使用全域移動補償所編碼得出的多個宏區(qū)塊。該裝置包含有一內(nèi)插單元,用來對該輸入視頻比特流中每一個幀中所包含的每一個宏區(qū)塊執(zhí)行內(nèi)插運算。其中,在處理一目前宏區(qū)塊時,若該目前宏區(qū)塊是使用全域移動補償編碼所編碼得出,則該內(nèi)插單元是依據(jù)自多個全域移動參數(shù)所轉(zhuǎn)換得出的一全域移動向量執(zhí)行內(nèi)插運算。
另外,根據(jù)以下所提出的實施例,本發(fā)明亦揭露了一種使用于一視頻譯碼器中的預測圖像合成器,用來對一視頻比特流譯碼并產(chǎn)生一預測圖像,該視頻比特流包含有多個幀,這些幀中則包含有使用區(qū)塊比對移動補償所編碼得出的多個第一宏區(qū)塊,以及使用全域移動補償所編碼得出的多個第二宏區(qū)塊,該視頻比特流中包含有多個宏區(qū)塊移動向量以表示這些第一宏區(qū)塊的移動向量,以及關于這些幀的多個全域移動參數(shù)以表示這些第二宏區(qū)塊中每個像素的一移動向量,該預測圖像合成器包含有一轉(zhuǎn)換單元,用來接收這些全域移動參數(shù),并將這些全域移動參數(shù)轉(zhuǎn)換成一全域移動向量,其中,該全域移動向量的形式則與該宏區(qū)塊移動向量的形式相同;以及一內(nèi)插單元,用來接收一已譯碼幀,接收該全域移動向量,執(zhí)行內(nèi)插運算,并產(chǎn)生該預測圖像。
圖1為已知技術中一視頻譯碼器的示意圖。
圖2為圖1中預測圖像合成器較詳細的示意圖。
圖3為本發(fā)明的預測圖像合成器的一實施例示意圖。
圖4為圖3中預測圖像合成器為亮度與彩度BMMC所執(zhí)行的半像素內(nèi)插的示意圖。
圖5為圖4的半像素雙線性內(nèi)插結(jié)果的矩陣示意圖。
圖6為已知技術的GMC的示意圖。
圖7為圖3中的內(nèi)插單元對亮度GMC所執(zhí)行的半像素雙線性內(nèi)插的示意圖。
圖8為圖3中的內(nèi)插單元對彩度GMC所執(zhí)行的四分之一像素雙線性內(nèi)插的示意圖。
圖9為本發(fā)明用來處理一輸入編碼視頻比特流的方法實施例流程圖。
符號說明100視頻譯碼器
102 輸入編碼視頻比特流104、202、302解多工器106 離散余弦轉(zhuǎn)換參數(shù)108 宏區(qū)塊移動向量與全域移動參數(shù)110 幀內(nèi)/幀間編碼區(qū)別標記112 逆量化器114 逆DCT處理器116 誤差圖像118 輸出圖像120 幀內(nèi)/幀間切換單元122 加法器124 重建圖像128 預測圖像130 譯碼圖像132 幀內(nèi)/幀間切換信號134 幀內(nèi)存204、307 全域移動參數(shù)206、305 宏區(qū)塊移動向量208 選擇信號210 GMC圖像合成器212 BM圖像合成器214、310 切換單元216、218 預測圖像數(shù)據(jù)300 預測圖像合成器304 轉(zhuǎn)換單元306 宏區(qū)塊移動向量儲存單元308 全域移動向量儲存單元312 內(nèi)插單元313 緩沖器314 移動向量316 移動補償類型
具體實施例方式
請參閱圖3,圖3為本發(fā)明的預測圖像合成器的一實施例示意圖。本實施例中的預測圖像合成器300可以使用于一視頻譯碼器之中(例如圖1所示的視頻譯碼器100)(請注意,在圖3中,與圖1中包含有相同信息的信號是使用了相同的數(shù)字編號表示)。預測圖像合成器300包含有一解多工器302,一轉(zhuǎn)換單元304,一宏區(qū)塊移動向量儲存單元306,一全域移動向量儲存單元308,一切換單元310,以及一內(nèi)插單元312。
解多工器302可接收自輸入編碼視頻比特流所得出的宏區(qū)塊移動向量與全域移動參數(shù)108。在每一個幀的開始處,全域移動參數(shù)307皆會被傳送至轉(zhuǎn)換單元304。轉(zhuǎn)換單元304則將全域移動參數(shù)307轉(zhuǎn)換成一用于亮度(luminance)的全域移動向量(即亮度全域移動向量)以及一用于彩度(chrominance)的全域移動向量(即彩度全域移動向量)。在對該幀中所有使用GMC所編碼得出的宏區(qū)塊進行內(nèi)插運算時,可以使用到前述的亮度全域移動向量以及彩度全域移動向量。亮度全域移動向量以及彩度全域移動向量皆儲存于全域移動向量儲存單元308中。對于所有使用BMMC編碼得出的宏區(qū)塊,至少會有一個宏區(qū)塊移動向量包含在該宏區(qū)塊中。宏區(qū)塊移動向量305是包含在宏區(qū)塊移動向量與全域移動參數(shù)108之中,而被傳送至預測圖像合成器300。然后,宏區(qū)塊移動向量305則被存放在宏區(qū)塊移動向量儲存單元306之中。根據(jù)MPEG-4規(guī)格的定義,宏區(qū)塊移動向量305實際上會是一用于亮度的宏區(qū)塊移動向量(即亮度宏區(qū)塊移動向量)。至于一用于彩度的宏區(qū)塊移動向量(即彩度宏區(qū)塊移動向量)則可以藉由對亮度宏區(qū)塊移動向量的計算而得出。為了要節(jié)省宏區(qū)塊移動向量儲存單元306中的空間,只有宏區(qū)塊移動向量305(亦即亮度宏區(qū)塊移動向量)會被儲存在宏區(qū)塊移動向量儲存單元306之中。至于彩度宏區(qū)塊移動向量則會由本實施例中的內(nèi)插單元312計算得出。請注意,在其它的實施方式中,宏區(qū)塊移動向量305亦可以不通過宏區(qū)塊移動向量儲存單元306而直接傳送至切換單元310。至于切換單元310則可依據(jù)移動補償類型316,選擇性地將接收自宏區(qū)塊移動向量儲存單元306的宏區(qū)塊移動向量或是接收自全域移動向量儲存單元308的亮度/彩度全域移動向量傳送至內(nèi)插單元312。
內(nèi)插單元312可自一譯碼圖像130中讀取出至少一預測區(qū)塊,至于所讀取出的預測區(qū)塊在解碼圖像130中的位置則由接收自切換單元310的移動向量314所決定。接下來,內(nèi)插單元312即對相對應的預測區(qū)塊執(zhí)行亮度以及彩度的內(nèi)插運算。內(nèi)插單元312所接收到的移動向量314可以是從宏區(qū)塊移動向量儲存單元306中讀出的宏區(qū)塊移動向量,也可以是從全域移動向量儲存單元308中讀出的亮度/彩度全域移動向量。簡言之,內(nèi)插單元312的功能是在于是接收譯碼圖像130與移動向量314,執(zhí)行內(nèi)插運算以輸出一預測圖像128,至于預測圖像128則可用于一視頻譯碼器(例如圖1所示的視頻譯碼器100)中以執(zhí)行幀間解碼的工作。另外,內(nèi)插單元312還可以包含有一緩沖器313,用來暫存對應于一宏區(qū)塊中不同宏區(qū)塊移動向量的內(nèi)插運算結(jié)果,以適當?shù)貙?zhí)行對該宏區(qū)塊的內(nèi)插運算。舉例來說,在對一區(qū)塊比對宏區(qū)塊執(zhí)行雙向內(nèi)插(bi-directional interpolation)時,內(nèi)插單元312可以將向前預測的內(nèi)插結(jié)果(forward prediction interpolation result)暫存于緩沖器313中,配合上之后運算出的向后預測的內(nèi)插結(jié)果(backwardprediction interpolation result),即可得出最終的雙向內(nèi)插結(jié)果。
接下來請參閱圖4與圖5,以了解內(nèi)插單元312所執(zhí)行的亮度與彩度內(nèi)插運算。圖4是圖3中的預測圖像合成器300為亮度與彩度BMMC所執(zhí)行的半像素(half-pixel,或half-pel)內(nèi)插的示意圖。圖5則是圖4的半像素雙線性(bilinear)內(nèi)插結(jié)果的矩陣示意圖。在圖4中,共有四個整數(shù)像素位置A、B、C、D(在圖5中以IA、IB、IC、ID表示),以及五個半像素位置(在圖5中則以H1、H2、H3、H4、H5表示)。在對使用BMMC所編碼得出的宏區(qū)塊執(zhí)行移動補償工作時,本發(fā)明是使用與已知技術相同的半像素雙線性內(nèi)插程序。為了說明雙線性內(nèi)插的計算方式,請參閱以下公式。以下公式分別顯示了對像素位置IA、H1、H2、H3的內(nèi)插運算(至于其它像素位置的計算方式則大致相同,這是熟習此項技術者所能輕易了解的,在此不多作贅述)。
IA=IAH1=(IA+IB+1rounding_control)/2H2=(IA+IC+1rounding_control)/2H3=(IA+IB+IC+ID+2rounding_control)/4…其中,參數(shù)rounding_control的值是0或1,其值則是由輸入編碼視頻比特流所決定。
圖6為已知技術的GMC的示意圖。在已知技術的GMC中,對于使用GMC編碼得出的每一個宏區(qū)塊中的每一個像素,皆需要將全域移動參數(shù)轉(zhuǎn)換成一個對應于該像素的移動向量。在圖6中包含有四個整數(shù)像素位置Y00、Y01、Y10、Y11以及一非整數(shù)像素位置Y。非整數(shù)的像素位置Y的垂直距離為rj/s,水平距離則為ri/s,其中s的值如MPEG-4的參數(shù)sprite_warping_accuracy所定義。當MPEG-4的參數(shù)no_of_sprite_warping_point的值設成0或是1時,全域移動參數(shù)可以轉(zhuǎn)換成一全域移動向量(對于幀中所有的像素都具有相同的值),本發(fā)明即是使用此一特點,亦即,除了如已知技術的作法以每個「像素」為基礎執(zhí)行GMC以外,本發(fā)明亦可以以每個「宏區(qū)塊」為基礎執(zhí)行GMC(對每一個宏區(qū)塊使用一個移動向量)。如此一來,只需使用到與已知技術中的BM圖像合成器212大致上相同的硬件裝置,本發(fā)明即可以執(zhí)行BMMC以及GMC的工作。
圖7為圖3中的內(nèi)插單元312對亮度GMC所執(zhí)行的半像素雙線性內(nèi)插的示意圖。當MPEG-4的參數(shù)no_of_sprite_warping_point的值設為0或1時,圖6中所示的亮度內(nèi)插運算可以簡化成圖7所示的矩陣。由于圖7所示的矩陣與圖5所示的矩陣相同,也就表示只需使用同一個內(nèi)插單元312,即可使用半像素分辨率(resolution)執(zhí)行BMMC的亮度與彩度內(nèi)插運算,以及GMC的亮度內(nèi)插運算。
圖8為圖3中的內(nèi)插單元312對彩度GMC所執(zhí)行的四分之一像素(quarter-pixel或quarter-pel)雙線性內(nèi)插的示意圖。當MPEG-4的參數(shù)no_of_sprite_warping_point的值設為0或1時,圖5中所示的彩度內(nèi)插運算可以簡化成圖7所示的矩陣。簡單地說,圖7是一個四分之一像素矩陣,可以使用相同于半像素矩陣所使用到的雙線性內(nèi)插程序來處理(于兩倍的分辨率)。為了說明在四分之一像素的內(nèi)插計算方式,請參閱以下公式。以下公式分別顯示了對像素位置IA、Q1、H2、Q4、Q5、Q6、H9、Q10、H11的內(nèi)插運算(至于其它像素位置的計算方式則大致相同,在此不多作贅述)。
IA=IAQ1=(3IA+IB+2rounding_control)/4H2=(IA+IB+1 rounding_control)/2Q4=(3IA+Ic+2rounding_control)/4Q5=(9IA+3IB+3IC+ID+8rounding_control)/16
Q6=(3IA+3IB+IC+ID+4rounding_control)/8H9=(IA+IC+1rounding_control)/2Q10=(3IA+IB+3IC+ID+4rounding_control)/8H11=(IA+IB+IC+ID+2rounding_control)/4其中,參數(shù)rounding_control的值是0或1,其值則是由輸入編碼視頻比特流所決定。
請注意,轉(zhuǎn)換單元304會將對每一個幀所接收到的全域移動參數(shù)307轉(zhuǎn)換成該幀的一亮度全域移動向量以及一彩度全域移動向量。藉由以下的所示的公式,已知技術者可以很快地了解在對以GMC編碼得出的宏區(qū)塊執(zhí)行內(nèi)插運算時(參數(shù)no_of_sprite_warping_point的值分別設為0與1),由轉(zhuǎn)換單元304所執(zhí)行的轉(zhuǎn)換程序。此時的亮度全域移動向量是一精確度為半像素的移動向量,彩度全域移動向量則為一精確度為四分之一像素的移動向量。因此,可以將這些以GMC編碼得出的宏區(qū)塊當成是預測模式(predictionmode)設為「幀預測」(亦即“frame_prediction”)的區(qū)塊比對宏區(qū)塊,而亮度/彩度成分的亮度/彩度全域移動向量如以下所示。
對于參數(shù)no_of_sprite_warping_point==0,sprite_enable==‘GMC’,且video_object_layer_shape==‘rectangle’的GMC宏區(qū)塊而言MVGMC_Y=(MVxGMC_Y,MVyGMC_Y)=(0,0)MVGMC_CbCr=(MVxGMC_CbCr,MVyGMC_CbCr)=(0,0)對于參數(shù)no_of_sprite_warping_point==1,sprite_enable==‘GMC’,且video_object_layer_shape==‘rectangle’的GMC宏區(qū)塊而言MVGMCY=(MVxGMCY,MVyGMCY)=(i0′,j0′)=((s/2)du
,(s/2)dv
)]]> 其中(i0,j0)=((s/2)du
,(s/2)dv
)如MPEG-4規(guī)格所定義,du
與dv
是自輸入編碼視頻比特流所得出的全域移動參數(shù),至于s的值則由參數(shù)sprite_warping_accuracy所決定。
雖然上述的方程式主要適用于no_of_sprite_warping_point==0或1,sprite_enable==‘GMC’,且video_object_layer_shape==‘rectangle’的情形下。然而,在sprite_enable與video_object_layer_shape具有其它值的情形下,還是可以使用本發(fā)明的作法。熟習此項技術者應可了解,只要no_of_sprite_warping_point==0或1,即使sprite_enable和video_object_layer_shape的值與前述不同,依舊可以使用本發(fā)明所提出的作法(上述的方程式則會有些許的改變)。
圖9為本發(fā)明用來處理一輸入編碼視頻比特流(包含有多個幀)的方法實施例流程圖。其中,每一個幀中可以包含有多個使用BMMC所編碼得出的宏區(qū)塊及(或)多個使用GMC所編碼得出的宏區(qū)塊。以下將詳述圖9中的各個步驟步驟900對于該輸入編碼視頻比特流中的每一個幀,將相關于該幀的全域移動參數(shù)轉(zhuǎn)換成一亮度全域移動向量以及一彩度全域移動向量。儲存該亮度全域移動向量與該彩度全域移動向量,以在后續(xù)的GMC亮度/彩度內(nèi)插運算中使用。進入步驟902。
步驟902當對一目前宏區(qū)塊進行譯碼時,判斷該目前宏區(qū)塊是使用BMMC所編碼得出的宏區(qū)塊,或是使用GMC所編碼得出的宏區(qū)塊。若是BMMC,進入步驟904,若是GMC,則進入步驟908。
步驟904讀出儲存于該目前宏區(qū)塊中的宏區(qū)塊移動向量。
步驟906依據(jù)在步驟904中所得出的宏區(qū)塊移動向量,執(zhí)行亮度及彩度雙線性內(nèi)插運算(對于亮度與彩度皆使用半像素分辨率)。結(jié)束本流程。
步驟908依據(jù)在步驟900中所儲存的亮度全域移動向量,執(zhí)行亮度雙線性內(nèi)插運算(使用半像素分辨率)。然后進入步驟910。
步驟910依據(jù)在步驟900中所儲存的彩度全域移動向量,執(zhí)行彩度雙線性內(nèi)插運算(使用四分之一像素分辨率)。然后結(jié)束本流程。
相較于已知技術,由于本發(fā)明可依據(jù)一亮度全域移動向量以及一彩度全域移動向量對使用GMC編碼得出的宏區(qū)塊執(zhí)行雙線性內(nèi)插運算,故僅需使用一個整合的單一裝置即可執(zhí)行BMMC與GMC相關的工作。亮度/彩度全域移動向量則可以由輸入編碼視頻比特流中與每一個幀一同傳送的一組全域移動參數(shù)轉(zhuǎn)換得出。對于一符合MPEG-4規(guī)格的編碼視頻比特流(具有參數(shù)no_of_sprite_warping_point的值設為0或1的GMC宏區(qū)塊)而言,GMC運算可以簡化成類似于對BMMC所執(zhí)行的內(nèi)插運算。不同的地方則在于,對使用GMC編碼得出的宏區(qū)塊的彩度內(nèi)插運算而言,是使用了四分之一像素分辨率。對使用BMMC編碼得出的宏區(qū)塊的亮度與彩度內(nèi)插運算,以及使用GMC編碼得出的宏區(qū)塊的亮度內(nèi)插運算而言,則使用了半像素分辨率。
而當一幀中僅包含有使用BMMC編碼得出的宏區(qū)塊時,該幀可能不會具有相對應的全域移動參數(shù)。在此種情形下,本發(fā)明就不需要執(zhí)行將全域移動參數(shù)轉(zhuǎn)換成一亮度全域移動向量與一彩度全域移動向量的轉(zhuǎn)換程序(因為該幀并沒有相對應的全域移動參數(shù)),這是需要注意的一點。
以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明申請專利范圍所做的均等變化與修飾,皆應屬本發(fā)明的涵蓋范圍。
權利要求
1.一種裝置,用來于對一輸入視頻比特流譯碼時執(zhí)行移動補償?shù)墓ぷ?,該輸入視頻比特流包含有多個幀,這些幀中則包含有使用區(qū)塊比對移動補償所編碼得出的多個第一宏區(qū)塊,以及使用全域移動補償所編碼得出的多個第二宏區(qū)塊,該裝置包含有一內(nèi)插單元,用來對該輸入視頻比特流中每一個幀中所包含的每一個宏區(qū)塊執(zhí)行內(nèi)插運算;其中,在處理一目前宏區(qū)塊時,若該目前宏區(qū)塊是使用全域移動補償編碼所編碼得出,則該內(nèi)插單元是以各個宏區(qū)塊為基礎,依據(jù)一全域移動向量執(zhí)行內(nèi)插運算。
2.如權利要求1所述的裝置,其另包含有一轉(zhuǎn)換單元,用來將與該輸入視頻比特流中一目前幀相關的多個全域移動參數(shù)轉(zhuǎn)換成該全域移動向量,以供該該內(nèi)插單元使用。
3.如權利要求2所述的裝置,其中,在處理該目前宏區(qū)塊時,若該目前宏區(qū)塊是使用區(qū)塊比對移動補償所編碼得出,則該內(nèi)插單元是依據(jù)該目前宏區(qū)塊中所包含的至少一宏區(qū)塊移動向量執(zhí)行內(nèi)插運算。
4.如權利要求3所述的裝置,其另包含有一區(qū)塊比對移動向量儲存單元,用來儲存自每一個使用區(qū)塊比對移動補償編碼得出的宏區(qū)塊讀出的該宏區(qū)塊移動向量;一全域移動向量儲存單元,用來儲存由該轉(zhuǎn)換單元所輸出的該全域移動向量;以及一多工器,用來選擇該內(nèi)插單元使用該宏區(qū)塊移動向量或該全域移動向量執(zhí)行內(nèi)插運算;其中,在對使用區(qū)塊比對移動補償所編碼得出的宏區(qū)塊執(zhí)行內(nèi)插運算時,該多工器是將儲存在該宏區(qū)塊移動向量儲存單元中的該宏區(qū)塊移動向量輸出至該內(nèi)插單元;在對使用全域移動補償所編碼得出的宏區(qū)塊執(zhí)行內(nèi)插運算時,該多工器是將儲存在該全域移動向量儲存單元中的該全域移動向量輸出至該內(nèi)插單元。
5.如申權利要求1所述的裝置,其中,內(nèi)插運算是包含有亮度內(nèi)插運算以及彩度內(nèi)插運算。
6.如權利要求5所述的裝置,其中,該內(nèi)插單元是使用半像素的精確度對使用區(qū)塊比對移動補償所編碼得出的宏區(qū)塊執(zhí)行亮度內(nèi)插運算。
7.如權利要求5所述的裝置,其中,該內(nèi)插單元是使用半像素的精確度對使用區(qū)塊比對移動補償所編碼得出的宏區(qū)塊執(zhí)行彩度內(nèi)插運算。
8.如權利要求5所述的裝置,其中,該內(nèi)插單元是使用半像素的精確度對使用全域移動補償所編碼得出的宏區(qū)塊執(zhí)行亮度內(nèi)插運算。
9.如權利要求5所述的裝置,其中,該內(nèi)插單元是使用四分之一像素的精確度對使用全域移動補償所編碼得出的宏區(qū)塊執(zhí)行彩度內(nèi)插運算。
10.如權利要求1所述的裝置,其中,該裝置可處理MPEG-4規(guī)格的該輸入視頻比特流。
11.如權利要求10所述的裝置,其中于MPEG-4規(guī)格的該輸入視頻比特流中,參數(shù)no_of_sprite_warping_point的值是設為0或1。
12.如權利要求1所述的裝置,其中,在執(zhí)行內(nèi)插運算時,該內(nèi)插單元是使用一雙線性內(nèi)插程序。
13.一種方法,用來處理一輸入視頻比特流,該視頻比特流包含有多個幀,這些幀中則包含有使用區(qū)塊比對移動補償所編碼得出的多個第一宏區(qū)塊,以及使用全域移動補償所編碼得出的多個第二宏區(qū)塊,該視頻比特流中包含有多個宏區(qū)塊移動向量以表示這些第一宏區(qū)塊的移動向量,以及關于這些幀的多個全域移動參數(shù)以表示這些第二宏區(qū)塊中每個像素的一移動向量,該方法包含有若一目前宏區(qū)塊是使用全域移動補償編碼所編碼得出,則依據(jù)自該視頻比特流得出的一全域移動向量執(zhí)行內(nèi)插運算,其中,該全域移動向量的形式是相同于該宏區(qū)塊移動向量的形式。
14.如權利要求13所述的方法,其另包含有將與該輸入視頻比特流中一目前幀相關的多個全域移動參數(shù)轉(zhuǎn)換成該全域移動向量。
15.如權利要求13所述的方法,其另包含有若該目前宏區(qū)塊是使用區(qū)塊比對移動補償所編碼得出,則依據(jù)該目前宏區(qū)塊所包含的一宏區(qū)塊移動向量執(zhí)行內(nèi)插運算。
16.如權利要求13所述的方法,其中,內(nèi)插運算是包含有亮度內(nèi)插運算以及彩度內(nèi)插運算。
17.如權利要求16所述的方法,其中,該方法是使用半像素的精確度對使用區(qū)塊比對移動補償所編碼得出的宏區(qū)塊執(zhí)行亮度內(nèi)插運算。
18.如權利要求16所述的方法,其中,該方法是使用半像素的精確度對使用區(qū)塊比對移動補償所編碼得出的宏區(qū)塊執(zhí)行彩度內(nèi)插運算。
19.如權利要求16所述的方法,其中,該方法是使用半像素的精確度對使用全域移動補償所編碼得出的宏區(qū)塊執(zhí)行亮度內(nèi)插運算。
20.如權利要求16所述的方法,其中,該方法是使用四分之一像素的精確度對使用全域移動補償所編碼得出的宏區(qū)塊執(zhí)行彩度內(nèi)插運算。
21.如權利要求13所述的方法,其中,該方法是可處理MPEG-4規(guī)格的該輸入視頻比特流。
22.如權利要求21所述的方法,其中,在MPEG-4規(guī)格的該輸入視頻比特流中,參數(shù)no_of_sprite_warping_point的值是設為0或1。
23.如權利要求13所述的方法,其中,在執(zhí)行內(nèi)插運算時,該方法是使用一雙線性內(nèi)插程序。
24.一種預測圖像合成器,使用于一視頻譯碼器中,用來對一視頻比特流譯碼并產(chǎn)生一預測圖像,該視頻比特流包含有多個幀,這些幀中則包含有使用區(qū)塊比對移動補償所編碼得出的多個第一宏區(qū)塊,以及使用全域移動補償所編碼得出的多個第二宏區(qū)塊,該視頻比特流中包含有多個宏區(qū)塊移動向量以表示這些第一宏區(qū)塊的移動向量,以及關于這些幀的多個全域移動參數(shù)以表示這些第二宏區(qū)塊中每個像素的一移動向量,該預測圖像合成器包含有一轉(zhuǎn)換單元,用來接收這些全域移動參數(shù),并將這些全域移動參數(shù)轉(zhuǎn)換成一全域移動向量,其中,該全域移動向量的形式是相同于該宏區(qū)塊移動向量的形式;以及一內(nèi)插單元,用來接收一已譯碼幀、接收該全域移動向量、執(zhí)行內(nèi)插運算、并產(chǎn)生該預測圖像。
25.如權利要求24所述的預測圖像合成器,其另包含有一解多工器,用來接收這些宏區(qū)塊移動向量以及這些全域移動參數(shù),并分別輸出這些宏區(qū)塊移動向量以及這些全域移動參數(shù);其中,該解多工器所輸出的這些全域移動參數(shù)是傳送至該轉(zhuǎn)換單元,由該轉(zhuǎn)換單元將這些全域移動參數(shù)轉(zhuǎn)換成該全域移動向量,而該全域移動向量的形式是相同于該宏區(qū)塊移動向量的形式,該內(nèi)插單元則用來選擇性地接收該宏區(qū)塊移動向量或是該全域移動向量,以執(zhí)行內(nèi)插運算。
26.如權利要求25所述的預測圖像合成器,其中,當一目前宏區(qū)塊是使用全域移動補償所編碼得出時,該內(nèi)插單元是接收該全域移動向量。
27.如權利要求25所述的預測圖像合成器,其中,內(nèi)插運算是包含有亮度內(nèi)插運算以及彩度內(nèi)插運算,該內(nèi)插單元是使用一第一分辨率執(zhí)行亮度內(nèi)插運算,并使用一第二分辨率執(zhí)行彩度內(nèi)插運算。
28.如權利要求27所述的預測圖像合成器,其中,該第一分辨率是為半像素分辨率,該該第二分辨率則為四分之一像素分辨率。
29.如權利要求25所述的預測圖像合成器,其中,當一目前宏區(qū)塊是使用區(qū)塊比對移動補償所編碼得出時,該內(nèi)插單元是接收該宏區(qū)塊移動向量。
30.如權利要求29所述的預測圖像合成器,其中,內(nèi)插運算是包含有亮度內(nèi)插運算以及彩度內(nèi)插運算,該內(nèi)插單元是使用半像素分辨率執(zhí)行亮度內(nèi)插運算以及彩度內(nèi)插運算。
31.如權利要求30所述的預測圖像合成器,其中,在執(zhí)行內(nèi)插運算時,該內(nèi)插單元是使用一雙線性內(nèi)插程序。
全文摘要
本發(fā)明提供的裝置包含有一內(nèi)插單元,用來接收包含有多個幀的一輸入視頻比特流,這些幀中包含有使用區(qū)塊比對移動補償與使用全域移動補償所編碼得出的多個宏區(qū)塊。一轉(zhuǎn)換單元用來將與一目前幀相關的多個全域移動參數(shù)轉(zhuǎn)換成一全域移動向量。該內(nèi)插單元可對該輸入視頻比特流中每一個幀中所包含的每一個宏區(qū)塊執(zhí)行內(nèi)插運算。若一目前宏區(qū)塊是使用全域移動補償編碼所編碼得出,則依據(jù)一全域移動向量執(zhí)行內(nèi)插運算;若該目前宏區(qū)塊是使用區(qū)塊比對移動補償編碼所編碼得出,則依據(jù)一宏區(qū)塊移動向量執(zhí)行內(nèi)插運算。
文檔編號H04N7/32GK1615025SQ20041008591
公開日2005年5月11日 申請日期2004年10月25日 優(yōu)先權日2003年11月4日
發(fā)明者朱啟誠 申請人:聯(lián)發(fā)科技股份有限公司