專利名稱:編碼器輔助式自適應(yīng)視頻幀內(nèi)插的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字視頻編碼和解碼,且更特定來說,涉及用于為例如幀速率轉(zhuǎn)換的應(yīng)用內(nèi)插跳過的幀的技術(shù)。
背景技術(shù):
已建立許多不同的視頻編碼標(biāo)準(zhǔn)來用于對數(shù)字視頻序列進行編碼。例如,運動圖像專家組(Moving Picture Experts Group,MPEG)已開發(fā)出包括MPEG-1、MPEG-2和MPEG-4的許多標(biāo)準(zhǔn)。其它實例包括國際電信聯(lián)盟(International TelecommunicationUnion,ITU)H.263標(biāo)準(zhǔn),和新興的ITU H.264標(biāo)準(zhǔn)。這些視頻編碼標(biāo)準(zhǔn)一般通過以壓縮的方式對數(shù)據(jù)進行編碼來支持視頻序列的改進的傳輸效率。壓縮減少了需傳輸?shù)臄?shù)據(jù)的總量,以用于有效地傳輸視頻幀。
例如,MPEG-4、ITU H.263和ITU H.264標(biāo)準(zhǔn)支持利用連續(xù)視頻幀之間的類似性(被稱作時間或幀間相關(guān)性)來提供幀間壓縮的視頻編碼技術(shù)。幀間壓縮技術(shù)通過將視頻幀的基于像素的表示形式轉(zhuǎn)換為運動表示形式來利用幀上的數(shù)據(jù)冗余。使用幀間技術(shù)來編碼的幀被稱作P(“預(yù)測”)幀或B(“雙向”)幀。使用非預(yù)測性的空間壓縮來對稱作I(“內(nèi)部”)幀的某些幀進行編碼。
為了滿足低帶寬要求,例如視頻電話或視頻流的某些視頻應(yīng)用通過使用跳幀以較低的幀速率對視頻進行編碼來降低位速率。有意跳過的幀可被稱作“S”(“跳過的”)幀。遺憾的是,低幀速率視頻可能會產(chǎn)生運動急動(jerkiness)形式的假象。因此,通常在解碼器處使用幀內(nèi)插(也稱作幀速率上轉(zhuǎn)換(FRUC))來內(nèi)插有意跳過的幀的內(nèi)容。
已開發(fā)出多種FRUC技術(shù),且所述FRUC技術(shù)可分為兩類。第一類FRUC包括幀重復(fù)(FR)和幀平均化(FA),其兩者均使用視頻幀的組合而不考慮運動。這些算法在沒有運動的情況下提供可接受的結(jié)果。然而,當(dāng)存在明顯的幀間運動時,F(xiàn)R傾向于產(chǎn)生運動急動,而FA會產(chǎn)生模糊的物體。
第二類FRUC依賴使用運動的高級轉(zhuǎn)換技術(shù)。在這類FRUC中,內(nèi)插幀的質(zhì)量取決于估計運動與真實物體運動之間的差值。在典型的FRUC應(yīng)用中,解碼器根據(jù)用于相鄰幀的運動信息獲得用于內(nèi)插幀的運動信息。然而,從相鄰幀的運動向量直接獲得的S幀的運動向量并不足夠準(zhǔn)確,且可導(dǎo)致內(nèi)插幀中有各種假象。同樣,對于幀內(nèi)編碼塊,不存在可用于內(nèi)插S幀的運動信息,進而在解碼器處一般需要額外的估計或處理額外開銷以用于獲得可靠的內(nèi)插。
發(fā)明內(nèi)容
本發(fā)明針對用于視頻幀的解碼器輔助式自適應(yīng)內(nèi)插的技術(shù)。根據(jù)所揭示的技術(shù),編碼器產(chǎn)生輔助解碼器來內(nèi)插跳過的視頻幀(即S幀)的信息。所述信息允許解碼器減少內(nèi)插幀中的視覺假象,且進而實現(xiàn)改進的視覺質(zhì)量。
所述信息可包括內(nèi)插方程標(biāo)號,其針對S幀中的個別視頻塊來識別將由解碼器使用的內(nèi)插方程,以實現(xiàn)更好的結(jié)果。所述信息還包括用于S幀的前向運動向量和差值信息。
視情況而定,為節(jié)省帶寬,可僅針對符合用于編碼器輔助式內(nèi)插的差值標(biāo)準(zhǔn)的選定的視頻塊傳輸方程標(biāo)號??稍诮獯a器處根據(jù)默認(rèn)內(nèi)插技術(shù)來內(nèi)插不具有方程標(biāo)號的其它視頻塊。
在一個實施例中,本發(fā)明提供一種視頻編碼方法,其包含產(chǎn)生輔助視頻解碼器來內(nèi)插跳過的視頻幀的信息;和對視頻幀中的信息進行編碼以用于傳輸?shù)揭曨l解碼器。
在另一實施例中,本發(fā)明提供一種視頻解碼方法,其包含接收輔助內(nèi)插跳過的視頻幀的信息,其中將所述信息編碼在視頻幀中;和應(yīng)用所述信息以內(nèi)插所述跳過的視頻幀。
在又一實施例中,本發(fā)明提供一種視頻編碼器,其包含分析單元,其分析跳過的視頻幀,且產(chǎn)生輔助視頻解碼器來內(nèi)插所述跳過的視頻幀的信息;和匯編單元,其將所述信息編碼在視頻幀中以用于傳輸?shù)剿鲆曨l解碼器。
在額外的實施例中,本發(fā)明提供一種視頻解碼器,其包含內(nèi)插單元,其接收輔助內(nèi)插跳過的視頻幀的信息,其中將所述信息編碼在視頻幀中,且應(yīng)用所述信息以內(nèi)插所述跳過的視頻幀。
本發(fā)明還涵蓋計算機可讀媒體,其包含促使形成視頻編碼器或解碼器的一個或一個以上處理器執(zhí)行本文所述的技術(shù)中的任一種技術(shù)的指令。
在附圖和下文描述中陳述一個或一個以上實施例的細(xì)節(jié)。根據(jù)描述和圖式,且根據(jù)權(quán)利要求書,將易于了解其它特征、目的和優(yōu)勢。
圖1是說明視頻編碼和解碼系統(tǒng)的方框圖,其使用根據(jù)本發(fā)明的編碼器輔助式自適應(yīng)內(nèi)插技術(shù)。
圖2是使用所傳輸?shù)倪\動向量在解碼器處應(yīng)用運動補償FRUC技術(shù)的圖。
圖3是用于如圖1中所示的視頻編碼器中的幀處理單元的方框圖。
圖4A-4C是說明產(chǎn)生方程旗標(biāo)以及絕對差值和(SAD)旗標(biāo)以輔助自適應(yīng)內(nèi)插的圖。
圖5是說明承載用于編碼器輔助式自適應(yīng)內(nèi)插的嵌入的S幀信息的P幀的圖。
圖6是說明用于跳過的視頻幀的內(nèi)插方程標(biāo)號圖的圖。
圖7是說明用于如圖1中所示的視頻解碼器中的輔助式內(nèi)插解碼器的方框圖。
圖8是說明用于產(chǎn)生輔助解碼器內(nèi)插跳過的幀的技術(shù)的流程圖。
圖9是說明應(yīng)用編碼器提供的信息來內(nèi)插跳過的幀的流程圖。
圖10是說明用于產(chǎn)生輔助解碼器內(nèi)插跳過的幀的信息的帶寬節(jié)省技術(shù)的流程圖。
具體實施例方式
圖1是說明經(jīng)配置以使用編碼器輔助式自適應(yīng)內(nèi)插技術(shù)的視頻編碼和解碼系統(tǒng)10的方框圖。如圖1中所示,圖10包括由傳輸通道15連接的視頻編碼器12和視頻解碼器14。傳輸通道15可以是有線的或無線的媒體。系統(tǒng)10可支持雙向視頻傳輸,以(例如)用于視頻電話。因此,可在通道15的相對端上提供交互(reciprocal)編碼、解碼、多路復(fù)用(MUX)和解多路復(fù)用(DEMUX)組件。在某些實施例中,編碼器系統(tǒng)12和解碼器系統(tǒng)14可實施在預(yù)備用于視頻流、視頻電話或其兩者的例如無線移動終端的視頻通信裝置中。
系統(tǒng)10可支持根據(jù)會話起始協(xié)議(SIP)、ITU H.323標(biāo)準(zhǔn)、ITU H.324標(biāo)準(zhǔn)或其它標(biāo)準(zhǔn)的視頻電話。視頻編碼器12根據(jù)視頻壓縮標(biāo)準(zhǔn)(例如,MPEG-2、MPEG-4、ITU H.263或ITU H.264)產(chǎn)生經(jīng)編碼的視頻數(shù)據(jù)。盡管圖1中未展示,視頻編碼器12和視頻解碼器14可分別與音頻編碼器和解碼器集成在一起,且包括適當(dāng)?shù)腗UX-DEMUX單元來處理數(shù)據(jù)流的音頻和視頻部分。MUX-DEMUX單元可遵循ITU H.223多路復(fù)用器協(xié)議,或其它協(xié)議,例如用戶數(shù)據(jù)報協(xié)議(UDP)。
編碼器12編碼P幀16和S幀信息18。P幀16是預(yù)測性幀,其包括足夠的信息以允許視頻解碼器14解碼并呈現(xiàn)視頻信息幀。以良好的保真度對P幀進行編碼。特定來說,針對P幀對運動向量和量化的預(yù)測誤差兩者進行編碼。S幀是必須被解碼器14內(nèi)插以產(chǎn)生視頻信息幀的跳過的幀。
根據(jù)本發(fā)明,編碼器12實際上并不編碼和傳輸S幀。作為替代,編碼器12產(chǎn)生低額外開銷的S幀信息18以輔助視頻解碼器14內(nèi)插S幀,且將所述信息編碼在視頻幀中以供傳輸?shù)揭曨l解碼器。S幀信息可包括在專用的幀中,或添加到所傳輸?shù)腜幀。S幀的內(nèi)插可在視頻解碼器14處支持FRUC技術(shù)。
在圖1的實例中,視頻編碼器12可包括幀處理單元20,其經(jīng)配置以處理視頻信息的引入幀F(xiàn)1、F2、F3,并決定是編碼P幀16還是編碼輔助內(nèi)插S幀的信息。F2表示要跳過的幀,而幀F(xiàn)1和F3分別表示先前的和后續(xù)的P幀。
基于對幀F(xiàn)1、F2、F3的分析,幀處理單元20決定是對P幀進行編碼還是對S幀信息18進行編碼。在S幀的情況下,幀處理單元20產(chǎn)生輔助視頻解碼器14內(nèi)插S幀的信息。所述信息允許解碼器14減少所內(nèi)插的S幀中的視覺假象,且進而實現(xiàn)改進的視覺質(zhì)量。盡管S幀被跳過,即未傳輸?shù)浇獯a器14,但S幀信息支持對S幀的內(nèi)容的內(nèi)插。
為處理P幀和S幀兩者,視頻解碼器14包括標(biāo)準(zhǔn)的解碼器22和輔助式內(nèi)插解碼器24。標(biāo)準(zhǔn)的解碼器22應(yīng)用標(biāo)準(zhǔn)的解碼技術(shù)來解碼每一P幀16。然而,輔助式內(nèi)插解碼器24依賴來自視頻編碼器12的輔助來內(nèi)插S幀。特定來說,輔助式內(nèi)插解碼器24接收S幀信息18,并應(yīng)用S幀信息以內(nèi)插跳過的視頻幀。S幀信息可包括經(jīng)選擇以支持更準(zhǔn)確的S幀內(nèi)插的信息,以便可減少所內(nèi)插的視頻信息中的視覺假象。
S幀信息18可包括(例如)指定將由視頻解碼器14用來內(nèi)插S幀的特定內(nèi)插方程的信息,或指定將用于S幀中的選定的視頻塊(例如宏塊(MB)或較小的塊)的特定內(nèi)插方程的信息。在獲得兩組運動向量,即用于S幀的后向(BW)運動向量mv12和用于下一P幀的前向(PW)運動向量mv23后,對一組內(nèi)插技術(shù)進行測試以在編碼器12處預(yù)測S幀。在某些實施例中,根據(jù)給定應(yīng)用的復(fù)雜度和帶寬要求,可計算并傳輸兩組以上的運動向量。
隨后,編碼器12拾取對應(yīng)于方程的標(biāo)號,且發(fā)送用于個別視頻塊m(例如,S幀中的4×4、8×8或16×16像素塊)的方程。指定的內(nèi)插方程可以是可使用的若干不同內(nèi)插方程中的一者。然而,視頻編碼器12的幀處理單元20選擇特定的內(nèi)插方程,所述內(nèi)插方程期望產(chǎn)生滿足S幀或S幀中的特定視頻塊的所需質(zhì)量水平的內(nèi)插結(jié)果。
對于特定的幀或視頻塊,特定類型的內(nèi)插方程可能比其它類型的內(nèi)插方程更有效。相反,某些幀或視頻塊可能會具有要求應(yīng)用不同的內(nèi)插方程以實現(xiàn)可接受的結(jié)果的特征。因此,幀處理單元20可針對給定的S幀中的不同的視頻塊指定不同的內(nèi)插方程。S幀信息18向輔助式內(nèi)插解碼器24提供足夠的信息來應(yīng)用適當(dāng)?shù)膬?nèi)插方程內(nèi)插S幀中的視頻塊。以這種方式,視頻編碼器12輔助解碼器14內(nèi)插S幀。
除了內(nèi)插方程之外,S幀信息18可包括可用于改進視頻解碼器18的內(nèi)插質(zhì)量的其它信息。舉例來說,S幀信息18可進一步包括運動向量和差值信息。運動向量表示跳過的幀、先前的幀與(可選的)后續(xù)幀之間的運動。差值信息指示跳過的幀、先前的幀與后續(xù)的幀,或跳過的幀、先前的幀與后續(xù)的幀中相應(yīng)的視頻塊之間的差值。差值信息還可包括絕對差值和(SAD)旗標(biāo)。
為減少由S幀信息18提出的帶寬要求,幀處理單元20可經(jīng)配置以僅發(fā)送用于S幀中選定的視頻塊的信息。特定來說,幀處理單元20可識別似乎要求特定內(nèi)插方程以便提供可接受的視頻質(zhì)量的視頻塊。其它視頻塊無需特定的內(nèi)插方程即可準(zhǔn)確地內(nèi)插。在某些實施例中,幀處理單元20可確定S視頻幀中的視頻塊與先前的視頻幀、后續(xù)的視頻幀或其兩者中相應(yīng)的視頻塊之間的差值,并識別產(chǎn)生超過閾值的差值的視頻塊。幀處理單元20接著產(chǎn)生指定將由視頻解碼器14用來內(nèi)插S幀中的所識別視頻塊的特定內(nèi)插方程的信息。
可將S幀信息18編碼在專用于S幀信息的視頻幀中,并獨立于P幀16而傳輸。或者,S幀信息18可嵌入在S幀之前或在S幀之后的P幀16中,以供傳輸?shù)浇獯a器14。在任一情況下,S幀信息18所需要的帶寬均明顯小于S幀的實際內(nèi)容所需的帶寬。因此,系統(tǒng)10能利用由跳幀提供的帶寬節(jié)省,而且通過編碼器輔助式內(nèi)插提供改進的視頻質(zhì)量。
視頻解碼器14可經(jīng)特別配置以辨識并利用S幀信息18。對于S幀來說,宏塊(MB)模式被強制為幀間(Inter)。因為解碼器14將具有用于S幀的宏塊模式(幀間)決策,所以宏塊決策單元可用于發(fā)送與內(nèi)插方程和SAD旗標(biāo)相關(guān)的S幀信息18。然而,如果視頻解碼器14不預(yù)備使用S幀信息18,那么可忽略所述信息,且可根據(jù)另外由視頻解碼器應(yīng)用的默認(rèn)內(nèi)插技術(shù)進行內(nèi)插。
圖2是說明使用由編碼器12提供作為S幀信息18的一部分的運動向量在解碼器14處應(yīng)用運動補償FRUC技術(shù)的圖。一般來說,視頻解碼器14應(yīng)用由視頻編碼器12提供的S幀信息18來內(nèi)插S幀并支持FRUC。在某些常規(guī)的解碼器側(cè)FRUC技術(shù)中,解碼器12依賴在幀F(xiàn)1中的塊30與幀F(xiàn)3中相應(yīng)的塊32之間延伸的向量V13。幀F(xiàn)1和F3分別是在需要內(nèi)插的S幀F(xiàn)2=Ft之前(t-1)和之后(t+1)的幀。F1、F2和F3的命名法可概括為Ft-1、Ft和Ft+1而不會喪失專指性。向量V13一般被除以二(對于1∶2的幀速率轉(zhuǎn)換來說),以產(chǎn)生運動向量V13/2和-V13/2,并識別S幀F(xiàn)2中相應(yīng)的塊34。對于1∶N轉(zhuǎn)換來說,可相應(yīng)地縮放運動向量。
然而,如圖2中所示,所得的塊34可能實質(zhì)上不同于S幀F(xiàn)2中實際的相應(yīng)塊36。在沒有實際的運動向量信息(即,V12、V23)的情況下,難以斷定用于解碼器側(cè)FRUC實施的實際塊36。因此,所內(nèi)插幀的質(zhì)量很大程度取決于估計的運動向量V13/2、-V13/2相對于實際的運動向量V12和V23的準(zhǔn)確度。因此,如果僅使用前向運動補償幀,那么解碼器側(cè)FRUC實施可能會引入例如中斷等的不良的視覺假象,或如果使用前向和后向運動補償幀時,會引入例如模糊等的不良的視覺假象。
相比而言,根據(jù)本發(fā)明,S幀信息18允許視頻解碼器14應(yīng)用編碼器輔助式內(nèi)插技術(shù)。S幀信息18可包括在編碼器側(cè)確定的實際的運動向量和其它信息,以提供解碼器14對S幀F(xiàn)2的改進的內(nèi)插。編碼器12通過發(fā)送通過編碼器處理獲得的的有效輔助信息(即S幀信息18)而允許在解碼器14處實現(xiàn)改進的幀內(nèi)插。以這種方式,視頻解碼器14減少原本會由于FRUC中不正確的運動估計而引入的各種假象。另外,通過S幀信息18,可在視頻解碼器14中免除FRUC運動估計通常所需的額外的處理,從而導(dǎo)致實施復(fù)雜度降低。
圖3是說明用于如圖1中所示的視頻編碼器12中的幀處理單元20的方框圖。如圖3中所示,幀處理單元20包括幀類型決策單元36、S幀分析單元38、差值閾值單元40和幀匯編單元42。S幀分析單元38進一步包括運動計算單元44、差值單元46和內(nèi)插選擇單元48。如將所述,S幀分析單元38產(chǎn)生S幀信息18以輔助解碼器14以改進的準(zhǔn)確度內(nèi)插S幀。一般來說,S幀分析單元38分析S幀以產(chǎn)生運動向量、差值信息和內(nèi)插方程選擇以用于有效地內(nèi)插S幀中的視頻塊。
幀類型決策單元36確定引入的視頻信息是應(yīng)被編碼為P幀還是S幀??刹糠值鼗诮?jīng)設(shè)計以減少編碼信息的總量以用于傳輸通道15(圖1)上的帶寬節(jié)省的統(tǒng)一或非統(tǒng)一跳幀功能來決定跳幀。舉例來說,幀類型決策單元36可跳過每第n個幀,或基于動態(tài)跳過標(biāo)準(zhǔn)來跳幀。
在某些實例中,幀類型決策單元36可跳過偶數(shù)幀。在任一情況下,幀類型決策單元36均將幀決策傳送到幀匯編單元42。跳幀決策還可基于峰值信噪比(PSNR)或其它客觀視覺質(zhì)量量度,例如與先前重新構(gòu)造的幀的均方誤差,以及與用于編碼P幀的字節(jié)數(shù)相關(guān)的運動向量長度。
如圖3中進一步所示,S幀分析單元38產(chǎn)生運動向量、絕對差值和(SAD)旗標(biāo)和方程標(biāo)號圖,其每一者可形成由編碼器12提供的用以輔助解碼器14進行內(nèi)插的S幀信息18的一部分。運動計算單元44產(chǎn)生表示跳過的(S)幀F(xiàn)2中的視頻塊與之前的幀F(xiàn)1和后續(xù)幀F(xiàn)3中的相應(yīng)塊之間的運動的運動向量。因此,跳過的幀中的每一視頻塊的特征在于一對運動向量,即后向(BW)運動向量和前向(FW)運動向量。這些運動向量輔助內(nèi)插選擇單元48為S幀中的視頻塊選擇適當(dāng)?shù)膬?nèi)插方程。
差值單元46分析跳過的幀中的視頻塊與后續(xù)幀中的相應(yīng)視頻塊之間的差值。盡管可在跳過的幀塊與實質(zhì)上類似的先前或后續(xù)的幀塊之間確定運動向量,但所識別的塊在內(nèi)容上仍可展示出明顯的差值。差值單元46可基于絕對差值和(SAD)量度來確定所述差值。可針對整個宏塊、宏塊的四邊(例如2到3像素寬)和相鄰宏塊之間的邊界來確定SAD量度。如果SAD量度值非常大,那么由于對象可能會出現(xiàn)在所內(nèi)插的S幀中,所以可從未來幀而不是先前幀中取得參考。差值單元46將差值表達為差值旗標(biāo)(例如SAD旗標(biāo)),其輔助解碼器14進行內(nèi)插。
內(nèi)插選擇單元48將一組不同的內(nèi)插方程應(yīng)用于跳過的幀中的視頻塊,以識別在內(nèi)插準(zhǔn)確度方面最有效的內(nèi)插方程。特定來說,內(nèi)插選擇單元48評估不同的內(nèi)插方程用于視頻幀中的特定的視頻塊的結(jié)果?;谒鼋Y(jié)果,內(nèi)插選擇單元48指定將由視頻解碼器14用以內(nèi)插跳過的視頻幀中的選定視頻塊的特定內(nèi)插方程。通過此過程,可為S幀中不同的視頻塊選擇不同的內(nèi)插方程。
在操作中,內(nèi)插選擇單元48從運動計算單元44接收用于S幀中的特定視頻塊的BW和FW運動向量。內(nèi)插選擇單元48還接收S幀F(xiàn)2中的實際的視頻塊。通過使用運動向量,內(nèi)插選擇單元48應(yīng)用一系列不同的內(nèi)插方程,并將所述結(jié)果與S幀F(xiàn)2中實際的視頻塊進行比較。以這種方式,在編碼器12處測試一組不同的內(nèi)插技術(shù)以預(yù)測S幀。
在選擇了產(chǎn)生最佳結(jié)果的內(nèi)插方程后,內(nèi)插選擇單元48產(chǎn)生用于可應(yīng)用的視頻塊的方程標(biāo)號。方程標(biāo)號識別將由解碼器14用于相關(guān)視頻塊的特定內(nèi)插方程。內(nèi)插選擇單元48產(chǎn)生含有用于S幀中所有視頻塊的方程標(biāo)號的方程標(biāo)號圖作為輸出。所述圖將方程標(biāo)號配置在對應(yīng)于S幀中的視頻塊的位置處,以有助于解碼器14進行處理。
解碼器14處的用于幀內(nèi)插的一般方程可表達為F2(x,y)=α1F1(x+mv12x,y+mv12y)+α2F1(x+mv23x,y+mv23y)+α3F3(x-mv23x,y-mv23y)+α4F3(x-mv12x,y-mv12y) (1)在上述方程(1)中,以高保真度(即使用運動向量和預(yù)測誤差兩者)對奇數(shù)的P幀F(xiàn)1和F3進行編碼,而僅為偶數(shù)的S幀發(fā)送運動向量和其它輔助信息。值x、y表示二維坐標(biāo)軸,而α1、α2、α3和α4表示加權(quán)系數(shù)。
通過使用在之前的幀F(xiàn)1與S幀F(xiàn)2之間估計的FW運動向量(mv12),并使用在S幀F(xiàn)2與后續(xù)的幀F(xiàn)3之間估計的BW運動向量(mv23)來恢復(fù)跳過的S幀。加權(quán)系數(shù)(α)服從∑iαi=1以保持像素的強度值標(biāo)準(zhǔn)化。
如上所述,某些內(nèi)插方程對于S幀中特定的視頻塊可更有效。因此,對于編碼器輔助式自適應(yīng)內(nèi)插,內(nèi)插選擇單元48測試不同的方程來識別在解碼器側(cè)用于內(nèi)插特定的S幀,或S幀中的視頻塊的最有效的方程。舉例而言,可從一般方程(1)中得到以下方程,并由內(nèi)插選擇單元48進行評估以用于解碼器14處的編碼器輔助式自適應(yīng)內(nèi)插1.F2(x,y)=F1(x+mv12x,y+mv12y)2.F2(x,y)=F3(x-mv23x,y-mv23y)3.F2(x,y)=F1(x+mv12x,y+mv12y)+F3(x-mv23x,y-mv23y)4.F2(x,y)=F1(x+mv12x,y+mv12y)+Fi(x+mv23x,y+mv23y)+F3(x-mv23x,y-mv23y)5.F2(x,y)=F1(x+mvi2x,y+mvi2y)+F1(x+mv23x,y+mv23y)+F3(x-mv23x,y-mv23y)+F3(x-mv12x,y-mv12y)可用mvab′(即,經(jīng)處理的運動向量)而不是mvab(即,所傳輸?shù)倪\動向量)來應(yīng)用上述方程。另外,基于所接收的決策旗標(biāo),可對幀、對宏塊或基于更小的塊(例如,8×8或4×4)應(yīng)用方程。
盡管上文已描述從一般內(nèi)插方程(1)得到的五個內(nèi)插方程實例,但內(nèi)插方程的數(shù)目可更多或更少。舉例來說,可通過改變加權(quán)系數(shù)或通過使用上文提到的經(jīng)處理的運動向量,根據(jù)一般內(nèi)插方程(1)產(chǎn)生額外的方程。也可通過使用更多的參考或未來的幀(例如,在時間t-3或t+3處)來產(chǎn)生額外的方程。
可將由內(nèi)插選擇單元48產(chǎn)生的方程標(biāo)號圖的全部內(nèi)容發(fā)送到解碼器14。特定來說,幀匯編單元42可組合由運動計算單元44產(chǎn)生的運動向量、由差值單元46產(chǎn)生的SAD旗標(biāo)和由內(nèi)插選擇單元48產(chǎn)生的整個方程標(biāo)號圖。在這種情況下,運動向量、SAD旗標(biāo)和方程標(biāo)號圖形成由解碼器14使用的S幀信息18。
如將描述,S幀信息18可被作為特殊類型的P幀發(fā)送,或作為字段嵌入P幀中。舉例來說,每一S幀可被編碼為沒有誤差剩余編碼的特定類型P幀,或被編碼為沒有任何視頻對象平面(VOP)標(biāo)頭的輔助信息。在任一情況下,方程標(biāo)號圖均可能會在必須被編碼的信息的字節(jié)數(shù)方面要求大量的額外開銷。出于此原因,可減小方程標(biāo)號圖的大小,如將進一步詳細(xì)描述。
圖4A-4C是說明產(chǎn)生方程旗標(biāo)和絕對差值和(SAD)旗標(biāo)以輔助自適應(yīng)內(nèi)插的圖。特定來說,圖4A說明內(nèi)插方程旗標(biāo),圖4B說明為S幀塊量化差值的SAD旗標(biāo),且圖4C說明識別具有最大差值的相鄰塊的SAD旗標(biāo)。
在圖4A中,旗標(biāo)1、2、3等識別將由解碼器14用以內(nèi)插與所述旗標(biāo)相關(guān)聯(lián)的視頻塊的特定內(nèi)插方程。在圖4B中,旗標(biāo)L、M、S指示用于給定視頻塊的SAD量度是較大、中等還是較小。在圖4C中,旗標(biāo)N、E、SE等指示指向SAD量度在其中導(dǎo)致較大的誤差的相鄰塊的北、東和東南方向。圖4B中的旗標(biāo)對SAD量度進行分類,而圖4C中的旗標(biāo)用作指示相鄰塊中的相對SAD值的方向性旗標(biāo)。解碼器14可將圖4A-4C中的旗標(biāo)用作S幀信息18以輔助內(nèi)插S幀。
S幀的不同組成部分所需的字節(jié)數(shù)在帶寬方面可能是大量的。因此,可能需要努力減少經(jīng)編碼的信息的數(shù)量。下文的表1示范在S幀被編碼為P幀的特殊情況(即沒有發(fā)送誤差剩余)時,對于標(biāo)準(zhǔn)的視頻測試序列(以數(shù)字視頻技術(shù)領(lǐng)域中的技術(shù)人員已知的四分之一通用中間格式(QCIF)大小)用在標(biāo)頭和宏塊數(shù)據(jù)上的字節(jié)數(shù)。所述視頻測試序列用名稱進行識別,且對于視頻編碼技術(shù)領(lǐng)域中的技術(shù)人員是熟悉的。
在表1中,使用具有速率控制機制的基于MPEG-4的CODEC以每秒48千比特(kbps)對所有視頻測試序列進行編碼??偟膸俾适敲棵?0幀(fps),其中使用本發(fā)明所描述的方法對每秒中的幀的一半進行編碼。為每一S幀發(fā)送方程標(biāo)號圖的額外開銷并未包括在所消耗的總字節(jié)中,但稍后將在此說明內(nèi)容中描述。
表1
如表1中所示,作為特殊P幀中的輔助信息發(fā)送的前向運動向量的總成本會增加3到25%的需要被傳輸?shù)念~外開銷。在S幀信息之后,用后續(xù)的P幀來發(fā)送后向運動向量(即,-mv23)。在表1的最后一列中表示出組合的額外開銷(即,運動向量、標(biāo)頭和宏塊數(shù)據(jù))。每一標(biāo)準(zhǔn)測試視頻序列的額外開銷增加如下Akiyo3.4%Salesman3.6%
Coastguard15%Carphone18.5%Foreman25%Stefan20.6%。
在例如Akiyo的低運動視頻測試序列中,運動向量數(shù)據(jù)占據(jù)整個S幀包的小部分。與運動向量不同,沒有必要發(fā)送例如量化參數(shù)(QP)、宏塊類型等的其它數(shù)據(jù)。因此,在這種情況下,包括運動向量和方程標(biāo)號圖的S幀信息應(yīng)被作為輔助信息附加到下一P幀,以避免來自宏塊模式、宏塊水平QP和幀水平QP的多余額外開銷。
如上所述,將S幀作為個別的幀傳輸可導(dǎo)致消耗大量字節(jié)(包括S幀內(nèi)插不必須的字節(jié))。個別的S幀中一半以上的字節(jié)可能是多余的。舉例來說,通過表1中的第二列與第三列中的值之間的差值來計算多余信息的量。因此,可能需要減少多余的S幀信息的數(shù)量。一種用于減少多余信息的數(shù)量的有用技術(shù)是如上所述將S幀信息嵌入P幀中,而不是發(fā)送專用的S幀。
作為發(fā)送不必要的信息的替代方法,可將需要內(nèi)插并進而重新構(gòu)造的S幀信息作為輔助信息附加在跟隨S幀的P幀的末尾處。以這種方式可減少額外開銷,因為S幀將一直使用幀間宏塊模式,所以將不需要發(fā)送模式?jīng)Q策。另外,因為不需要發(fā)送預(yù)測誤差,所以也不需要發(fā)送QP或任何額外的信息。因此,可將S幀信息作為下一P幀的嵌入的附件來發(fā)送。
圖5是說明承載用于編碼器輔助式自適應(yīng)內(nèi)插的嵌入的S幀信息18的P幀的圖。S幀信息18可被編碼為不具有任何VOP標(biāo)頭的輔助信息?;蛘撸鐖D5中所示,S幀信息18可嵌入特殊的P幀50中。在圖5的實例中,P幀50包括P幀標(biāo)頭52、P幀末尾54、P幀信息56,和S幀信息18,所述S幀信息18包括運動向量58、SAD旗標(biāo)60和方程標(biāo)號圖62。S幀信息18跟隨P幀信息56之后,且可被預(yù)備處理S幀信息的解碼器14利用,或被未如此預(yù)備的解碼器14丟棄。對S幀信息18進行編碼可導(dǎo)致大量的額外開銷節(jié)省。
除了與運動向量相關(guān)聯(lián)的額外開銷之外,S幀信息18中的方程標(biāo)號圖62也可呈現(xiàn)大量的額外開銷。舉例而言,對于標(biāo)準(zhǔn)的Carphone視頻測試序列(以48kbps)中的S幀來說,如果僅執(zhí)行運動補償預(yù)測,即僅使用運動向量而沒有預(yù)測誤差剩余,那么將獲得以下結(jié)果幀編號12
幀編碼成本=127字節(jié)運動補償?shù)念A(yù)測PSNR=30.103 dB運動向量大?。?61位(70.125字節(jié))VOP標(biāo)頭=54位宏塊跳過模式=14位VOP末尾=3位其它旗標(biāo)和QP=384位出于說明目的,假設(shè)僅為4×4的塊發(fā)送運動向量和方程標(biāo)號圖,且方程標(biāo)號圖由1到3的數(shù)字組成,其確定為各個4×4塊選擇的用于S幀內(nèi)插的特定方程的數(shù)目。
圖6是說明用于上文所述的視頻幀(即,Carphone視頻幀12)的內(nèi)插方程標(biāo)號圖。圖6的方程標(biāo)號圖可與運動向量一起使用以執(zhí)行S幀的運動補償內(nèi)插。在此實例中,具有三個不同的內(nèi)插方程,由數(shù)字1到3如下識別1.標(biāo)號1F2(x,y)=F1(x+mv12x,y+mv12y)2.標(biāo)號2F2(x,y)=F3(x-mv23x,y-mv23y)3.標(biāo)號3F2(x,y)=Fi(x+mv12x,y+mv12y)+F3(x-mv23x,y-mv23y)在圖6的方程標(biāo)號圖中,指派有方程標(biāo)號1的4×4參考塊的總數(shù)為689,指派有方程標(biāo)號2的塊的總數(shù)為528,且指派有方程標(biāo)號3的塊的數(shù)目為367??捎谩?”(1位)表示方程標(biāo)號1,用“10”(2位)表示方程標(biāo)號2,且用“11”(2位)表示方程標(biāo)號3。
如果圖6中所示的方程標(biāo)號圖按照原樣發(fā)送而沒有任何壓縮或處理,那么所得的額外開銷為689×1+528×2+367×2=2479~310字節(jié)對于沒有對方程標(biāo)號圖執(zhí)行最優(yōu)化的情況,上文的額外開銷數(shù)字是最差的情形。這個最差情況數(shù)字對于經(jīng)受過分的帶寬限制的某些實際應(yīng)用來說可能是不可接受的。
然而,更仔細(xì)地檢查方程圖后,會容易發(fā)現(xiàn)在緊密相鄰的4×4塊中的某些塊具有相同的方程標(biāo)號。因此,可對共用相同的方程標(biāo)號的塊進行分組,且針對組合的(較大)塊指派共同的方程標(biāo)號。在圖6中,由參考數(shù)字64、66、68識別可經(jīng)分組的塊的實例。如果圖6的方程標(biāo)號圖中的4×4的塊被分組為8×8和16×16的塊,那么獲得以下統(tǒng)計數(shù)字。
1.具有相同標(biāo)號的16×16塊的數(shù)目=10(5個塊具有方程標(biāo)號1,3個塊具有方程標(biāo)號2,2個塊具有方程標(biāo)號3)。
2.具有相同的標(biāo)號圖的8×8塊的數(shù)目=175(僅135個塊不同于16×16,且包括具有方程標(biāo)號1的60個塊、具有方程標(biāo)號2的44個塊和具有方程標(biāo)號3的31個塊)。
3.不能與相鄰塊分組的未分組的4×4塊的數(shù)目=884(295個塊具有方程標(biāo)號1、246個塊具有方程標(biāo)號2,43個塊具有方程標(biāo)號3)。
在對共用共同的方程標(biāo)號的塊進行分組后,圖6的用于方程圖的字節(jié)的總數(shù)可近似計算為16×16塊(5+3×2+2×2)8×8塊(60×1+44×2+31×2)4×4塊(295×1+246×2+43×2)總數(shù)137個字節(jié)如上文所示范,對共用方程標(biāo)號的塊進行分組可導(dǎo)致實質(zhì)的額外開銷節(jié)省(137個字節(jié)對310個字節(jié))。雖然在S幀信息18中使用塊分組是可行的,但需要一種機制向解碼器14發(fā)送如下內(nèi)容的信號某些塊被分組為16×16,且某些塊被分組為8×8。舉例來說,可將旗標(biāo)插入S幀信息18的方程標(biāo)號圖中,以發(fā)送如下內(nèi)容的信號一組群組塊的開始和群組的類型,即16×16或8×8。盡管這種方法可能是有用的,但所述分組旗標(biāo)將向上述137個字節(jié)的額外開銷添加其它額外開銷。
為避免塊分組和關(guān)聯(lián)的信號發(fā)送的需要,另一種用于減少由方程標(biāo)號圖產(chǎn)生的額外開銷的技術(shù)可能會涉及降低圖的大小。特定來說,在某些實施例中,可僅針對滿足差值標(biāo)準(zhǔn)的選定的塊對方程標(biāo)號進行編碼。例如,參考圖3,可提供差值閾值單元40來降低方程標(biāo)號圖的大小。以這種方式,可針對包含實質(zhì)上少于跳過的視頻幀中的所有視頻塊的選定視頻塊發(fā)送方程標(biāo)號,從而減少發(fā)送到解碼器14的經(jīng)編碼信息的數(shù)量。
差值閾值單元40利用前向與后向運動補償預(yù)測之間的相關(guān)性來定位需要發(fā)送方程標(biāo)號以用于有效內(nèi)插的特定塊。其結(jié)果為包括僅用于超過差值閾值的選定視頻塊的方程標(biāo)號的差值閾值圖。因此,可用不包括用于S幀中所有視頻塊而是用于視頻塊的子集的方程標(biāo)號的圖來代替圖6的方程標(biāo)號圖。在編碼器12和解碼器14處都有前向和后向預(yù)測可用。因此,在發(fā)送差值圖的過程中不涉及額外的成本。
在操作中,差值閾值單元40獲得FW和BW運動向量,其用于參考幀的前向運動補償和未來P幀的后向運動補償。差值閾值單元40計算FW與BW運動補償幀之間的差值,且獲得差值圖,Dmap=ABS(FW-BW),其中ABS代表絕對值。接著,差值閾值單元40對差值圖應(yīng)用閾值設(shè)定以產(chǎn)生其中差值超過可應(yīng)用的閾值的區(qū)域。差值閾值區(qū)域可能是非相鄰的。
作為一個實例,閾值在0到255的像素比例上可為值10。差值閾值單元40將此閾值應(yīng)用到S幀中的視頻塊,以識別特別易于發(fā)生內(nèi)插誤差的視頻塊??蓪㈤撝祽?yīng)用于由內(nèi)插單元48針對S幀中的所有塊而輸出的整個方程標(biāo)號圖。或者,可預(yù)先應(yīng)用差值閾值,使得內(nèi)插選擇單元48僅針對滿足差值閾值的塊產(chǎn)生方程標(biāo)號圖。在任一情況下,實際經(jīng)編碼以用于傳輸?shù)浇獯a器14的方程標(biāo)號圖的大小實質(zhì)上被減小了。特定來說,僅選擇產(chǎn)生大于閾值的差值的塊以用于方程標(biāo)號,從而節(jié)省了帶寬。
一旦應(yīng)用閾值來識別S幀中的視頻塊的子集,差值閾值單元40便縮小了經(jīng)過閾值設(shè)定的差值圖以獲得更小的圖。根據(jù)此實例,在較小的圖中,每個像素值被原始差值圖中的4×4相應(yīng)的像素值的和取代??蓤?zhí)行此縮小步驟,使得差值圖的大小與方程標(biāo)號圖的大小匹配。假設(shè)針對S幀中的4×4塊發(fā)送方程標(biāo)號,此實例中的縮放因數(shù)被選擇為4。如果方程標(biāo)號圖的塊大小發(fā)生改變,那么可相應(yīng)地調(diào)節(jié)縮小因數(shù)。
對于經(jīng)過縮小的經(jīng)閾值設(shè)定的差值圖中的每個點,差值閾值單元40選擇適當(dāng)?shù)姆匠虡?biāo)號。特定來說,在縮小之前,差值閾值單元40選擇由內(nèi)插選擇單元48針對可應(yīng)用的視頻塊識別的方程標(biāo)號。在某些實施例中,閾值設(shè)定的過程可為迭代過程。舉例來說,可能有產(chǎn)生超過應(yīng)用閾值的多余數(shù)目的視頻塊的幀。在這些情況下,閾值設(shè)定起初可能會導(dǎo)致不充分的帶寬節(jié)省。為此原因,差值閾值單元40可經(jīng)配置以在縮小的經(jīng)閾值設(shè)定的差值圖過大時調(diào)節(jié)閾值。
舉例而言,差值閾值單元40可經(jīng)配置以在差值閾值設(shè)定過程的第一次迭代之后計算在方程標(biāo)號上花費的字節(jié)總數(shù)。如果字節(jié)總數(shù)超過預(yù)定的速率約束R,那么差值閾值單元40便增加第一次迭代中使用的閾值,且使用新計算出的閾值來重復(fù)閾值設(shè)定過程。
需要時,可在迭代的基礎(chǔ)上繼續(xù)進行閾值設(shè)定過程(這一過程會受到迭代限制),直到在方程標(biāo)號上花費的字節(jié)總數(shù)小于或等于速率約束R為止。在完成閾值設(shè)定過程后,差值閾值單元40停止,并將方程標(biāo)號圖傳遞到幀匯編單元42。幀匯編單元42以光柵掃描次序?qū)⒎匠虡?biāo)號打包以用于包括在嵌入P幀50中的S幀信息18(圖5)中。
通過將差值閾值技術(shù)應(yīng)用于標(biāo)準(zhǔn)的Carphone視頻序列中的第12個幀,可獲得大小為81個字節(jié)的方程標(biāo)號圖包。舉例來說,使用方程標(biāo)號圖在解碼器側(cè)獲得的內(nèi)插幀展示出31.72 dB的PSNR,這比300字節(jié)方程圖的情況小0.2 dB,但看起來不會呈現(xiàn)出明顯的視覺差異。
盡管使用標(biāo)準(zhǔn)的視頻codec(即,沒有跳幀)以10fps對整個Carphone序列進行編碼會提供略高的PSNR(32.1 dB),但個別的幀仍傾向于顯示出某些假象。在沒有跳幀的情況下,在10fps下的Carphone序列中的第12個幀上花費的總字節(jié)為538字節(jié)。相比而言,在使用本文所述的編碼器輔助式自適應(yīng)內(nèi)插的情況下,在相同的幀上花費的總字節(jié)為150字節(jié),其包括用于運動向量的70個字節(jié)和用于經(jīng)閾值設(shè)定的差值方程標(biāo)號圖的80個字節(jié)。
圖7是說明用于圖1中所示的視頻解碼器14中的輔助式內(nèi)插解碼器24的方框圖。如圖7中所示,輔助式內(nèi)插解碼器24包括經(jīng)操作以產(chǎn)生經(jīng)內(nèi)插的S幀72的內(nèi)插單元68和內(nèi)插方程選擇單元70。內(nèi)插單元68接收運動向量和SAD旗標(biāo)形式的S幀信息。內(nèi)插選擇單元70接收方程標(biāo)號圖形式的S幀信息。通過使用方程標(biāo)號圖,內(nèi)插選擇單元70識別將由內(nèi)插單元68使用以用于內(nèi)插幀或幀中的個別視頻塊的特定內(nèi)插方程。
如上所述,方程標(biāo)號圖可能經(jīng)過差值閾值設(shè)定。在這種情況下,內(nèi)插選擇單元70可僅針對幀中的視頻塊的子集識別內(nèi)插方程。內(nèi)插單元68應(yīng)用運動向量、SAD旗標(biāo)和由內(nèi)插選擇單元70識別的內(nèi)插方程來產(chǎn)生經(jīng)內(nèi)插的視頻塊。對于未在方程標(biāo)號圖中識別的視頻塊,內(nèi)插單元68應(yīng)用標(biāo)準(zhǔn)的內(nèi)插方程,而不是特別選定的內(nèi)插方程。在任一情況下,結(jié)果均為經(jīng)內(nèi)插的S幀72。
圖8是說明用于產(chǎn)生用于輔助解碼器14內(nèi)插跳過的幀的信息的技術(shù)的流程圖。一般來說,由編碼器12執(zhí)行圖8中說明的技術(shù)來產(chǎn)生S幀信息以用于通過解碼器14對S幀進行編碼器輔助式自適應(yīng)內(nèi)插。如圖8中所示,如果將處理的下一幀不是S幀(74),那么編碼器12對P幀進行編碼(76)。然而,當(dāng)將編碼的下一幀是S幀時(74),編碼器12產(chǎn)生S幀信息。特定來說,S幀分析單元38的運動計算單元44獲得前一P幀(F1)與S幀(F2)中相應(yīng)的視頻塊之間的前向(FW)運動向量mv12(78),且使用FW運動向量形成臨時的S幀(79)。通過使用臨時的S幀和下一P幀(F3),運動計算單元44產(chǎn)生后向(BW)運動向量m23(80)。通過BW運動向量m23并加上預(yù)測誤差,預(yù)測下一P幀。接著,使用mv12內(nèi)插S幀、使用mv23內(nèi)插前一P幀F(xiàn)1,和后續(xù)的P幀F(xiàn)3。
內(nèi)插選擇單元48接著使用FW和BW運動向量為幀中的個別視頻塊測試多個不同的內(nèi)插方程(81)。基于內(nèi)插方程的結(jié)果,內(nèi)插選擇單元48選擇最佳的內(nèi)插方程(82),并將方程標(biāo)號指派給各個視頻塊(84)?!白罴训摹眱?nèi)插方程是在所測試的若干內(nèi)插方程中產(chǎn)生最準(zhǔn)確的內(nèi)插結(jié)果的特定方程。方程標(biāo)號用于識別應(yīng)由解碼器14用以內(nèi)插關(guān)聯(lián)的視頻塊的特定內(nèi)插方程。
繼續(xù)針對S幀中的所有塊用迭代的方式執(zhí)行所述過程(86、88),直到到達塊的末尾為止?;蛘撸谀承嵤├?,可在方程測試之前應(yīng)用差值閾值設(shè)定以將塊的子集識別為用于編碼器輔助式內(nèi)插的候選者。
一旦已處理完所有塊,內(nèi)插選擇單元48便傳遞方程標(biāo)號圖以對S幀進行編碼(90),例如作為專用的S幀或作為與之前的或后續(xù)的P幀嵌入在一起的S幀信息。FW運動向量以及SAD旗標(biāo)也包括在S幀信息中。然而,BW運動向量通常不包括在S幀信息中,因為可從跟隨S幀之后的下一P幀在解碼器側(cè)獲得BW運動向量。同樣,方程標(biāo)號圖可由差值閾值單元40處理,以減小方程標(biāo)號圖所需的字節(jié)總數(shù)。在匯編完S幀信息后,過程進行到下一幀(92)。
圖9是說明應(yīng)用由編碼器12提供的信息以用于在解碼器14處內(nèi)插跳過的幀的流程圖。如圖9中所示,如果將被解碼的引入幀不是S幀(94),那么使用普通的解碼過程將其解碼為P幀(96)。然而,如果引入的幀是S幀(94),那么解碼器14從經(jīng)編碼的視頻信息中提供的S幀信息中獲得FW運動向量(98),且使用下一P幀獲得BW運動向量(99)。特定來說,根據(jù)對跟隨S幀之后的P幀估計的運動向量來獲得BW運動向量。盡管可通過改變參考幀來對S幀估計BW運動向量,但發(fā)送BW運動向量的成本較高。出于此原因,需要使用從下一P幀獲得的BW運動向量mv23的負(fù)版本。
解碼器14接著確定S幀信息是否包括用于每一視頻塊的方程標(biāo)號(100)。如果沒有用于視頻塊的方程標(biāo)號(100),那么解碼器14應(yīng)用默認(rèn)的內(nèi)插方程(102)來內(nèi)插視頻塊。然而,如果S幀信息包括用于視頻幀的方程標(biāo)號,那么解碼器14便選擇由方程標(biāo)號識別的內(nèi)插方程(104)。解碼器14接著通過使用FW和BW運動向量和選定的內(nèi)插方程來進行內(nèi)插以產(chǎn)生塊(106)。所示過程以迭代的方式繼續(xù)下去(108、110),直到到達S幀中的塊的末尾為止?;诮?jīng)解碼的塊,解碼器14產(chǎn)生經(jīng)解碼的S幀(112),且前進到下一幀(114)。
圖10是說明用于如上文所述產(chǎn)生輔助解碼器12內(nèi)插跳過的幀的信息的帶寬節(jié)省技術(shù)的流程圖。如圖10中所示,不同的閾值單元40接收用于S幀中的塊的BW和FW運動向量。同樣,BW運動向量用于針對跟隨S幀之后的幀的后向運動補償,而FW運動向量用于針對在S幀之前的幀的前向運動補償。差值閾值單元40向BW與FW運動補償幀之間的差值應(yīng)用差值閾值(122),以產(chǎn)生經(jīng)閾值設(shè)定的差值圖,DMAP。在有些實施例中,經(jīng)閾值設(shè)定的差值圖DMAP可以視頻塊大小為因數(shù)來縮小(124),以產(chǎn)生縮小的圖DMAP_DS。
一旦獲得縮小的經(jīng)閾值設(shè)定的差值圖DMAP_DS,差值閾值單元40便起始迭代過程以將方程標(biāo)號消耗的字節(jié)數(shù)減少到可接受的水平。如圖10中所示,差值閾值單元40首先計算用于方程標(biāo)號的字節(jié)總數(shù)(126)。如果字節(jié)總數(shù)小于速率限制R(128),那么指派方程標(biāo)號(130),并將所得的方程標(biāo)號圖連同例如運動向量和SAD旗標(biāo)等的其它S幀信息一起傳遞到幀匯編單元42。
然而,如果方程標(biāo)號消耗的字節(jié)總數(shù)大于速率限制R(128),且迭代的數(shù)目尚未超過可應(yīng)用的迭代限制(132),那么差值閾值單元40便增加差值閾值(134),且重復(fù)差值閾值設(shè)定過程。迭代繼續(xù)下去,直到字節(jié)總數(shù)小于或等于速率限制R(128),或已超過所允許的迭代數(shù)目(132)為止。在任一情況下,差值閾值單元40接著將方程標(biāo)號指派給選定的塊,且將結(jié)果傳遞到幀匯編單元42以用于編碼。
在本發(fā)明描述的技術(shù)中,針對S幀中的塊執(zhí)行運動估計,且基于內(nèi)插結(jié)果的誤差為每一塊選擇最佳的內(nèi)插方程。根據(jù)此技術(shù),不需要例如雙向運動估計的更復(fù)雜的運動估計算法。另外,不需要發(fā)送多組運動向量或剩余誤差。在差值閾值設(shè)定方面,所揭示的技術(shù)可允許低達2×2像素的較小的塊大小,而不需要附加的額外開銷,因為即使可針對16×16塊執(zhí)行運動估計,也可在需要時針對2×2塊發(fā)送方程標(biāo)號。
一般來說,本發(fā)明中描述的編碼器輔助式自適應(yīng)內(nèi)插技術(shù)針對S幀提供例如方程標(biāo)號圖、運動向量和SAD旗標(biāo)等的有效輔助信息,以輔助在解碼器處的內(nèi)插。在有些實施例中,所述技術(shù)允許以減少與方程信息相關(guān)聯(lián)的額外開銷成本的方式來設(shè)定方程標(biāo)號圖。為發(fā)送方程標(biāo)號圖,提出一種減少此附加信息的額外開銷成本的方法。可以想象的是,本文描述的技術(shù)可支持用于新興ITU H.264標(biāo)準(zhǔn)的B幀模式。此外,所述技術(shù)可不僅用于統(tǒng)一取樣的跳幀,而且可用于非統(tǒng)一的跳幀。另外,所述技術(shù)不僅可用于幀速率上轉(zhuǎn)換應(yīng)用,而且可用于速率控制用的跳幀。
本文所描述的技術(shù)可以硬件、軟件、固件或其任何組合來實施。如果是以軟件實施,那么所述技術(shù)可部分地通過包含程序代碼的計算機可讀媒體來實現(xiàn),所述程序代碼含有在執(zhí)行時執(zhí)行上文所述的方法中的一種或一種以上方法的指令。在這種情況下,計算機可讀媒體可包含例如同步動態(tài)隨機存取存儲器(SDRAM)的隨機存取存儲器(RAM)、只讀存儲器(ROM)、非易失性隨機存取存儲器(NVRAM)、電可擦除可編程只讀存儲器(EEPROM)、快閃存儲器、磁性或光學(xué)數(shù)據(jù)存儲媒體等類似物。
可通過一個或一個以上處理器來執(zhí)行所述程序代碼,所述處理器例如為一個或一個以上數(shù)字信號處理器(DSP)、通用微處理器、特殊應(yīng)用集成電路(ASIC)、場可編程邏輯陣列(FPGA)、或其它等效的集成或離散的邏輯電路。在有些實施例中,本文所述的功能性可提供在經(jīng)配置以用于編碼和解碼的專用軟件模塊或硬件單元中,或合并在組合的視頻編碼器-解碼器(CODEC)中。
已描述多種實施例。這些和其它實施例均在所附權(quán)利要求書的范疇內(nèi)。
權(quán)利要求
1.一種視頻編碼方法,包含選擇將為跳過的視頻幀而不是經(jīng)編碼的視頻幀的視頻幀;產(chǎn)生輔助視頻解碼器內(nèi)插所述跳過的視頻幀的信息;和對所述信息進行編碼以供傳輸?shù)剿鲆曨l解碼器。
2.根據(jù)權(quán)利要求1所述的方法,其中所述信息指定將由所述視頻解碼器用以內(nèi)插所述跳過的視頻幀的內(nèi)插方程。
3.根據(jù)權(quán)利要求1所述的方法,其中所述信息指定將由所述視頻解碼器用以內(nèi)插所述跳過的視頻幀中的選定視頻塊的不同的內(nèi)插方程。
4.根據(jù)權(quán)利要求3所述的方法,其中所述選定視頻塊包含實質(zhì)上少于所述跳過的視頻幀中的所有視頻塊的視頻塊,從而減少經(jīng)編碼信息的數(shù)量。
5.根據(jù)權(quán)利要求1所述的方法,其中所述信息包括方程標(biāo)號圖,所述方程標(biāo)號圖指定將由所述視頻解碼器用以內(nèi)插所述跳過的視頻幀中的選定視頻塊的不同的內(nèi)插方程。
6.根據(jù)權(quán)利要求1所述的方法,其進一步包含評估不同內(nèi)插方程用于所述視頻幀中的視頻塊的結(jié)果,其中產(chǎn)生信息包括基于所述結(jié)果產(chǎn)生以下信息其指定將由所述視頻解碼器用以內(nèi)插所述跳過的視頻幀中的選定視頻塊的特定內(nèi)插方程。
7.根據(jù)權(quán)利要求1所述的方法,其進一步包含確定所述跳過的視頻幀中的視頻塊與后續(xù)的視頻幀中的相應(yīng)視頻塊之間的差值;和識別產(chǎn)生超過閾值的差值的視頻塊,其中產(chǎn)生信息包括產(chǎn)生以下信息其指定將由所述視頻解碼器用以內(nèi)插所述跳過的視頻幀中的經(jīng)識別視頻塊的特定內(nèi)插方程。
8.根據(jù)權(quán)利要求1所述的方法,其中所述信息包括表示所述跳過的幀與先前的幀之間的運動的運動向量。
9.根據(jù)權(quán)利要求1所述的方法,其中所述信息包括差值旗標(biāo),所述差值旗標(biāo)指示所述跳過的幀、先前的幀以及后續(xù)的幀之間的差值。
10.根據(jù)權(quán)利要求9所述的方法,其中所述差值旗標(biāo)包括絕對差值和(SAD)旗標(biāo)以及指示相鄰塊中的相對SAD值的方向性旗標(biāo)。
11.根據(jù)權(quán)利要求1所述的方法,其進一步包含將所述信息編碼在未跳過的視頻幀中。
12.一種視頻解碼方法,其包含接收輔助內(nèi)插有意跳過的視頻幀的信息,其中所述信息被編碼在視頻幀中;和應(yīng)用所述信息來內(nèi)插所述跳過的視頻幀。
13.根據(jù)權(quán)利要求12所述的方法,其中所述信息指定將用以內(nèi)插所述有意跳過的視頻幀的內(nèi)插方程,所述方法進一步包含應(yīng)用所述指定的內(nèi)插方程來內(nèi)插所述有意跳過的視頻幀。
14.根據(jù)權(quán)利要求12所述的方法,其中所述信息指定將用以內(nèi)插所述有意跳過的視頻幀中的選定視頻塊的不同的內(nèi)插方程,所述方法進一步包含應(yīng)用所述指定的內(nèi)插方程來內(nèi)插所述有意跳過的視頻幀中的所述選定視頻塊。
15.根據(jù)權(quán)利要求14所述的方法,其中所述選定視頻塊包含實質(zhì)上少于所述有意跳過的視頻幀中的所有視頻塊的視頻塊,從而減少所述信息的數(shù)量。
16.根據(jù)權(quán)利要求12所述的方法,其中所述信息包括方程標(biāo)號圖,所述方程標(biāo)號圖指定將用以內(nèi)插所述有意跳過的視頻幀中的選定視頻塊的不同的內(nèi)插方程,所述方法進一步包含應(yīng)用所述指定的內(nèi)插方程來內(nèi)插所述有意跳過的視頻幀中的所述選定視頻塊。
17.根據(jù)權(quán)利要求12所述的方法,其中所述信息指定將用以內(nèi)插所述有意跳過的視頻幀中的選定視頻塊的內(nèi)插方程,且其中所述有意跳過的視頻幀中的所述選定視頻塊與后續(xù)的視頻幀中的相應(yīng)視頻塊之間的差值超過閾值。
18.根據(jù)權(quán)利要求12所述的方法,其中所述信息包括表示所述有意跳過的視頻幀、先前的幀與后續(xù)的幀之間的運動的運動向量,所述方法進一步包含應(yīng)用所述運動向量來內(nèi)插所述有意跳過的視頻幀。
19.根據(jù)權(quán)利要求12所述的方法,其中所述信息包括指示所述有意跳過的視頻幀、先前的幀與后續(xù)的幀之間的差值的差值旗標(biāo),所述方法進一步包含應(yīng)用所述差值旗標(biāo)來內(nèi)插所述有意跳過的視頻幀。
20.根據(jù)權(quán)利要求19所述的方法,其中所述差值旗標(biāo)包括絕對差值和(SAD)旗標(biāo)以及指示相鄰塊中的相對SAD值的方向性旗標(biāo)。
21.一種視頻編碼器,其包含分析單元,其分析有意跳過的視頻幀,并產(chǎn)生輔助視頻解碼器內(nèi)插所述有意跳過的視頻幀的信息;和匯編單元,其將所述信息編碼在視頻幀中以供傳輸?shù)剿鲆曨l解碼器。
22.根據(jù)權(quán)利要求21所述的視頻編碼器,其中所述信息指定將由所述視頻解碼器用以內(nèi)插所述有意跳過的視頻幀的內(nèi)插方程。
23.根據(jù)權(quán)利要求21所述的視頻編碼器,其中所述信息指定將由所述視頻解碼器用以內(nèi)插所述有意跳過的視頻幀中的選定視頻塊的不同的內(nèi)插方程。
24.根據(jù)權(quán)利要求23所述的視頻編碼器,其中所述選定視頻塊包含實質(zhì)上少于所述有意跳過的視頻幀中的所有視頻塊的視頻塊,從而減少所述經(jīng)編碼信息的數(shù)量。
25.根據(jù)權(quán)利要求21所述的視頻編碼器,其中所述信息包括方程標(biāo)號圖,所述方程標(biāo)號圖指定將由所述視頻解碼器用以內(nèi)插所述有意跳過的視頻幀中的選定視頻塊的不同的內(nèi)插方程。
26.根據(jù)權(quán)利要求21所述的視頻編碼器,其中所述分析單元評估不同內(nèi)插方程用于所述視頻幀中的視頻塊的結(jié)果,且基于所述結(jié)果產(chǎn)生以下信息其指定將由所述視頻解碼器用以內(nèi)插所述跳過的視頻幀中的選定視頻塊的特定內(nèi)插方程。
27.根據(jù)權(quán)利要求21所述的視頻編碼器,其中所述分析單元確定所述有意跳過的視頻幀中的視頻塊與后續(xù)的視頻幀中的相應(yīng)視頻塊之間的差值。識別產(chǎn)生超過閾值的差值的視頻塊;和產(chǎn)生包括以下內(nèi)容的信息指定將由所述視頻解碼器用以內(nèi)插所述有意跳過的視頻幀中的經(jīng)識別的視頻塊的特定內(nèi)插方程。
28.根據(jù)權(quán)利要求21所述的視頻編碼器,其中所述信息包括表示所述有意跳過的視頻幀、先前的幀與后續(xù)的幀之間的運動的運動向量。
29.根據(jù)權(quán)利要求21所述的視頻編碼器,其中所述信息包括指示所述有意跳過的視頻幀、先前的幀與后續(xù)的幀之間的差值的差值旗標(biāo)。
30.根據(jù)權(quán)利要求29所述的視頻編碼器,其中所述差值旗標(biāo)包括絕對差值和(SAD)旗標(biāo)以及指示相鄰塊中的相對SAD值的方向性旗標(biāo)。
31.一種包含內(nèi)插單元的視頻解碼器,其接收輔助內(nèi)插有意跳過的視頻幀的信息,其中所述信息被編碼在視頻幀中,且應(yīng)用所述信息以內(nèi)插所述有意跳過的視頻幀。
32.根據(jù)權(quán)利要求28所述的視頻解碼器,其中所述信息指定將用以內(nèi)插所述有意跳過的視頻幀的內(nèi)插方程。
33.根據(jù)權(quán)利要求28所述的視頻解碼器,其中所述信息指定將用以內(nèi)插所述有意跳過的視頻幀中的選定視頻塊的不同的內(nèi)插方程。
34.根據(jù)權(quán)利要求33所述的視頻解碼器,其中所述選定的視頻塊包含實質(zhì)上少于所述有意跳過的視頻幀中的所有視頻塊的視頻塊,從而減少所述信息的數(shù)量。
35.根據(jù)權(quán)利要求31所述的視頻解碼器,其中所述信息包括方程標(biāo)號圖,所述方程標(biāo)號圖指定將用以內(nèi)插所述有意跳過的視頻幀中的選定視頻塊的不同的內(nèi)插方程。
36.根據(jù)權(quán)利要求31所述的視頻解碼器,其中所述信息指定將用以內(nèi)插所述有意跳過的視頻幀中的選定視頻塊的內(nèi)插方程,且其中所述有意跳過的視頻幀中的所述選定視頻塊與后續(xù)的視頻幀中的相應(yīng)視頻塊之間的差值超過閾值。
37.根據(jù)權(quán)利要求31所述的視頻解碼器,其中所述信息包括表示所述有意跳過的視頻幀、先前的幀與后續(xù)的幀之間的運動的運動向量。
38.根據(jù)權(quán)利要求31所述的視頻解碼器,其中所述信息包括指示所述有意跳過的視頻幀、先前的幀與后續(xù)的幀之間的差值的差值旗標(biāo)。
39.根據(jù)權(quán)利要求38所述的視頻解碼器,其中所述差值旗標(biāo)包括絕對差值和(SAD)旗標(biāo)以及指示相鄰塊中的相對SAD值的方向性旗標(biāo)。
全文摘要
本發(fā)明針對用于對視頻幀進行編碼器輔助式自適應(yīng)內(nèi)插的技術(shù)。根據(jù)所揭示的技術(shù),編碼器產(chǎn)生輔助解碼器內(nèi)插跳過的視頻幀(即S幀)的信息。所述信息允許所述解碼器減少內(nèi)插幀中的視覺假象,且進而實現(xiàn)改進的視覺質(zhì)量。所述信息可包括內(nèi)插方程標(biāo)號,所述內(nèi)插方程標(biāo)號針對個別視頻塊識別將由解碼器使用的選定的內(nèi)插方程。視情況而定,為節(jié)省帶寬,可僅針對符合用于編碼器輔助式內(nèi)插的標(biāo)準(zhǔn)的選定視頻塊傳輸所述方程標(biāo)號。可根據(jù)默認(rèn)內(nèi)插技術(shù)來內(nèi)插不具有方程標(biāo)號的其它視頻塊。
文檔編號H04N7/46GK101044763SQ200580035535
公開日2007年9月26日 申請日期2005年8月18日 優(yōu)先權(quán)日2004年8月18日
發(fā)明者格克切·戴恩, 哈立德·希勒米·厄勒-馬列, 李彥輯 申請人:高通股份有限公司