專利名稱:在運(yùn)動(dòng)估計(jì)與補(bǔ)償中的次像素插值的制作方法
技術(shù)領(lǐng)域:
描述了用于在視頻編碼/解碼應(yīng)用的運(yùn)動(dòng)估計(jì)/補(bǔ)償中的次像素偏移的技術(shù)和工具。舉例而言,某種視頻編碼器或解碼器在參照幀的次像素位置處為像素值進(jìn)行多階段插值時(shí)推遲了移位。
背景技術(shù):
數(shù)字視頻消耗大量的存儲(chǔ)和傳輸容量。一個(gè)典型的未加工數(shù)字視頻序列包括了每秒15或30幀。每一幀可以包含幾萬或幾十萬的像素(也稱象素)。每個(gè)像素都代表了圖像的一個(gè)微小元素。在未加工的形式下,計(jì)算機(jī)一般以24位來表示一個(gè)像素。舉例來說,一個(gè)像素可能由定義該像素灰度成分的一個(gè)8位亮度值(也稱亮值)和定義該像素色彩成分的兩個(gè)8位色度值(也稱色值)組成。因此,一個(gè)典型的未加工數(shù)字視頻序列的每秒的比特?cái)?shù)(或比特率)可能是每秒5百萬比特或更多。
許多計(jì)算機(jī)與計(jì)算機(jī)網(wǎng)絡(luò)缺乏資源來處理未加工的數(shù)字視頻。由于這一原因,工程師們使用壓縮(也稱編碼或組碼)來降低數(shù)字視頻的比特率。壓縮可以是無損的(其中視頻的質(zhì)量不受損失,但由于視頻的復(fù)雜性,比特率的降低有限),也可以是有損的(其中視頻的質(zhì)量會(huì)受損失,但比特率的降低較為顯著)。解壓則是壓縮的反向。
一般而言,視頻壓縮技術(shù)包括幀內(nèi)壓縮和幀間壓縮。幀內(nèi)壓縮技術(shù)壓縮單獨(dú)的幀(一般稱為I幀或關(guān)鍵幀)。幀間壓縮技術(shù)參考前面或后面的幀(一般稱為預(yù)測(cè)幀、P幀或B幀)來壓縮多個(gè)幀。
微軟公司的視窗媒體視頻版本8(WMV8)包括一個(gè)視頻編碼器和一個(gè)視頻解碼器。WMV8編碼器使用幀內(nèi)和幀間壓縮,而WMV8解碼器使用幀內(nèi)和幀間解壓。WMV8編碼器中的幀間壓縮使用基于塊的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)編碼,并繼之以殘差的轉(zhuǎn)換編碼。
在WMV8中,一個(gè)幀以三個(gè)像素平面來表示一個(gè)亮度像素值的亮度(Y)平面和兩個(gè)色度像素值的色度(U,V)平面。Y平面的解析度在水平和垂直都是U和V平面解析度的兩倍。這樣,一個(gè)320像素×240像素的幀就具有一個(gè)320像素×240像素的Y平面,和160像素×120像素的U與V平面。
WMV8編碼器將一個(gè)預(yù)測(cè)幀分割為8×8的像素塊。四個(gè)8×8的亮度塊和兩個(gè)同位的8×8的色度塊(一個(gè)用于U色度平面,一個(gè)用于V色度平面)的組合形成16×16的宏塊。這樣,每個(gè)16×16的宏塊就包括四個(gè)8×8的亮度塊和兩個(gè)8×8的色度塊。
對(duì)于預(yù)測(cè)幀的宏塊,WMV8編碼器進(jìn)行運(yùn)動(dòng)估計(jì)。運(yùn)動(dòng)估計(jì)通過在預(yù)測(cè)幀的宏塊中搜索與匹配來自某個(gè)參照幀的宏塊,來近似該預(yù)測(cè)幀宏塊的運(yùn)動(dòng)。舉例來說,在圖1中,WMV8編碼器計(jì)算在預(yù)測(cè)幀(110)中的一個(gè)宏塊(115)的一個(gè)運(yùn)動(dòng)矢量。為了計(jì)算該運(yùn)動(dòng)矢量,編碼器在一個(gè)參照幀(130)的一個(gè)搜索區(qū)域(135)中進(jìn)行搜索。在該搜索區(qū)域(135)中,編碼器將來自預(yù)測(cè)幀(110)的宏塊(115)的亮度值與來自參照幀(130)的多個(gè)候選塊的亮度值相比較,以找出一個(gè)好的匹配。WMV8編碼器可以轉(zhuǎn)換運(yùn)動(dòng)矢量的精確度,也可以使用具有整個(gè)、半個(gè)或四分之一像素的水平解析度以及整個(gè)或半個(gè)像素的垂直解析度的搜索范圍和運(yùn)動(dòng)矢量。以次像素精確度的運(yùn)動(dòng)矢量,WMV8編碼器可以近似視頻序列中的次像素運(yùn)動(dòng)。
在運(yùn)動(dòng)補(bǔ)償期間,WMV8編碼器使用預(yù)測(cè)幀的宏塊的運(yùn)動(dòng)矢量來確定來自參照幀的宏塊的預(yù)測(cè)。對(duì)于每個(gè)預(yù)測(cè)運(yùn)動(dòng)的宏塊,WMV8編碼器計(jì)算原始宏塊與其預(yù)測(cè)之間的差(也稱殘留或誤差)。WMV8編碼器將這些殘留分割成塊,并有損壓縮這些殘塊。為重建預(yù)測(cè)幀的預(yù)測(cè)運(yùn)動(dòng)的宏塊,WMV8編碼器解壓這些殘留,并將它們疊加到相應(yīng)宏塊的預(yù)測(cè)上。
WMV8編碼器還使用預(yù)測(cè)幀的宏塊的運(yùn)動(dòng)矢量來確定來自參照幀的宏塊的預(yù)測(cè)。為重建預(yù)測(cè)幀的預(yù)測(cè)運(yùn)動(dòng)的宏塊,WMV8編碼器解壓這些殘留,并將它們疊加到宏塊的預(yù)測(cè)上。
在運(yùn)動(dòng)估計(jì)或補(bǔ)償期間,當(dāng)一個(gè)運(yùn)動(dòng)矢量具有次像素的精確度(即半個(gè)像素或四分之一像素)時(shí),WMV8編碼器或解碼器必須確定在參照幀中次像素位置上的像素值。WMV8編碼器或解碼器用插值過濾器來為次像素位置產(chǎn)生數(shù)值。圖2顯示了次像素示例位置H0、H1、H2,其值由整數(shù)像素值a、b、c、...、p的插值來計(jì)算。
當(dāng)以半像素的運(yùn)動(dòng)矢量精確度來運(yùn)作時(shí),用于三個(gè)不同半像素位置H0、H1、H2的亮度像素值的插值過濾器是H0=(f+g+R2)>>1 (1)H1=(f+j+R2)>>1 (2),和H2=(f+g+j+k+R1)>>2 (3)其中R1和R2是取整控制值,由一個(gè)指示對(duì)特定幀的取整模式的1位取整控制標(biāo)志來控制。如果該取整控制標(biāo)志置為0,則R1=2而R2=1。如果該取整控制標(biāo)志置為1,則R1=R2=0。對(duì)每個(gè)P幀該取整控制標(biāo)志的值在1與0之間交替。在每個(gè)I幀,該取整控制標(biāo)志置為0。這樣,取整控制按一幀一幀來進(jìn)行。
公式1、2和3是雙線性插值的示例。雙線性插值很快,趨向于平滑的像素值。這種平滑可能具有所希望的效果(例如降低量化噪聲的可察覺性),但也可以導(dǎo)致有效像素信息的損失。
對(duì)于四分之一像素運(yùn)動(dòng)矢量的解析度,WMV8編碼器或解碼器首先使用雙立方過濾器來插值在半像素位置的亮度像素值。雙立方插值比雙線性插值慢,但趨向于保持邊緣值,并能使有效像素信息損失較少。用于三個(gè)不同半像素位置H0、H1、H2的雙立方過濾器是H0=(-e+9f+9g-h+8)>>4 (4)
H1=(-b+9f+9j-n+8)>>4 (5),和H2=(-t0+9t1+9t2-t3+8)>>4 (6)其中t0、t1、t2和t3按以下來t0=(-a+9b+9c-d+8)>>4 (7)t1=(-e+9f+9g-h+8)>>4 (8)t2=(-i+9j+9k-l+8)>>4 (9),和t3=(-m+9n+9o-p+8)>>4(10)公式(4)-(10)可以導(dǎo)致輸出超出輸入值的范圍。舉例來說,對(duì)于8位的輸入(范圍在0至255),值0 255 255 0的序列在公式(4)-(10)中任何一個(gè)都會(huì)產(chǎn)生一個(gè)輸出值287。所以,WMV8編碼器或解碼器要箝位(或“裁剪”)公式(4)-(10)中任何一個(gè)的輸出值,使其在有效范圍之內(nèi)。舉例來說,對(duì)于8位的輸出值,小于0的值將變到0,而大于255的值將變到255。箝位解決了范圍問題,但減慢了計(jì)算。而且,箝位還會(huì)導(dǎo)致精確度的損失。
而后WMV8編碼器或解碼器在一個(gè)后續(xù)插值階段計(jì)算在某個(gè)四分之一像素位置的像素值。這些四分之一像素位置在水平上位于兩個(gè)半像素位置或一個(gè)整像素位置與一個(gè)半像素位置之間。對(duì)于這些四分之一像素位置,WMV8編碼器或解碼器使用采用兩個(gè)水平相鄰的半像素/整像素位置的雙線性插值(即(x+y+1)>>1),而不進(jìn)行取整控制。
當(dāng)計(jì)算出亮度運(yùn)動(dòng)矢量后,WMV8編碼器或解碼器導(dǎo)出同位的色度運(yùn)動(dòng)矢量。由于在WMV8中的一個(gè)色度平面在水平和垂直上都是一個(gè)亮度平面的一半,亮度運(yùn)動(dòng)矢量值必須縮放成適當(dāng)?shù)纳冗\(yùn)動(dòng)矢量值。在WMV8中,這一轉(zhuǎn)換過程包括了將亮度運(yùn)動(dòng)矢量減半,并將得到的色度運(yùn)動(dòng)矢量取整到半像素的精確度。這樣,具有半像素精確度的亮度運(yùn)動(dòng)矢量就不轉(zhuǎn)換到具四分之一精確度的色度運(yùn)動(dòng)矢量。而且,在WMV8中的色度取整以一種單獨(dú)的模式運(yùn)作,不能由用戶改變或選擇。
在WMV8中,在參照幀中次像素位置的像素值在某些情況下可能表現(xiàn)出下溢或上溢。舉例來說,如果相鄰整像素位置的值是255,而相鄰半像素位置的值是287(0+9*255+9*255-0+8>>4=287),在四分之一像素位置的亮度像素值就可能是271(在0至255的范圍之外)(255+287+1>>1=271)。為了解決這一問題,在將殘留塊疊加到宏塊的預(yù)測(cè)上后,如果必要,WMV8編碼器或解碼器將箝位對(duì)該宏塊的重建值,使之在0至255的范圍內(nèi)。
除WMV8以外,還有幾個(gè)與視頻壓縮和解壓有關(guān)的國際標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)包括運(yùn)動(dòng)圖像專家組(“MPEG”)1、2和4標(biāo)準(zhǔn),和來自國際電信聯(lián)盟(“ITU”)的H.261、H.262和H.263標(biāo)準(zhǔn)。與WMV8類似,這些標(biāo)準(zhǔn)都使用幀內(nèi)和幀間壓縮的組合,盡管這些標(biāo)準(zhǔn)在所用壓縮技術(shù)的細(xì)節(jié)上一般與WMV8不同。
有幾個(gè)標(biāo)準(zhǔn)(如MPEG4和H.263)使用雙線性過濾器和基本取整控制為半像素運(yùn)動(dòng)提供估計(jì)和補(bǔ)償。而且,在H.263中,理論上具有四分之一像素解析度(即半像素亮度運(yùn)動(dòng)矢量的一半解析度)的色度運(yùn)動(dòng)矢量被取整到半像素或全像素精確度,這樣在色度空間就不允許有四分之一像素的值。關(guān)于在這些標(biāo)準(zhǔn)中運(yùn)動(dòng)估計(jì)/補(bǔ)償?shù)钠渌?xì)節(jié),請(qǐng)參見這些標(biāo)準(zhǔn)自身的說明。
運(yùn)動(dòng)估計(jì)和補(bǔ)償是有效的壓縮技術(shù),但(如在WMV8和上面所討論的標(biāo)準(zhǔn)中的)多種以前的運(yùn)動(dòng)估計(jì)/補(bǔ)償技術(shù)具有幾項(xiàng)缺點(diǎn),包括(1)當(dāng)計(jì)算在參照幀中次像素位置的像素值時(shí),編碼器和解碼器會(huì)不必要地在中間數(shù)值上損失精度。舉例而言,當(dāng)在WMV8中計(jì)算一個(gè)四分之一像素位置的像素值時(shí),在半像素位置的中間值向右移位了4位,而無視可以有更大的位深度的事實(shí)。而且,WMV8編碼器和解碼器還在四分之一像素位置的兩階段插值期間箝位中間值,這減慢了計(jì)算,并導(dǎo)致不必要的精度損失。
(2)在四分之一像素運(yùn)動(dòng)估計(jì)和補(bǔ)償中的像素值插值在許多情況下是沒有效率的。舉例來說,在WMV8中,一維四分之一像素位置的計(jì)算要求對(duì)半像素位置使用某個(gè)過濾器后,繼續(xù)使用某個(gè)雙線性過濾器。
(3)編碼器和解碼器不能計(jì)算在多階段插值中可能產(chǎn)生的取整誤差的累積。舉例來說,在一個(gè)視頻序列中一幀一幀地將像素值反復(fù)向下取整時(shí),會(huì)發(fā)生誤差。這一取整誤差可以在低質(zhì)量、低比特率的視頻序列中造成可察覺的偽像。舉例而言,當(dāng)WMV8編碼器和解碼器以多階段對(duì)在四分之一像素位置的像素值插值時(shí),不使用取整控制。相反,每個(gè)階段的結(jié)果都以與每個(gè)階段插值(且沒有取整控制)相同的方式來取整;而且(4)色度取整不是以四分之一像素精確度來進(jìn)行的,而且對(duì)于色度運(yùn)動(dòng)矢量的取整選項(xiàng)也沒有控制。舉例來說,WMV8編碼器和解碼器將所有色度運(yùn)動(dòng)矢量取整到某個(gè)半像素值,并只以一個(gè)單獨(dú)的模式來運(yùn)作。
考慮到對(duì)數(shù)字視頻而言運(yùn)動(dòng)估計(jì)和補(bǔ)償?shù)臉O端重要性,運(yùn)動(dòng)估計(jì)和補(bǔ)償成為豐富發(fā)展的領(lǐng)域就不奇怪了。但是,無論以前的運(yùn)動(dòng)估計(jì)和補(bǔ)償技術(shù)具有何種益處,它們都沒有以下技術(shù)與工具的優(yōu)點(diǎn)。
發(fā)明內(nèi)容
總體而言,詳細(xì)描述關(guān)注于用于運(yùn)動(dòng)估計(jì)和補(bǔ)償?shù)亩喾N技術(shù)和工具。舉例而言,在視頻編碼和解碼應(yīng)用中,多階段插值可以被用于計(jì)算特定次采樣位置處的值。在第一或中間階段計(jì)算的中間值的動(dòng)態(tài)范圍大于最終值的動(dòng)態(tài)范圍??梢蕴^在第一或中間階段所作的箝位。在第一或中間階段所作的移位還可以被推遲到最后階段。這些可以獨(dú)立或組合使用的各種技術(shù)和工具能夠提高在次采樣位置處的最終值的計(jì)算精度。提高的精度改善了壓縮視頻序列的總的質(zhì)量。
在一方面,一個(gè)部件(如視頻編碼器或解碼器)至少部分地根據(jù)在一個(gè)或多個(gè)鄰近次采樣位置處的一個(gè)或多個(gè)中間值計(jì)算在特定次采樣位置處的最終值。該最終值具有x位的最終動(dòng)態(tài)范圍,一個(gè)或多個(gè)中間值具有y位的中間動(dòng)態(tài)范圍,其中y大于x。
在另一方面,一個(gè)視頻編碼器或解碼器用多階段插值計(jì)算多個(gè)視頻幀的參照視頻幀中的小數(shù)像素位置處的最終像素值。多個(gè)階段至少包括一個(gè)第一階段和一個(gè)最后階段。計(jì)算包括在第一階段跳過一個(gè)或多個(gè)中間像素值的箝位。計(jì)算進(jìn)一步包括在最后階段對(duì)參照視頻幀中的小數(shù)像素位置處的最終像素值的箝位。
在另一方面,一個(gè)部件(如視頻編碼器或解碼器)用多階段插值計(jì)算特定小數(shù)采樣位置的值。計(jì)算包括將移位從多階段的第一階段推遲到多階段的第二階段,來提高該值的精度。
該技術(shù)和工具解決了現(xiàn)有技術(shù)中運(yùn)動(dòng)估計(jì)和補(bǔ)償?shù)囊恍┤秉c(diǎn)。這多種技術(shù)和工具可以組合或獨(dú)立使用。通過以下的詳細(xì)描述,同時(shí)參照附圖,其它的特性和優(yōu)點(diǎn)將得以彰顯。
圖1是一幅顯示遵循已有技術(shù)的視頻編碼器中運(yùn)動(dòng)估計(jì)的圖。
圖2是一幅顯示遵循已有技術(shù)的用于次像素運(yùn)動(dòng)估計(jì)和補(bǔ)償中插值的次像素位置的圖。
圖3是一幅可在其中實(shí)現(xiàn)幾種所描述的實(shí)施例的合適的計(jì)算環(huán)境的方框圖。
圖4是一幅在幾種所描述的實(shí)施例中使用的普遍化的視頻編碼器系統(tǒng)的方框圖。
圖5是一幅在幾種所描述的實(shí)施例中使用的普遍化的視頻解碼器系統(tǒng)的方框圖。
圖6是一幅顯示在次像素運(yùn)動(dòng)估計(jì)和補(bǔ)償期間用于像素值插值的位置的圖。
圖7是一幅顯示其像素值用于為次像素位置計(jì)算插值后像素值的整像素位置的圖。
圖8是一幅顯示用于對(duì)次像素位置的值進(jìn)行插值的兩階段插值技術(shù)的圖。
圖9是一幅顯示一個(gè)水平半像素而垂直半像素的示例位置和用以計(jì)算在該示例位置的值的次像素位置中間值的圖。
圖10是一幅顯示一個(gè)水平四分之一像素而垂直半像素的示例位置、一個(gè)水平半像素而垂直四分之一像素的示例位置和用以計(jì)算在該示例位置的值的次像素位置中間值的圖。
圖11是一幅顯示一個(gè)水平四分之一像素而垂直四分之一像素的示例位置和用以計(jì)算在該示例位置的值的次像素位置中間值的圖。
圖12是一幅顯示一種具有增強(qiáng)動(dòng)態(tài)范圍(以比特為單位)的中間值的多階段插值技術(shù)的圖。
圖13是一幅顯示一種跳過了箝位的多階段插值技術(shù)的圖。
圖14是一幅顯示一種推遲移位的多階段插值技術(shù)的圖。
圖15是一幅顯示一種使用階段交替取整控制的多階段插值技術(shù)的圖。
圖16是一幅顯示一種用于在多種色度取整和插值模式中進(jìn)行選擇的技術(shù)的流程圖。
圖17是一個(gè)顯示第一種色度取整模式的表格。
圖18是一個(gè)顯示第二種色度取整模式的表格。
具體實(shí)施例方式
所描述的實(shí)施例與用于運(yùn)動(dòng)估計(jì)和補(bǔ)償中的次像素插值的技術(shù)和工具有關(guān)。多種實(shí)施例涉及通過將箝位和/或移位(這些操作可能導(dǎo)致精度的損失)推遲到插值中的較后階段而在多階段插值中保持精度的技術(shù)和工具。其它的實(shí)施例則與用于多階段插值的高效過濾或取整操作有關(guān)。
一個(gè)編碼器或解碼器在一個(gè)參照幀或一個(gè)幀的一部分如一個(gè)或多個(gè)塊或宏塊上進(jìn)行次像素插值。該編碼器/解碼器在參照幀內(nèi)的次像素位置計(jì)算像素值。而后該編碼器/解碼器可以用次像素精確的運(yùn)動(dòng)矢量進(jìn)行運(yùn)動(dòng)補(bǔ)償。
在某些實(shí)施例中,一個(gè)視頻編碼器或解碼器在視頻編碼或解碼應(yīng)用中進(jìn)行次像素插值??商鎿Q地,另一個(gè)編碼器或解碼器,或另一種部件,進(jìn)行次像素插值或以下在另一種應(yīng)用中描述的其它技術(shù)。
作為在參照幀上進(jìn)行次像素插值的一種替代,在某些實(shí)施例中,一個(gè)編碼器/解碼器在域、對(duì)象層或其它圖像上進(jìn)行次像素插值。
在某些實(shí)施例中,通過計(jì)算在YUV色彩空間的參照幀的亮度和色度平面中的像素值來進(jìn)行次像素插值??商鎿Q的是,色彩空間可以不同(如YIQ或RGB)。
這多種技術(shù)和工具可以組合或獨(dú)立使用。不同的實(shí)施例實(shí)現(xiàn)了一種或多種所描述的技術(shù)和工具。盡管這些技術(shù)的運(yùn)作為演示目的而一般按特定的順序來描述,但應(yīng)當(dāng)明白這種描述方式包括了對(duì)操作順序的較小的重新排列,除非要求某種特定的排序。舉例來說,順序描述的操作在有些情況下可能重新排列,或同時(shí)進(jìn)行。而且,為簡(jiǎn)單起見,流程圖一般不顯示特定技術(shù)可能與其它技術(shù)共同使用的多種途徑。
在某些實(shí)施例中,一個(gè)視頻編碼器和解碼器在比特流中使用多種標(biāo)志和記號(hào)。雖然已描述了特定的標(biāo)志和記號(hào),應(yīng)當(dāng)明白這種描述方式包括了對(duì)這些標(biāo)志和記號(hào)的不同的轉(zhuǎn)換(如是0而不是1)。
1.計(jì)算環(huán)境圖3說明了一個(gè)可以在其中實(shí)現(xiàn)幾種所描述的實(shí)施例的合適的計(jì)算環(huán)境(300)的普遍示例。該計(jì)算環(huán)境(300)并不提出對(duì)使用或功能的任何限制,而這一技術(shù)和工具可以以不同的通用或?qū)S糜?jì)算環(huán)境來實(shí)現(xiàn)。
參照?qǐng)D3,該計(jì)算環(huán)境(300)包括至少一個(gè)處理單元(310)和存儲(chǔ)器(320)。在圖3中,這一最基本的配置(330)包括在一根虛線內(nèi)。處理單元(310)執(zhí)行計(jì)算機(jī)可執(zhí)行指令,可以是一個(gè)真實(shí)的或虛擬的處理器。在多處理系統(tǒng)中,有多個(gè)處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行指令來提高處理能力。存儲(chǔ)器(320)可以是易失存儲(chǔ)器(如寄存器、高速緩存、RAM)、非易失存儲(chǔ)器(如ROM、EEPROM、閃存等)或這兩者的某種組合。存儲(chǔ)器(320)儲(chǔ)存在編碼器和/或解碼器(如視頻編碼器和/或解碼器)中實(shí)現(xiàn)次像素插值技術(shù)的軟件(380)。
一個(gè)計(jì)算環(huán)境可以具有其它的特性。舉例來說,計(jì)算環(huán)境(300)包括了存儲(chǔ)設(shè)備(340)、一個(gè)或多個(gè)輸入設(shè)備(350)、一個(gè)或多個(gè)輸出設(shè)備(360),以及一個(gè)或多個(gè)通信連接(370)。某種互連機(jī)制(未示出)如總線、控制器或網(wǎng)絡(luò)將計(jì)算環(huán)境(300)的部件相互連接。一般來說,操作系統(tǒng)軟件(未示出)為在計(jì)算環(huán)境(300)中運(yùn)行的其它軟件提供一個(gè)操作環(huán)境,并協(xié)調(diào)計(jì)算環(huán)境(300)的部件的活動(dòng)。
存儲(chǔ)設(shè)備(340)可以是可拆卸或不可拆卸的,包括磁盤、磁帶或卡帶、CD-ROM、DVD,或可用以儲(chǔ)存信息并可在計(jì)算環(huán)境(300)內(nèi)讀取的任何其它媒介。存儲(chǔ)設(shè)備(340)還儲(chǔ)存用于實(shí)現(xiàn)次像素插值技術(shù)的軟件(380)的指令。
輸入設(shè)備(350)可以是某種觸點(diǎn)輸入設(shè)備如鍵盤、鼠標(biāo)、觸筆或軌跡球、某種語音輸入設(shè)備、某種掃描設(shè)備,或向計(jì)算環(huán)境(300)提供輸入的其它某種設(shè)備。對(duì)于音頻或視頻編碼,輸入設(shè)備(350)可以是聲卡、視頻卡、電視調(diào)諧卡,或接受模擬或數(shù)字形式的音頻或視頻輸入的類似設(shè)備,或?qū)⒁纛l或視頻樣本讀入計(jì)算環(huán)境(300)的CD-ROM或CD-RW。輸出設(shè)備(360)可以是顯示器、打印機(jī)、揚(yáng)聲器、CD刻錄機(jī),或提供來自計(jì)算環(huán)境(300)的輸出的其它設(shè)備。
通信連接(370)實(shí)現(xiàn)了通過某種通信媒介向另一個(gè)計(jì)算實(shí)體的通信。通信媒介傳達(dá)信息,如計(jì)算機(jī)可執(zhí)行指令、音頻或視頻輸入或輸出,或調(diào)制數(shù)據(jù)信號(hào)形式的其它數(shù)據(jù)。調(diào)制數(shù)據(jù)信號(hào)是這樣一種信號(hào),其一種或多種特征以能夠在編碼其中信息的方式來設(shè)定或變化。舉例來說(但非限制),通信媒介包括以電、光、RF、紅外、聲或其它載體實(shí)現(xiàn)的有線或無線技術(shù)。
這些技術(shù)和工具可以在計(jì)算機(jī)可讀取媒介的總體環(huán)境中來描述。計(jì)算機(jī)可讀取媒介是可以在計(jì)算環(huán)境內(nèi)訪問的任何可用媒介。舉例來說(但非限制),就計(jì)算環(huán)境(300)而言,計(jì)算機(jī)可讀取媒介包括存儲(chǔ)器(320)、存儲(chǔ)設(shè)備(340)、通信媒介,和以上這些的任何組合。
這些技術(shù)和工具可以在計(jì)算機(jī)可執(zhí)行指令(如那些包含在程序模塊中,在計(jì)算環(huán)境中某個(gè)真實(shí)或虛擬目標(biāo)處理器上執(zhí)行的)的總體環(huán)境中來描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫、對(duì)象、類、組件、數(shù)據(jù)結(jié)構(gòu)等。這些程序模塊的功能可以按在多個(gè)實(shí)施例中所期望的那樣在程序模塊間組合或分割。用于程序模塊的計(jì)算機(jī)可執(zhí)行指令可以在某個(gè)局部或分布式計(jì)算環(huán)境內(nèi)執(zhí)行。
為演示目的,本詳細(xì)描述使用如“確定”和“選擇”這樣的術(shù)語來描述在計(jì)算環(huán)境中的計(jì)算機(jī)操作。這些術(shù)語是對(duì)由計(jì)算機(jī)進(jìn)行的操作的高層次抽象,不應(yīng)與由人進(jìn)行的行動(dòng)相混淆。對(duì)應(yīng)于這些術(shù)語的實(shí)際計(jì)算機(jī)操作根據(jù)實(shí)現(xiàn)而有變化。
2.普遍化的視頻編碼器和解碼器圖4是一幅某種普遍化的視頻編碼器(400)的方框圖,而圖5是一幅某種普遍化的視頻解碼器(500)的方框圖。
在該編碼器和解碼器內(nèi)的模塊間所顯示的關(guān)系指示了在該編碼器和解碼器中的主要信息流,其它關(guān)系為簡(jiǎn)單起見沒有示出。具體來說,圖4和5通常并不示出指示用于視頻序列、幀、宏塊、塊等的編碼器設(shè)定、模式、表格等的伴隨信息。這樣的伴隨信息在輸出比特流中發(fā)送,一般是在這些伴隨信息的熵編碼之后。輸出比特流的格式可以是視窗媒體視頻格式或某種其它格式。
編碼器(400)和解碼器(500)是基于塊的,并使用420宏塊格式,每個(gè)宏塊包括4個(gè)8×8的亮度塊(有時(shí)當(dāng)作一個(gè)16×16宏塊來對(duì)待)和兩個(gè)8×8的色度塊(如一個(gè)U塊,一個(gè)V塊)。可替代的是,編碼器(400)和解碼器(500)可以是基于對(duì)象的,使用某種不同的宏塊或塊模式,或在與8×8的塊和16×16的宏塊不同的尺寸或配置的像素集上進(jìn)行操作。
根據(jù)所期望的實(shí)現(xiàn)和壓縮類型,編碼器或解碼器的模塊可以添加、省略、分割成多個(gè)模塊、與其它模塊組合,以及/或以類似的模塊來代替。在可替代的實(shí)施例中,具有不同模塊和/或其它模塊配置的編碼器或解碼器實(shí)現(xiàn)一種或多種所描述的技術(shù)。
A.視頻編碼器圖4是一幅某種普遍化的視頻編碼器系統(tǒng)(400)的方框圖。該視頻編碼器系統(tǒng)(400)接收一個(gè)包括當(dāng)前幀(405)的視頻幀序列,并產(chǎn)生壓縮了的視頻信息(495)作為輸出。視頻編碼器的特定實(shí)施例一般使用普遍化的編碼器(400)的某個(gè)變異或補(bǔ)充版本。
編碼器系統(tǒng)(400)壓縮預(yù)測(cè)幀和關(guān)鍵幀。為演示目的,圖4顯示了一條關(guān)鍵幀通過編碼器系統(tǒng)(400)的途徑,和一條前向預(yù)測(cè)幀的途徑。編碼器系統(tǒng)(400)的許多部件都用于壓縮關(guān)鍵幀和預(yù)測(cè)幀。由這些部件進(jìn)行的具體操作可以根據(jù)所壓縮信息的類型而變化。
預(yù)測(cè)幀(也稱p幀、指雙向預(yù)測(cè)的b幀,或交互編碼幀)是以來自其它一個(gè)或多個(gè)幀的預(yù)測(cè)(或差異)來表示的。預(yù)測(cè)殘留就是所預(yù)測(cè)的與原始幀之間的差異。與之相反,關(guān)鍵幀(也稱I幀、內(nèi)編碼幀)則是不參照其它幀而壓縮的。
如果當(dāng)前幀(405)是一個(gè)前向預(yù)測(cè)幀,則一個(gè)運(yùn)動(dòng)估計(jì)器(410)參考一個(gè)參照幀來估計(jì)宏塊或該當(dāng)前幀(405)的其它像素集的運(yùn)動(dòng),該參照幀是重建的前一幀,緩沖在幀存儲(chǔ)設(shè)備(420)中。在可替換的實(shí)施例中,該參照幀是后一幀,或者該當(dāng)前幀是雙向預(yù)測(cè)的。該運(yùn)動(dòng)估計(jì)器(410)將運(yùn)動(dòng)信息(415),如運(yùn)動(dòng)矢量,作為伴隨信息輸出。一個(gè)運(yùn)動(dòng)補(bǔ)償器(430)將該運(yùn)動(dòng)信息(415)應(yīng)用于重建的前一幀(425),以形成一個(gè)運(yùn)動(dòng)補(bǔ)償了的當(dāng)前幀(435)。然而,預(yù)測(cè)很少是完美的,而運(yùn)動(dòng)補(bǔ)償了的當(dāng)前幀(435)與原始的當(dāng)前幀(405)之間的差異就是預(yù)測(cè)殘留(445)??商鎿Q的是,運(yùn)動(dòng)估計(jì)器和運(yùn)動(dòng)補(bǔ)償器應(yīng)用另一種類型的運(yùn)動(dòng)估計(jì)/補(bǔ)償。
一個(gè)頻率變換器(460)將空間域的視頻信息轉(zhuǎn)換成頻域(即頻譜)數(shù)據(jù)。對(duì)于基于塊的視頻幀,該頻率變換器(460)對(duì)運(yùn)動(dòng)預(yù)測(cè)殘留數(shù)據(jù)的塊應(yīng)用一個(gè)離散余弦變換(“DCT”)或DCT的變異,產(chǎn)生DCT系數(shù)塊。可替換的是,該頻率變換器(460)應(yīng)用另一種傳統(tǒng)的頻率變換如Fourier變換,或使用小波或次波段分析。在某些實(shí)施例中,該頻率變換器(460)對(duì)用于關(guān)鍵幀的空間預(yù)測(cè)殘留塊應(yīng)用頻率變換。該頻率變換器(460)可以應(yīng)用8×8、8×4、4×8或其它尺寸的頻率變換。
而后一個(gè)量化器(470)將頻譜數(shù)據(jù)系數(shù)塊量化。該量化器以一種在逐幀或其它基礎(chǔ)上變化的步長(zhǎng)來對(duì)頻譜數(shù)據(jù)應(yīng)用統(tǒng)一的標(biāo)量量化??商鎿Q的是,該量化器對(duì)頻譜數(shù)據(jù)系數(shù)應(yīng)用另一種量化,例如不統(tǒng)一的、矢量的或非自適應(yīng)性的量化,或者直接在一個(gè)不使用頻率變換的編碼器系統(tǒng)中量化空間域數(shù)據(jù)。在自適應(yīng)量化以外,編碼器(400)還可以為速率控制使用幀丟棄、自適應(yīng)過濾或其它技術(shù)。
當(dāng)后續(xù)運(yùn)動(dòng)估計(jì)/補(bǔ)償需要重建的當(dāng)前幀時(shí),一個(gè)反向量化器(476)在量化了的頻譜數(shù)據(jù)系數(shù)上進(jìn)行反向量化。隨后一個(gè)反向頻率變換(466)進(jìn)行頻率變換器(460)的反向操作,產(chǎn)生一個(gè)重建的(對(duì)預(yù)測(cè)幀的)預(yù)測(cè)殘留或一個(gè)重建的關(guān)鍵幀。如果當(dāng)前幀(405)是一個(gè)關(guān)鍵幀,則采用重建的關(guān)鍵幀作為重建的當(dāng)前幀(未示出)。如果當(dāng)前幀(405)是一個(gè)預(yù)測(cè)幀,則將重建的預(yù)測(cè)殘留疊加到運(yùn)動(dòng)補(bǔ)償了的當(dāng)前幀(435)上,以形成重建的當(dāng)前幀。幀存儲(chǔ)設(shè)備(420)緩沖重建的當(dāng)前幀,用于預(yù)測(cè)下一幀。在某些實(shí)施例中,編碼器對(duì)重建的幀應(yīng)用一個(gè)解塊過濾器,以適應(yīng)性地平滑在該幀的塊中的不連續(xù)。
熵編碼器(480)壓縮量化器(470)的輸出以及某些伴隨信息(如運(yùn)動(dòng)信息(415)、量化步長(zhǎng))。典型的熵編碼技術(shù)包括算術(shù)編碼、微分編碼、Huffman編碼、運(yùn)行長(zhǎng)度編碼、LZ編碼、字典編碼,以及以上這些的組合。熵編碼器(480)一般對(duì)于不同的信息種類(如DC系數(shù)、AC系數(shù)、不同種類的伴隨信息)使用不同的編碼技術(shù),并且可以從多種編碼表格中選擇某種特定的編碼技術(shù)。
熵編碼(480)將壓縮了的視頻信息(495)放到緩存(490)中。將一個(gè)緩存水平指示器反饋給比特率自適應(yīng)模塊。從緩存(490)中按某種不變的或相對(duì)不變的比特率消耗壓縮了的視頻信息(495),并儲(chǔ)存用于按該比特率的后續(xù)流注。可替換的是,熵編碼器系統(tǒng)(480)在壓縮后立即流注壓縮了的視頻信息。
在緩存(490)之前或之后,可以將壓縮的視頻信息(495)按信道編碼,用于在網(wǎng)絡(luò)上的傳輸。信道編碼可以對(duì)壓縮的視頻信息(495)應(yīng)用差錯(cuò)檢測(cè)和糾正數(shù)據(jù)。
B.視頻解碼器圖5是一幅某種通用視頻解碼器系統(tǒng)(500)的方框圖。該解碼器系統(tǒng)(500)接收用于一個(gè)壓縮的視頻幀序列的信息(595),并產(chǎn)生包括一個(gè)重建幀(505)的輸出。視頻解碼器的特定實(shí)施例一般使用普遍化的解碼(500)的某個(gè)變化或補(bǔ)充版本。
解碼器系統(tǒng)(500)解壓預(yù)測(cè)幀和關(guān)鍵幀。為演示目的,圖5顯示了一條關(guān)鍵幀通過解碼器系統(tǒng)(500)的途徑,和一條前向預(yù)測(cè)幀的途徑。解碼器系統(tǒng)(500)的許多部件都用于解壓關(guān)鍵幀和預(yù)測(cè)幀。由這些部件進(jìn)行的具體操作可以根據(jù)所壓縮信息的類型而變化。
一個(gè)緩存(590)接收用于一個(gè)壓縮的視頻序列的信息(595),并使所接收的信息對(duì)熵解碼(580)可用。該緩存(590)一般按某個(gè)隨時(shí)間基本不變的比特率來接收信息,并且包含一個(gè)抖動(dòng)緩存,以平滑在帶寬或傳輸中的短期變化。該緩存(590)可以包括一個(gè)回放緩存以及其它緩存??商鎿Q的是,該緩存(590)按某種變化的速率接收信息。在緩存(590)之前或之后,可以將壓縮的視頻信息(495)按信道編碼和處理,用于差錯(cuò)檢測(cè)和糾正。
熵解碼(580)對(duì)熵編碼的量化數(shù)據(jù)以及熵編碼的伴隨信息(如運(yùn)動(dòng)信息(515)、量化步長(zhǎng))熵解碼,一般應(yīng)用在熵編碼器中進(jìn)行的熵編碼的反向操作。熵解碼技術(shù)包括算術(shù)解碼、微分解碼、Huffman解碼、運(yùn)行長(zhǎng)度解碼、LZ解碼、字典解碼,以及以上這些的組合。熵解碼(580)經(jīng)常對(duì)于不同的信息種類(如DC系數(shù)、AC系數(shù)、不同種類的伴隨信息)使用不同的解碼技術(shù),并且可以從多種解碼表格中選擇某種特定的解碼技術(shù)。
如果要重建的幀(505)是一個(gè)前向預(yù)測(cè)幀,則一個(gè)運(yùn)動(dòng)補(bǔ)償器(530)對(duì)一個(gè)參照幀(525)應(yīng)用運(yùn)動(dòng)信息(515),以形成對(duì)所重建的幀(505)的一個(gè)預(yù)測(cè)。舉例來說,該運(yùn)動(dòng)補(bǔ)償器(530)使用一個(gè)宏塊運(yùn)動(dòng)矢量來找出一個(gè)在參照幀(525)中宏塊。一個(gè)幀緩存(520)儲(chǔ)存前面的重建幀,用作參照幀。可替換的是,一個(gè)運(yùn)動(dòng)補(bǔ)償器應(yīng)用另一種類型的運(yùn)動(dòng)補(bǔ)償。由運(yùn)動(dòng)補(bǔ)償器作的預(yù)測(cè)很少是完美的,因此解碼器(500)還重建預(yù)測(cè)殘留。
當(dāng)解碼器需要一個(gè)重建的幀用于后續(xù)運(yùn)動(dòng)補(bǔ)償時(shí),幀存儲(chǔ)設(shè)備(520)緩沖該重建的幀,用于預(yù)測(cè)下一幀。在某些實(shí)施例中,解碼器對(duì)重建的幀應(yīng)用一個(gè)解塊過濾器,以適應(yīng)性地平滑在該幀的塊中的不連續(xù)。
一個(gè)反向量化器(570)將熵解碼的數(shù)據(jù)反向量化??偟膩碚f,反向量化器以一種在逐幀或其它基礎(chǔ)上變化的步長(zhǎng)來對(duì)熵解碼的數(shù)據(jù)應(yīng)用統(tǒng)一的標(biāo)量反向量化??商鎿Q的是,該反向量化器對(duì)這些數(shù)據(jù)應(yīng)用另一種反向量化,例如不統(tǒng)一的、矢量的或非自適應(yīng)性的量化,或者直接在一個(gè)不使用反向頻率變換的解碼器系統(tǒng)中反向量化空間域數(shù)據(jù)。
一個(gè)反向頻率變換器(560)將量化的頻域數(shù)據(jù)轉(zhuǎn)換成空間域的視頻信息。對(duì)于基于塊的視頻幀,該反向頻率變換(560)對(duì)DCT系數(shù)塊應(yīng)用一個(gè)反向DCT(“IDCT”)或IDCT的變異,產(chǎn)生運(yùn)動(dòng)預(yù)測(cè)殘留數(shù)據(jù)??商鎿Q的是,該頻率變換(560)應(yīng)用另一種傳統(tǒng)的反向頻率變換如Fourier變換,或使用小波或次波段綜合。在某些實(shí)施例中,該反向頻率變換器(560)對(duì)用于關(guān)鍵幀的空間預(yù)測(cè)殘留塊應(yīng)用反向頻率變換。該反向頻率變換器(560)可以應(yīng)用8×8、8×4、4×8或其它尺寸的反向頻率變換。
3.運(yùn)動(dòng)估計(jì)和補(bǔ)償幀間編碼利用幀之間的時(shí)間冗余來達(dá)成壓縮。時(shí)間冗余縮減在編碼當(dāng)前幀時(shí)使用以前編碼的幀作為預(yù)測(cè)者。在下面描述的實(shí)施例中,視頻編碼器利用在典型視頻序列中的時(shí)間冗余,以用較少數(shù)量的位來編碼信息。視頻編碼器使用運(yùn)動(dòng)估計(jì)來參數(shù)化塊、宏塊或預(yù)測(cè)幀的其它像素集相對(duì)于參照幀(如某個(gè)以前編碼的前面的幀)的運(yùn)動(dòng)。視頻編碼器(以及相應(yīng)的解碼器)使用運(yùn)動(dòng)補(bǔ)償,用運(yùn)動(dòng)信息和參照幀來重建預(yù)測(cè)幀。
運(yùn)動(dòng)補(bǔ)償是通過位移參照幀來為一個(gè)視頻幀產(chǎn)生預(yù)測(cè)(即預(yù)測(cè)幀)的過程。如上面所記述的,預(yù)測(cè)是對(duì)來自參照幀的塊、宏塊或其它數(shù)據(jù)集形成的。而且,一般這一位移是在所預(yù)測(cè)的整個(gè)片上直線性和不變的。這一位移由一個(gè)運(yùn)動(dòng)矢量來定義,該運(yùn)動(dòng)矢量具有兩個(gè)分量,對(duì)應(yīng)于沿X和Y方向的位移或平移。X(水平)和Y(垂直)運(yùn)動(dòng)矢量分量表示了當(dāng)前所預(yù)測(cè)的片和在參照幀中相應(yīng)的位置之間的位移。正值表示在當(dāng)前位置的下方和右方的位置。負(fù)值表示在當(dāng)前位置的上方和左方的位置。
在某一實(shí)現(xiàn)中,一個(gè)塊是8×8的像素片,一個(gè)宏塊是16×16的像素片,而運(yùn)動(dòng)矢量定義至四分之一像素精確度。在其它實(shí)現(xiàn)中,編碼器和解碼器對(duì)于不同尺寸的片或任意變化尺寸的片,按不同的解析度或任意變化的運(yùn)動(dòng)矢量,并且/或者使用運(yùn)動(dòng)信息而不是運(yùn)動(dòng)矢量,來應(yīng)用一種或多種所描述的技術(shù)。
運(yùn)動(dòng)矢量分量通常以像素位移,經(jīng)常是以次像素精確度來說明。次像素位移是通過用恰當(dāng)定義的運(yùn)動(dòng)補(bǔ)償過濾器過濾參照幀來實(shí)現(xiàn)的。對(duì)于直線性次像素運(yùn)動(dòng)補(bǔ)償?shù)那闆r,X和Y分量以固點(diǎn)數(shù)來表示。這些數(shù)的整數(shù)部分稱為全像素位移,其小數(shù)部分稱為次像素位移。當(dāng)次像素位移為零時(shí),運(yùn)動(dòng)是某整數(shù)個(gè)的像素。更經(jīng)常的是,這實(shí)現(xiàn)為來自參照幀的一個(gè)塊復(fù)制,以產(chǎn)生預(yù)測(cè)者(盡管在理論上,可以潛在地應(yīng)用某種形式的過濾)。另一方面,當(dāng)次像素位移不為零時(shí),通過對(duì)在參照幀中整像素位置應(yīng)用對(duì)應(yīng)于次像素位移的一個(gè)或多個(gè)過濾器來產(chǎn)生預(yù)測(cè)者。因此,運(yùn)動(dòng)補(bǔ)償過濾器是由次像素位移來決定的。
為了將次像素位移實(shí)現(xiàn)成過濾操作,運(yùn)動(dòng)補(bǔ)償過濾器根據(jù)在整像素位置上的參考值來在小數(shù)的像素位置插值數(shù)據(jù)點(diǎn)??偟膩碚f,插值的質(zhì)量因過濾器的支持而提高。某些實(shí)施例使用對(duì)應(yīng)于雙線性和雙立方插值器的可分離的(在各方向上)2分支和4分支過濾器。
在某些實(shí)施例中,運(yùn)動(dòng)補(bǔ)償過濾器使用整數(shù)算法和實(shí)現(xiàn)為一個(gè)移位的除法。取整控制參數(shù)R表現(xiàn)為值0或1,并決定對(duì)這些除法的取整方向。這一取整控制參數(shù)可以設(shè)定成一個(gè)常數(shù)、從外部通知,或隱含地從以往的編碼信息中取得。
圖6顯示了在某些實(shí)施例中的次像素運(yùn)動(dòng)估計(jì)和補(bǔ)償期間使用的參照幀(600)中的整像素和次像素位置。在每個(gè)方向上以四分之一像素間隔,該參照幀(600)包含次像素位置,對(duì)該位置某個(gè)編碼器或解碼器可以為特定的位移而插值像素值。在圖6中該參照幀(600)的整數(shù)位置a-p顯示成陰影的圓圈,而插入這些整數(shù)位置之間的四分之一像素和半像素位置則顯示成無陰影的圓圈。如在表格1中所描述的,位置P0到P8顯示了九個(gè)代表性的次像素位置。
表格1代表性的次像素位置在P3例示的四分之三像素位置可以認(rèn)為是四分之一像素位置的一個(gè)特例,它是從一個(gè)全像素位置移開四分之一像素。其它的四分之三像素也是可能的,但未示出。在稍后的插值過濾器的描述中將參照到這些次像素位置P0至P8。在可替換的實(shí)施例中,編碼器和解碼器在另外的或不同的次像素位置插值,例如在那些各個(gè)方向上四分之一像素以外的間隔。
A.近似雙立方插值過濾器在某些實(shí)施例中對(duì)于次像素插值,視頻編碼器和解碼器使用如以下所定義的線性/雙線性和/或立方/雙立方過濾器。
一個(gè)線性插值器是在一個(gè)維度上,利用在離所插值點(diǎn)最近的兩個(gè)格點(diǎn)處的已知值的一個(gè)線性(或一階)的多項(xiàng)式。線性函數(shù)在所插值點(diǎn)的值就是該線性插值。該線性多項(xiàng)式的乘數(shù)是通過求解一個(gè)線性系統(tǒng)方程,確定該線性過濾器的系數(shù)而確定的。一個(gè)線性插值過濾器由兩個(gè)過濾器分支來定義的。一個(gè)雙線性插值器就是一個(gè)分離在兩個(gè)維度上的線性插值器。
一個(gè)立方插值器是在一個(gè)維度上,利用在離所插值點(diǎn)最近的四個(gè)格點(diǎn)處的已知值的一個(gè)立方(或三階)的多項(xiàng)式。立方函數(shù)在所插值點(diǎn)的值就是該立方插值。該立方多項(xiàng)式的乘數(shù)是通過求解一個(gè)系統(tǒng)方程,確定該立方過濾器的系數(shù)而計(jì)算來的。一個(gè)立方插值過濾器由四個(gè)過濾器分支來定義的。一個(gè)雙立方插值器就是一個(gè)分離在兩個(gè)維度上的立方插值器。
術(shù)語線性和雙線性在視頻壓縮和解壓領(lǐng)域一般可以互換使用。在一個(gè)常規(guī)的兩維插值中,在一個(gè)維度上進(jìn)行的一個(gè)插值操作可以在另一個(gè)維度重復(fù),因此每個(gè)過濾階段都稱為雙線性過濾。術(shù)語立方和雙立方也可以類似地互換使用。
在本文中,術(shù)語線性和雙線性互換使用來描述在一個(gè)、兩個(gè)或多個(gè)維度上的過濾。類似地,術(shù)語立方和雙立方也互換使用來描述在一個(gè)、兩個(gè)或多個(gè)維度上的過濾。舉例來說,公式(11)至(13)定義了立方過濾器的類型,但被稱作雙立方過濾器,因?yàn)樵趯?duì)于參照視頻幀的兩階段插值的一般應(yīng)用中,這些過濾器是在對(duì)于該兩階段插值的兩個(gè)維度的重復(fù)操作中使用的。更為一般的是,過濾的維度從環(huán)境中得知。
在某些實(shí)施例中,編碼器和解碼器使用近似雙立方過濾器來在次像素位置插值。舉例來說,該編碼器和解碼器在如圖6中所示的一個(gè)參照幀中可能的移動(dòng)位置使用以下過濾器(其中F1是一個(gè)雙立方過濾器,而F2和F3是近似雙立方過濾器)。
半像素移位F1[-1 9 9-1] (11)四分之一像素移位F2[-4 53 18-3] (12),和四分之三像素移位F3[-3 18 53-4] (13)在實(shí)用中,該過濾器還包括一個(gè)右移位(如對(duì)F1是4位,對(duì)F2和F3是6位),以補(bǔ)償由過濾器系數(shù)所潛在引入的展開。操作符>>是一個(gè)右移位操作符。一個(gè)右移位操作將一個(gè)二進(jìn)制數(shù)的位向右移動(dòng),將最低位丟棄并加上0作為最高位。這一操作獲得一個(gè)簡(jiǎn)單的除法,即除以2的所移位個(gè)數(shù)次冪(如右移位3得到除23=8),并將余數(shù)丟棄。
用于F2和F3的過濾器系數(shù)松散地基于真正的四分之一像素雙立方插值器,該插值器也是一個(gè)四分支過濾器。以下的公式顯示了對(duì)位置P0應(yīng)用該真正四分之一像素雙立方過濾器的結(jié)果(-7e+105f+35g-5h)>>7 (14)這些系數(shù)值總和為128,而該過濾的結(jié)果右移了7位。如在以下的公式中所示的那樣,近似雙立方過濾器F2和F3在性能方面達(dá)到了純的雙立方過濾器,但具較低的解析度。
(-7e+105f+35g-5h)>>7=(-3.5e+52.5f+17.5g-2.5h)>>6(-4e+53f+18g-3h)>>6(15)在許多情況下,使用純的雙立方過濾器會(huì)導(dǎo)致在多階段插值中位精度的損失,因此用于近似雙立方過濾器的正規(guī)化因子要減小至少1/2(即右移減少1位或更多)。對(duì)公式(15)的近似雙立方過濾器的過濾器系數(shù)的選擇基于對(duì)真正雙立方過濾器取整,并考慮了頻域特性(如保留高頻信息)和經(jīng)驗(yàn)特性(如在某比特率下達(dá)到最低失真)。特別的是,過濾器F2和F3仍然包括四個(gè)過濾器系數(shù)。(總的來說,在過濾器中使用較少的過濾器系數(shù)能加快實(shí)現(xiàn)的速度,但必須用足夠的過濾器系數(shù)來解決相鄰像素的噪聲。)將過濾器系數(shù)的值調(diào)整到總和為64,這能幫助用16位算術(shù)來實(shí)現(xiàn)并近似較高解析度的雙立方過濾器。也可以使用總和為64的其它過濾器系數(shù),仍能近似雙立方過濾器。一個(gè)充分地象純雙立方過濾器一樣進(jìn)行,但具有較少的支持和/或較低的解析度的過濾器稱為一個(gè)“近似”的雙立方過濾器。一種客觀地評(píng)價(jià)一個(gè)過濾器是否充分地象純雙立方過濾器一樣進(jìn)行的方法是檢查該近似雙立方過濾器是否與該純雙立方過濾器較好地相關(guān)(即在某個(gè)定義的閾值內(nèi))。在某個(gè)實(shí)施例中,相關(guān)性是通過這些過濾器的矢量間角度的余弦來測(cè)度的(希望盡可能接近1),而閾值為.95。也可以使用其它客觀或主觀的測(cè)度、其它相關(guān)性測(cè)度和/或閾值。舉例來說,可以選擇近似雙立方過濾器的過濾器系數(shù),使它們的總和為某個(gè)其它的能實(shí)現(xiàn)高效的Fourier變換或其他數(shù)學(xué)操作的值。
如下面所更充分描述的那樣,圖7從總體上顯示了具有用以對(duì)在公式(11)-(13)中所列出的各種雙立方過濾器情況計(jì)算插值像素的像素值的整像素位置。P代表對(duì)其計(jì)算像素值的次像素位置。I1、I2、I3和I4表示沿著插值維度的整像素位置。圖7顯示了水平的插值,但同樣的操作和位置排列也應(yīng)用于垂直的插值。
在可替換的實(shí)施例中,編碼器和解碼器使用其它的和/或另外的插值過濾器。例如,編碼器和解碼器使用一個(gè)雙線性(即2分支)過濾器來插值。舉例來說,參照?qǐng)D6中的次像素位置,用以確定P1、P5和P7的值的插值過濾器可以是在公式(1)-(3)中所說明的那些過濾器。
B.一維的插值對(duì)于多種次像素位置,某些實(shí)施例的編碼器和解碼器只在一個(gè)維度上計(jì)算一個(gè)插值。如在圖7中所說明的那樣,以下的公式顯示了在整像素間插值時(shí)過濾器F1(半像素移位)、F2(四分之一像素移位)和F3(四分之三像素移位)的操作F1(-1I1+9I2+9I3-1I4+8-r)>>4(16)F2(-4I1+53I2+18I3-3I4+32-r)>>6 (17),和F3(-3I1+18I2+53I3-4I4+32-r)>>6 (18)其中值r控制取整。值r按以下這樣取決于二進(jìn)制幀級(jí)取整控制參數(shù)R和插值方向 為進(jìn)一步說明一維的插值,圖6的P1和P5顯示了只在一個(gè)維度(即對(duì)P1的水平方向和對(duì)P5的垂直方向)上要求插值的在參照幀(600)中的半像素位置。以下的公式顯示了在對(duì)P1和P5的整像素間插值時(shí)過濾器F1(半像素移位)的操作P1(-1e+9f+9g-1h+8-r)>>4(20),和P5(-1b+9f+9j-1n+8-r)>>4(21)類似地,圖6的P0和P2顯示了只在一個(gè)維度上要求插值的在參照幀(600)中的四分之一像素位置。以下的公式顯示了在對(duì)P0和P2的整像素間插值時(shí)過濾器F2(四分之一像素移位)的操作
P0=(-4e+53f+18g-3h+32-r)>>6 (22),和P2=(-4b+53f+18j-3n+32-r)>>6 (23)該近似四分之一像素雙立方過濾器F2還可以只作一個(gè)小改動(dòng)而用來計(jì)算四分之三像素位置。舉例來說,以下的公式顯示了在對(duì)P8的整像素間插值時(shí)過濾器F3(四分之三像素移位)的操作P8=(-3b+18f+53j-4n+32-r)>>6 (24)可替換的是,編碼器和解碼器在一個(gè)維度上對(duì)半像素、四分之一像素或四分之三像素移位位置使用其它的和/或另外的插值過濾器。例如,編碼器和解碼器以更多或更少的過濾器系數(shù)、不同過濾器系數(shù)、不同的取整或不取整來使用過濾器。
C.多維的插值在某些實(shí)施例中,對(duì)在兩個(gè)維度上偏離的次像素位置進(jìn)行插值。舉例來說,在圖6中,P3、P4、P6和P7就是在水平和垂直兩個(gè)維度上都發(fā)生插值的位置。
在某個(gè)與在圖8中所示的插值方法(800)相應(yīng)的實(shí)施例中,首先沿垂直方向,而后沿水平方向插值兩維次像素位置。如在以下所更充分地描述的那樣,插值是使用上面在公式(16)至(18)中所說明的過濾器F1、F2或F3中的一個(gè)或多個(gè)來進(jìn)行的。在圖8所說明的實(shí)施例中,取整在垂直過濾和水平過濾后應(yīng)用。在取整規(guī)則中的移位能夠在中間結(jié)果中保持16位算術(shù)所允許的精度。
在圖8中,首先進(jìn)行垂直過濾,而后是水平過濾。從垂直過濾開始能在某些架構(gòu)中改善性能。在其它的實(shí)施例中,過濾的順序是不同的。例如,在垂直方向之前,在水平方向上進(jìn)行插值?;蛘撸褂貌逯颠^濾器的多種其它組合(如多個(gè)水平和/或多個(gè)垂直過濾器等)。
輸入和輸出像素的值(811,838)具有8位的位深,并具有256個(gè)值的動(dòng)態(tài)范圍。中間值(820)具有16位的位深,用于有65536個(gè)值的動(dòng)態(tài)范圍。在可替換的實(shí)施例中,輸入、輸出和中間值具有不同(如更高)的位深。
在第一階段(810),對(duì)8位輸入像素值(811)應(yīng)用一個(gè)適當(dāng)?shù)拇怪边^濾器(FV)(812)。所應(yīng)用的垂直過濾器取決于所選擇的次像素位置是移位四分之一像素、半個(gè)像素,還是四分之三像素,并可能采用上面所描述的雙立方過濾器中某一個(gè)的形式。
在垂直過濾后的取整規(guī)則定義為(S+RV)>>shiftV (25)其中S是垂直過濾了的結(jié)果,而RV=2shiftV-1-1+R。R是一個(gè)在幀到幀基礎(chǔ)上于0和1之間交替的取整控制值。因此,該取整規(guī)則包含了以階段交替取整控制(813)和一個(gè)移位(814)來取整。
向右移位會(huì)潛在地引起在解析度上的損失,因此將至少某些向右移位推遲到插值的較后階段。向右移位值shiftV取決于所插值的次像素位置。具體來說,對(duì)于P3、P4、P6和P7shiftV={5,3,3,1}。移位的量小于為補(bǔ)償由第一階段過濾器系數(shù)值的展開所要求的(如該移位小于用于近似雙立方過濾器的6位),但足夠保證后續(xù)過濾的中間結(jié)果保持在中間值的動(dòng)態(tài)范圍(如對(duì)于16位字的65536個(gè)可能的值)內(nèi)。與完全移位相比,這一縮短了的移位保持了在第一階段插值(810)后的中間像素值(820)的精度。中間像素值(820)具有y位的動(dòng)態(tài)范圍,其中y大于8位。在第一階段所進(jìn)行的移位的量取決于可用的位深和插值過濾器的系數(shù)。舉例來說,在這里所描述的示例性實(shí)現(xiàn)中,中間值受限于16位的字長(zhǎng)限制。
請(qǐng)考慮圖6的點(diǎn)P3和在0...255范圍(8位)中的輸入值。由于來自過濾器系數(shù)的展開因子,對(duì)8位輸入值應(yīng)用近似雙立方過濾器系數(shù)[-4 53 18-3]所得到的中間值范圍是從-1785至18105(大約14.3位,為具體實(shí)施而向上取整到15位)。對(duì)該中間值應(yīng)用(具額外展開的)近似雙立方過濾器系數(shù)的后續(xù)水平過濾可能產(chǎn)生16位動(dòng)態(tài)范圍以外的值,引起上溢。因此,要將該中間值足夠地移位,以保證后續(xù)水平過濾產(chǎn)生在16位動(dòng)態(tài)范圍內(nèi)的某個(gè)值。對(duì)于P3,第一次移位的數(shù)量是5位,則移位了的中間值的動(dòng)態(tài)范圍是從-55至565(約為9.3位,為具體實(shí)施而向上取整到10位)。則對(duì)該移位了的中間值應(yīng)用近似雙立方過濾器系數(shù)的輸出的范圍是從-7860至40500,具有小于16位的動(dòng)態(tài)范圍。如此,縮短的移位就按這樣計(jì)算,能保證在插值的第二階段(830)充分利用但不超出16位字的限制。
在第二階段(830),應(yīng)用一個(gè)適當(dāng)?shù)乃竭^濾器(FH)(832),以從該由垂直過濾器確定的值(820)在該兩維次像素位置插值。在水平過濾后的取整規(guī)則為(S+64-R)>>7 (26)其中S是水平過濾了的結(jié)果,而R是一個(gè)在幀到幀基礎(chǔ)上交替的取整控制。象第一階段取整規(guī)則一樣,第二階段取整規(guī)則包含了以階段交替取整控制(833)和一個(gè)移位(834)來取整。由于在第一階段的推遲移位,在第二階段中的移位數(shù)量一般會(huì)超出對(duì)所選定水平過濾器正常所期望的,而計(jì)算來輸出具有所希望的動(dòng)態(tài)范圍的某個(gè)值。
所有的雙立方過濾情況都可能潛在地產(chǎn)生一個(gè)其值是負(fù)的或大于范圍最大值(如對(duì)8位輸出為255)的插值后的像素。在這些(8位輸出值)情況下,編碼器和解碼器將該輸出值(836)箝位在所接受的范圍內(nèi)。具體來說,下溢設(shè)定為0,而上溢設(shè)定為255。在箝位后,輸出一個(gè)插值后的8位值(838)。
在圖8中,第二階段移位7位。這樣,就保持了一個(gè)9位的過濾了的輸出值。舉例來說,繼續(xù)前面P3的示例,過濾了的輸出值的范圍從-61至316,具有約為8.6位(為具體實(shí)施而向上取整到9位)的動(dòng)態(tài)范圍。盡管該插值后數(shù)據(jù)的有效范圍只有8位,但頭上額外的一位提供了上溢和下溢的信息。換句話說,如果設(shè)置了最高位(即“符號(hào)”位),就存在下溢或上溢。這兩種中具體發(fā)生哪一種,可通過觀察余下的8個(gè)“尾數(shù)”位來推出。
圖9-11進(jìn)一步說明了上面所描述并在圖8中說明的兩維插值。圖9顯示了圖6的參照幀(600)的次像素位置P7(水平半像素,垂直半像素)。用兩個(gè)半像素雙立方插值過濾器來插值P7的值。在第一階段,用具有以下一般形式的一個(gè)半像素雙立方過濾器從最近的整像素位置計(jì)算中間值V1-V4Vinter.=(-1x1+9x2+9x3-1x4) (27)如此,V1=(-1a+9e+9i-1m)(28)V2=(-1b+9f+9j-1n)(29)V3=(-1c+9g+9k-1o)(30),和V4=(-1d+9h+9l-1p)(31)在加上適當(dāng)?shù)腞V值后,將結(jié)果向右移位一位。在第二階段中,由一個(gè)半像素過濾器用中間結(jié)果V1-V4來計(jì)算在P7的像素值。具體來說,使用一個(gè)具有以下形式的半像素過濾器P7=(-1V1+9V2+9V3-1V4) (32)如上面所討論的,第二階段的結(jié)果向右移位七位,以獲得一個(gè)9位的值。該9位的值包括八個(gè)尾數(shù)位和一個(gè)符號(hào)位。在進(jìn)行某些必要的箝位以對(duì)上溢或下溢作出補(bǔ)償后,就輸出了一個(gè)最終的8位插值。
圖10顯示了圖6的參照幀(600)的次像素位置P4(水平半像素,垂直四分之一像素)。用一個(gè)四分之一像素和一個(gè)半像素雙立方插值過濾器來插值P4的值。在第一階段,用具有以下一般形式的一個(gè)四分之一像素雙立方過濾器從最近的整像素位置計(jì)算中間值V1-V4Vinter.=(-4x1+53x2+18x3-3x4) (33)這一過濾器以與上面關(guān)于計(jì)算P7所描述的同樣方式應(yīng)用于參照幀(600)的整像素值。在加上適當(dāng)?shù)腞V值后,將結(jié)果向右移位三位。在第二階段中,由一個(gè)半像素過濾器用這些中間結(jié)果V1-V4來計(jì)算在P4的像素值。具體來說,使用一個(gè)具有以下形式的半像素過濾器P4=(-1V1+9V2+9V3-1V4) (34)第二階段的結(jié)果向右移位七位以獲得一個(gè)9位的值,進(jìn)行某些必要的箝位,并輸出一個(gè)最終的8位插值。
圖10還顯示了一個(gè)次像素位置P6(水平四分之一像素,垂直半像素)。為了插入P6的值,以微小的修改來使用用于插值P4的技術(shù)。在修改后的技術(shù)中,在第一階段用一個(gè)半像素雙立方過濾器來確定中間值。在圖10中V5-V8處顯示了中間像素位置。在第二階段中,一個(gè)四分之一像素雙立方過濾器用這些中間值來計(jì)算P6的值。具體來說,使用一個(gè)具有以下形式的四分之一像素雙立方過濾器P6=(-4V5+53V6+18V7-3V8) (35)在第一和第二階段中移位的數(shù)量與在用于計(jì)算P4的技術(shù)中的相同(即第一階段移位為三,而第二階段移位為七)。
圖11顯示了圖6的參照幀(600)的一個(gè)次像素位置P3(水平四分之一像素,垂直四分之一像素)。用兩個(gè)四分之一像素雙立方插值過濾器來插值P3的值。在第一階段,用具有以下一般形式的一個(gè)四分之一像素雙立方過濾器從最近的整像素位置計(jì)算中間值V1-V4Vinter.=(-4x1+53x2+18x3-3x4) (36)這一過濾器以與上面關(guān)于計(jì)算P4所描述的同樣方式應(yīng)用于參照幀(600)的整像素值。在加上適當(dāng)?shù)腞V值后,將結(jié)果向右移位五位。在第二階段中,由另一個(gè)四分之一像素過濾器用這些中間結(jié)果V1-V4來計(jì)算在P3的像素值。具體來說,使用一個(gè)具有以下形式的四分之一像素過濾器P3=(-4V1+53V2+18V3-3V4) (37)第二階段的結(jié)果向右移位七位以獲得一個(gè)9位的值,進(jìn)行某些必要的箝位,并輸出一個(gè)最終的8位插值。
盡管在圖9-11中沒有示出,也可以計(jì)算在一個(gè)或兩個(gè)維度上具有四分之三像素移位的次像素位置的值。為了計(jì)算這樣的次像素位置,可以通過用適當(dāng)?shù)乃姆种袼仉p立方過濾器代替四分之一像素雙立方過濾器,來修改上面所列出的方法。
在其它實(shí)施例中,用雙線性過濾器或雙線性和雙立方過濾器的組合來在次像素示例位置插值。雙線性過濾器的使用一般會(huì)減少(在第一階段后和總體)要進(jìn)行的移位的數(shù)量,因?yàn)槠湎禂?shù)引入的展開小于雙立方過濾器的。舉例來說,在某個(gè)使用雙線性過濾器和16位中間值的實(shí)現(xiàn)中,在第一階段中不進(jìn)行移位,因而最大化了對(duì)16位字限制的利用,而在最后的階段后進(jìn)行4位的右移位。類似地,箝位也可以推遲到最后階段。
潛藏于上面所描述的方法下的原則之一是在保持在某個(gè)所希望的“字尺寸”限制W內(nèi)的同時(shí),在過濾的每個(gè)階段利用最高的可能精確度。如果輸出值具有D位的動(dòng)態(tài)范圍,而在最后階段丟棄了L位,則最后階段過濾的輸出可以采用總共D+L+1位,其中將一個(gè)額外的位用于標(biāo)志下溢和上溢。向后推,如果最后階段過濾導(dǎo)致k位的展開,則向該最后階段的輸出應(yīng)當(dāng)在D+L-k內(nèi)。因此,為了以一個(gè)W位表示來保持最大的精確度,存在以下的關(guān)系D+L+1=W (38)而且,向最后階段的輸出應(yīng)當(dāng)為D+L-k=W-k-1位。
上面的邏輯可以遞歸地應(yīng)用于過濾的倒數(shù)第二階段,以及諸如此類。實(shí)際上,可以通過使用小數(shù)位來加緊限制,以表示非2k的范圍和展開因子。
圖12-15是說明多種技術(shù)的圖,這些技術(shù)以上面組合描述,但也能單獨(dú)應(yīng)用于多階段插值。圖12-15沒有顯示各多階段插值(1200、1300、1400、1500)可與其它多階段插值技術(shù)一起使用的多種方式。
而且,盡管圖12-15中的每一幅都顯示了兩個(gè)階段,但在圖12-15中所說明的多階段插值(1200、1300、1400、1500)技術(shù)可以包括更多個(gè)階段。更為普遍的是,這些多階段插值(1200、1300、1400、1500)技術(shù)可以以在多個(gè)維度上任何種類的可分離過濾器,以及在某種層疊、格架或柵格結(jié)構(gòu)中實(shí)現(xiàn)的任意過濾器來實(shí)現(xiàn)。
圖12-15顯示了在多階段插值中使用的普遍化了的輸入值、輸出值和過濾器。第一階段輸入值、最后階段輸出值和中間值的位深的特定選擇可以按照目標(biāo)架構(gòu)或應(yīng)用的技術(shù)規(guī)范而任意地?cái)U(kuò)展。舉例來說,輸入值可以是在參照幀中整像素位置的8位像素值,輸出值可以是在參照幀中次像素位置的8位像素值,而過濾器可以是(如上面參照?qǐng)D6-8所描述的)規(guī)范的或近似的雙立方過濾器??商鎿Q的是,輸入值和/或輸出值可具有不同位深的動(dòng)態(tài)范圍,或者可使用不同的過濾器。
如參照?qǐng)D4和5所分別描述的編碼器或解碼器那樣的一個(gè)部件可以進(jìn)行該多階段插值(1200、1300、1400、1500)??商鎿Q的是,另一個(gè)編碼器或解碼器(或另一種部件)也可以進(jìn)行該多階段插值(1200、1300、1400、1500)。
圖12顯示了一幅中間插值具有增強(qiáng)的動(dòng)態(tài)范圍(以位為單位)的多階段插值(1200)的圖。在第一階段(1210),該部件對(duì)一個(gè)或多個(gè)x位范圍的輸入值(1211)應(yīng)用(1212)第一個(gè)過濾器F1,產(chǎn)生一個(gè)或多個(gè)y位范圍的中間值(1220),其中y大于x。舉例來說,y位的中間值是具有大于8位的動(dòng)態(tài)范圍的像素,而x位的輸入值具有8位的動(dòng)態(tài)范圍。
在零個(gè)或多個(gè)中間階段(1222)(未詳細(xì)示出)中的每一個(gè)階段,該部件對(duì)y位范圍的中間值(1220)應(yīng)用一個(gè)過濾器。從該中間階段的輸出是一個(gè)或多個(gè)z位范圍的中間值(1229),其中z大于x。(在圖12-15中,如果最后階段是第二階段,則從第一階段的中間值輸出就是對(duì)最后階段的輸入中間值。)在最后階段(1230),該部件對(duì)該一個(gè)或多個(gè)z位范圍的中間值(1229)應(yīng)用(1232)一個(gè)最后的過濾器FL。最終的輸出是一個(gè)x位范圍的輸出值(1234)。如果必要,對(duì)于每種多階段插值(1200、1300、1400、1500)技術(shù),該部件將為另外的輸出值而重復(fù)該多階段插值(1200、1300、1400、1500)。在所重復(fù)的插值中,該部件可以重用某些在前面的插值中計(jì)算的中間值。
圖13顯示了一幅跳過了箝位的多階段插值(1300)的圖。舉例來說,由于該部件不再將每個(gè)中間值與范圍的上或下邊界進(jìn)行檢查,推遲箝位就加快了計(jì)算的速度。推遲箝位還在中間值中保持了精度。
在第一階段(1310),該部件對(duì)一個(gè)或多個(gè)x位范圍的輸入值(1311)應(yīng)用(1312)第一個(gè)過濾器F1。在應(yīng)用第一個(gè)過濾器F1后,不再進(jìn)行箝位。這樣,從第一個(gè)過濾器F1的一個(gè)或多個(gè)中間值(1320)輸出可以具有大于x位的動(dòng)態(tài)范圍。舉例來說,輸入值為8位值,而從第一個(gè)過濾器F1的輸出由于由第一個(gè)過濾器F1系數(shù)引入的展開因子而具有9位或更多位的動(dòng)態(tài)范圍。
在零個(gè)或多個(gè)中間階段(1322)(未詳細(xì)示出)中的每一個(gè)階段,該部件對(duì)該一個(gè)或多個(gè)未箝位的中間值(1320)應(yīng)用一個(gè)過濾器。在該零個(gè)或多個(gè)中間階段(1322)中箝位也可以跳過。將從該零個(gè)或多個(gè)中間階段的中間值(1329)輸出輸入到某個(gè)最后階段(1330),在其中該部件對(duì)這些值(1329)應(yīng)用(1332)最后的過濾器FL。箝位(1334)從該最后的過濾器FL的最終輸出,并輸出一個(gè)x位范圍的值(1336)。
圖14顯示了一幅推遲移位的多階段插值(1400)的圖。在第一階段(1410),該部件對(duì)一個(gè)或多個(gè)x位范圍的輸入值(1411)應(yīng)用(1412)第一個(gè)過濾器F1。在應(yīng)用第一個(gè)過濾器F1同時(shí)或之后,進(jìn)行一個(gè)縮短的移位(1414)。該縮短的移位(1414)小于(考慮到第一過濾器F1系數(shù)的展開因子)為保證一個(gè)x位范圍輸出值所要求的,因而也小于一般與該第一個(gè)過濾器F1所關(guān)聯(lián)的。因此,該縮短的移位(1414)產(chǎn)生具有大于x位的(y位)動(dòng)態(tài)范圍的一個(gè)或多個(gè)中間值。舉例來說,輸入值具有8位的動(dòng)態(tài)范圍,而中間值具有大于8位的動(dòng)態(tài)范圍。
在零個(gè)或多個(gè)中間階段(1422)(未詳細(xì)示出)中的每一個(gè)階段,該部件對(duì)該一個(gè)或多個(gè)中間值(1420)應(yīng)用一個(gè)過濾器。從該零個(gè)或多個(gè)中間階段(1422)輸出具有z位(大于x位)動(dòng)態(tài)范圍的一個(gè)或多個(gè)中間值(1429),而在最后階段(1430),該部件對(duì)這些值(1429)應(yīng)用(1432)最后的過濾器FL。從該最后的過濾器FL的最終輸出移位某個(gè)大于一般與該最后過濾器FL相關(guān)聯(lián)的數(shù)量,從而使輸出值(1434)的動(dòng)態(tài)范圍符合某個(gè)特定的位深。舉例來說,該輸出值(1434)的(位)動(dòng)態(tài)范圍等于x或x+1。在某個(gè)實(shí)現(xiàn)中,第一階段和任何中間階段的移位盡量推遲到最后階段。推遲移位的數(shù)量可以取決于中間計(jì)算的可用位深和相應(yīng)過濾器的展開因子。
圖15顯示了一種使用階段交替取整控制的多階段插值技術(shù)(1500)。在該插值技術(shù)(1500)中的多個(gè)階段交替它們應(yīng)用取整控制的方法,以對(duì)取整進(jìn)行調(diào)整。這幫助防止了在某些視頻序列中取整誤差從幀到幀累積。舉例來說,如果某個(gè)低質(zhì)量的視頻序列包含在一個(gè)維度(盤面)或兩個(gè)維度(升縮)上的逐漸運(yùn)動(dòng),則取整誤差的累積可能導(dǎo)致從幀到幀的逐漸的色彩減弱,這可以造成可察覺的偽像。階段交替的取整控制幫助防止了這樣的色彩減弱。
許多示例可以幫助說明在向右移位前應(yīng)用階段交替取整控制的取整。向右移位本質(zhì)上會(huì)導(dǎo)致右移位的值的除法和切斷。在移位前加上一個(gè)取整值使移位了的值能被向上或向下取整到最近的整數(shù),而不是總被向下取整(切斷)。使用取整控制改變了對(duì)邊際值取整的方向(向上或向下)。舉例來說,假設(shè)在多階段的每一個(gè)中,過濾的輸出通過在向右移位前加上右移位的“約數(shù)”的1/2來調(diào)整(如在向右移位5位前加上24=16,在向右移位7位前加上28=64)。這樣的增加的效果是將值向上取整(到下一個(gè)較大的整數(shù)),該值本來(在對(duì)應(yīng)于該移位的除法后)會(huì)有一個(gè).5或更大的小數(shù)部分。在其他情況下這樣的值會(huì)被該右移位切斷(到下一個(gè)較小的整數(shù))。如果沒有這一增加,本來(在對(duì)應(yīng)于該移位的除法后)會(huì)具有小于.5的小數(shù)部分的值也仍然會(huì)被該右移位切斷(到下一個(gè)較小的整數(shù))。而后取整控制改變對(duì)某些邊際值取整的方向。舉例來說,在多階段的每一個(gè)中,過濾的輸出在向右移位前以減去0或1(交替的取整控制值)來進(jìn)一步調(diào)整(如2shiftV-1或2shiftV-1-1)。取整控制調(diào)整的效果是改變對(duì)(在對(duì)應(yīng)于該移位的除法后)會(huì)具有.5的小數(shù)部分的值取整的方向。在減去1時(shí),這樣的邊際值被向下取整。否則,這樣的邊際值被向上取整。
多個(gè)階段中的每一個(gè)在多階段插值前使用一個(gè)在0與1之間交替的取整控制值,這樣這些不同的階段就交替應(yīng)用取整控制值的方法??商鎿Q的是,多階段插值技術(shù)(1500)使用一個(gè)其本身從階段到階段交替的取整控制值。
在圖15的第一階段(1510)中,該部件對(duì)一個(gè)或多個(gè)x位范圍的輸入值(1511)應(yīng)用(1512)第一個(gè)過濾器F1。在應(yīng)用第一個(gè)過濾器F1同時(shí)或之后,對(duì)來自第一個(gè)過濾器F1的輸出進(jìn)行取整(1514)。該取整(1514)由階段交替取整控制來調(diào)整。舉例來說,在第一階段(1510),如果輸出值是一個(gè)邊際值,該階段交替取整控制使該輸出值被向上取整到最近的整數(shù)(在其他情況下該輸出值會(huì)被向下取整)。將一個(gè)或多個(gè)取整了的中間值(1520)從第一階段輸出進(jìn)第二階段(1530)。
在第二階段(1530)中,該部件對(duì)一個(gè)或多個(gè)中間值(1520)應(yīng)用(1532)第二個(gè)過濾器F2。對(duì)來自第二個(gè)過濾器F2的輸出進(jìn)行取整(1534)。在應(yīng)用第二個(gè)過濾器F2同時(shí)或之后,以階段交替取整控制來進(jìn)行取整(1534),該取整控制實(shí)現(xiàn)在與第一階段對(duì)邊際值相反方向上的取整。舉例來說,在第二階段(1530),如果輸出值是邊際值,該階段交替取整控制使該輸出值被向下取整到最近的整數(shù)。從第二階段輸出一個(gè)或多個(gè)中間值(1536),并可能在零個(gè)或多個(gè)另外的階段(1540)使用。該零個(gè)或多個(gè)另外的階段(1540)可以進(jìn)一步包括階段交替取整控制。
交替的取整控制不限于在連續(xù)的階段中應(yīng)用,但可以在這些階段的多個(gè)其它組合中應(yīng)用。而且,第一個(gè)方向可以取決于許多參數(shù)。舉例來說,在一個(gè)視頻編碼器和解碼器中,第一個(gè)方向可以取決于在前一幀中或在所插值的幀的類型(如I幀、P幀或B幀)上使用過的取整控制。在其它實(shí)施例中,第一個(gè)方向可以設(shè)定為某個(gè)從原因信息中(如從以往的編碼/解碼信息中)隱含地獲得的、用某個(gè)偽隨機(jī)數(shù)生成器獲得的、或被標(biāo)記成比特流的一部分的常數(shù)。階段交替取整控制可以應(yīng)用于使用多種插值過濾器(包括雙線性、雙立方和近似雙立方過濾器)中任何一種的多階段插值中。
D.色度運(yùn)動(dòng)矢量由于色度運(yùn)動(dòng)矢量是從同位置的亮度運(yùn)動(dòng)矢量中隱含地獲得的,因此其精確度有限,只提供簡(jiǎn)化的范圍。這樣的簡(jiǎn)化可能降低在編碼器和解碼器中對(duì)色度值次像素插值的計(jì)算復(fù)雜度,而不會(huì)顯著降低所編碼視頻的可察覺質(zhì)量。而且,編碼器和解碼器可以在用于色度運(yùn)動(dòng)矢量取整和插值的不同模式間切換。舉例來說,一種模式以更大計(jì)算復(fù)雜度的代價(jià)來強(qiáng)調(diào)所編碼視頻的質(zhì)量。另一種模式則以某些質(zhì)量代價(jià)來強(qiáng)調(diào)計(jì)算的簡(jiǎn)化。
在某個(gè)實(shí)現(xiàn)中,一種視頻編碼器和解碼器使用一個(gè)順序?qū)哟蔚?位域“FASTUVMC”來控制對(duì)色度值的次像素插值和色度運(yùn)動(dòng)矢量的取整。這樣,該視頻編碼器和解碼器就有選擇性地以兩種不同色度取整模式(一種快速模式和一種基本模式)中的一種來運(yùn)作。
圖16顯示了一種用于在多種色度取整和插值模式中進(jìn)行選擇的技術(shù)(1600)。舉例來說,一種如上面參照?qǐng)D4和5所分別描述的視頻編碼器和解碼器實(shí)現(xiàn)該技術(shù)。
該視頻編碼器和解碼器確定一個(gè)一位標(biāo)志FASTUVMC是指示使用一種快速色度運(yùn)動(dòng)補(bǔ)償模式(標(biāo)志=1)還是基本色度運(yùn)動(dòng)補(bǔ)償模式(標(biāo)志=0)。舉例來說,該標(biāo)志是一個(gè)順序?qū)哟蔚挠?,?duì)應(yīng)于某個(gè)用戶設(shè)定,該域由一個(gè)編碼器寫入所編碼視頻的比特流中,并由一個(gè)解碼器從該比特流中讀取??商鎿Q的是,該編碼器和解碼器使用定長(zhǎng)或變長(zhǎng)編碼,用多個(gè)位來標(biāo)志一個(gè)色度取整和/或一個(gè)插值模式,舉例來說,以在多于兩個(gè)的可用模式中進(jìn)行選擇?;蛘?,代替對(duì)應(yīng)于某個(gè)用戶設(shè)定的一個(gè)順序?qū)哟斡?,切換信息在比特流中的某處標(biāo)記,并/或根據(jù)不同的條件來設(shè)定。
而后該視頻編碼器和解碼器以基本模式(1620)或快速模式(1630)來進(jìn)行色度運(yùn)動(dòng)補(bǔ)償?;灸J?1620)和快速模式(1630)運(yùn)動(dòng)矢量取整和插值的細(xì)節(jié)將在下面對(duì)某個(gè)實(shí)現(xiàn)來給出??商鎿Q的是,這些模式都具有不同的實(shí)現(xiàn)。舉例來說,在下面所描述的快速模式(1630)實(shí)現(xiàn)中使用的檢索表可改變?yōu)槟硞€(gè)不同的映射,以對(duì)某種特定的硬件架構(gòu)得到某種所希望的性能水平,或者可改變?yōu)閷?duì)不同精確度的運(yùn)動(dòng)矢量都可用。代替或除了基本模式(1620)和快速模式(1630)以外,編碼器和解碼器還可以使用其它的用于色度運(yùn)動(dòng)矢量取整和插值的模式。
在某個(gè)實(shí)現(xiàn)中,在快速模式中,(如若色度取整標(biāo)志=1)在四分之一像素偏移處(即四分之一像素和四分之三像素偏移)的色度運(yùn)動(dòng)矢量取整到最近的全像素位置,在半像素偏移處的色度運(yùn)動(dòng)矢量向左反取整,并對(duì)所有的色度插值使用雙線性過濾。在這一模式中,提高了編碼器和解碼器的速度。這一優(yōu)化的動(dòng)機(jī)是在(a)整像素位置;b)半像素位置;c)對(duì)于(x和v的)至少一個(gè)坐標(biāo)的四分之一像素位置及d)對(duì)于兩個(gè)坐標(biāo)的四分之一像素位置處插值像素偏移的復(fù)雜度之間的顯著差異。a∶b∶c∶d的比例約略為1∶4∶4.7∶6.6。通過應(yīng)用這一快速模式,可以偏好(a)和(b),從而減少解碼時(shí)間。因?yàn)檫@只對(duì)色度插值進(jìn)行,因此編碼和質(zhì)量損失(特別是可視質(zhì)量)是都可以忽略的。
在這一快速模式中,按以下對(duì)色度運(yùn)動(dòng)矢量實(shí)現(xiàn)最后層次的取整//RndTbl[-3]=-1,RndTbl[-2]=0,RndTbl[-1]=+1,RndTbl
=0//RndTbl[1]=-1,RndTbl[2]=0,RndTbl[3]=+1cmv_x=cmv_x+RndTbl[cmv_x%4]; (39)cmv_y=cmv_y+RndTbl[cmv_y%4];其中cmv_x和cmv_y以四分之一像素單位表示色度運(yùn)動(dòng)矢量的x和y坐標(biāo),而%表示取模(或取余)操作,其以如此來定義(x%a)=-(-x%a)。(一個(gè)負(fù)數(shù)的模等于其相應(yīng)正數(shù)的模的負(fù)數(shù)。)因此,當(dāng)cmv_x(或cmv_y)被4可除時(shí),則色度運(yùn)動(dòng)矢量具一個(gè)整數(shù)位移。當(dāng)cmv_x%4=+/-2時(shí),則色度運(yùn)動(dòng)矢量具有一個(gè)半像素位移。當(dāng)cmv_x%4=+/-1或+/-3時(shí),則色度運(yùn)動(dòng)矢量具有一個(gè)四分之一像素位移。如通過上面的重新映射操作所可以看到的那樣,四分之一像素位置是將色度運(yùn)動(dòng)矢量取整到最近的整數(shù)位置所不接受的(半像素位置是不能向左變更的)。這樣,這一模式就將色度坐標(biāo)重新映射到整數(shù)或半像素位置。雙線性過濾在這一模式中可以用于所有的色度插值,以便進(jìn)一步提高速度。盡管這一快速模式實(shí)現(xiàn)是結(jié)合多種取整模式中的選擇一起描述的,但該快速模式實(shí)現(xiàn)也可以獨(dú)立使用(即作為唯一可能的模式)。
圖17是一個(gè)說明色度取整的這一快速模式的表格(1700)。第一行(1710)以四分之一像素的精確度顯示了亮度運(yùn)動(dòng)矢量值。盡管這些亮度運(yùn)動(dòng)矢量值是以其從整像素值的小數(shù)位移來顯示的,但它們也可以整數(shù)來表示,其中每個(gè)整數(shù)表示一個(gè)四分之一像素的增量(即0、1、2、3、4替代0、1/4、1/2、3/4、1)。第二行(1720)顯示了相應(yīng)的色度運(yùn)動(dòng)矢量值如何在快速模式中取整,以使它們具有整數(shù)和半像素的精確度。
在這一實(shí)現(xiàn)的第二個(gè)基本模式中(如若色度取整標(biāo)志=0),在四分之一像素偏移處的沒有取整誤差的色度運(yùn)動(dòng)矢量仍然在四分之一像素偏移處。在其它次像素位移的色度運(yùn)動(dòng)矢量則取整到最近的全像素或半像素位置。在這一模式中,解碼器的速度可能會(huì)比其它模式慢,但計(jì)算色度像素值的精確度較高。這樣,這一基本模式就將色度坐標(biāo)重新映射到整數(shù)、半像素和四分之一像素位置。如上面所描述的雙立方或雙線性過濾可以用于色度插值。
圖18是一個(gè)說明色度取整的這一基本模式的表格。第一行(1810)以四分之一像素的精確度顯示了亮度運(yùn)動(dòng)矢量。第三行(1830)顯示了相應(yīng)的色度運(yùn)動(dòng)矢量值如何在上面所描述的基本模式中取整,以使它們具有整數(shù)、半像素和四分之一像素的精確度。在其它實(shí)現(xiàn)中,色度空間取整到色度空間中的其它解析度。
在參照多個(gè)實(shí)施例描述和說明了我們的發(fā)明的原理后,可認(rèn)識(shí)到這多種實(shí)施例可以在設(shè)置和細(xì)節(jié)上改動(dòng),而不背離這些原理。舉例而言,上面所描述的原理和技術(shù)不限于在視頻編碼器和/或視頻解碼器中使用??商娲氖?,它們可以在其中部分地根據(jù)一個(gè)或多個(gè)中間值來計(jì)算某個(gè)值或其中在多個(gè)維度上使用可分離的過濾器的任何計(jì)算環(huán)境中應(yīng)用。
應(yīng)當(dāng)理解在此所描述的程序、過程或方法并不關(guān)于或限于任何特定種類的計(jì)算環(huán)境,除非指明。多種通用或?qū)S玫挠?jì)算環(huán)境都可以按照在此所描述的教義來使用或進(jìn)行操作。以軟件顯示的實(shí)施例元素可以以硬件來實(shí)現(xiàn),反之亦可。
考慮到我們的發(fā)明所可能應(yīng)用的許多可能的實(shí)施例,我們將所有可能在以下的權(quán)利要求及其等價(jià)物范圍和精神內(nèi)的這些實(shí)施例主張為我們的發(fā)明。
權(quán)利要求
1.在一個(gè)計(jì)算機(jī)系統(tǒng)中的一種計(jì)算機(jī)實(shí)現(xiàn)的方法,該方法包含至少部分地根據(jù)在一個(gè)或多個(gè)鄰近次采樣位置處的一個(gè)或多個(gè)中間值計(jì)算在特定次采樣位置處的最終值,該最終值具有x位的最終動(dòng)態(tài)范圍,一個(gè)或多個(gè)中間值具有y位的中間動(dòng)態(tài)范圍,其中y大于x。
2.如權(quán)利要求1所述的方法,其特征在于y不大于16位。
3.如權(quán)利要求1所述的方法,其特征在于x為8位。
4.如權(quán)利要求1所述的方法,其特征在于計(jì)算包括將移位從多階段插值的較早階段推遲到多階段插值的較晚階段,其中推遲的移位對(duì)于不同的次采樣偏移程度有不同的量。
5.如權(quán)利要求1所述的方法,其特征在于計(jì)算包括將移位從多階段插值的較早階段推遲到多階段插值的較晚階段,其中推遲的移位根據(jù)多階段插值的較早和較晚階段的展開因子而在量上有所不同。
6.如權(quán)利要求1所述的方法,其特征在于特定次采樣位置和鄰近次采樣位置位于參照視頻幀中,最終值是一最終像素值,中間值是中間像素值。
7.如權(quán)利要求6所述的方法,其特征在于特定次采樣位置位于參照視頻幀的至少一個(gè)維度上的半像素偏移處。
8.如權(quán)利要求6所述的方法,其特征在于特定次采樣位置位于參照視頻幀的至少一個(gè)維度上的四分之一像素或四分之三像素偏移處。
9.如權(quán)利要求6所述的方法,其特征在于特定次采樣位置位于參照視頻幀的兩個(gè)維度上的一個(gè)次像素偏移處。
10.如權(quán)利要求1所述的方法,其特征在于計(jì)算的第一階段得出一個(gè)或多個(gè)中間值,計(jì)算的第二階段得出最終值。
11.如權(quán)利要求10所述的方法,其特征在于第一階段包括垂直過濾,第二階段包括水平過濾。
12.如權(quán)利要求1所述的方法,其特征在于進(jìn)一步包括為一個(gè)或多個(gè)額外次采樣位置中的每一個(gè)重復(fù)該計(jì)算。
13.一種計(jì)算機(jī)可讀取媒介,存儲(chǔ)用于使該計(jì)算機(jī)系統(tǒng)在視頻編碼期間執(zhí)行權(quán)利要求1所述方法的計(jì)算機(jī)可執(zhí)行指令。
14.一種計(jì)算機(jī)可讀取媒介,存儲(chǔ)用于使該計(jì)算機(jī)系統(tǒng)在視頻解碼期間執(zhí)行權(quán)利要求1所述方法的計(jì)算機(jī)可執(zhí)行指令。
15.在一個(gè)計(jì)算機(jī)系統(tǒng)中的一種計(jì)算機(jī)實(shí)現(xiàn)的方法,它利用多個(gè)視頻幀之間的時(shí)間冗余,該方法包括用多階段插值計(jì)算多個(gè)視頻幀的參照視頻幀中的小數(shù)像素位置處的最終像素值,多個(gè)階段至少包括一個(gè)第一階段和一個(gè)最后階段,計(jì)算包括在第一階段跳過一個(gè)或多個(gè)中間像素值的箝位,計(jì)算進(jìn)一步包括在最后階段對(duì)參照視頻幀中的小數(shù)像素位置處的最終像素值的箝位。
16.如權(quán)利要求15所述的方法,其特征在于小數(shù)像素位置位于參照視頻幀的第一維度上的四分之一像素偏移、半像素偏移或四分之三像素偏移處,以及參照視頻幀的第二維度上的四分之一像素偏移、半像素偏移或四分之三像素偏移處。
17.如權(quán)利要求15所述的方法,其特征在于多階段中的一個(gè)或多個(gè)階段使用近似雙立方過濾。
18.如權(quán)利要求15所述的方法,其特征在于計(jì)算進(jìn)一步包括將移位從第一階段推遲到最后階段,以提高像素值的精度。
19.如權(quán)利要求18所述的方法,其特征在于其中推遲的移位對(duì)于不同的小數(shù)像素偏移程度有不同的量。
20.如權(quán)利要求18所述的方法,其特征在于其中推遲的移位根據(jù)在第一階段和最后階段中所引入的的展開量而在量上有所不同。
21.如權(quán)利要求15所述的方法,其特征在于第一階段包括在第一方向上的第一取整,而下一階段包括在與第一方向相反的第二方向上的第二取整,一取整控制參數(shù)控制第一和第二方向。
22.一種計(jì)算機(jī)可讀取媒介,存儲(chǔ)用于使該計(jì)算機(jī)系統(tǒng)在視頻編碼期間執(zhí)行權(quán)利要求15所述方法的計(jì)算機(jī)可執(zhí)行指令。
23.一種計(jì)算機(jī)可讀取媒介,存儲(chǔ)用于使該計(jì)算機(jī)系統(tǒng)在視頻解碼期間執(zhí)行權(quán)利要求15所述方法的計(jì)算機(jī)可執(zhí)行指令。
24.在一個(gè)計(jì)算機(jī)系統(tǒng)中的一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括在特定的小數(shù)采樣位置處,用多階段插值計(jì)算一個(gè)值,該計(jì)算包括將移位從多階段的第一階段推遲到多階段的第二階段,以提高該值的精度。
25.如權(quán)利要求24所述的方法,其特征在于計(jì)算出的值是一個(gè)最終值,計(jì)算包括在第一階段中,計(jì)算鄰近小數(shù)采樣位置處的多個(gè)中間值,將多個(gè)中間值中的每一個(gè)移位一位或多位的第一偏移量;在第二階段中,至少部分基于多個(gè)中間值計(jì)算最終值,并將該最終值移位第二偏移量,第二偏移量大于第二階段的規(guī)范化因子的以2為底的對(duì)數(shù)。
26.如權(quán)利要求25所述的方法,其特征在于第二偏移量大于第一偏移量。
27.如權(quán)利要求25所述的方法,其特征在于第二偏移量為7個(gè)比特。
28.如權(quán)利要求25所述的方法,其特征在于在移位第一偏移量之前和之后,多個(gè)中間值的中間值動(dòng)態(tài)范圍都大于輸入值動(dòng)態(tài)范圍。
29.如權(quán)利要求25所述的方法,其特征在于移位第一偏移量在維持在第二階段的字長(zhǎng)限制內(nèi)的同時(shí)保持了動(dòng)態(tài)范圍。
30.如權(quán)利要求25所述的方法,其特征在于在移位第二偏移量之后,最終值包括x個(gè)尾數(shù)位和一個(gè)符號(hào)位。
31.如權(quán)利要求24所述的方法,其特征在于推遲的移位對(duì)于不同的小數(shù)采樣偏移程度有不同的量。
32.如權(quán)利要求24所述的方法,其特征在于推遲的移位根據(jù)在多階段插值中所使用的一個(gè)或多個(gè)插值過濾的展開因子而在量上有所不同。
33.如權(quán)利要求24所述的方法,其特征在于計(jì)算使用近似雙立方過濾。
34.如權(quán)利要求24所述的方法,其特征在于特定小數(shù)采樣位置在參照視頻幀內(nèi),最終值是最終像素值。
35.如權(quán)利要求24所述的方法,其特征在于還包括為一個(gè)或多個(gè)額外小數(shù)采樣位置中的每一個(gè)重復(fù)該計(jì)算。
36.一種計(jì)算機(jī)可讀取媒介,存儲(chǔ)用于使該計(jì)算機(jī)系統(tǒng)在視頻編碼期間執(zhí)行權(quán)利要求24所述方法的計(jì)算機(jī)可執(zhí)行指令。
37.一種計(jì)算機(jī)可讀取媒介,存儲(chǔ)用于使該計(jì)算機(jī)系統(tǒng)在視頻解碼期間執(zhí)行權(quán)利要求24所述方法的計(jì)算機(jī)可執(zhí)行指令。
38.一種系統(tǒng),其特征在于包含用于計(jì)算參照視頻幀中中間次像素位置處的多個(gè)中間像素值的裝置,多個(gè)中間像素值中的每一個(gè)是通過在參照視頻幀中沿著第一維度在處于整像素位置處的多個(gè)整像素值之間進(jìn)行插值而計(jì)算出的;和用于通過沿著第二維度在處于中間次像素位置處的多個(gè)中間像素值之間進(jìn)行插值而計(jì)算參照視頻幀中的最終次像素位置處的一個(gè)最終像素值的裝置,最終像素值具有x位的最終動(dòng)態(tài)范圍,多個(gè)中間像素值中的每一個(gè)都具有一大于x位的中間動(dòng)態(tài)范圍。
39.如權(quán)利要求38所述的系統(tǒng),其特征在于用于計(jì)算最終像素值的裝置包括用于箝位該最終像素值的裝置,用于計(jì)算多個(gè)中間像素值的裝置缺少用于箝位多個(gè)中間像素值的裝置。
40.如權(quán)利要求38所述的系統(tǒng),其特征在于用于計(jì)算多個(gè)中間像素值的裝置包括用于移位第一偏移量的裝置,用于計(jì)算最終像素值的裝置包括用于移位第二偏移量的裝置,其中第二偏移量大于用于計(jì)算最終像素值的規(guī)范化因子的以2為底的對(duì)數(shù)。
41.如權(quán)利要求40所述的系統(tǒng),其特征在于第二偏移量比第一偏移量大一個(gè)可變的量。
全文摘要
描述了用于運(yùn)動(dòng)估計(jì)和補(bǔ)償(如視頻編碼器/解碼器中的)的多種技術(shù)和工具。舉例而言,視頻編碼器或解碼器用具有比最終值要大的動(dòng)態(tài)范圍(以位為單位)的中間像素值(如,16位的中間值和8位的輸出值)計(jì)算次像素采樣位置處的一個(gè)像素值。該編碼器或解碼器可以至少部分地將移位從第一階段推遲到第二階段,或者跳過多階段插值的第一階段或其他中間階段中的箝位。
文檔編號(hào)G06F9/06GK1455349SQ0311038
公開日2003年11月12日 申請(qǐng)日期2003年4月10日 優(yōu)先權(quán)日2002年4月10日
發(fā)明者S·斯里尼瓦桑 申請(qǐng)人:微軟公司