專利名稱:在運(yùn)動補(bǔ)償時間濾波可伸縮視頻編碼器的環(huán)境中用于可變尺寸塊的重疊塊運(yùn)動補(bǔ)償?shù)闹谱鞣椒?br>
技術(shù)領(lǐng)域:
本發(fā)明一般涉及一種用于處理視頻幀的方法、計(jì)算機(jī)程序產(chǎn)品、和計(jì)算機(jī)系統(tǒng),并更具體地,涉及一種用于在運(yùn)動補(bǔ)償時間濾波(MCTF)可伸縮視頻編碼器的環(huán)境中執(zhí)行可變尺寸塊的重疊塊運(yùn)動補(bǔ)償(OBMC)的方法、系統(tǒng)、計(jì)算機(jī)程序產(chǎn)品、和計(jì)算機(jī)系統(tǒng)。
背景技術(shù):
當(dāng)前在可伸縮視頻編碼器的環(huán)境中使用的可變尺寸塊匹配(VSBM)運(yùn)動趨向于在塊邊界處創(chuàng)建差運(yùn)動匹配,從而導(dǎo)致低編碼效率。由此,需要一種由可伸縮視頻編碼器的環(huán)境中的VSBM提供的塊邊界處的運(yùn)動匹配,其比現(xiàn)有技術(shù)中當(dāng)前存在的運(yùn)動匹配具有更高精度。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于處理視頻幀的方法,所述方法包括步驟提供被劃分為多個塊的當(dāng)前幀,所述多個塊包括至少兩個不同尺寸的塊;和對每一塊執(zhí)行重疊塊運(yùn)動補(bǔ)償(OBMC),對其執(zhí)行所述OBMC的所述塊被表示為自身塊,所述執(zhí)行OBMC的步驟包括相對于該自身塊的相鄰塊而對該自身塊執(zhí)行OBMC,所述相鄰塊由該自身塊的最近相鄰塊組成,所述相鄰塊包括第一相鄰塊,所述對自身塊執(zhí)行OBMC的步驟包括生成用于該自身塊及其相鄰塊中的每一個的加權(quán)窗口。
本發(fā)明提供了一種計(jì)算機(jī)程序產(chǎn)品,包括其中嵌入有計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可用介質(zhì),所述計(jì)算機(jī)可讀程序代碼包括適配為實(shí)現(xiàn)處理視頻幀的方法的算法,所述方法包括步驟提供被劃分為多個塊的當(dāng)前幀,所述多個塊包括至少兩個不同尺寸的塊;和對每一塊執(zhí)行重疊塊運(yùn)動補(bǔ)償(OBMC),對其執(zhí)行所述OBMC的所述塊被表示為自身塊,所述執(zhí)行OBMC的步驟包括相對于該自身塊的相鄰塊而對該自身塊執(zhí)行OBMC,所述相鄰塊由該自身塊的最近相鄰塊組成,所述相鄰塊包括第一相鄰塊,所述對自身塊執(zhí)行OBMC的步驟包括生成用于該自身塊及其相鄰塊中的每一個的加權(quán)窗口。
本發(fā)明提供了一種計(jì)算機(jī)系統(tǒng),包括處理器和耦接到該處理器的計(jì)算機(jī)可讀存儲單元,所述存儲單元包括當(dāng)由處理器執(zhí)行時實(shí)現(xiàn)用于處理視頻幀的方法的指令,所述方法包括以下計(jì)算機(jī)實(shí)現(xiàn)的步驟提供被劃分為多個塊的當(dāng)前幀,所述多個塊包括至少兩個不同尺寸的塊;和對每一塊執(zhí)行重疊塊運(yùn)動補(bǔ)償(OBMC),對其執(zhí)行所述OBMC的所述塊被表示為自身塊,所述執(zhí)行OBMC的步驟包括相對于該自身塊的相鄰塊而對該自身塊執(zhí)行OBMC,所述相鄰塊由該自身塊的最近相鄰塊組成,所述相鄰塊包括第一相鄰塊,所述對自身塊執(zhí)行OBMC的步驟包括生成用于該自身塊及其相鄰塊中的每一個的加權(quán)窗口。
本發(fā)明有利地提供了在可伸縮視頻編碼器的環(huán)境中由可變尺寸塊匹配(VSBM)提供的塊邊界處的運(yùn)動匹配,其比現(xiàn)有技術(shù)中當(dāng)前存在的運(yùn)動匹配具有更高精度。
圖1描繪了根據(jù)本發(fā)明實(shí)施例的包括運(yùn)動補(bǔ)償時間濾波(MCTF)處理器的視頻編碼系統(tǒng)。
圖2描繪了根據(jù)本發(fā)明實(shí)施例的由圖1的MCTF處理器實(shí)現(xiàn)的MCTF處理。
圖3是描繪了根據(jù)本發(fā)明實(shí)施例的利用由圖2的MCTF處理生成的時間高幀中的I塊的流程圖。
圖4描繪了根據(jù)本發(fā)明實(shí)施例的連續(xù)幀的各像素之間的連接。
圖5描繪了根據(jù)本發(fā)明實(shí)施例的包括I塊和P塊(P-BLOCK)的幀。
圖6圖示了根據(jù)本發(fā)明實(shí)施例的用于I塊的空間內(nèi)插的表示法。
圖7A-7C圖示了根據(jù)本發(fā)明實(shí)施例的在僅一個相鄰塊可用的情況下的I塊的空間內(nèi)插。
圖8圖示了根據(jù)本發(fā)明實(shí)施例的幀中的I塊的可變塊尺寸。
圖9A-9F圖示了根據(jù)本發(fā)明實(shí)施例的I塊的定向空間內(nèi)插。
圖10圖示了根據(jù)本發(fā)明實(shí)施例的I塊的混合空間內(nèi)插。
圖11描繪了根據(jù)本發(fā)明實(shí)施例的已被配置為多個可變尺寸塊的當(dāng)前幀。
圖12描繪了根據(jù)本發(fā)明實(shí)施例的圖11的當(dāng)前幀及其參考幀、以及將當(dāng)前幀中的各塊與參考幀中的對應(yīng)塊鏈接起來的運(yùn)動矢量。
圖13A是根據(jù)本發(fā)明實(shí)施例的用于在圖2中的MCTF時間高幀中利用可變塊尺寸OBMC的流程圖。
圖13B是描述根據(jù)本發(fā)明實(shí)施例的圖13A的可變塊尺寸OBMC處理步驟的流程圖。
圖14是根據(jù)本發(fā)明實(shí)施例的與圖13A-13B的流程圖關(guān)聯(lián)的幀處理的方框圖。
圖15描繪了根據(jù)本發(fā)明實(shí)施例的要由MCTF變換為高時間幀和低時間幀的兩個連續(xù)輸入幀。
圖16描繪了根據(jù)本發(fā)明實(shí)施例的OBMC所使用的自身塊和關(guān)聯(lián)的最近相鄰塊。
圖17A圖示了根據(jù)本發(fā)明實(shí)施例的其中自身塊為運(yùn)動塊的4×4加權(quán)窗口。
圖17B圖示了根據(jù)本發(fā)明實(shí)施例的其中自身塊為I塊的4×4加權(quán)窗口。
圖18A圖示了根據(jù)本發(fā)明實(shí)施例的其中自身塊為運(yùn)動塊的8×8加權(quán)窗口。
圖18B圖示了根據(jù)本發(fā)明實(shí)施例的其中自身塊為I塊的8×8加權(quán)窗口。
圖19示出了根據(jù)本發(fā)明實(shí)施例的圖11的幀,從而描繪了部分所選最近相鄰塊,其中所述所選最近相鄰塊大于它們關(guān)聯(lián)的自身塊。
圖20示出了根據(jù)本發(fā)明實(shí)施例的描繪大于關(guān)聯(lián)的最近相鄰塊的自身塊的部分的圖11的幀。
圖21A-21C描繪了根據(jù)本發(fā)明實(shí)施例的結(jié)合其中最近相鄰塊為運(yùn)動塊的收縮(shrinking)方案的由OBMC使用的用于自身塊和關(guān)聯(lián)較小最近相鄰塊的加權(quán)窗。
圖22A-22C描繪了根據(jù)本發(fā)明實(shí)施例的結(jié)合其中最近相鄰塊為I塊的反射(reflecting)方案的由OBMC使用的用于自身塊和關(guān)聯(lián)較小最近相鄰塊的加權(quán)窗。
圖23是根據(jù)本發(fā)明實(shí)施例的用于計(jì)算用于可變塊尺寸OBMC的加權(quán)窗的流程圖。
圖24是根據(jù)本發(fā)明實(shí)施例的利用根據(jù)圖13A、13B和23的流程圖描述的方法所計(jì)算的概率加權(quán)窗口、而計(jì)算根據(jù)可變塊尺寸OBMC處理的當(dāng)前幀的自身塊的連續(xù)改進(jìn)的運(yùn)動矢量的流程圖。
圖25圖示了根據(jù)本發(fā)明實(shí)施例的用于在運(yùn)動MCTF可伸縮視頻編碼器的環(huán)境中處理用于MCTF的I塊和/或?qū)τ诳勺兂叽鐗K執(zhí)行重疊塊運(yùn)動補(bǔ)償(OBMC)的計(jì)算機(jī)系統(tǒng)。
具體實(shí)施例方式
本發(fā)明的詳細(xì)描述被劃分為以下幾個部分導(dǎo)言、定義、運(yùn)動補(bǔ)償時間濾波(MCTF)、檢測和處理I塊、OBMC處理、收縮方案、反射方案、OBMC加權(quán)窗口算法、OBMC迭代、基于上升的MCTF的修改、和計(jì)算機(jī)系統(tǒng)。
導(dǎo)言視頻壓縮方案通過將輸入視頻信號的各幀編碼為代表由輸入視頻的各幀組成的圖像的近似值的壓縮信息,而在發(fā)送之前從輸入視頻信號中去除冗余信息。在將壓縮信息發(fā)送到其目的地之后,通過從壓縮信息中解碼圖像的近似值而重構(gòu)視頻信號。由于時間冗余度,所以像素值不是獨(dú)立的,而是與跨越輸入視頻信號的連續(xù)幀的其相鄰像素值相關(guān)的。
在運(yùn)動畫面專家組(MPEG)混合編碼中,可以通過運(yùn)動補(bǔ)償預(yù)測(MCP)而去除時間冗余度。視頻信號典型地被劃分為一連串畫面組(GOP),其中每個GOP以幀內(nèi)編碼幀(I)開始,后面跟隨前向預(yù)測編碼幀(P)和雙向預(yù)測幀(B)的配置。P幀和B幀都是幀間。P幀中的目標(biāo)宏塊可以通過一個或多個過去參考幀來預(yù)測(前向預(yù)測)。雙向預(yù)測,也稱為運(yùn)動補(bǔ)償(MC)內(nèi)插,是MPEG視頻的重要特征。用雙向預(yù)測編碼的B幀使用兩個參考幀,一個在過去,一個在未來。B幀中的目標(biāo)宏塊可以通過多個過去參考幀(前向預(yù)測)或多個未來參考幀(后向預(yù)測)來預(yù)測,或者通過這兩個預(yù)測的平均值(內(nèi)插)來預(yù)測。P幀或B幀中的目標(biāo)宏塊也可被幀內(nèi)編碼為以下定義的I塊或P塊。
前向或后向預(yù)測考慮到當(dāng)前輸入幀和一個或多個參考幀中的像素處的亮度和/或色度值,而分別基于前面的或后面的參考幀的內(nèi)容對當(dāng)前輸入幀(即畫面)中的數(shù)據(jù)進(jìn)行編碼。由此,用于預(yù)測編碼的參考幀是前面的參考幀或后面的參考幀。對于當(dāng)前輸入幀中的像素(例如16×16陣列的像素)的給定輸入塊,預(yù)測編碼利用運(yùn)動補(bǔ)償?shù)念A(yù)測(MCP)而在預(yù)定搜索范圍內(nèi)連續(xù)偏移參考幀中的各塊,從而確定在與輸入塊具有至少給定最小相關(guān)度的參考幀內(nèi)是否發(fā)現(xiàn)16×16陣列的像素。如果確定存在給定最小相關(guān)度,則以具有水平和垂直分量的運(yùn)動矢量(MV)的形式獲得參考幀中所發(fā)現(xiàn)的16×16像素陣列和輸入塊之間的位移的量和方向。輸入塊的像素值(例如僅亮度值或亮度和色度值兩者)和在參考幀內(nèi)發(fā)現(xiàn)的16×16陣列的像素內(nèi)的對應(yīng)像素之間的相應(yīng)差值是被運(yùn)動補(bǔ)償?shù)念A(yù)測誤差值,有時稱為預(yù)測余量或簡單余量。如前所述,根據(jù)前面參考幀進(jìn)行的預(yù)測被稱為前向預(yù)測,而根據(jù)后面參考幀進(jìn)行的預(yù)測被稱為后向預(yù)測。如果在搜索范圍內(nèi)沒有發(fā)現(xiàn)參考幀內(nèi)的相關(guān)16×16塊,則輸入塊可以在輸入幀內(nèi)被幀內(nèi)編碼,并被稱為I塊。利用雙向預(yù)測,可分別基于前面和后面參考幀內(nèi)的16×16塊像素而預(yù)測輸入塊的值。注意前面關(guān)于16×16像素塊的討論僅是圖示性的,并且本發(fā)明的范圍包括任意像素陣列尺寸的像素塊。利用可變尺寸塊匹配(VSBM),例如塊尺寸至少是4×4。
當(dāng)前輸入幀內(nèi)的不連接的塊被分類為I塊或P塊。I塊被定義為當(dāng)前輸入幀內(nèi)的輸入塊,該輸入塊與用于相對于該幀進(jìn)行前向或后向預(yù)測的參考幀內(nèi)的像素的對應(yīng)塊不具有足夠相關(guān)性(即具有給定最小相關(guān)度)。由于缺少足夠相關(guān)性,所以I塊在給定幀內(nèi)被完全編碼,而與參考幀無關(guān)。P塊通過以下步驟被編碼在假設(shè)參考幀在給定幀前面的前提下根據(jù)參考幀進(jìn)行前向預(yù)測;在假設(shè)參考幀在給定幀后面的前提下根據(jù)參考幀進(jìn)行后向預(yù)測;或利用前面和后面的參考幀兩者進(jìn)行雙向預(yù)測。
I塊的例子是不具有前一幀內(nèi)的對應(yīng)像素的當(dāng)前輸入幀內(nèi)的一塊新暴露(uncovered)的像素。I塊的其它例子包括匹配不太好的運(yùn)動塊,例如特別是,當(dāng)前輸入幀中的一塊部分覆蓋(covered)或部分封閉(occluded)的像素,其中所述塊與參考幀中的像素的對應(yīng)塊不具有足夠相關(guān)性。本發(fā)明提供了一種確定和編碼I塊的方法。
本發(fā)明針對運(yùn)動的質(zhì)量,因?yàn)檫\(yùn)動補(bǔ)償時間濾波(MCTF)對所述質(zhì)量相當(dāng)敏感。常規(guī)使用的MPEG視頻標(biāo)準(zhǔn)中的基于塊的運(yùn)動不具有足夠高的質(zhì)量,來避免由MCTF和結(jié)果可伸縮視頻編碼器輸出的較低幀頻視頻中的偽影的建立。當(dāng)前,即使VSBM也不足以可靠避免偽影。相反,本發(fā)明提供了一種確定和編碼用于MCTF的更平滑和連貫的運(yùn)動的方法。
定義以下定義在這里應(yīng)用于本發(fā)明的描述“視頻編碼系統(tǒng)”是對視頻數(shù)據(jù)進(jìn)行編碼的系統(tǒng)。
“視頻編碼器”是通過去除冗余和導(dǎo)入受控失真而減少存儲視頻削波(clip)所需比特?cái)?shù)目的算法。
“子帶/小波編碼器”是在減少冗余的處理中使用子帶/小波變換的視頻編碼器。
“時間相關(guān)性”是在相鄰或鄰近幀中的像素之間的相關(guān)性。
“空間相關(guān)性”是同一幀中的像素之間的相關(guān)性。
“運(yùn)動估計(jì)”是位于另一幀的匹配塊中的運(yùn)動或位移矢量的估計(jì)。
“運(yùn)動補(bǔ)償”(MC)實(shí)際上是將當(dāng)前幀中的塊和不同幀中的匹配塊對準(zhǔn)的處理。
“運(yùn)動補(bǔ)償時間濾波”(MCTF)是以下面結(jié)合圖2所要描述的方式沿時間軸(即運(yùn)動軌跡)對塊或像素陣列進(jìn)行濾波的處理。
“時間低幀”是一對(或更大集合)幀中包括公用的空間低頻的幀。
“時間高幀”是一對(或更大集合)幀中包括構(gòu)成MC差值的空間高頻的幀。
“時間冗余”表明相鄰或鄰近幀中的像素之間的從屬性(dependency)。
“塊匹配”是為一塊像素指定一個運(yùn)動的方法?!翱勺兂叽鐗K匹配”(VSBM)是利用可變尺寸塊以更好地表示運(yùn)動的塊匹配運(yùn)動估計(jì)。塊尺寸可以特別從4×4變化到64×64。
“分層VSBM”(HVSBM)是使用一層空間分辨率(從最低到最高(全)分辨率)來執(zhí)行VSBM的運(yùn)動估計(jì)方法。
“重疊塊運(yùn)動補(bǔ)償”(OBMC)是增強(qiáng)基于塊的運(yùn)動、以使得基于得到的運(yùn)動的預(yù)測更平滑并降低或消除相鄰塊之間的運(yùn)動矢量不連續(xù)性的效果的方法。
“全局運(yùn)動矢量”是用于整個幀的運(yùn)動矢量,其中有關(guān)塊尺寸等于幀尺寸。
“不相連區(qū)域”是不具有參考幀中的對應(yīng)區(qū)或運(yùn)動太復(fù)雜使得運(yùn)動估計(jì)器不能正確跟蹤的區(qū)的圖像幀中的區(qū)域。
“運(yùn)動補(bǔ)償預(yù)測”(MCP)是數(shù)據(jù)縮減技術(shù),其中使用運(yùn)動矢量來扭曲(warp)先前發(fā)送的幀,然后將其用作當(dāng)前幀的預(yù)測,并對于該幀僅量化和發(fā)送所得到的預(yù)測誤差。
“移位幀差”(DFD)是根據(jù)運(yùn)動補(bǔ)償后的預(yù)測得到的誤差。
“混合編碼器”是例如MPEG2的視頻編碼器,其利用反饋環(huán)內(nèi)部的MC預(yù)測來在時間上壓縮數(shù)據(jù),并然后利用空間變換編碼器來對得到的預(yù)測誤差進(jìn)行編碼。
運(yùn)動補(bǔ)償時間濾波(MCTF)可伸縮視頻編碼是運(yùn)動畫面專家組(MPEG)中的探索活動,其是國際標(biāo)準(zhǔn)化組織(ISO)的一個小組委員會。MPEG的目的在于設(shè)計(jì)用于發(fā)送和存儲組合的音頻和視頻信號的國際標(biāo)準(zhǔn)。其中的關(guān)鍵元素在于由于這些視聽信號的較大未壓縮尺寸而對其進(jìn)行壓縮??缮炜s視頻編碼器提供包含整個范圍的比特率、較低分辨率、和較低幀頻、以及輸入到可伸縮編碼器的全幀頻和全分辨率的嵌入式比特流。利用所述嵌入,較低比特率結(jié)果被嵌入到每個較高比特率的流中。
圖1描繪了根據(jù)本發(fā)明實(shí)施例的視頻編碼系統(tǒng)50。輸入視頻51由MCTF處理器52接收,并包括例如16個輸入幀的畫面組(GOP)。每一幀具有多個像素,并且每一像素具有用于亮度和色度的像素特性的像素值。對于MCTF處理器52處理的每一塊數(shù)據(jù),MCTF處理器52需要運(yùn)動矢量形式的運(yùn)動信息。因此,輸入視頻51數(shù)據(jù)從MCTF處理器52發(fā)出到運(yùn)動估計(jì)56塊,該塊確定運(yùn)動矢量并將所確定的運(yùn)動矢量向回發(fā)出到MCTF處理器52,以執(zhí)行運(yùn)動補(bǔ)償時間濾波。另外,運(yùn)動信息在運(yùn)動現(xiàn)場編碼處理器57中被編碼,并然后被發(fā)送到分組器(Packetizer)55。
MCTF處理器52產(chǎn)生從輸入視頻51的輸入幀得出的具有變換的像素值的包括一個時間低幀和多個時間高幀的輸出幀,這將在下面結(jié)合圖2進(jìn)行描述。所產(chǎn)生的輸出幀通過利用子帶小波編碼器進(jìn)行空間分析而由空間分析53處理,稱為離散小波變換。通過使用MCTF處理器52,視頻編碼系統(tǒng)50不經(jīng)受由具有反饋環(huán)的混合編碼器展示的漂移問題。
空間分析53將產(chǎn)生的輸出幀(即一個時間低幀和多個時間高幀)分解為一個低頻帶和具有增加尺度(scales)的越來越高頻率的多個頻帶。由此,空間分析53執(zhí)行空間像素變換,從而以與MCTF處理器52在時間域執(zhí)行的像素變換類似的方式導(dǎo)出空間子帶??臻g分析53的輸出是未壓縮的浮點(diǎn)數(shù)據(jù),并且許多子帶可以包括最接近零的值(near zero values)。
空間分析53所產(chǎn)生的空間中的這些空間子帶被發(fā)出到EZBC(嵌入式零塊編碼器)54,其是利用時間相關(guān)性的一系列子帶/小波編碼器之一,但是被完全嵌入在質(zhì)量/比特率、空間分辨率、和幀頻中。EZBC 54算法通過對每一空間分辨率和時間高子帶進(jìn)行單獨(dú)編碼,而提供基本可伸縮性的性質(zhì)。EZBC54包括對子帶系數(shù)進(jìn)行量化并向它們分配比特的壓縮塊。所述量化步驟將空間分析53的浮點(diǎn)輸出變換為二進(jìn)制比特表示,隨后通過對二進(jìn)制比特表示舍位而丟棄相對無效比特,從而所述舍位只產(chǎn)生可以忽略的失真。EZBC 54是自適應(yīng)算術(shù)編碼器,其將固定比特串變換為可變長度串,由此實(shí)現(xiàn)進(jìn)一步壓縮。由此,EZBC 54既是量化器,又是稱作條件自適應(yīng)算術(shù)編碼器的可變長度編碼器。盡管量化器丟棄了一些比特,但是可變長度編碼器無損失地壓縮來自量化器的輸出。EZBC 54產(chǎn)生的比特流被交織并被發(fā)出到分組器55。EZBC編碼器可由另一合適的嵌入或分層編碼器替代,例如JPEG 2000和其它。
分組器55組合EZBC 54所產(chǎn)生的流中的各比特和運(yùn)動現(xiàn)場編碼處理器57所發(fā)送的(稍后解碼所需要的)運(yùn)動矢量中的各比特,并將所述比特的組合分割為期望尺寸的分組(例如500千字節(jié)或更小的因特網(wǎng)分組)。分組器55接著通過通信信道將這些分組發(fā)出到目的地(例如用于存儲編碼的視頻信息的存儲區(qū))。
圖2描繪了根據(jù)本發(fā)明實(shí)施例的由圖1的MCTF處理器52實(shí)現(xiàn)的用于16幀的示例GOP尺寸的MCTF處理。圖2示出了連續(xù)濾波的MCTF處理中的5級,即其中分別具有16、8、4、2和1幀的第5、4、3、2和1級。由此,每一級N包括2N-1幀,其中N=1、2、3、4、5。第5級包括圖1的輸入視頻51的16個輸入幀,即按照從左到右增加時間的方向排序的輸入幀F(xiàn)1、F2、…、F16。對成對的幀執(zhí)行MC時間濾波,以產(chǎn)生具有下一較低時間尺度或幀頻的時間低(t-L)和高(t-H)子帶幀。在圖2中,實(shí)線表示時間低幀,而虛線表示時間高幀。在每一時間尺度上,曲線表示對應(yīng)運(yùn)動矢量。
在圖2中執(zhí)行4次MC時間濾波,以生成5個時間尺度或幀頻,即原始幀頻和4個較低的幀頻。生成的幀頻分別是第5、4、3、2和1級的全速率(fullrate)、1/2全速率、1/4全速率、1/8全速率、和1/16全速率。由此,如果輸入幀頻是每秒32幀(fps),則最低的幀頻是第一級的2fps。在圖2中,最低幀頻表示為(1),而下一較高幀頻表示為(2),依此類推。
在從第5級到第4級的運(yùn)動估計(jì)和關(guān)聯(lián)的時間濾波中,圖1的運(yùn)動估計(jì)56執(zhí)行從F1到F2、F3到F4、F5到F6、F7到F8、F9到F10、F11到F12、F13到F14、和F15到F16的運(yùn)動估計(jì),并分別確定關(guān)聯(lián)的運(yùn)動矢量M1、M2、M3、M4、M5、M6、M7、和M8。圖1的MCTF處理器52執(zhí)行對幀F(xiàn)1和F2的時間濾波以生成時間低幀L1和時間高幀H1;對幀F(xiàn)3和F4的時間濾波以生成時間低幀L2和時間高幀H2;對幀F(xiàn)5和F6的時間濾波以生成時間低幀L3和時間高幀H3;對幀F(xiàn)7和F8的時間濾波以生成時間低幀L4和時間高幀H4;對幀F(xiàn)9和F10的時間濾波以生成時間低幀L5和時間高幀H5;對幀F(xiàn)11和F12的時間濾波以生成時間低幀L6和時間高幀H6;對幀F(xiàn)13和F14的時間濾波以生成時間低幀L7和時間高幀H7;以及對幀F(xiàn)15和F16的時間濾波以生成時間低幀L8和時間高幀H8。一般來說,被時間濾波為時間低和時間高幀的幀被稱為“子幀(child frames)”。例如,F(xiàn)1和F2幀是L1和H1幀的子幀。一般來說,特別是在將Haar濾波器用于時間濾波的情況下,如果子幀中的對應(yīng)像素值為VA和VB,則時間低和時間高幀中的對應(yīng)像素值分別與VA+VB和VA-VB成比例。由此,時間低幀中的像素值與子幀中的對應(yīng)像素值的平均值成比例。相反,時間高幀中的像素值與子幀中對應(yīng)像素值之間的差值成比例。由此,如果子幀中的像素值彼此接近,則時間高幀中的像素一般具有低能量(即大量接近零的值),并因此是可高度壓縮的。
在從第4級到第3級的運(yùn)動估計(jì)和關(guān)聯(lián)的時間濾波中,圖1的運(yùn)動估計(jì)56還執(zhí)行從L1到L2、L3到L4、L5到L6、和L7到L8的運(yùn)動估計(jì),并分別確定關(guān)聯(lián)的運(yùn)動矢量M9、M10、M11、和M12。圖1的MCTF處理器52還執(zhí)行對幀L1和L2的時間濾波以生成時間低幀L9和時間高幀H9;對幀L3和L4的時間濾波以生成時間低幀L10和時間高幀H10;對幀L5和L6的時間濾波以生成時間低幀L11和時間高幀H11;以及對幀L7和L8的時間濾波以生成時間低幀L12和時間高幀H12。
在從第3級到第2級的運(yùn)動估計(jì)和關(guān)聯(lián)的時間濾波中,圖1的運(yùn)動估計(jì)56還執(zhí)行從L9到L10和從L11到L12的運(yùn)動估計(jì),并分別確定關(guān)聯(lián)的運(yùn)動矢量M13和M14。圖1的MCTF處理器11還執(zhí)行對幀L9和L10的時間濾波以生成時間低幀L13和時間高幀H13;以及對幀L11和L12的時間濾波以生成時間低幀L14和時間高幀H14。
在從第2級到第1級的運(yùn)動估計(jì)和關(guān)聯(lián)的時間濾波中,圖1的運(yùn)動估計(jì)56還執(zhí)行從L13到L14的運(yùn)動估計(jì),并確定關(guān)聯(lián)的運(yùn)動矢量M15。圖1的MCTF處理器52還執(zhí)行對幀L13和L14的時間濾波以生成時間低幀L15和時間高幀H15。
作為圖2的MCTF的結(jié)果,在這5級示例中的16幀(包括時間低幀L15和時間高幀H1、H2、…、H15)作為MCTF處理器52的輸出而被發(fā)送到圖1的空間分析12。由于時間高幀H1、H2、…、H15可包括大量接近零的值,所以如前所述,時間高幀H1、H2、…、H15可修改為被高度壓縮。
給定幀L15、H1、H2、…、H15,可通過依次顛倒產(chǎn)生幀L15、H1、H2、…、H15的處理,而重新生成第2、3、4和5級中的幀。例如,第1級的幀L15和H15可被算術(shù)組合,以重新生成第2級的幀L13和L14。類似地,第2級的幀L13和H13可被算術(shù)組合,以重新生成第3級的幀L9和L10,而第2級的幀L14和H14可被算術(shù)組合,以重新生成第3級的幀L11和L12。該處理可依次繼續(xù)進(jìn)行,直到重新生成第1級的幀F(xiàn)1、F2、…、F16為止。由于圖1的EZBC 54執(zhí)行的壓縮有損耗,所以第2-5級中重新生成的幀將近似地但不精確地與時間濾波前的第2-5級中的原始幀相同。
檢測和處理I塊因?yàn)槿缜敖Y(jié)合圖2所述MCTF分解被類似地應(yīng)用到多對幀,所以注意力再次集中到圖2的一級中的有代表性的一對連續(xù)幀(例如第4級的幀L1和L2)。這對連續(xù)幀中的代表性的兩幀被表示為幀A和B,其中從幀A到幀B執(zhí)行前向估計(jì),使得幀A在時間上比幀B早。幀B中新暴露的像素在幀A中不具有對應(yīng)的像素。類似地,幀A中封閉的像素在幀B中不具有對應(yīng)的像素。本發(fā)明利用I塊來局部處理由幀B中新暴露的像素引起的較差匹配的運(yùn)動塊。對于根據(jù)本發(fā)明標(biāo)識的I塊,如下所述,省略了MC時間濾波,并使用空間內(nèi)插來確定I塊中的像素值。得到的用于I塊的空間內(nèi)插誤差塊(也稱為內(nèi)插的I塊的殘留誤差塊)隨后被重疊在(即插入到)關(guān)聯(lián)MCTF時間高幀中的對應(yīng)塊上。
本發(fā)明公開了一種壓縮視頻的方法,其涉及利用成對輸入幀(例如具有輸入幀A和B的代表對)中的運(yùn)動補(bǔ)償塊的時間空間或時空變換。這些塊具有各種尺寸,并被選擇來匹配局部運(yùn)動矢量場,從而存在該場具有高空間梯度的小塊和空間梯度小的更平坦區(qū)域內(nèi)的大塊。所述基于塊的運(yùn)動場用于控制時間空間變換,使得其沿著合適的運(yùn)動軌跡進(jìn)行濾波。該變換的輸出被壓縮,用于發(fā)送或存儲。
因?yàn)橛捎谶\(yùn)動而在幀中引起的覆蓋或暴露區(qū)域(例如在靜止的背景目標(biāo)前移動的球),所以一些塊可能不與下一幀(時間方向)中的相鄰塊相連。這些區(qū)域(即I塊)不應(yīng)參與MC時間濾波,因?yàn)镸C時間濾波將導(dǎo)致低幀頻視頻中的偽影。這些I塊需要與時間高幀中的其它塊(即P塊)一起被壓縮。P塊可用于經(jīng)由空間內(nèi)插而空間預(yù)測不相連的I塊。這些I塊由此適于與非混合的MCTF一起工作。
圖3是描繪根據(jù)本發(fā)明實(shí)施例的用于利用MCTF時間高幀中的I塊的步驟31-38的流程圖。
步驟31在MCTF濾波級利用兩個連續(xù)幀A和B,其中從幀A到幀B執(zhí)行前向估計(jì)。作為示例,幀A和B可代表圖2的第5級中的幀F(xiàn)1和F2、或圖2的第4級中的幀L1和L2。
步驟32和33分別確定根據(jù)本發(fā)明實(shí)施例的圖4所示的幀A和B中的像素的連接狀態(tài)。幀A和B中的每一像素可被分類為具有如下“連接”或“不連接”的連接狀態(tài)。圖4示出了幀A中的像素A1、A2、…、A12以及幀B中的像素B1、B2、…、B12。像素A1、A2、A3和A4在幀A的第1塊中。像素A5、A6、A7和A8在幀A的第2塊中。像素A9、A10、A11和A12在幀A的第3塊中。像素B1、B2、B3和B4在幀B的第1塊中。像素B5、B6、B7和B8在幀B的第2塊中。像素B9、B10、B11和B12在幀B的第3塊中。相對于從幀A到幀B的前向運(yùn)動估計(jì),幀A中的像素用作幀B中的像素的參考。注意幀A和B中的塊都是4×4像素塊,而圖4僅示出了每個4列塊中的一列。在圖4中,由來自幀B中的像素PB的箭頭指向的幀A中的像素PA被用作像素PB的參考。例如,幀A中的像素A1被用作幀B中的像素B1的參考。
在步驟32,幀A中的像素如果未被幀B中的任何像素用作參考,則被標(biāo)記為未連接。因此,像素A7和A8未連接。幀A中的像素如果被用作幀B中的像素的參考,則被連接。因此,像素A1-A6和A9-A12被連接。然而,像素A3和A4需要特殊對待,因?yàn)橄袼谹3和A4各自被幀B中多于一個像素用作參考。例如,像素A3被幀B的像素B3和B5用作參考,并且本發(fā)明使用基于最小均方移位幀差(DFD)(下面將定義)計(jì)算的算法,來將像素A1保留為像素B3或像素B5(而非像素B3和B5兩者)的參考。注意,像素A3在幀A的第1塊中,而像素B3在幀B的第1塊中,該算法計(jì)算幀A的第1塊和幀B的第1塊之間的作為均方DFD的DFD11。注意,像素A3在幀A的第1塊中,而像素B5在幀B的第2塊中,該算法計(jì)算幀A的第1塊和幀B的第2塊之間的作為均方DFD的DFD12。如果DFD11小于DFD12,則像素A3被保留作為像素B3的參考,而像素A3被撤銷作為像素B5的參考。如果DFD12小于DFD11,則像素A3被保留作為像素B5的參考并被撤銷作為像素B3的參考。如果DFD11等于DFD12,則可使用任何同分決賽(tie-breaker)。同分決賽的第一示例是“掃描順序”,這意味著像素A3保留作為以下像素的參考,該像素是首先被確定為使用像素A3作為參考的像素B3和B5中的任一個。同分決賽的第二示例是從0和1之間的均勻分布中拾取隨機(jī)數(shù)R,并保留像素A3作為像素B3的參考(如果R小于0.5);或者作為像素B5的參考(如果R不小于0.5)。在圖4的例子中,DFD11小于DFD12,使得像素A3被保留作為像素B3的參考并撤銷作為像素B5的參考。類似地,像素B4和B6各自使用像素A4作為參考,并且可使用先前描述的基于DFD的算法來保留像素A4作為像素B4或像素B6(而不是像素B4和B6兩者)的參考。在圖4的例子中,基于前述基于DFD的算法,像素A4被保留作為像素B4的參考而撤銷作為像素B6的參考。
在步驟33,在已應(yīng)用了基于DFD的算法來解決幀A中的像素被幀B中的多于一個像素用作參考的情況之后,如果沒有使用幀A中的參考像素,則幀B中的像素被標(biāo)記為未連接。例如,如前所述,在應(yīng)用了基于DFD的算法之后,像素A3和A4被分別撤銷作為像素B5和B6的參考。因此,像素B5和B6未連接。否則,幀B中的像素被連接。因此,像素B1-B4和B7-B12被連接。注意,如果已執(zhí)行了前述基于DFD的算法(即當(dāng)確定了幀A中的像素的連接狀態(tài)時),則圖4中從像素B5指向像素A3的箭頭和從像素B6指向像素A4的箭頭不相關(guān),因?yàn)橄袼谹3和A4已分別被撤銷作為像素B5和B6的參考。盡管圖4示出了在步驟32之后執(zhí)行步驟33,但是可替換地,可以在步驟32之前執(zhí)行步驟33??梢栽趫?zhí)行步驟32和33之前、期間、或之后的任一時間,執(zhí)行前述基于DFD的算法,該算法用于解決幀A中的像素被幀B中的多于一個像素用作參考的情況。例如,如果在步驟33之前執(zhí)行步驟32,則可以在步驟32之前、步驟32和33之間、或步驟33之后執(zhí)行前述基于DFD的算法。作為另一個例子,如果在步驟32之前執(zhí)行步驟33,則可以在步驟33之前、步驟33和32之間、或步驟32之后執(zhí)行前述基于DFD的算法。
作為執(zhí)行步驟32和33的結(jié)果而實(shí)際需要的是幀B中的每個像素相對于幀A中的各像素的連接狀態(tài)(即連接或未連接)。由此,可替換地,可省略步驟32,因?yàn)閹珺中的每個像素的連接狀態(tài)需要知道用于幀B中的每個像素的幀A中的參考像素,而不需要知道幀A中的每個像素的連接狀態(tài)。
如下定義幀A中的塊與幀B中的塊之間的均方DFD。假設(shè)n表示所述塊中的每一塊的像素?cái)?shù)目。假設(shè)VA1、VA2、…、VAn表示幀A中的塊中的像素的值(例如亮度或色度)。假設(shè)VB1、VB2、…、VBn表示幀B中的塊中的對應(yīng)像素的值。幀A中的塊與幀B中的塊之間的均方DFD是均方DFD=[(VA1-VB1)2+(VA2-VB2)2+…+(+VAn-VBn)n]/n(1)前述基于DFD的算法可應(yīng)用到具有與子像素之間的連接相關(guān)的子像素精度的運(yùn)動矢量,如高性能視頻編碼器中利用的那樣。子像素是相鄰像素之間的位置。內(nèi)插的子像素用于計(jì)算DFD。由此,不需要MCTF算法中的其它改變,僅需要在參考像素不是整數(shù)時,使用空間內(nèi)插的規(guī)定形式。作為例子,可為了該目的而利用可分離的9抽頭FIR內(nèi)插濾波器。
在執(zhí)行了圖4的步驟32和33之后,幀A和B中的所有像素已被分類為“未連接”或“連接”。由于前述基于DFD的算法消除了從幀B中的兩個或多個像素到幀A中的參考像素的多重連接,所以幀A中的每個“連接”像素正好被連接到幀B中的一個像素,反之亦然。
根據(jù)本發(fā)明的實(shí)施例,步驟34將幀B中的塊分類為“單方連接”或“未連接”。如果一幀的塊中的像素的小部分F未連接,則該塊是“未連接的”塊;否則,該塊是“單方連接的”塊。所述小部分F具有反映圖像質(zhì)量和處理時間之間的折衷的值,因?yàn)镮塊需要額外的處理時間。所述小部分F尤其可具有至少0.50(例如,在0.50到0.60、0.50到0.75、0.60到0.80、0.50到1.00、0.30到1.00、0.50到小于1.00等的范圍內(nèi))的值。通過檢查幀B的單方連接的塊中的像素所連接到的幀A中的參考像素,可對于幀B中的每一單方連接塊而確定幀A中的匹配塊(稱為幀A的單方連接塊)。得到的幀A和B中的單方連接塊形成單方連接塊的匹配對的集合,其中每一匹配對包括幀B中的單方連接塊和幀A中的匹配單方連接塊。假設(shè)單方連接塊的匹配對被分別表示為幀A和幀B中的第一和第二單方連接塊。
根據(jù)本發(fā)明的實(shí)施例,如果滿足以下重新分類標(biāo)準(zhǔn),則步驟35將單方連接塊的匹配對中的第一和第二單方連接塊重新分類為未連接。假設(shè)V1和V2分別表示第一和第二單方連接塊的像素方差。塊的像素方差是塊的像素值與塊的平均像素值之間的均方偏差。假設(shè)VMIN表示V1和V2中的最小值。然后,如果第一和第二塊之間的均方DFD超出fVMIN,則第一和第二單方連接塊被重新分類為未連接塊,其中f是在0到1的范圍內(nèi)的實(shí)數(shù)。例如,f可以尤其在0.4到0.6、0.5到0.7、0.4到0.75、0.5到0.9、0.4到1.00等的范圍內(nèi)。在執(zhí)行了步驟35之后,完成將幀B中的每一塊分類為“未連接”或“單方連接”的動作。
根據(jù)本發(fā)明的實(shí)施例,步驟36將幀B中的每一未連接塊歸類(categorizes)為P塊或I塊。I塊將隨后將其初始像素值替換為從I塊外部的相鄰像素導(dǎo)出的空間內(nèi)插值,下面將進(jìn)行描述。I塊像素的初始像素值和空間內(nèi)插像素值之間的差值是內(nèi)插I塊像素的殘留誤差。I塊中的所有像素處的殘留誤差塊被稱為I塊的殘留誤差塊,或與I塊相關(guān)聯(lián)。
為了確定未連接塊是I塊還是P塊,形成內(nèi)插I塊,計(jì)算其殘留誤差塊,并還計(jì)算殘留誤差塊中的殘留誤差和(SRES)的絕對值。SRES被稱為未連接塊的“殘留內(nèi)插誤差”。殘留誤差是殘留誤差塊的各像素處的誤差。另外,對未連接塊執(zhí)行前向和后向運(yùn)動。計(jì)算前向和后向運(yùn)動補(bǔ)償后的預(yù)測誤差的絕對DFD之和。確定前向和后向運(yùn)動補(bǔ)償后的預(yù)測誤差的絕對DFD之和的最小值(SMC-MIN)。SMC-MIN被稱為未連接塊的“最小運(yùn)動補(bǔ)償誤差”。如果SRES小于SMC-MIN,則未連接塊被分類為I塊。如果SRES不小于SMC-MIN,則未連接塊被分類為P塊。
根據(jù)本發(fā)明的實(shí)施例,在步驟37,步驟36所確定的I塊經(jīng)過可用相鄰像素的空間內(nèi)插處理,并生成與該內(nèi)插I塊關(guān)聯(lián)的殘留誤差塊。幀中的各塊可以具有固定尺寸或可變尺寸。圖5-7和9在下文描述了根據(jù)本發(fā)明實(shí)施例的用于固定塊尺寸情況的內(nèi)插實(shí)施例,而圖8用于在下文描述根據(jù)本發(fā)明實(shí)施例的可變塊尺寸情況。
在步驟38,與內(nèi)插I塊關(guān)聯(lián)的殘留誤差塊被重疊在與所分析的一對幀A和B關(guān)聯(lián)的相關(guān)時間高幀上(即位于其中),用于在執(zhí)行圖2的空間分析53之后由EZBC 54隨后進(jìn)行相關(guān)時間高幀的壓縮。圖7C(下文描述)示出了該殘留誤差塊包含很多接近零的值并由此可適于被有效壓縮。
圖5示出了包括I塊、P塊、和單方連接塊的幀。I塊包括第1-3塊,而P塊和單方連接塊包括含有第4-10塊的剩余塊。每一I塊具有4個可能相鄰塊上相鄰、下相鄰、左相鄰、和右相鄰。在這里使用的內(nèi)插算法中,幀中的各塊根據(jù)掃描順序進(jìn)行處理,并且僅“可用”塊(即其中建立有像素值的先前處理的I塊、其中具有原始數(shù)據(jù)的P塊、和/或單方連接塊)可用于空間內(nèi)插。例如,對于第1塊使用圖5中的從左到右并然后從上到下的掃描順序,僅相鄰的第4-5塊可用于第1塊的空間內(nèi)插,因?yàn)榈?塊和第3塊不可用。然而,對于第2塊,存在4個相鄰塊可用于在第1塊的內(nèi)插之后進(jìn)行第2塊空間內(nèi)插,即第1和6-8塊。類似地,存在4個相鄰塊可用于在第1塊的內(nèi)插之后進(jìn)行第3塊空間內(nèi)插,即第1和8-10塊。
遵循光柵掃描規(guī)則(例如前述從左到右并然后從上到下的掃描規(guī)則)而執(zhí)行空間內(nèi)插?;诳捎孟噜弶K的數(shù)目和它們的位置,存在不同的內(nèi)插函數(shù)。圖6圖示了以下表示法“u”表示上相鄰像素,“l(fā)w”表示下相鄰像素,“l(fā)f”表示左相鄰像素,“r”表示右相鄰像素,而“in”表示I塊中的內(nèi)插像素值。內(nèi)插可以是線性或非線性的,并且可使用許多不同的內(nèi)插方案。
圖7A-7C(統(tǒng)稱為圖7)圖示了其中僅一個相鄰塊可用的情況。圖7A中的4×4像素的I塊40由行線段41-44定義,并且假設(shè)僅可用相鄰像素在塊40之上的上相鄰塊中的行線段45中。圖7A中為I塊40示出的示例像素值是空間內(nèi)插之前的初始值。行線段45中的像素值用于空間內(nèi)插。對于該情況,表1中的C語言代碼可用于實(shí)現(xiàn)該空間內(nèi)插。
表1
圖7B示出了運(yùn)行表1的C語言代碼所得到的I塊40中的結(jié)果內(nèi)插值。圖7C示出了通過從圖7A的初始像素值減去圖7B的內(nèi)插像素值而確定的殘留誤差塊。圖7C描繪的殘留誤差塊重疊在(即位于)與所分析的一對幀A和B關(guān)聯(lián)的相關(guān)時間高幀中,用于由圖2的EZBC 54進(jìn)行隨后的相關(guān)時間高幀的壓縮。盡管圖7A-7C描述了僅上相鄰像素可用于內(nèi)插的實(shí)施例,但是可以從上述“上”相鄰情況中、或者通過正確的坐標(biāo)旋轉(zhuǎn)而類似地導(dǎo)出僅左、右、或下相鄰像素可用于內(nèi)插的情況。
表2和3圖示了其中兩個相鄰塊可用的內(nèi)插算法。表2詳細(xì)說明了根據(jù)圖6的表示法使用上和左位置中的可用相鄰像素計(jì)算4×4I塊中的內(nèi)插像素值in
…in[15](見圖6)的公式。表3詳細(xì)說明了根據(jù)圖6的表示法使用上和下位置中的相鄰像素計(jì)算4×4I塊中的內(nèi)插像素值in
…in[15]的C語言代碼。
表2
表3
可以從上面分別結(jié)合表2和3所述的“上和左”或“上和下”相鄰情況、或通過正確的坐標(biāo)旋轉(zhuǎn)而類似地導(dǎo)出其中兩個相鄰塊可用的其它實(shí)施例。
表4圖示了其中三個相鄰塊可用的內(nèi)插算法。表4詳細(xì)說明了根據(jù)圖6的表示法使用上、左、和右位置的相鄰像素來計(jì)算4×4I塊中的內(nèi)插像素值in
…in[15](見圖6)的C語言代碼。
表4
可以從上面結(jié)合表4所述的“上、左、和右”相鄰情況、或通過正確的坐標(biāo)旋轉(zhuǎn)而類似地導(dǎo)出其中三個相鄰塊可用的其它實(shí)施例。
表5圖示了其中四個相鄰塊可用的內(nèi)插算法。表5詳細(xì)說明了根據(jù)圖6的表示法使用上、下、左、和右位置的相鄰像素來計(jì)算4×4I塊中的內(nèi)插像素值in
…in[15](見圖6)的C語言代碼。
表5
圖8圖示了可變塊尺寸的情況,其由匹配從4×4到64×64的范圍內(nèi)的塊尺寸的5級分層可變尺寸塊而引起。例如,在圖8中,示出了I塊11和12。塊11具有8×8的像素尺寸,而塊12具有4×4的像素尺寸。如果按照前述從左到右并然后從上到下的掃描順序?qū)K11和12進(jìn)行處理(即在內(nèi)插塊12之前,內(nèi)插塊11),則塊12不可用于塊11的內(nèi)插。為了簡化內(nèi)插,塊11可被看作用于內(nèi)插目的的4個單獨(dú)的4×4I塊,從而空間內(nèi)插可被實(shí)現(xiàn)為固定塊內(nèi)插。
圖9A-9F(統(tǒng)稱為圖9)圖示了根據(jù)本發(fā)明實(shí)施例的用于確定I塊的像素值的定向空間內(nèi)插方案。圖9A-9F描繪了在幀60的一部分中的4×4I塊61。這部分幀60包括像素P11…P99。I塊61包括像素P22、P23、P24、P25、P32、P33、P34、P35、P42、P43、P44、P45、P52、P53、P54、和P55。在圖9A-9F中,不在I塊61中的所有像素是I塊61中的像素的相鄰像素。I塊61中的像素的內(nèi)插沿著與X軸成θ固定角的平行線而進(jìn)行,例如如圖9A所示的一條平行線,即線66。圖9B-9F中的每個圖代表具有不同值的θ的實(shí)施例。為了出于圖示的目的而估計(jì)θ的值,簡要假設(shè)每個像素是正方形。由此,對于對角穿過像素P25、P34、P43、和P52的頂點(diǎn)的圖9A所示線66,θ=45度。當(dāng)然,如果像素具有矩形而非正方形的形狀,則θ將與圖9A的線62的45度不同。注意,θ和θ+180度代表平行線的相同集合。沿著每一這樣的線的內(nèi)插利用該線上最近可用相鄰像素的像素值,其中可用相鄰像素是先前已建立了其像素值的相鄰像素。定向內(nèi)插方案假設(shè)至少一個相鄰像素總是可用于平行線中的每一條這樣的線。
圖9B圖示了相對于平行線63、64、…、69具有θ=45度的定向內(nèi)插。線63、64、…、69被稱為“定向線”。由于線63穿過像素P22,所以線63用于基于內(nèi)插使用以下像素而確定像素P22的值如果相鄰像素P13和P31都可用,則使用P13和P31;如果P13可用而P31不可用,則僅使用相鄰像素P13;或者如果P31可用而P13不可用,則僅使用相鄰像素P31。由于線64穿過像素P23和P32,所以線64用于基于內(nèi)插使用以下像素而確定像素P23和P32的值如果相鄰像素P14和P41都可用,則使用P14和P41;如果P14可用而P41不可用,則僅使用相鄰像素P14;或者如果P31可用而P13不可用,則僅使用相鄰像素P31。類似地,沿著線65、66、67、68、和69的內(nèi)插分別用于確定(P24,P33,P42)、(P25,P34,P43,P52)、(P35,P44,P53)、(P45,P54)、和(P55)處的像素值。
線67-69表示最近相鄰像素的替代可能性。例如,線68在I塊61的對邊處具有相鄰像素(P36,P27,和P18)以及(P63,P72,和P81)。在選擇相鄰像素(P36,P27,和P18)中的哪個相鄰像素來使用的過程中,如果像素P36可用,則定向內(nèi)插將使用像素P36,因?yàn)橄袼豍36是相鄰像素(P36,P27,和P18)中的最近相鄰像素。如果像素P36不可用、而像素P27可用,則定向內(nèi)插將使用像素P27,因?yàn)橄袼豍27是相鄰像素(P27和P18)中的最近相鄰像素。如果像素P27不可用、而剩余的相鄰像素P18可用,則定向內(nèi)插將使用像素P18。如果像素P27不可用,則定向內(nèi)插將不使用像素(P36,P27,和P18)中的任一個。類似地,定向內(nèi)插將基于用于作出選擇的最近可用相鄰像素標(biāo)準(zhǔn)而選擇相鄰像素(P63,P72,和P81)中的一個像素。所以,作為應(yīng)用該最近可用相鄰像素標(biāo)準(zhǔn)的結(jié)果,用于確定像素P45和P54的值的沿著線68的定向內(nèi)插將利用以下相鄰像素組合中的一種僅P63、僅P72、僅P81、P63和P36、P63和P27、P63和P18、P72和P36、P72和P27、P72和P18、P81和P36、P81和P27、P81和P18、僅P36、僅P27、和僅P18。
接下來圖示沿著線68的用于線性內(nèi)插的定向內(nèi)插,來確定像素P45和P54的像素值(假設(shè)相鄰像素P36和P63都可用)。沿著線68的點(diǎn)Q0、Q1、Q2、Q3和Q4如圖9B所示。點(diǎn)Q0、Q1、Q2、Q3和Q4在線68中分別跨越像素P27、P36、P45、P54和P63的部分的中點(diǎn)。假設(shè)D12、D13和D14分別表示點(diǎn)Q1與點(diǎn)Q2、Q3、Q4之間的距離。假設(shè)F1214和F1314分別表示D12/D14和D13/D14。假設(shè)V36和V63分別表示像素P36和P63處的像素值。然后,像素P45和P54的像素值分別是(1-F1214)*V36+F1214*V63和(1-F1314)*V36+F1314*V63。
沿著線68的用于線性內(nèi)插的定向內(nèi)插提出了以下問題如果相鄰像素P36不可用而相鄰像素P27可用,則如何進(jìn)行內(nèi)插。如果V27表示像素P27處的像素值,則只要V36出現(xiàn)在內(nèi)插公式中,V27將替代V36。然而,本發(fā)明的范圍包括用于處理沿著線68的距離的三種選項(xiàng)。
第一選項(xiàng)是在內(nèi)插公式中保持參數(shù)F1214和F1314,盡管像素P36已被像素P27替換為最近可用相鄰像素,但是使用點(diǎn)Q1作為測量距離的參考,該公式在概念上仍是等效的。對于第一選項(xiàng),像素P45和P54處的像素值分別是(1-F1214)*V27+F1214*V63和(1-F1314)*V27+F1314*V63。
第二選項(xiàng)是利用與在相鄰像素P27處開始線68的點(diǎn)Q0的距離。對于第二選項(xiàng),D02、D03和D04分別表示點(diǎn)Q0和點(diǎn)Q2、Q3、Q4之間的距離。假設(shè)F0204和F0304分別表示D02/D04和D03/D04。然后,像素P45和P54處的像素值分別是(1-F0204)*V27+F0204*V63和(1-F0304)*V27+F0304*V63。
第三選項(xiàng)是使用第一和第二選項(xiàng)之間的折衷。不象第一和第二選項(xiàng)一樣使用(F1214和F1314)或(F0204和F0304),而使用參數(shù)(F1214,F(xiàn)0204)AVE和(F1314,F(xiàn)0304)AVE,其中(F1214,F(xiàn)0204)AVE是F1214和F0204的加權(quán)或不加權(quán)的平均值,而(F1314,F(xiàn)0304)AVE是F1314和F0304的加權(quán)或不加權(quán)的平均值。然后,像素P45和P54處的像素值分別是(1-(F1214,F(xiàn)0204)AVE)*V27+(F1214,F(xiàn)0204)AVE*V63和(F1314,F(xiàn)0304)AVE*V27+(F1314,F(xiàn)0304)AVE*V63。如果(F1214,F(xiàn)0204)AVE和(F1314,F(xiàn)0304)AVE是加權(quán)平均值,則權(quán)重可基于外在(extrinsic)因素,例如像素P36和P27沿著線68對I塊61的圖像質(zhì)量的相對重要性的外在知識,而與像素P36和P27沿著線68距點(diǎn)Q2和Q3的距離無關(guān)。
圖9C-9F與圖9B類似,除了θ值不同。在圖9C中,對于定向線71-74,θ=90度。利用相鄰像素P12、P62、P72、P82和P92的子集,通過沿著線71內(nèi)插而確定像素P22、P32、P42和P52的值。利用相鄰像素P13、P63、P73、P83和P93的子集,通過沿著線72內(nèi)插而確定像素P23、P33、P43和P53的值。利用相鄰像素P14、P64、P74、P84和P94的子集,通過沿著線73內(nèi)插而確定像素P24、P34、P44和P54的值。利用相鄰像素P15、P65、P75、P85和P95的子集,通過沿著線74內(nèi)插而確定像素P25、P35、P45和P55的值。
在圖9D中,對于定向線81-87,θ=135度。利用相鄰像素P41、P63、P74、P85和P96的子集,通過沿著線81內(nèi)插而確定像素P52的值。利用相鄰像素P31、P64、P75、P86和P97的子集,通過沿著線82內(nèi)插而確定像素P42和P53的值。利用相鄰像素P21、P65、P76、P87和P98的子集,通過沿著線83內(nèi)插而確定像素P32、P43和P54的值。利用相鄰像素P11、P66、P77、P88和P99的子集,通過沿著線84內(nèi)插而確定像素P22、P33、P44和P55的值。利用相鄰像素P12、P56、P67、P78和P89的子集,通過沿著線85內(nèi)插而確定像素P23、P34和P45的值。利用相鄰像素P13、P46、P57、P68和P79的子集,通過沿著線86內(nèi)插而確定像素P24和P35的值。利用相鄰像素P14、P36、P47、P58和P69的子集,通過沿著線87內(nèi)插而確定像素P25的值。
在圖9E中,對于定向線76-79,θ=0度(或180度)。利用相鄰像素P21、P26、P27、P28和P29的子集,通過沿著線76內(nèi)插而確定像素P22、P23、P24和P25的值。利用相鄰像素P31、P36、P37、P38和P39的子集,通過沿著線77內(nèi)插而確定像素P32、P33、P34和P35的值。利用相鄰像素P41、P46、P47、P48和P49的子集,通過沿著線78內(nèi)插而確定像素P42、P43、P44和P45的值。利用相鄰像素P51、P56、P57、P58和P59的子集,通過沿著線79內(nèi)插而確定像素P52、P53、P54和P55的值。
在圖9F中,對于定向線101-105,θ=26.56度(即θ是2/4的反正切)。利用相鄰像素P31和P14的子集,通過沿著線101內(nèi)插而確定像素P22和P23的值。利用相鄰像素P41和P16的子集,通過沿著線102內(nèi)插而確定像素P32、P33、P24和P25的值。利用相鄰像素P51、P26、P27、P18和P19的子集,通過沿著線103內(nèi)插而確定像素P42、P43、P34和P35的值。利用相鄰像素P61、P36、P37、P28和P29的子集,通過沿著線104內(nèi)插而確定像素P52、P53、P44和P45的值。利用相鄰像素P71、P46、P47、P38和P39的子集,通過沿著線105內(nèi)插而確定像素P54和P55的值。
圖9A-9F圖示了定向空間內(nèi)插,其特征在于通過沿著平行定向線的空間內(nèi)插而確定I塊中的所有像素值。相反,圖7A-7C和表1-5圖示了非定向空間內(nèi)插,其特征在于通過空間內(nèi)插中的最近可用相鄰空間內(nèi)插而確定I塊中的所有像素值,在該最近可用相鄰空間內(nèi)插中,利用穿過I塊的非定向線。用于I塊的另一空間內(nèi)插方法在于混合空間內(nèi)插,其包括定向空間內(nèi)插和非定向空間內(nèi)插的組合。利用混合空間內(nèi)插,至少一條定向線用于I塊中的一些空間內(nèi)插,而通過其中利用穿過I塊的非定向線的最近可用相鄰空間內(nèi)插來確定I塊中的一些像素值。當(dāng)使用定向空間內(nèi)插或混合空間內(nèi)插時,選中的方向和混合掩模必須被編碼并作為輔助(side)信息而發(fā)送。為此目的,本發(fā)明的一個實(shí)施例使用短固定霍夫曼代碼。
圖10圖示了根據(jù)本發(fā)明實(shí)施例的混合空間內(nèi)插。圖10包括空間內(nèi)插中使用的定向線121-124,用于確定(沿著線121)的像素P25、P34、P43和P52的值、(沿著線122)的像素P35、P44、和P53的值、(沿著線123)的像素P45和P54的值、和(沿著線124)的像素P55的值。然而,利用最近上相鄰像素P12、P13、P14和最近左相鄰像素P21、P31、P41,通過非定向空間內(nèi)插,而確定像素P22、P23、P24、P32、P33和P42的值。
如前面結(jié)合圖6-10和表1-5的空間內(nèi)插例子所示,基于相對于給定幀中的每一I塊的最近可用相鄰像素的值,通過空間內(nèi)插,而計(jì)算給定幀中的所述每一I塊的像素值。如果給定幀中的特定I塊外面的給定像素與I塊足夠接近而可能通過所述空間內(nèi)插對I塊中的像素值作出貢獻(xiàn),則所述給定像素被稱為相對于I塊的相鄰像素。
前面結(jié)合圖6-10和表1-5的討論用于通過集中于線性內(nèi)插的內(nèi)插而確定I塊中的像素值。不論如何,本發(fā)明的范圍也包括根據(jù)任何非線性內(nèi)插方案的非線性內(nèi)插,其開發(fā)了對I塊中的像素值作出貢獻(xiàn)的各種相鄰像素的相對價值(relative importance)。
OBMC處理本發(fā)明公開了與視頻幀的處理相關(guān)的實(shí)施例,其中所處理的每一幀被劃分為包括至少兩個不同尺寸的塊的M塊,并且其中M是至少9。
利用傳統(tǒng)的塊運(yùn)動補(bǔ)償,所處理的當(dāng)前幀被劃分為由像素組成的塊,其中當(dāng)前幀中的像素的每一這樣的塊BCUR0根據(jù)參考幀中的相同尺寸的塊BREF0而預(yù)測。當(dāng)前幀中的像素的塊BCUR0被稱為“當(dāng)前塊”或“自身塊”。當(dāng)前幀中的自身塊BCUR0在空間上從參考幀中的塊BREF0位移運(yùn)動矢量V0。由此,當(dāng)前幀中的自身塊BCUR0中的像素位置P0(由矢量PCUR0標(biāo)識)處的像素值ICUR0(PCUR0)被預(yù)測為等于參考幀中的塊BREF0中的矢量(PCUR0-V0)所標(biāo)識的像素位置處的像素值IREF0(PCUR0-V0)。因變量“I”表示亮度和/或色度的像素值。傳統(tǒng)塊運(yùn)動補(bǔ)償?shù)娜秉c(diǎn)涉及在塊邊界處引起的不連續(xù)性(成塊偽影)。該不連續(xù)性可具有尖銳水平和垂直邊緣的形式,其可被人眼高度可見,并也可在用于對殘余幀變換編碼的相關(guān)傅立葉變換中產(chǎn)生激振(ringing)效應(yīng)(即高頻子帶中的大系數(shù))。
利用重疊塊運(yùn)動補(bǔ)償(OBMC),可利用自身塊BCUR的最近相鄰塊來預(yù)測自身塊BCUR中的像素值。例如,最近相鄰塊可包括緊靠在自身塊BCUR右、下、左、上的4個最近相鄰塊,分別由運(yùn)動矢量V1、V2、V3和V4表示為參考幀中的Bl、BREF4。參考幀中的塊BREF1、BREF2、BREF3、和BREF4最可能是參考幀中的塊BREF0的非最近相鄰塊。權(quán)重W(PCUR0)與自身塊BCUR0中的像素位置P0(由矢量PCUR0標(biāo)識)相關(guān)聯(lián)。權(quán)重W(P1)、W(P2)、W(P3)、和W(P4)分別與最近相鄰塊B1、B2、B3和B4中的像素位置P1、P2、P3和P4相關(guān)聯(lián),使得像素位置P1、P2、P3和P4對應(yīng)于像素位置P0。利用OBMC,像素位置P0處的像素值ICUR0(PCUR0)被預(yù)測為等于W(PCUR0)*IREF0(PCUR0-V0)+[W(P1)*I(P1-V1)+W(P2)*I(P2-V2)+W(P3)*I(P3-V3)+W(P4)*I(P4-V4)]。由此,在自身塊BCUR0中的矢量PCUR0所標(biāo)識的像素位置處的預(yù)測像素值通過考慮來自參考幀中的它們移位的位置處的最近相鄰塊的像素值貢獻(xiàn),而減輕了塊邊界處引起的不連續(xù)性。包括自身塊BCUR0中所有像素的W(PCUR0)的權(quán)重陣列構(gòu)成自身塊BCUR0的“加權(quán)窗口”。類似地,包括最近相鄰塊B1、B2、B3、和B4中所有像素的W(P1)、W(P2)、W(P3)、和W(P4)的權(quán)重陣列分別構(gòu)成最近相鄰塊B1、B2、B3、和B4的加權(quán)窗口。在圖17、18、21和22中呈現(xiàn)了根據(jù)本發(fā)明的加權(quán)窗口及其生成的例子,這將在下面進(jìn)行討論。
本發(fā)明公開了可變塊尺寸OBMC。接下來,在圖11和12中圖示了當(dāng)前幀中的塊及其與參考幀中的塊的關(guān)系。
圖11描繪了根據(jù)本發(fā)明實(shí)施例的(例如通過四叉樹算法)已被配置為可變尺寸塊的當(dāng)前幀240。如圖所示,當(dāng)前幀240包括22個塊。圖11中的每一塊考慮到其最近相鄰塊而被處理為自身塊。例如,將正處理的塊241看作自身塊。自身塊244具有最近相鄰塊242-246。注意自身塊可具有等于、大于、或小于最近相鄰塊的尺寸。在圖11中,自身塊241的尺寸是等于其最近相鄰塊242的尺寸、大于其最近相鄰塊245和246的尺寸、并小于其最近相鄰塊243和244的尺寸。
圖12描繪了根據(jù)本發(fā)明實(shí)施例的圖11的當(dāng)前幀240、和參考幀260、以及分別鏈接當(dāng)前幀240中的塊241-246和參考幀260中的對應(yīng)塊261-266的矢量251-256。矢量251-256在參考幀260上的正軸投影分別是表示塊241-246相對于塊261-266的矢量位移的運(yùn)動矢量。盡管為了簡明起見,塊261-266表現(xiàn)為在參考幀260中具有相同尺寸,但是實(shí)際上,塊261-266分別與當(dāng)前幀240中的它們的對應(yīng)塊241-246具有相同的尺寸。參考幀260代表一個或多個參考幀,每個這樣的參考幀具有其自己的運(yùn)動矢量以及與當(dāng)前幀的各塊相關(guān)聯(lián)的塊,因?yàn)榭梢愿鶕?jù)單一參考幀或多個參考幀中的對應(yīng)像素而對當(dāng)前幀中的每一像素進(jìn)行預(yù)測。
本發(fā)明公開了一種壓縮視頻的方法,其涉及在成對輸入幀(例如前面結(jié)合圖3討論的具有輸入幀A和B的代表對)中利用運(yùn)動補(bǔ)償后的塊的時間空間或時空變換。這些塊具有各種尺寸,并被選擇用來匹配局部運(yùn)動矢量場,從而存在該運(yùn)動具有高空間梯度的小塊、和該運(yùn)動的空間梯度小的更平坦區(qū)域內(nèi)的大塊。不過,如同前面進(jìn)行的解釋,不同塊的運(yùn)動矢量在跨越塊邊界時是不連續(xù)的。結(jié)果,在根據(jù)另一幀預(yù)測一幀的過程中,創(chuàng)建了偽影。本發(fā)明的OBMC通過利用當(dāng)前塊的運(yùn)動矢量及其最近相鄰塊的運(yùn)動矢量、根據(jù)估計(jì)的加權(quán)組合進(jìn)行預(yù)測,而著手解決該問題。本發(fā)明的OBMC還通過迭代調(diào)整該塊運(yùn)動矢量以達(dá)到改進(jìn)的運(yùn)動矢量而得以改進(jìn),這增加了得到的幀預(yù)測的精度并所以增加了編碼效率。利用本發(fā)明,可以可選地省略該迭代。利用OBMC獲得的MCTF的輸出然后被壓縮用于發(fā)送或存儲。另外,運(yùn)動矢量作為開銷被發(fā)送到接收機(jī),并可構(gòu)成總比特率的大約10-15%。
圖13A是根據(jù)本發(fā)明實(shí)施例的描繪了用于在圖2的MCTF時間高幀中利用可變塊尺寸OBMC的步驟211-214的流程圖。在步驟211之前,當(dāng)前幀已被配置為包括至少兩個不同尺寸的塊的M塊,其中M至少是9。步驟211執(zhí)行可變尺寸塊匹配(VSBM)以獲得本領(lǐng)域公知的用于運(yùn)動塊的初始矢量(例如見Ostermann,and Zhang,“Video Processing and Communications”,Prentice-Hall,pp.182-187(2002))。步驟212將當(dāng)前幀中的各塊分類為I塊或運(yùn)動塊?!斑\(yùn)動塊”被定義為非I塊。前面已結(jié)合圖3的步驟31-36描述了未連接塊(即I塊和P塊)和單方連接塊的檢測和分類。圖15在下面描述包括P塊、缺省(DEFAULT)塊、和反轉(zhuǎn)(REVERSE)塊的各種類別的運(yùn)動塊。步驟213執(zhí)行可變塊尺寸OBMC,以提供用于運(yùn)動塊和I塊的重疊平滑。在步驟214,根據(jù)MCTF對步驟213中生成的運(yùn)動場(即平滑的運(yùn)動塊和/或I塊)進(jìn)行處理。
圖13B是描繪了根據(jù)本發(fā)明實(shí)施例的描述圖13A的可變塊尺寸OBMC處理步驟213的步驟221-223的流程圖。對于當(dāng)前幀中的給定自身塊和關(guān)聯(lián)最近相鄰塊,步驟221執(zhí)行生成用于自身塊及其關(guān)聯(lián)最近相鄰塊的加權(quán)窗口的收縮方案,該方案考慮自身塊是運(yùn)動塊還是I塊,并考慮該最近相鄰塊是運(yùn)動塊還是I塊。如果最近相鄰塊是I塊,則步驟221的收縮方案調(diào)用執(zhí)行反射方案的步驟222,其以說明最近相鄰I塊的內(nèi)在無能(intrinsic inability)的方式影響加權(quán)窗口的生成,從而與參考幀通信。
按照預(yù)定掃描順序所指明的次序,對于給定自身塊的所有最近相鄰塊、并然后對于當(dāng)前幀的所有自身塊,執(zhí)行收縮方案執(zhí)行步驟221。執(zhí)行步驟223,其中已利用了用于當(dāng)前幀中的每一自身塊的初始運(yùn)動矢量。盡管自身塊的所述初始運(yùn)動矢量被用于生成加權(quán)窗口,但是所述初始運(yùn)動矢量可能不是最佳加權(quán)窗口,因?yàn)楫?dāng)考慮所生成的加權(quán)窗口時,運(yùn)動矢量的混集(perturbed set)可導(dǎo)致對于當(dāng)前幀中像素值的更精確預(yù)測。因此,步驟223執(zhí)行迭代處理,使得每次迭代都擾亂運(yùn)動矢量,從而根據(jù)步驟222生成的加權(quán)窗口而改進(jìn)當(dāng)前幀中的像素值的精度。
圖13B中的步驟221-223反映了圖13A的可變塊尺寸OBMC處理步驟213的簡化描述。在圖16-18和21-22的示意性加權(quán)窗口生成示例之后,圖23將在下面呈現(xiàn)詳細(xì)描述圖13B的步驟221-222的可變塊尺寸OBMC處理的實(shí)施例的流程圖。另外,圖24將在下面呈現(xiàn)詳細(xì)描述圖13B的步驟223的用于改進(jìn)運(yùn)動矢量的迭代處理的流程圖。
圖14是根據(jù)本發(fā)明實(shí)施例的與圖13A-13B的流程圖關(guān)聯(lián)的幀處理的方框圖。圖14圖示了以下依次排序的處理分量(YUV)分層可變尺寸塊匹配(HVS-M)運(yùn)動估計(jì)231(對應(yīng)于圖13A的步驟211);I塊檢測232(對應(yīng)于圖13A的步驟212);可變塊尺寸OBMC執(zhí)行233(在圖13A的步驟213中執(zhí)行);MTCF處理234(對應(yīng)于圖13A的步驟214);和MC-EZBC編碼器處理235。HVSBM運(yùn)動估計(jì)231生成由算術(shù)編碼器236處理的運(yùn)動矢量。根據(jù)由EZBC編碼器235生成的編碼輸出和由算術(shù)編碼器236生成的編碼輸出而形成比特流237。
在圖14中,MCTF處理234依次包括I塊、P塊、反轉(zhuǎn)塊、和缺省塊的處理。反轉(zhuǎn)塊預(yù)測包括根據(jù)前一B幀而最佳預(yù)測的那些塊的預(yù)測。缺省塊的像素包括實(shí)際參與MC濾波的那些像素,既用于父幀H的“預(yù)測”步驟,又用于父幀L的“更新”步驟。
圖15描繪了根據(jù)本發(fā)明實(shí)施例的要由MCTF變換為高時間幀H和低時間幀L的兩個連續(xù)輸入幀A和B。見圖2(以及前面對其的討論),通過MCTF處理從幀A和B中導(dǎo)出H和L幀。然而,在圖2中,對H和L幀的時間定位進(jìn)行不同的選擇。在圖2中,L幀是輸入幀A的時間基準(zhǔn),H幀是輸入幀B的時間基準(zhǔn);而在圖15中,H幀是輸入幀A的時間基準(zhǔn),L幀是輸入幀B的時間基準(zhǔn)。實(shí)際上,已發(fā)現(xiàn)任一組時間基準(zhǔn)都適用,并且任一組時間基準(zhǔn)都存在于現(xiàn)代基于MCTF的可伸縮視頻編碼器中。上標(biāo)“t”和“t-1”分別表示當(dāng)前時間t和先前時間t-1。如前所述,如雙箭頭所示,缺省塊參與(用于幀H的)預(yù)測和(用于幀L的)更新處理。如單箭頭所示,P塊、反轉(zhuǎn)塊和I塊僅影響一幀,即H幀。沒有示出對于這些塊的更新。I塊表示如前所述僅采用空間內(nèi)插/預(yù)測的塊。在I塊檢測之后,執(zhí)行圖14的可變尺寸OBMC執(zhí)行233。
在OBMC框架中,本發(fā)明把對幀進(jìn)行解碼之前由解碼器接收的任何數(shù)據(jù)看作有關(guān)最后采用的真預(yù)測方案的信息源。
圖16描繪了根據(jù)本發(fā)明實(shí)施例的當(dāng)前幀中的自身塊和4個最近相鄰塊。圖16中的自身塊270的4個最近相鄰塊是右最近相鄰塊271、下最近相鄰塊272、左最近相鄰塊273、和上最近相鄰塊274。對于前述圖17-18的示意性例子,假設(shè)自身塊及其最近相鄰塊具有相同尺寸。根據(jù)前面的假設(shè),使用的加權(quán)窗口是左右上下對稱的。
圖17A和17B(統(tǒng)稱為“圖17”)圖示了根據(jù)本發(fā)明實(shí)施例的4×4加權(quán)窗口。在圖17A中,自身塊是運(yùn)動塊,而在圖17B中,自身塊是I塊。圖17A示出了用于自身塊的加權(quán)窗口270A和分別用于右最近相鄰塊、下最近相鄰塊、左最近相鄰塊、和上最近相鄰塊的其關(guān)聯(lián)最近相鄰塊加權(quán)窗口271A、272A、273A、和274A。圖17B示出了用于自身塊的加權(quán)窗口270B和分別用于右最近相鄰塊、下最近相鄰塊、左最近相鄰塊、和上最近相鄰塊的其關(guān)聯(lián)最近相鄰塊加權(quán)窗口271B、272B、273B、和274B。
以下規(guī)定用于代表圖17-18和21-22的例子中的加權(quán)窗口,為了圖示目的而使用圖17A。對于自身塊加權(quán)窗口270A,圖17A所示像素權(quán)重在與物理像素位置處的對應(yīng)像素值相同的相對像素位置處。然而,對于最近相鄰塊,圖17A所示像素權(quán)重被排序和顯示為與物理像素位置處的對應(yīng)像素值反射性地相對。例如,在圖17A中,相對于自身塊加權(quán)窗口270A及其上相鄰塊加權(quán)窗口274A,上相鄰塊加權(quán)窗口274A的最上行276A權(quán)重(1111)對應(yīng)于自身塊(按照物理像素位置)加權(quán)窗口270A的頂行277A中的像素。作為另一個例子,在圖17A中,相對于自身塊加權(quán)窗口270A及其右相鄰塊加權(quán)窗口271A,右相鄰塊加權(quán)窗口271A的最右列278A權(quán)重(1111)對應(yīng)于自身塊270A的最右列279A中的像素。
前述規(guī)定具有可見的優(yōu)點(diǎn)如果最近相鄰塊加權(quán)窗口疊加在自身塊加權(quán)窗口270A上,則在最近相鄰塊加權(quán)窗口中的給定矩陣位置處的指明的權(quán)重和在自身塊加權(quán)窗口中的直接在該矩陣位置下的權(quán)重被用作本發(fā)明的OBMC計(jì)算中的相同物理像素的權(quán)重。由此,當(dāng)所有最近相鄰塊加權(quán)窗口疊加在自身塊加權(quán)窗口270A上時,每一矩陣位置處的權(quán)重之和是4,或者對于N×N塊一般是N。例如,在圖17A中,當(dāng)所有最近相鄰塊加權(quán)窗口疊加在自身塊加權(quán)窗口270A上的左上角矩陣位置時,自身塊加權(quán)窗口270A、右相鄰塊加權(quán)窗口271A、下相鄰塊加權(quán)窗口272A、左相鄰塊加權(quán)窗口273A、和上相鄰塊加權(quán)窗口274A的權(quán)重分別是2、1、0、0和1,它們的和是4。
對于作為概率加權(quán)窗口的加權(quán)窗口,該加權(quán)窗口中的權(quán)重之和將等于1,這將導(dǎo)致權(quán)重具有小于或等于1的分?jǐn)?shù)或小數(shù)值。為了在數(shù)值上簡化表示權(quán)重,圖17-20中的示意性例子中使用的加權(quán)窗口被歸一化,使得對于N×N加權(quán)窗口尺寸而言權(quán)重之和等于N(而不是等于1),同時應(yīng)該理解,當(dāng)加權(quán)窗口中的權(quán)重用于計(jì)算像素值時,該加權(quán)窗口應(yīng)被實(shí)現(xiàn)為概率加權(quán)窗口(或其等同)。
在圖17A中,利用固定4×4塊尺寸,自身塊是運(yùn)動塊,并且使用兩維(2-D)雙線性(即直線)內(nèi)插來確定自身塊加權(quán)窗口270A以及最近相鄰塊加權(quán)窗口271A、272A、273A和274A的權(quán)重。2-D雙線性內(nèi)插像素值對應(yīng)于沿著自身塊的中心和相鄰塊的中心之間的直線的線性內(nèi)插。由于2-D雙線性內(nèi)插是兩維的,所以雙線性內(nèi)插的權(quán)重是沿兩個彼此正交的方向的內(nèi)插值的乘積。由2-D雙線性內(nèi)插導(dǎo)致的權(quán)重已被四舍五入為最接近的整數(shù),約束條件是滿足歸一化條件(即與每一像素關(guān)聯(lián)的權(quán)重之和等于N)。如果一個或多個自身塊邊界與幀邊界相符,則自身塊的至少一邊將不具有最近相鄰塊,并且所得到的雙線性加權(quán)窗口的權(quán)重將因此與當(dāng)沒有自身塊邊界與幀邊界相符時存在的雙線性加權(quán)窗口的權(quán)重不同。研究表明2-D雙線性內(nèi)插加權(quán)窗口幾乎與迭代最優(yōu)加權(quán)窗口一樣精確。然而,可使用其它形式的內(nèi)插(例如四次冪內(nèi)插、指數(shù)內(nèi)插等)來代替用于圖17A的加權(quán)窗口或這里討論的任何其它實(shí)施例的加權(quán)窗口的雙線性內(nèi)插,使得雙線性內(nèi)插被公開為正使用中。
在圖17B中,利用固定4×4塊尺寸,自身塊是I塊。通過提取自身塊加權(quán)窗口中的一部分權(quán)重并將所述一部分權(quán)重添加到最近相鄰塊加權(quán)窗口中的所選權(quán)重,而從圖17A的加權(quán)窗口的權(quán)重中導(dǎo)出圖17B的加權(quán)窗口中的權(quán)重,其約束條件是滿足歸一化條件。所述“一部分權(quán)重”調(diào)整在給出好可視誤差性能的方面被實(shí)驗(yàn)性地確定,并不以任何方式被優(yōu)化。其它“一部分權(quán)重”如果通過實(shí)驗(yàn)性和/或分析方法論而被驗(yàn)證或證實(shí),則其可被利用。所述所選權(quán)重是接近塊邊界的權(quán)重。當(dāng)自身塊為I塊時,圖17A的權(quán)重的前述修改通過為相鄰塊提供相對較高的權(quán)重,而促進(jìn)在自身塊邊界處的內(nèi)插像素值的更強(qiáng)烈的平滑。圖17B所使用的權(quán)重分布方法是“輻射方案”,其將權(quán)重分量從自身單元向外輻射到其相鄰單元。
對于圖17A和/或圖17B,一旦已對于右最近相鄰塊確定了最近相鄰塊加權(quán)窗口,則用于左最近相鄰塊的最近相鄰塊加權(quán)窗口可通過開發(fā)圖16所示的反射對稱而確定、或可通過雙線性內(nèi)插而計(jì)算。類似地,一旦已對于下最近相鄰塊確定了最近相鄰塊加權(quán)窗口,則用于上最近相鄰塊的最近相鄰塊加權(quán)窗口可通過開發(fā)圖16所示的反射對稱而確定、或可通過雙線性內(nèi)插而計(jì)算。
圖17的例子圖示了實(shí)施例,其中自身塊是I塊,并且其中所產(chǎn)生的自身塊的窗口包括第一像素權(quán)重和第二像素權(quán)重。第一像素權(quán)重小于如果自身塊是運(yùn)動塊所應(yīng)該具有的第一像素權(quán)重,第二像素權(quán)重等于如果自身塊是運(yùn)動塊所應(yīng)該具有的第二像素權(quán)重。例如,圖17B的自身I塊270B的所選矩陣位置處的第一像素權(quán)重“2”小于圖17A的運(yùn)動塊270A的對應(yīng)所選矩陣位置處的權(quán)重“3”,并且第二像素權(quán)重是作為圖17B的自身I塊270B和圖17A的運(yùn)動塊270A中的相同權(quán)重(即相同權(quán)重幅度)的剩余像素權(quán)重。
因此,生成自身塊的權(quán)重窗口的步驟可包括生成自身塊的第一權(quán)重窗口如同該自身塊是運(yùn)動塊一樣(例如圖17A的生成運(yùn)動塊270A的步驟);和通過降低第一加權(quán)窗口中的權(quán)重而從第一加權(quán)窗口生成用于自身塊的加權(quán)窗口(例如通過降低圖17A的運(yùn)動塊270A中的權(quán)重而生成圖17B中的自身I塊270B)。
此外,在通過圖17的例子而圖示的前述實(shí)施例中,自身塊的每一相鄰塊的所生成的窗口可包括第三像素權(quán)重和第四像素權(quán)重,其中第三像素權(quán)重大于如果自身塊是運(yùn)動塊所應(yīng)該具有的第三像素權(quán)重,并且其中第四像素權(quán)重等于如果自身塊是運(yùn)動塊所應(yīng)該具有的第四像素權(quán)重。例如,所述第三權(quán)重通過右、下、左、和上相鄰塊權(quán)重中的所選部分而被圖示,其在圖17B中的幅度大于圖17A中的幅度;并且所述第四權(quán)重通過右、下、左、和上相鄰塊權(quán)重中的剩余部分而被圖示,其在圖17B中的幅度等于圖17A中的幅度。
圖18A和18B(統(tǒng)稱為“圖18”)圖示了根據(jù)本發(fā)明實(shí)施例的8×8加權(quán)窗口,其中關(guān)聯(lián)的自身塊分別是運(yùn)動塊和I塊。圖18A示出了用于自身塊的加權(quán)窗口270C和分別用于右最近相鄰塊、下最近相鄰塊、左最近相鄰塊、和上最近相鄰塊的其關(guān)聯(lián)最近相鄰塊加權(quán)窗口271C、272C、273C、和274C。圖18D示出了用于自身塊的加權(quán)窗口270D和分別用于右最近相鄰塊、下最近相鄰塊、左最近相鄰塊、和上最近相鄰塊的其關(guān)聯(lián)最近相鄰塊加權(quán)窗口271D、272D、273D、和274D。生成圖18的加權(quán)窗口的方法與前述用來生成圖17的加權(quán)窗口的方法相同。
收縮方案如前結(jié)合圖11-12所述,自身塊及其關(guān)聯(lián)最近相鄰塊可全部具有相同尺寸,或者自身塊的尺寸可以與其關(guān)聯(lián)最近相鄰塊的至少一個的尺寸不同。本質(zhì)上,對于與給定自身塊關(guān)聯(lián)的最近相鄰塊,存在三種實(shí)施例
(a)空間最近相鄰塊的尺寸與自身塊的尺寸相同(例如圖14的自身塊241及其相鄰塊242),其是前面結(jié)合圖17-18分析的“標(biāo)準(zhǔn)相同塊尺寸”情況。由此,該實(shí)施例的加權(quán)窗口如前結(jié)合圖17-18所述而生成。
(b)空間最近相鄰塊的尺寸大于自身塊的尺寸(例如圖11的自身塊241及其相鄰塊243和244),其通過利用與自身塊具有相同尺寸的較大最近相鄰塊中的一部分來處理,其中所述部分與標(biāo)準(zhǔn)相同塊尺寸情況(a)中的最近相鄰塊占據(jù)當(dāng)前幀中相同的空間。為了圖示的目的,圖19描繪了根據(jù)本發(fā)明實(shí)施例的圖11的幀240,其中示出了最近相鄰塊243和244的部分243A和243B。部分243A和244A和自身塊241具有相同的尺寸,并占據(jù)適于標(biāo)準(zhǔn)相同塊尺寸情況的幀240內(nèi)的空間。對于此實(shí)施例,分別利用最近相鄰塊243和244的部分243A和244A作為相對于自身塊241的有效最近相鄰塊。由此,相鄰塊243的部分243A是相鄰塊243的唯一一部分,該部分的加權(quán)窗口在對自身塊241執(zhí)行OBMC期間影響自身塊241中的像素值的預(yù)測。類似地,相鄰塊244的部分244A是相鄰塊244的唯一一部分,該部分的加權(quán)窗口在對自身塊241執(zhí)行OBMC期間影響自身塊241中的像素值的預(yù)測。實(shí)際上,本發(fā)明將塊243和244“收縮”為相應(yīng)部分243A和244A。自身塊241和相鄰塊243(或244)各自是運(yùn)動塊,其中相鄰塊243(或244)的部分243A(或244A)的所產(chǎn)生的加權(quán)窗口可包括雙線性內(nèi)插的權(quán)重。如上結(jié)合圖17-18所述對于標(biāo)準(zhǔn)相同塊尺寸情況而生成用于該實(shí)施例的加權(quán)窗口。然而,與較大最近相鄰塊關(guān)聯(lián)的運(yùn)動矢量用于提供加權(quán)的相鄰估計(jì)。例如,參考圖12,運(yùn)動矢量253將用于結(jié)合利用用于處理自身塊241的較大相鄰塊243的部分243A(見圖19),來定位參考幀260中的塊263。
(c)空間最近相鄰塊的尺寸小于自身塊的尺寸(例如圖11的自身塊241及其相鄰塊245和246),其使得必須選擇自身塊的一部分具有與較小最近相鄰塊相同的尺寸,并位于較小最近相鄰塊附近。為了圖示的目的,圖20描繪了根據(jù)本發(fā)明實(shí)施例的圖11的幀240,其中示出了自身塊241的部分1A和1B。部分1A和1B分別與最近相鄰塊245和246具有相同的尺寸(并位于其附近)。對于此實(shí)施例,分別利用自身塊241的部分1A和1B作為相對于最近相鄰塊245和246的有效自身塊部分。自身塊241的部分1A是自身塊241的唯一一部分,在該部分,在對自身塊241的部分1A執(zhí)行OBMC期間,相鄰塊245的加權(quán)窗口影響像素值的預(yù)測。類似地,自身塊241的部分1B是自身塊241的唯一一部分,在該部分,在對自身塊241的部分1A執(zhí)行OBMC期間,相鄰塊246的加權(quán)窗口影響像素值的預(yù)測。實(shí)際上,本發(fā)明“收縮”自身塊241,從而僅利用部分1A和1B。對于空間最近相鄰塊尺寸小于自身塊的尺寸的實(shí)施例,如下結(jié)合圖21-22的收縮方案示例所述而生成加權(quán)窗口,其中自身塊的每一所利用的部分包括受影響區(qū)域和未受影響區(qū)域,從而受影響區(qū)域受到較小最近相鄰塊的影響,而未受影響區(qū)域不受到較小最近相鄰塊的影響。對于某些應(yīng)用,受影響區(qū)域可在水平方向上和垂直方向上都包括較小最近相鄰塊尺寸的一半。自身塊的所利用部分的受影響區(qū)域的加權(quán)窗口和較小最近相鄰塊的加權(quán)窗口的對應(yīng)部分的權(quán)重相同,如同從標(biāo)準(zhǔn)相同塊尺寸情況導(dǎo)出一樣。與自身塊的所利用部分的未受影響區(qū)域?qū)?yīng)的較小最近相鄰塊的加權(quán)窗口的一部分中的權(quán)重被“去除”并然后被設(shè)置為等于0。自身塊的所利用部分的未受影響區(qū)域中的權(quán)重被增加了(相對于標(biāo)準(zhǔn)相同塊尺寸情況)所述從較小最近相鄰塊的加權(quán)窗口的對應(yīng)部分中去除的權(quán)重,這將在下面結(jié)合圖22的例子進(jìn)行圖示。
由于自身塊可具有與其較小最近相鄰塊不同的運(yùn)動矢量,所以該收縮方案在運(yùn)動不連續(xù)處降低了平滑性,因?yàn)樵撌湛s方案降低了可與較小最近相鄰塊尺寸兼容的平滑范圍。
對于每一自身塊,對于每一這樣的最近相鄰塊而重復(fù)分析其最近相鄰塊的相對塊尺寸的步驟。根據(jù)預(yù)定掃描順序而依次處理這些自身塊。
圖21A-21C(統(tǒng)稱為圖21)描繪了根據(jù)本發(fā)明實(shí)施例的結(jié)合收縮方案而由OBMC使用的用于自身塊和關(guān)聯(lián)較小最近相鄰塊的加權(quán)窗口,其中該最近相鄰塊是運(yùn)動塊。在圖21A中,自身塊280是8×8塊,而其右相鄰塊281是4×4塊。
圖21B提供了分別與圖21A的自身塊280和右相鄰塊281相關(guān)聯(lián)的自身塊加權(quán)窗口280A及其右相鄰塊加權(quán)窗口281A。在圖21B中,自身塊加權(quán)窗口280A包括與右相鄰塊加權(quán)窗口281A結(jié)合在OBMC過程中利用的利用部分282A。利用部分282A是自身塊加權(quán)窗口280A的“收縮”形式,并和右相鄰塊加權(quán)窗口281A具有相同的尺寸。
在圖21B中,所示的數(shù)值權(quán)重不是最終權(quán)重,而是用于計(jì)算最終權(quán)重的標(biāo)準(zhǔn)初始權(quán)重。最終權(quán)重在圖21C中示出。具體來說,圖21B中的初始權(quán)重是與標(biāo)準(zhǔn)相同塊尺寸情況相關(guān)的權(quán)重。由此,圖21B的自身塊加權(quán)窗口280A中的權(quán)重是出現(xiàn)在圖18A的加權(quán)窗口270C中的相同雙線性權(quán)重,而圖21B的右相鄰塊加權(quán)窗口281A中的權(quán)重是出現(xiàn)在圖18A的加權(quán)窗口271C的右上四分之一圓中的相同雙線性權(quán)重。
在圖21B中,利用部分282A包括受影響區(qū)域283A和未受影響區(qū)域284A。與受影響區(qū)域283A相關(guān)的自身塊的像素在OBMC過程中受到右相鄰塊加權(quán)窗口281A的影響區(qū)域285A的影響。與未受影響區(qū)域284A相關(guān)的自身塊的像素在OBMC過程中不受到右相鄰塊加權(quán)窗口281A的未影響區(qū)域286A的影響。
圖21C的權(quán)重如下所示由圖21B中的權(quán)重導(dǎo)出。圖21C的影響區(qū)域285A和受影響區(qū)域283A中的權(quán)重與圖21B所示相同。圖21B的未影響區(qū)域286A中的權(quán)重被添加到圖21B的未受影響區(qū)域284A中的對應(yīng)權(quán)重上,以形成圖21C的未受影響區(qū)域284A中的權(quán)重,并且圖21C的未影響區(qū)域286A中的權(quán)重被設(shè)置為0。
圖21中圖示的前述收縮方案避免了在運(yùn)動不連續(xù)處的過度平滑。由于大塊可具有與其小最近相鄰塊不同的運(yùn)動矢量,所以該收縮方案可降低在運(yùn)動不連續(xù)處的過度平滑。該收縮方案可應(yīng)用到矩形以及上述正方形塊尺寸,并由此矩形塊尺寸在本發(fā)明的范圍內(nèi)。然而,應(yīng)注意,簡單四叉樹分解僅可用于生成正方形塊陣列。矩形塊陣列可通過水平和/或垂直分裂算法而實(shí)現(xiàn)(例如將8×8塊分裂為兩個8×4塊或兩個4×8塊)。
對于前述圖21所圖示的收縮方案,最近相鄰塊是特征在于運(yùn)動矢量的運(yùn)動塊。相反,作為I塊的最近相鄰塊不具有關(guān)聯(lián)運(yùn)動矢量。然而,如果最近相鄰I塊不參與OBMC平滑預(yù)測,則所述最近相鄰I塊可利用最近相鄰運(yùn)動塊(即缺省塊、P塊、或反轉(zhuǎn)塊)而創(chuàng)建一些塊偽影。因此,本發(fā)明的反射方案在如上所述OBMC框架中合并了最近相鄰I塊。
反射方案如果最近相鄰塊是I塊,則使用反射方案。反射方案將最近相鄰I塊權(quán)重向回反射到自身塊上。這實(shí)際上意味著使用自身塊的運(yùn)動矢量代替I塊的丟失的運(yùn)動矢量。
圖22A-22C(統(tǒng)稱為圖22)描繪了根據(jù)本發(fā)明實(shí)施例的結(jié)合收縮方案由OBMC使用的自身塊和關(guān)聯(lián)較小最近相鄰塊的加權(quán)窗口,其中該最近相鄰塊是I塊。在圖22A中,自身塊290是8×8塊,而其右相鄰塊291是4×4塊。
圖22B提供了分別與圖22A的自身塊290和右相鄰塊291關(guān)聯(lián)的自身塊加權(quán)窗口290A及其右相鄰塊加權(quán)窗口291A。在圖22B中,自身塊加權(quán)窗口290A包括在OBMC過程中結(jié)合右相鄰塊加權(quán)窗口291A利用的利用部分292A。利用部分292A與右相鄰塊加權(quán)窗口291A具有相同的尺寸。
在圖22B中,所示的數(shù)值權(quán)重不是最終權(quán)重,而是用于計(jì)算最終權(quán)重的標(biāo)準(zhǔn)初始權(quán)重。最終權(quán)重在圖22C中示出。具體來說,圖22B中的初始權(quán)重是與標(biāo)準(zhǔn)相同塊尺寸情況相關(guān)的權(quán)重。由此,圖22B的自身塊加權(quán)窗口290A中的權(quán)重是出現(xiàn)在圖18A的加權(quán)窗口270C中的相同雙線性權(quán)重,而圖22B的右相鄰塊加權(quán)窗口291A中的權(quán)重是出現(xiàn)在圖18A的加權(quán)窗口271C的右上四分之一圓中的相同雙線性權(quán)重。
圖22C的權(quán)重如下從圖22B的權(quán)重中導(dǎo)出。圖22B的右相鄰塊加權(quán)窗口291A中的權(quán)重被添加到圖22B的利用部分292A上,以形成圖22C的利用部分292A中的權(quán)重,并且圖21C的右相鄰塊加權(quán)窗口291A中的權(quán)重被設(shè)置為0。
本發(fā)明的發(fā)明人所得出的經(jīng)驗(yàn)顯示如果最近相鄰I塊沒有被包括在OBMC框架中,則可能存在I塊和運(yùn)動補(bǔ)償塊之間的可見塊邊界,這可以通過以下事實(shí)來解釋,運(yùn)動補(bǔ)償塊被幀內(nèi)補(bǔ)償,而I塊被幀間內(nèi)插/預(yù)測。在最近相鄰I塊如前所述被合并到OBMC框架中之后,大部分塊邊界被消除,并且觀察到較小的峰值信號-噪聲比(PSNR)增益。
OBMC加權(quán)窗口算法基于關(guān)于OBMC的加權(quán)窗口的前述討論,圖23是描繪根據(jù)本發(fā)明實(shí)施例的用于計(jì)算可變塊尺寸OBMC的加權(quán)窗口的算法的步驟311-319的流程圖。圖23的流程圖包括上述圖11B的流程圖的步驟221-222的細(xì)節(jié)。圖23的流程圖根據(jù)預(yù)定掃描順序依次處理當(dāng)前幀中的全部自身塊。
步驟311跳到到下一自身塊,以處理要根據(jù)預(yù)定掃描順序掃描的初始第一塊。下一自身塊相對于其相鄰塊而被處理,該相鄰塊包括該下一自身塊的最近相鄰塊。自身塊的相鄰塊(即下一自身塊)包括第一相鄰塊。自身塊和第一相鄰塊可以各自是運(yùn)動塊。自身塊和第一相鄰塊可以各自是I塊。自身塊可以是運(yùn)動塊,第一相鄰塊可以是I塊。自身塊可以是I塊,第一相鄰塊可以是運(yùn)動塊。
對于步驟311中建立的自身塊,步驟312跳到下一相鄰塊,所述下一相鄰塊初始是步驟311中所建立的自身塊周圍的最近相鄰塊序列中的第一相鄰塊。
步驟313確定相鄰塊是運(yùn)動塊還是I塊。
如果步驟313確定相鄰塊是運(yùn)動塊,則步驟314執(zhí)行收縮方案,然后執(zhí)行步驟316。收縮方案基于相鄰塊的尺寸等于、還是大于、還是小于上述自身塊的尺寸,而生成用于自身塊和相鄰塊的加權(quán)窗口。
如果步驟313確定相鄰塊是I塊,則步驟315執(zhí)行反射方案,然后執(zhí)行步驟316。反射方案根據(jù)上述結(jié)合圖22的過程,而生成用于自身塊和相鄰塊的加權(quán)窗口。
步驟316確定是否存在要處理的自身塊的多個相鄰塊。
如果步驟316確定存在要處理的自身塊的多個相鄰塊,則算法返回到步驟312,以跳到要處理的下一相鄰塊。
如果步驟316確定不存在要處理的自身塊的多個相鄰塊,則執(zhí)行步驟317。
步驟317確定自身塊是否是I塊。如果步驟317確定自身塊不是I塊,則執(zhí)行步驟319。如果步驟317確定自身塊是I塊,則步驟318執(zhí)行上述結(jié)合圖17B的輻射方案,以修改自身塊及其相鄰塊的加權(quán)窗口,隨后執(zhí)行步驟319。
步驟319確定是否在幀中存在要處理的多個自身塊。如果步驟319確定在幀中存在要處理的多個自身塊,則算法返回到步驟311,以跳到要處理的下一自身塊。如果步驟319確定在幀中不存在要處理的多個自身塊,則算法結(jié)束。
OBMC的迭代OBMC允許最近相鄰塊運(yùn)動矢量影響自身塊中的預(yù)測誤差,并作出這樣的去耦估計(jì)次優(yōu)性(suboptimal)。此外,OBMC指定無因果關(guān)系的最近鄰域(neighborhood),使得不存在塊掃描順序,從而對于每一塊來說,可在其之前掃描其所有最近相鄰塊。由此,本發(fā)明使用用于優(yōu)化運(yùn)動估計(jì)和空間內(nèi)插/預(yù)測模式選擇的迭代估計(jì)或搜索過程,這確保絕對平均失真(MAD)收斂到局部極小。
對于自身塊b中的每一像素位置s(其是二維空間矢量),像素位置s的殘余誤差r(s)被計(jì)算為r(s)=I(s)-Σvsk(i)≠vbkhlor2(i)I~(s-vsk(i))---(2)]]>其中指數(shù)i完成自身塊b的最近相鄰塊的求和,并且k是迭代指數(shù)。在等式(2)中,hlor2(i)是相鄰塊i的加權(quán)窗口系數(shù)(即權(quán)重),其中h1(i)用作當(dāng)自身塊b是運(yùn)動塊時的加權(quán)窗口,并且其中h2(i)用作當(dāng)自身塊b是I塊時的加權(quán)窗口。在等式(2)中,vs(i)是在像素位置s處的相鄰塊i的運(yùn)動矢量,并且I(s)是在像素位置s處的真像素值,并且 表示相鄰塊像素的參考幀中的內(nèi)插值(因?yàn)樽酉袼鼐榷枰?。殘余誤差圖像r(s)是當(dāng)省略矢量vbk并固定所有最近相鄰塊的運(yùn)動矢量時導(dǎo)致的運(yùn)動補(bǔ)償誤差,該矢量vbk就是來自自身塊b的運(yùn)動矢量或該塊的空間內(nèi)插/預(yù)測。然后,本發(fā)明還根據(jù)以下等式而進(jìn)一步優(yōu)化用于運(yùn)動塊的 或進(jìn)一步優(yōu)化I塊所允許的空間內(nèi)插模式中的空間內(nèi)插模式 v^b=argminvΣs(j)∈wb|r(s(j))-h1(j)I^k-1(s(j)-vb)|---(3)]]>m^b=argminmΣs(j)∈wb|r(s(j))-h2(j)I‾k(s(j))|---(4)]]>其中 是條件最佳運(yùn)動矢量,而 是用于塊b的條件最佳空間內(nèi)插/預(yù)測模式, 是利用來自塊b的運(yùn)動矢量的運(yùn)動補(bǔ)償值,而 是來自自身塊b的最近相鄰塊的空間內(nèi)插/預(yù)測值。
OBMC迭代受到設(shè)計(jì)參數(shù)α和β的控制即預(yù)定總或最大迭代次數(shù)α和每次迭代時用于運(yùn)動矢量的調(diào)整距離β。例如可選擇α=4。例如,可選擇運(yùn)動矢量攝動(perturbation)參數(shù)β=2(對應(yīng)于沿正交X和Y方向(例如分別為水平和垂直方向)的與一小部分像素單元成比例的運(yùn)動矢量攝動-4/8、-2/8、0、+2/8、+4/8)。由于X和Y攝動是獨(dú)立的,所以β=2代表在每次迭代中用于總共25個不同方向的運(yùn)動矢量的沿每一X和Y方向的前面5個攝動。等式(3)和(4)確定25個運(yùn)動矢量攝動中的哪一個是每一自身塊的運(yùn)動矢量的最佳選擇。當(dāng)每一自身塊的最佳運(yùn)動矢量按照給定迭代次數(shù)被這樣確定時,所述最佳運(yùn)動矢量在下一迭代中根據(jù)β而被攝動,以確定每一自身塊的運(yùn)動矢量的進(jìn)一步改進(jìn)的值。收斂速度很快,但其可根據(jù)視頻片斷而被切斷,以降低計(jì)算復(fù)雜度,導(dǎo)致適當(dāng)?shù)拇蝺?yōu)性。
由于對于亮度和色度數(shù)據(jù)兩者運(yùn)行雙向彩色HVSBM,所以可自然地得出以下結(jié)論OBMC迭代可同時應(yīng)用到Y(jié)UV。U和V是在RGB數(shù)據(jù)中的一些變換之后的次采樣的幀數(shù)據(jù)。由此,用于U和V的加權(quán)窗口也是用于Y的加權(quán)窗口的次采樣版本。
基于前面的討論,本發(fā)明的用于OBMC的迭代估計(jì)方案(“OBMC迭代”)連續(xù)計(jì)算當(dāng)前幀的每一自身塊的運(yùn)動矢量的改進(jìn)集合達(dá)到固定迭代次數(shù)(α)或者直到達(dá)到收斂標(biāo)準(zhǔn)為止。
圖24是描繪了根據(jù)本發(fā)明實(shí)施例的、利用根據(jù)圖13A、13B、和23的流程圖描述的方法論計(jì)算的加權(quán)窗口、而連續(xù)計(jì)算根據(jù)可變塊尺寸OBMC處理的當(dāng)前幀的自身塊的改進(jìn)的運(yùn)動矢量的算法的步驟321-326的流程圖。所計(jì)算的加權(quán)窗口構(gòu)成到OBMC迭代的輸入,并在OBMC迭代期間不發(fā)生變化。
步驟321提供輸入,即α、β、和加權(quán)窗口。
步驟322跳到下一迭代,以執(zhí)行初始的第一迭代。
對于在步驟322建立的迭代,步驟323跳到下一自身塊,以處理要根據(jù)預(yù)定掃描順序掃描的初始的第一塊。
步驟324結(jié)合等式(2)利用等式(3)或(4)而確定從基于β攝動的運(yùn)動矢量中選擇的自身塊的最佳運(yùn)動矢量。
步驟325確定在幀中是否存在要處理的多個自身塊。如果步驟325確定在幀中存在要處理的多個自身塊,則算法返回到步驟323,以跳到下一要處理的自身塊。如果步驟325確定在幀中不存在要處理的多個自身塊,則接下來執(zhí)行步驟326。
步驟326確定是否存在要執(zhí)行的多次迭代。
如果步驟326確定存在要執(zhí)行的多次迭代,則算法返回到步驟322,以跳到下一迭代。
如果步驟326確定不存在要執(zhí)行的多次迭代,則算法結(jié)束??赡懿辉俅嬖谝獔?zhí)行的多次迭代,因?yàn)閳?zhí)行的迭代次數(shù)等于α。也可能不再存在要執(zhí)行的多次迭代,因?yàn)橐褲M足了用于更新的運(yùn)動矢量的預(yù)定收斂標(biāo)準(zhǔn)。例如,收斂標(biāo)準(zhǔn)可以尤其是從緊靠之前的迭代到當(dāng)前迭代的運(yùn)動矢量的均方分?jǐn)?shù)改變(單獨(dú)在每一自身塊處,或者在所有自身塊上求和)小于預(yù)定容差。在第一實(shí)施例中,在步驟326中僅使用α,以確定是否存在要執(zhí)行的多次迭代。
在第二實(shí)施例中,在步驟326中僅使用收斂標(biāo)準(zhǔn)來確定是否存在要執(zhí)行的多次迭代。在第三實(shí)施例中,在步驟326中使用α和收斂標(biāo)準(zhǔn)兩者來確定是否存在要執(zhí)行的多次迭代。
基于提升的MCTF的變形本發(fā)明在缺省塊的提升實(shí)現(xiàn)中使用OBMC,即象正常一樣利用預(yù)測和更新步驟,以降低好運(yùn)動區(qū)域中的噪聲。在提升實(shí)現(xiàn)中用于OBMC的特定等式如下所示H[m,n]=12A[m,n]-12Σkhk[m,n]B~[mf-dmk,n-b0hk]---(5)]]>L[m-d‾m,n-d‾n]=H~[m-d‾m+dm,n-d‾n+dn]+2B[m-d‾m,n-d‾n]---(6)]]>OBMC將運(yùn)動矢量場(dm,dn)視作隨機(jī)處理。這意味著幀B中的像素B[m,n]具有運(yùn)動矢量(dmk,dnk)以及來自前述其對應(yīng)概率窗口的概率hk[m,n],并且由預(yù)測子像素的加權(quán)平均值進(jìn)行補(bǔ)償。在等式(5)-(6)中,(dm,dn)是(dm,dn)的最近整數(shù)。盡管低時間幀的形式似乎與沒有OBMC的形式相同,但是實(shí)際上,OBMC不僅影響高時間幀,而且影響低時間幀。來自O(shè)BMC的低時間幀實(shí)際仍然是優(yōu)選的,并更適于MCTF的更多級。
計(jì)算機(jī)系統(tǒng)圖25圖示了根據(jù)本發(fā)明實(shí)施例的用于處理與MCTF一起使用的I塊和/或用于在運(yùn)動MCTF可伸縮視頻編碼器的環(huán)境下執(zhí)行用于可變尺寸塊的重疊塊運(yùn)動補(bǔ)償(OBMC)的計(jì)算機(jī)系統(tǒng)90。計(jì)算機(jī)系統(tǒng)90包括處理器91、與該處理器91耦接的輸入裝置92、與該處理器91耦接的輸出裝置93、以及各自與該處理器91耦接的存儲裝置94和95。該輸入裝置92可以尤其是鍵盤、鼠標(biāo)等。輸出裝置93可以尤其是打印機(jī)、繪圖儀、計(jì)算機(jī)屏幕、磁帶、內(nèi)部硬盤或盤陣列、可去除硬盤、軟盤、信息網(wǎng)絡(luò)等。存儲裝置94和95可以尤其是硬盤、軟盤、磁帶、例如致密盤(CD)或數(shù)字視頻盤(DVD)的光儲存裝置、動態(tài)隨機(jī)存取存儲器(DRAM)、只讀存儲器(ROM)等。存儲裝置95包括計(jì)算機(jī)代碼97。計(jì)算機(jī)代碼97包括用于處理與MCTF一起使用的I塊和/或用于在運(yùn)動MCTF可伸縮視頻編碼器的環(huán)境下執(zhí)行用于可變尺寸塊的重疊塊運(yùn)動補(bǔ)償(OBMC)的一種或多種算法。處理器91執(zhí)行計(jì)算機(jī)代碼97。存儲裝置94包括輸入數(shù)據(jù)96。輸入數(shù)據(jù)96包括計(jì)算機(jī)代碼97所需要的輸入。輸出裝置93顯示來自計(jì)算機(jī)代碼97的輸出。存儲裝置94和95中的任一個或兩者(或圖25中沒有示出的一個或多個附加存儲裝置)可用作其中嵌入有計(jì)算機(jī)可讀程序代碼和/或其中存儲有其它數(shù)據(jù)的計(jì)算機(jī)可用介質(zhì)(或計(jì)算機(jī)可讀介質(zhì)或程序存儲裝置),其中該計(jì)算機(jī)可讀程序代碼包括計(jì)算機(jī)代碼97。一般來說,計(jì)算機(jī)系統(tǒng)90的計(jì)算機(jī)程序產(chǎn)品(或可替換地,制造物品)可包括所述計(jì)算機(jī)可用介質(zhì)(或所述程序存儲裝置)。
盡管圖25將計(jì)算機(jī)系統(tǒng)90示出為硬件和軟件的具體配置,但是如本領(lǐng)域技術(shù)人員公知的那樣,為了結(jié)合圖25的具體計(jì)算機(jī)系統(tǒng)90的上述目的,可利用硬件和軟件的任意配置。例如,存儲裝置94和95可以是單一存儲裝置中的各部分,而不是分離的存儲裝置。
盡管為了圖示的目的而已在這里描述了本發(fā)明的實(shí)施例,但是許多變形和改變對于本領(lǐng)域技術(shù)人員來說將變得顯而易見。因此,所附權(quán)利要求意欲包括所有這些變形和改變,只要它們落入本發(fā)明的真實(shí)精神和范圍即可。
權(quán)利要求
1.一種用于處理視頻幀的方法,所述方法包括步驟提供被劃分為多個塊的當(dāng)前幀,所述多個塊包括至少兩個不同尺寸的塊;和對每一塊執(zhí)行重疊塊運(yùn)動補(bǔ)償(OBMC),對其執(zhí)行所述OBMC的所述塊被表示為自身塊,所述執(zhí)行OBMC的步驟包括相對于該自身塊的相鄰塊而對該自身塊執(zhí)行OBMC,所述相鄰塊由該自身塊的最近相鄰塊組成,所述相鄰塊包括第一相鄰塊,所述對自身塊執(zhí)行OBMC的步驟包括生成用于該自身塊及其相鄰塊中的每一個的加權(quán)窗口。
2.根據(jù)權(quán)利要求1的方法,其中該自身塊和該第一相鄰塊中的每一個都是運(yùn)動塊。
3.根據(jù)權(quán)利要求1的方法,其中該自身塊和該第一相鄰塊中的每一個都是I塊。
4.根據(jù)權(quán)利要求1的方法,其中該自身塊是運(yùn)動塊,并且其中該第一相鄰塊是I塊。
5.根據(jù)權(quán)利要求1的方法,其中該自身塊是I塊,并且其中該第一相鄰塊是運(yùn)動塊。
6.根據(jù)權(quán)利要求1的方法,其中該自身塊是I塊,并且其中所生成的該自身塊的窗口由第一像素權(quán)重和第二像素權(quán)重組成,其中該第一像素權(quán)重小于如果該自身塊為運(yùn)動塊時該第一像素權(quán)重應(yīng)該具有的值,并且其中該第二像素權(quán)重等于如果該自身塊為運(yùn)動塊時該第二像素權(quán)重應(yīng)該具有的值。
7.根據(jù)權(quán)利要求6的方法,其中所述生成自身塊的加權(quán)窗口的步驟包括生成該自身塊的第一加權(quán)窗口,如同該自身塊是運(yùn)動塊一樣;和通過減少該第一加權(quán)窗口中的權(quán)重,而從該第一加權(quán)窗口中生成用于該自身塊的加權(quán)窗口。
8.根據(jù)權(quán)利要求6的方法,其中所生成的該自身塊的每一相鄰塊的窗口由第三像素權(quán)重和第四像素權(quán)重組成,其中該第三像素權(quán)重大于如果該自身塊為運(yùn)動塊時該第三像素權(quán)重應(yīng)該具有的值,并且其中該第四像素權(quán)重等于如果該自身塊為運(yùn)動塊時該第四像素權(quán)重應(yīng)該具有的值。
9.根據(jù)權(quán)利要求1的方法,其中該第一相鄰塊的塊尺寸與該自身塊的塊尺寸不同。
10.根據(jù)權(quán)利要求9的方法,其中該第一相鄰塊的塊尺寸超出該自身塊的塊尺寸,其中所述對自身塊執(zhí)行OBMC的步驟還包括將該第一相鄰塊的塊尺寸收縮為該第一相鄰塊的第一部分,其中該第一相鄰塊的第一部分具有與該自身塊的塊尺寸相等的尺寸,并且其中該第一相鄰塊的第一部分僅是該第一相鄰塊中的這樣一部分,在所述對自身塊執(zhí)行OBMC期間,該部分的加權(quán)窗口影響自身塊中像素值的預(yù)測。
11.根據(jù)權(quán)利要求10的方法,其中該自身塊和該第一相鄰塊中的每一個都是運(yùn)動塊,并且其中所生成的該第一相鄰塊的第一部分的加權(quán)窗口包括雙線性內(nèi)插的權(quán)重。
12.根據(jù)權(quán)利要求9的方法,其中該第一相鄰塊的塊尺寸小于該自身塊的塊尺寸,其中所述對自身塊執(zhí)行OBMC的步驟還包括將該自身塊的塊尺寸收縮為該自身塊的第一部分,其中該自身塊的第一部分具有與該第一相鄰塊的塊尺寸相等的尺寸,并且其中該自身塊的第一部分僅是該自身塊中的這樣一部分,在所述對自身塊執(zhí)行OBMC期間,該第一相鄰塊的加權(quán)窗口影響該部分中像素值的預(yù)測。
13.根據(jù)權(quán)利要求12的方法,其中該自身塊是運(yùn)動塊。
14.根據(jù)權(quán)利要求13的方法,其中該第一相鄰塊是運(yùn)動塊,其中該自身塊的第一部分包括受影響區(qū)域和未受影響區(qū)域,其中在受影響區(qū)域處的所生成的自身塊的第一部分的加權(quán)窗口包括雙線性內(nèi)插權(quán)重,并且其中在未受影響區(qū)域處的所生成的自身塊的第一部分的加權(quán)窗口包括超出雙線性內(nèi)插權(quán)重的權(quán)重。
15.根據(jù)權(quán)利要求14的方法,其中第一相鄰塊包括影響區(qū)域和未影響區(qū)域,其中第一相鄰塊的影響區(qū)域與自身塊的受影響區(qū)域相關(guān)聯(lián),其中第一相鄰塊的未影響區(qū)域與自身塊的未受影響區(qū)域相關(guān)聯(lián),其中在影響區(qū)域處的所生成的第一相鄰塊的加權(quán)窗口包括雙線性內(nèi)插權(quán)重,并且其中在未影響區(qū)域處的所生成的第一相鄰塊的加權(quán)窗口包括0權(quán)重。
16.根據(jù)權(quán)利要求13的方法,其中該第一相鄰塊是I塊,其中所生成的自身塊的第一部分的加權(quán)窗口包括超出雙線性內(nèi)插權(quán)重的權(quán)重,并且其中所生成的第一相鄰塊的加權(quán)窗口包括0權(quán)重。
17.根據(jù)權(quán)利要求1的方法,所述方法還包括對于已被分類為運(yùn)動塊的當(dāng)前幀中的每一塊提供至少一個運(yùn)動矢量,該運(yùn)動矢量使得該運(yùn)動塊與時間上早于和/或晚于該當(dāng)前幀的至少一個其它幀中的對應(yīng)塊相關(guān),其中所述運(yùn)動矢量共同組成運(yùn)動矢量的初始集合;和在生成所有加權(quán)窗口之后在迭代過程中攝動運(yùn)動矢量的初始集合,以在所述迭代過程的每次迭代中計(jì)算運(yùn)動矢量的改進(jìn)集合,在每次迭代的結(jié)尾處的當(dāng)前幀中的每一運(yùn)動塊的殘余誤差小于在每次迭代的開始處的當(dāng)前幀中的每一運(yùn)動塊的殘余誤差,并且其中通過使用所生成的加權(quán)窗口而計(jì)算該殘余誤差。
18.根據(jù)權(quán)利要求17的方法,其中所述攝動步驟包括根據(jù)與像素單元的一小部分成比例的參數(shù)β而在每次迭代的開始處攝動運(yùn)動矢量的初始或改進(jìn)集合中的每一運(yùn)動矢量,并且其中所述攝動步驟包括根據(jù)β而獨(dú)立地?cái)z動每一運(yùn)動矢量的水平和垂直分量。
19.根據(jù)權(quán)利要求17的方法,其中當(dāng)已執(zhí)行預(yù)定最大數(shù)目(α)的迭代時或當(dāng)已滿足預(yù)定收斂標(biāo)準(zhǔn)時,該迭代過程終止。
20.根據(jù)權(quán)利要求1的方法,所述方法還包括對于已被分類為運(yùn)動塊的當(dāng)前幀中的每一塊提供至少一個運(yùn)動矢量,該運(yùn)動矢量使得該運(yùn)動塊與時間上早于和/或晚于該當(dāng)前幀的至少一個其它幀中的對應(yīng)塊相關(guān);和對該當(dāng)前幀和參考幀中的像素執(zhí)行運(yùn)動補(bǔ)償時間濾波(MCTF),以生成時間低幀和時間高幀,其中該參考幀是所述至少一個其它幀中的幀。
21.一種計(jì)算機(jī)程序產(chǎn)品,包括其中嵌入有計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可用介質(zhì),所述計(jì)算機(jī)可讀程序代碼包括適配為實(shí)現(xiàn)處理視頻幀的方法的算法,所述方法包括步驟提供被劃分為多個塊的當(dāng)前幀,所述多個塊包括至少兩個不同尺寸的塊;和對每一塊執(zhí)行重疊塊運(yùn)動補(bǔ)償(OBMC),對其執(zhí)行所述OBMC的所述塊被表示為自身塊,所述執(zhí)行OBMC的步驟包括相對于該自身塊的相鄰塊而對該自身塊執(zhí)行OBMC,所述相鄰塊由該自身塊的最近相鄰塊組成,所述相鄰塊包括第一相鄰塊,所述對自身塊執(zhí)行OBMC的步驟包括生成用于該自身塊及其相鄰塊中的每一個的加權(quán)窗口。
22.根據(jù)權(quán)利要求21的計(jì)算機(jī)程序產(chǎn)品,其中該自身塊和該第一相鄰塊中的每一個都是運(yùn)動塊。
23.根據(jù)權(quán)利要求21的計(jì)算機(jī)程序產(chǎn)品,其中該自身塊和該第一相鄰塊中的每一個都是I塊。
24.根據(jù)權(quán)利要求21的計(jì)算機(jī)程序產(chǎn)品,其中該自身塊是運(yùn)動塊,并且其中該第一相鄰塊是I塊。
25.根據(jù)權(quán)利要求21的計(jì)算機(jī)程序產(chǎn)品,其中該自身塊是I塊,并且其中該第一相鄰塊是運(yùn)動塊。
26.根據(jù)權(quán)利要求21的計(jì)算機(jī)程序產(chǎn)品,其中該自身塊是I塊,并且其中所生成的該自身塊的窗口由第一像素權(quán)重和第二像素權(quán)重組成,其中該第一像素權(quán)重小于如果該自身塊為運(yùn)動塊時該第一像素權(quán)重應(yīng)該具有的值,并且其中該第二像素權(quán)重等于如果該自身塊為運(yùn)動塊時該第二像素權(quán)重應(yīng)該具有的值。
27.根據(jù)權(quán)利要求26的計(jì)算機(jī)程序產(chǎn)品,其中所述生成自身塊的加權(quán)窗口的步驟包括生成該自身塊的第一加權(quán)窗口,如同該自身塊是運(yùn)動塊一樣;和通過減少該第一加權(quán)窗口中的權(quán)重,而從該第一加權(quán)窗口中生成用于自身塊的加權(quán)窗口。
28.根據(jù)權(quán)利要求26的計(jì)算機(jī)程序產(chǎn)品,其中所生成的該自身塊的每一相鄰塊的窗口由第三像素權(quán)重和第四像素權(quán)重組成,其中該第三像素權(quán)重大于如果該自身塊為運(yùn)動塊時該第三像素權(quán)重應(yīng)該具有的值,并且其中該第四像素權(quán)重等于如果該自身塊為運(yùn)動塊時該第四像素權(quán)重應(yīng)該具有的值。
29.根據(jù)權(quán)利要求21的計(jì)算機(jī)程序產(chǎn)品,其中該第一相鄰塊的塊尺寸與該自身塊的塊尺寸不同。
30.根據(jù)權(quán)利要求29的計(jì)算機(jī)程序產(chǎn)品,其中該第一相鄰塊的塊尺寸超出該自身塊的塊尺寸,其中所述對自身塊執(zhí)行OBMC的步驟還包括將該第一相鄰塊的塊尺寸收縮為該第一相鄰塊的第一部分,其中該第一相鄰塊的第一部分具有與該自身塊的塊尺寸相等的尺寸,并且其中該第一相鄰塊的第一部分僅是該第一相鄰塊中的這樣一部分,在所述對自身塊執(zhí)行OBMC期間,該部分的加權(quán)窗口影響自身塊中像素值的預(yù)測。
31.根據(jù)權(quán)利要求30的計(jì)算機(jī)程序產(chǎn)品,其中該自身塊和該第一相鄰塊中的每一個都是運(yùn)動塊,并且其中所生成的該第一相鄰塊的第一部分的加權(quán)窗口包括雙線性內(nèi)插的權(quán)重。
32.根據(jù)權(quán)利要求29的計(jì)算機(jī)程序產(chǎn)品,其中該第一相鄰塊的塊尺寸小于該自身塊的塊尺寸,其中所述對自身塊執(zhí)行OBMC的步驟還包括將該自身塊的塊尺寸收縮為該自身塊的第一部分,其中該自身塊的第一部分具有與該第一相鄰塊的塊尺寸相等的尺寸,并且其中該自身塊的第一部分僅是該自身塊中的這樣一部分,在所述對自身塊執(zhí)行OBMC期間,該第一相鄰塊的加權(quán)窗口影響該部分中像素值的預(yù)測。
33.根據(jù)權(quán)利要求32的計(jì)算機(jī)程序產(chǎn)品,其中該自身塊是運(yùn)動塊。
34.根據(jù)權(quán)利要求33的計(jì)算機(jī)程序產(chǎn)品,其中該第一相鄰塊是運(yùn)動塊,其中該自身塊的第一部分包括受影響區(qū)域和未受影響區(qū)域,其中在受影響區(qū)域處的所生成的自身塊的第一部分的加權(quán)窗口包括雙線性內(nèi)插權(quán)重,并且其中在未受影響區(qū)域處的所生成的自身塊的第一部分的加權(quán)窗口包括超出雙線性內(nèi)插權(quán)重的權(quán)重。
35.根據(jù)權(quán)利要求34的計(jì)算機(jī)程序產(chǎn)品,其中第一相鄰塊包括影響區(qū)域和未影響區(qū)域,其中第一相鄰塊的影響區(qū)域與自身塊的受影響區(qū)域相關(guān)聯(lián),其中第一相鄰塊的未影響區(qū)域與自身塊的未受影響區(qū)域相關(guān)聯(lián),其中在影響區(qū)域處的所生成的第一相鄰塊的加權(quán)窗口包括雙線性內(nèi)插權(quán)重,并且其中在未影響區(qū)域處的所生成的第一相鄰塊的加權(quán)窗口包括0權(quán)重。
36.根據(jù)權(quán)利要求33的計(jì)算機(jī)程序產(chǎn)品,其中該第一相鄰塊是I塊,其中所生成的自身塊的第一部分的加權(quán)窗口包括超出雙線性內(nèi)插權(quán)重的權(quán)重,并且其中所生成的第一相鄰塊的加權(quán)窗口包括0權(quán)重。
37.根據(jù)權(quán)利要求21的計(jì)算機(jī)程序產(chǎn)品,所述方法還包括對于已被分類為運(yùn)動塊的當(dāng)前幀中的每一塊提供至少一個運(yùn)動矢量,該運(yùn)動矢量使得該運(yùn)動塊與時間上早于和/或晚于該當(dāng)前幀的至少一個其它幀中的對應(yīng)塊相關(guān),其中所述運(yùn)動矢量共同組成運(yùn)動矢量的初始集合;和在生成所有加權(quán)窗口之后在迭代過程中攝動運(yùn)動矢量的初始集合,以在所述迭代過程的每次迭代中計(jì)算運(yùn)動矢量的改進(jìn)集合,在每次迭代的結(jié)尾處的當(dāng)前幀中的每一運(yùn)動塊的殘余誤差小于在每次迭代的開始處的當(dāng)前幀中的每一運(yùn)動塊的殘余誤差,并且其中通過使用所生成的加權(quán)窗口而計(jì)算該殘余誤差。
38.根據(jù)權(quán)利要求37的計(jì)算機(jī)程序產(chǎn)品,其中所述攝動步驟包括根據(jù)與像素單元的一小部分成比例的參數(shù)β而在每次迭代的開始處攝動運(yùn)動矢量的初始或改進(jìn)集合中的每一運(yùn)動矢量,并且其中所述攝動步驟包括根據(jù)β而獨(dú)立地?cái)z動每一運(yùn)動矢量的水平和垂直分量。
39.根據(jù)權(quán)利要求37的計(jì)算機(jī)程序產(chǎn)品,其中當(dāng)已執(zhí)行預(yù)定最大數(shù)目(α)的迭代時或當(dāng)已滿足預(yù)定收斂標(biāo)準(zhǔn)時,該迭代過程終止。
40.根據(jù)權(quán)利要求21的計(jì)算機(jī)程序產(chǎn)品,所述方法還包括對于已被分類為運(yùn)動塊的當(dāng)前幀中的每一塊提供至少一個運(yùn)動矢量,該運(yùn)動矢量使得該運(yùn)動塊與時間上早于和/或晚于該當(dāng)前幀的至少一個其它幀中的對應(yīng)塊相關(guān);和對該當(dāng)前幀和參考幀中的像素執(zhí)行運(yùn)動補(bǔ)償時間濾波(MCTF),以生成時間低幀和時間高幀,其中該參考幀是所述至少一個其它幀中的幀。
41.一種計(jì)算機(jī)系統(tǒng),包括處理器和耦接到該處理器的計(jì)算機(jī)可讀存儲單元,所述存儲單元包括實(shí)現(xiàn)用于處理視頻幀的方法的由處理器執(zhí)行的指令,所述方法包括以下計(jì)算機(jī)實(shí)現(xiàn)的步驟提供被劃分為多個塊的當(dāng)前幀,所述多個塊包括至少兩個不同尺寸的塊;和對每一塊執(zhí)行重疊塊運(yùn)動補(bǔ)償(OBMC),對其執(zhí)行所述OBMC的所述塊被表示為自身塊,所述執(zhí)行OBMC的步驟包括相對于該自身塊的相鄰塊而對該自身塊執(zhí)行OBMC,所述相鄰塊由該自身塊的最近相鄰塊組成,所述相鄰塊包括第一相鄰塊,所述對自身塊執(zhí)行OBMC的步驟包括生成用于該自身塊及其相鄰塊中的每一個的加權(quán)窗口。
42.根據(jù)權(quán)利要求41的計(jì)算機(jī)系統(tǒng),其中該自身塊和該第一相鄰塊中的每一個都是運(yùn)動塊。
43.根據(jù)權(quán)利要求41的計(jì)算機(jī)系統(tǒng),其中該自身塊和該第一相鄰塊中的每一個都是I塊。
44.根據(jù)權(quán)利要求41的計(jì)算機(jī)系統(tǒng),其中該自身塊是運(yùn)動塊,并且其中該第一相鄰塊是I塊。
45.根據(jù)權(quán)利要求41的計(jì)算機(jī)系統(tǒng),其中該自身塊是I塊,并且其中該第一相鄰塊是運(yùn)動塊。
46.根據(jù)權(quán)利要求41的計(jì)算機(jī)系統(tǒng),其中該自身塊是I塊,并且其中所生成的該自身塊的窗口由第一像素權(quán)重和第二像素權(quán)重組成,其中該第一像素權(quán)重小于如果該自身塊為運(yùn)動塊時該第一像素權(quán)重應(yīng)該具有的值,并且其中該第二像素權(quán)重等于如果該自身塊為運(yùn)動塊時該第二像素權(quán)重應(yīng)該具有的值。
47.根據(jù)權(quán)利要求46的計(jì)算機(jī)系統(tǒng),其中所述生成自身塊的加權(quán)窗口的步驟包括生成該自身塊的第一加權(quán)窗口,如同該自身塊是運(yùn)動塊一樣;和通過減少該第一加權(quán)窗口中的權(quán)重,而從該第一加權(quán)窗口中生成用于自身塊的加權(quán)窗口。
48.根據(jù)權(quán)利要求26的計(jì)算機(jī)系統(tǒng),其中所生成的該自身塊的每一相鄰塊的窗口由第三像素權(quán)重和第四像素權(quán)重組成,其中該第三像素權(quán)重大于如果該自身塊為運(yùn)動塊時該第三像素權(quán)重應(yīng)該具有的值,并且其中該第四像素權(quán)重等于如果該自身塊為運(yùn)動塊時該第四像素權(quán)重應(yīng)該具有的值。
49.根據(jù)權(quán)利要求41的計(jì)算機(jī)系統(tǒng),其中該第一相鄰塊的塊尺寸與該自身塊的塊尺寸不同。
50.根據(jù)權(quán)利要求49的計(jì)算機(jī)系統(tǒng),其中該第一相鄰塊的塊尺寸超出該自身塊的塊尺寸,其中所述對自身塊執(zhí)行OBMC的步驟還包括將該第一相鄰塊的塊尺寸收縮為該第一相鄰塊的第一部分,其中該第一相鄰塊的第一部分具有與該自身塊的塊尺寸相等的尺寸,并且其中該第一相鄰塊的第一部分僅是該第一相鄰塊中的這樣一部分,在所述對自身塊執(zhí)行OBMC期間,該部分的加權(quán)窗口影響自身塊中像素值的預(yù)測。
51.根據(jù)權(quán)利要求50的計(jì)算機(jī)系統(tǒng),其中該自身塊和該第一相鄰塊中的每一個都是運(yùn)動塊,并且其中所生成的該第一相鄰塊的第一部分的加權(quán)窗口包括雙線性內(nèi)插的權(quán)重。
52.根據(jù)權(quán)利要求49的計(jì)算機(jī)系統(tǒng),其中該第一相鄰塊的塊尺寸小于該自身塊的塊尺寸,其中所述對自身塊執(zhí)行OBMC的步驟還包括將該自身塊的塊尺寸收縮為該自身塊的第一部分,其中該自身塊的第一部分具有與該第一相鄰塊的塊尺寸相等的尺寸,并且其中該自身塊的第一部分僅是該自身塊中的這樣一部分,在所述對自身塊執(zhí)行OBMC期間,該第一相鄰塊的加權(quán)窗口影響該部分中像素值的預(yù)測。
53.根據(jù)權(quán)利要求52的計(jì)算機(jī)系統(tǒng),其中該自身塊是運(yùn)動塊。
54.根據(jù)權(quán)利要求53的計(jì)算機(jī)系統(tǒng),其中該第一相鄰塊是運(yùn)動塊,其中該自身塊的第一部分包括受影響區(qū)域和未受影響區(qū)域,其中在受影響區(qū)域處的所生成的自身塊的第一部分的加權(quán)窗口包括雙線性內(nèi)插權(quán)重,并且其中在未受影響區(qū)域處的所生成的自身塊的第一部分的加權(quán)窗口包括超出雙線性內(nèi)插權(quán)重的權(quán)重。
55.根據(jù)權(quán)利要求54的計(jì)算機(jī)系統(tǒng),其中第一相鄰塊包括影響區(qū)域和未影響區(qū)域,其中第一相鄰塊的影響區(qū)域與自身塊的受影響區(qū)域相關(guān)聯(lián),其中第一相鄰塊的未影響區(qū)域與自身塊的未受影響區(qū)域相關(guān)聯(lián),其中在影響區(qū)域處的所生成的第一相鄰塊的加權(quán)窗口包括雙線性內(nèi)插權(quán)重,并且其中在未影響區(qū)域處的所生成的第一相鄰塊的加權(quán)窗口包括0權(quán)重。
56.根據(jù)權(quán)利要求53的計(jì)算機(jī)系統(tǒng),其中該第一相鄰塊是I塊,其中所生成的自身塊的第一部分的加權(quán)窗口包括超出雙線性內(nèi)插權(quán)重的權(quán)重,并且其中所生成的第一相鄰塊的加權(quán)窗口包括0權(quán)重。
57.根據(jù)權(quán)利要求41的計(jì)算機(jī)系統(tǒng),所述方法還包括對于已被分類為運(yùn)動塊的當(dāng)前幀中的每一塊提供至少一個運(yùn)動矢量,該運(yùn)動矢量使得該運(yùn)動塊與時間上早于和/或晚于該當(dāng)前幀的至少一個其它幀中的對應(yīng)塊相關(guān),其中所述運(yùn)動矢量共同組成運(yùn)動矢量的初始集合;和在生成所有加權(quán)窗口之后在迭代過程中攝動運(yùn)動矢量的初始集合,以在所述迭代過程的每次迭代中計(jì)算運(yùn)動矢量的改進(jìn)集合,在每次迭代的結(jié)尾處的當(dāng)前幀中的每一運(yùn)動塊的殘余誤差小于在每次迭代的開始處的當(dāng)前幀中的每一運(yùn)動塊的殘余誤差,并且通過使用所生成的加權(quán)窗口而計(jì)算該殘余誤差。
58.根據(jù)權(quán)利要求57的計(jì)算機(jī)系統(tǒng),其中所述攝動步驟包括根據(jù)與像素單元的一小部分成比例的參數(shù)β而在每次迭代的開始處攝動運(yùn)動矢量的初始或改進(jìn)集合中的每一運(yùn)動矢量,并且其中所述攝動步驟包括根據(jù)β而獨(dú)立地?cái)z動每一運(yùn)動矢量的水平和垂直分量。
59.根據(jù)權(quán)利要求57的計(jì)算機(jī)系統(tǒng),其中當(dāng)已執(zhí)行預(yù)定最大數(shù)目(α)的迭代時或當(dāng)已滿足預(yù)定收斂標(biāo)準(zhǔn)時,該迭代過程終止。
60.根據(jù)權(quán)利要求41的計(jì)算機(jī)系統(tǒng),所述方法還包括對于已被分類為運(yùn)動塊的當(dāng)前幀中的每一塊提供至少一個運(yùn)動矢量,該運(yùn)動矢量使得該運(yùn)動塊與時間上早于和/或晚于該當(dāng)前幀的至少一個其它幀中的對應(yīng)塊相關(guān);和對該當(dāng)前幀和參考幀中的像素執(zhí)行運(yùn)動補(bǔ)償時間濾波(MCTF),以生成時間低幀和時間高幀,其中該參考幀是所述至少一個其它幀中的幀。
全文摘要
一種用于處理視頻幀的方法、計(jì)算機(jī)程序產(chǎn)品、和計(jì)算機(jī)系統(tǒng)。當(dāng)前幀被劃分為包括至少兩個不同尺寸的塊的M塊。M至少是9。當(dāng)前幀中的每一塊被分類為運(yùn)動塊或I塊。根據(jù)預(yù)定掃描順序?qū)λ鯩塊中的每一塊執(zhí)行重疊塊運(yùn)動補(bǔ)償(OBMC)。對其執(zhí)行OBMC的塊被表示為自身塊(270)。相對于其相鄰塊(271、272、273、274)對自身塊(270)執(zhí)行OBMC。相鄰塊包括自身塊的最近相鄰塊。對自身塊執(zhí)行OBMC的步驟包括生成用于該自身塊及其相鄰塊中的每一個的加權(quán)窗口。
文檔編號H04N7/12GK1926868SQ200480036791
公開日2007年3月7日 申請日期2004年10月15日 優(yōu)先權(quán)日2003年10月17日
發(fā)明者約翰·W·伍茲, 吳勇軍, 羅伯特·A·科恩 申請人:倫斯萊爾工藝研究院