欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

插值圖像內(nèi)存組織、分?jǐn)?shù)像素生成及預(yù)測誤差指標(biāo)計算方法

文檔序號:7597272閱讀:176來源:國知局

專利名稱::插值圖像內(nèi)存組織、分?jǐn)?shù)像素生成及預(yù)測誤差指標(biāo)計算方法
技術(shù)領(lǐng)域
:本發(fā)明涉及視頻壓縮編碼中的分?jǐn)?shù)像素精度運動預(yù)測算法,更具體地說,涉及一種視頻壓縮編碼中用于分?jǐn)?shù)像素精度運動預(yù)測的插值圖像內(nèi)存組織方法、基于該插值圖像內(nèi)存組織方法生成4倍插值圖像的各分?jǐn)?shù)像素的方法、以及基于這兩種方法快速計算預(yù)測誤差指標(biāo)SAD的方法。
背景技術(shù)
:目前在業(yè)界應(yīng)用中居于主流的視頻壓縮編碼標(biāo)準(zhǔn)中,不論是國際上的H.263、H.263+、H.264、以及MPEG-4,還是國內(nèi)的AVS(AdvancedAudio-VideoSystem,我國的先進(jìn)音頻視頻編碼系統(tǒng))都基于一個共同的框架,即圖像分塊+運動預(yù)測+殘差圖像DCT變換(也稱整數(shù)變換、Hadarmard變換)+量化+熵編碼。其中,利用運動圖像前后幀之間的相關(guān)性,通過前幀中的區(qū)域來預(yù)測經(jīng)過運動后的后幀中的對應(yīng)區(qū)域,從而獲得殘差圖像并進(jìn)行量化和熵編碼,充分利用了運動圖像幀之間的統(tǒng)計相關(guān)性來消除冗余,達(dá)到數(shù)據(jù)壓縮的目的。因此,運動預(yù)測是這類基于共同框架的視頻壓縮編碼標(biāo)準(zhǔn)的核心部分,是影響整體壓縮效率的最主要的因素。運動預(yù)測的一般過程是這樣的對于當(dāng)前視頻幀中某個給定區(qū)域(如MB),在參考幀(前一幀,或者多參考幀情況下的前k幀)中搜索基于某種誤差準(zhǔn)則最優(yōu)的匹配區(qū)域。被預(yù)測區(qū)域相對于參考區(qū)域幾何位置的變化,可以用一個二維矢量來表示,該矢量叫做運動矢量或者位移矢量。這個基于某種特定誤差準(zhǔn)則搜索最優(yōu)運動矢量的過程叫做運動估計,是整個運動預(yù)測的一部分。運動預(yù)測的效率取決于被預(yù)測區(qū)域和預(yù)測區(qū)域之間的殘差圖像,殘差越小,效率越高。進(jìn)一步,運動預(yù)測的效率實際上決定于運動估計的精度,而預(yù)測精度又直接依賴于運動矢量。數(shù)字視頻中的圖像都是模擬視頻在時間和空間上進(jìn)行離散采樣并數(shù)字化的結(jié)果,在時間上采樣形成離散的各個幀,在空間上采樣形成幀中的各個像素。在一個幀中,像素是對于空間連續(xù)的模擬圖像按照一定的采樣間隔采樣得到的。因此兩個相鄰的像素之間的距離就是采樣間隔。為了更加精確表示運動矢量,需要引入分?jǐn)?shù)采樣位置(FractionalSamplePosition)運動預(yù)測的概念。采用分?jǐn)?shù)采樣位置,可以設(shè)想在兩個相鄰整數(shù)像素之間有分?jǐn)?shù)位置像素,比如1/2像素(距離整數(shù)像素距離為1/2個采樣間隔),1/4像素(距離整數(shù)像素距離為1/4個采樣間隔),1/8像素(距離整數(shù)像素距離為1/8個采樣間隔)等。事實證明,采用了分?jǐn)?shù)采樣位置運動預(yù)測后,視頻壓縮編碼效率能夠提高很多,比如采用1/4像素精度運動預(yù)測后,一般壓縮視頻的PSNR(PeakSignaltoNoiseRatio,峰值信噪比)可以提高2dB。目前,H.263、H.263+采用的是1/2像素精度運動預(yù)測,H.264采用的是1/4像素精度運動預(yù)測,國內(nèi)的AVS采用的是1/4像素精度運動預(yù)測。分?jǐn)?shù)采樣位置運動預(yù)測的一般過程是首先采用一定的整數(shù)像素運動估計算法,比如全搜索、3步法、新3步法、4步法等,獲得最優(yōu)的整數(shù)像素運動矢量;然后再在這個整數(shù)像素運動矢量位置周圍進(jìn)行1/2像素運動估計,找到最優(yōu)的1/2像素運動矢量位置;如果需要進(jìn)行1/4像素運動估計,則以這個最優(yōu)1/2像素位置為中心,在周圍進(jìn)行1/4像素運動估計;同樣,在獲取最優(yōu)1/4像素運動矢量位置后,可以進(jìn)行1/8像素運動估計。以H.264/AVC中規(guī)定的1/4像素精度運動預(yù)測標(biāo)準(zhǔn)實現(xiàn)方法為例,如圖1所示,圖中有陰影的圓為當(dāng)前宏塊位置、無陰影的圓為整數(shù)像素位置、三角形為1/2像素位置、小黑點為1/4像素位置,圖中的箭頭表示進(jìn)行運動搜索時候搜索的路徑方向。運動矢量是當(dāng)前宏塊相對于其參考宏塊在x、y兩個方向上位置的差值組成的矢量比如[2,-3]等;在H.264/AVC標(biāo)準(zhǔn)中,1/4像素精度運動預(yù)測的搜索過程可以分為三個步驟1)采用某種運動估計方法,找出整數(shù)像素最佳匹配位置;2)從整數(shù)像素最佳匹配位置及其周圍的8個1/2像素位置中找出1/2像素最佳匹配位置;3)從1/2像素最佳匹配位置及其周圍的8個1/4像素位置中找出1/4像素最佳匹配位置。上述過程中,整數(shù)像素位置的匹配搜索是以前面某一幀的本地解碼重建圖像為參考圖像的。而1/2像素位置和1/4像素位置的匹配搜索則要以本地解碼重建圖像插值后的圖像為參考圖像,這個參考圖像的寬和高都4倍于原圖像。4倍參考圖像的結(jié)構(gòu)如圖2所示。其中的像素分成以下幾類1)整數(shù)像素行、列坐標(biāo)都是采樣間隔整數(shù)倍的那些像素,如圖2中的有陰影的圓圈像素A、B、C、D、E、F、G、H、I、J、K、L等等。2)1/2像素即行、列坐標(biāo)中至少有一個具有(k+1/2)d或者(k-1/2)d的形式,但是行、列坐標(biāo)都不具有(k+1/4)d或者(k-1/4)d形式的那些像素,其中k為整數(shù),d為采樣間隔。如圖2中所示,其中的各個1/2像素又分成兩個子類A、全1/2像素即行、列坐標(biāo)都具有(k+1/2)d或者(k-1/2)d的形式,如像素j、gg、hh等等。B、半1/2像素即行,列坐標(biāo)中只有一個具有(k+1/2)d或者(k-1/2)d的形式,例如像素b、h、m、s、aa、bb、cc、dd、ee、ff等等。3)1/4像素即行、列坐標(biāo)中至少有一個具有(k+1/4)d或者(k-1/4)d的形式的那些像素,其中k為整數(shù),d為采樣間隔。如圖2中無陰影的圓圈像素a、c、d、e、f、g、i、k等等。4倍參考圖像的生成是采用一個多階段插值過程完成的。分為如下步驟1)由整數(shù)像素通過插值生成1/2像素,其中采用的插值濾波器是一個6階的FIR(FiniteImpulseResponse有限沖擊響應(yīng))濾波器,其權(quán)向量是w=[1,-5,20,20,-5,1]T。過程如下A、由整數(shù)像素通過插值產(chǎn)生半1/2像素,以像素b、h為例b1=(E-5*F+20*G+20*H-5*I+J),生成中間值b1,b=Clip((b1+16)>>5),偏移,規(guī)一化,剪切。其中,偏移是加上一個數(shù)(偏移量,可正可負(fù));規(guī)一化指對于一個變量除以一個正數(shù),使得在該變量取值范圍內(nèi),商的絕對值始終不大于1;剪切表示對于超過某個范圍的變量,強(qiáng)制其值在這個范圍內(nèi)。比如變量x的范圍是,當(dāng)x=20時,超出了該范圍,則x將被剪切到x=18。因為濾波器各權(quán)值的絕對值之和為32,因此歸一化就是除以32,用右移5位操作實現(xiàn)。剪切函數(shù)Clip把不在范圍內(nèi)的數(shù)值通過剪切調(diào)整到范圍內(nèi)。同樣道理,可以求得hh1=(A-5*C+20*G+20*M-5*R+T)h=Clip((h1+16)>>5)B、由半1/2像素通過插值產(chǎn)生全1/2像素。插值所用的濾波器仍然是上面的6階FIR濾波器。以像素j為例j1=(bb-5gg+20*h1+20*m1-5*kk+cc),生成中間值j1j=Clip((j1+512)>>10)經(jīng)過以上兩個子步驟,所有1/2像素都生成了。2)由整數(shù)像素和1/2像素通過插值生成1/4像素。1/4像素都是位于兩個整數(shù)像素或者1/2像素之間的(水平方向、垂直方向、對角線方向),因此可采用對于臨近的兩個整數(shù)像素或者1/2像素進(jìn)行算術(shù)平均的方法求得。具體計算公式如下a=(D+b+1)>>1c=(E+b+1)>>1d=(D+h+1)>>1n=(H+h+1)>>1以上為水平方向求均值。對于對角線方向求均值的情況,計算方式如下e=(b+h+1)>>1g=(b+m+1)>>1現(xiàn)有技術(shù)中,4倍插值圖像在內(nèi)存中的存放是按照自然順序連續(xù)方式進(jìn)行的,即按照圖2所示模式存放。然而,將4倍插值圖像按照自然順序存放并不是最合理的模式。在插值生成4倍圖像的過程中,首先生成的是整數(shù)像素(已經(jīng)存在),然后生成1/2像素,最后生成1/4像素。在生成1/2像素過程中,如果采用基于SIMD(SingleInstructionMultipleData,單指令多數(shù)據(jù))的DSP(DigitalSignalProcessor,數(shù)字信號處理芯片)加速處理技術(shù),SIMD指令需要整塊讀取整數(shù)像素;同樣在生成1/4像素過程中,需要整塊讀取1/2像素和整數(shù)像素。按照這樣的自然順序組織圖像內(nèi)存,無法做到整塊讀取各類像素,因為目前的存儲方法是按照自然順序,對于像素不分類。比如從4倍插值圖像左上角像素開始,依次存儲起來。這樣的順序中就是整、1/4、1/2、1/4、整、1/4、1/2、1/4、……,第一行結(jié)束后,進(jìn)入第二行,重復(fù)這個順序,直到最后一行。這樣的話,在任何一個內(nèi)存區(qū)域中,像素都不是按照類連續(xù)排列的。比如任何兩個整數(shù)像素不連續(xù)出現(xiàn),任何兩個1/2像素不連續(xù)出現(xiàn)。更不用說一整塊同類像素了。因此如果要讀取所有整像素,就必須在內(nèi)存中按照一定間隔(每隔3個數(shù))讀取,效率很低。另外,在4倍插值圖像生成之后進(jìn)行運動估計的過程中,在整數(shù)像素精度運動預(yù)測時,只需要把被預(yù)測宏塊和4倍圖像中的整數(shù)位置子集進(jìn)行比較,求SAD(SummedAbsoluteDifference,絕對差和)。同樣,進(jìn)行1/2像素精度運動預(yù)測時,只需要和4倍插值圖像中的1/2位置子集的部分進(jìn)行比較;1/4像素精度運動預(yù)測需要比較的只是1/4位置子集的部分。因此如果采用SIMD類DSP加速技術(shù),每次比較計算SAD,都只需要整塊讀取某一類具有共同屬性的像素。但是在圖像的自然順序內(nèi)存組織中,這些具有共同屬性的像素不是連續(xù)存放的,不便于整塊讀取。
發(fā)明內(nèi)容針對現(xiàn)有技術(shù)的上述缺陷,本發(fā)明要解決現(xiàn)有視頻壓縮編碼技術(shù)中因插值圖像在內(nèi)存中按照自然順序存放而引起的無法做到整塊讀取各類像素等問題,提供一種新的圖像內(nèi)存組織方法,使得1/2像素和1/4像素精度運動預(yù)測能夠充分利用SIMD類DSP加速算法,以提高計算效率。為解決上述技術(shù)問題,本發(fā)明提供一種用于分?jǐn)?shù)像素精度運動預(yù)測的插值圖像內(nèi)存組織方法,在進(jìn)行1/2n像素精度運動預(yù)測時(其中n為自然數(shù)),按以下步驟組織插值圖像的內(nèi)存(1)根據(jù)要生成的2n倍插值圖像,將其中的像素分成整數(shù)位置子集、1/21位置子集、1/22位置子集、…、以及1/2n位置子集,所述各個子集中分別包含全體整數(shù)像素、全體1/2像素、全體1/4像素、…、以及全體1/2n像素;(2)以所述整數(shù)位置子集中的全體整數(shù)像素形成一個與原始圖像尺寸相同的整像素子圖像;按各個1/2像素與相鄰整數(shù)像素之間的垂直、水平、以及對角位置關(guān)系進(jìn)行分類,將所述1/2位置子集中的全體1/2像素進(jìn)一步分成3個更小的子集,一一對應(yīng)地構(gòu)成3個與原始圖像尺寸相同的1/2像素子圖像;按各個1/4像素與相鄰的整數(shù)像素及1/2像素之間的垂直、水平、以及對角位置關(guān)系和距離關(guān)系進(jìn)行分類,將所述1/4位置子集中的全體1/4像素進(jìn)一步分成12個更小的子集,一一對應(yīng)地構(gòu)成12個與原始圖像尺寸相同的1/4像素子圖像;依此類推,按各個1/2n像素與相鄰的整數(shù)像素、1/2像素、1/4像素、…、1/2(n-1)像素之間的垂直、水平、以及對角位置關(guān)系和距離關(guān)系進(jìn)行分類,將所述1/2n子集中的全體1/2n像素進(jìn)一步分成(22n-22(n-1))個更小的子集,一一對應(yīng)地構(gòu)成(22n-22(n-1))個與原始圖像尺寸相同的1/2n像素子圖像;(3)將所述各個子圖像形成一個連續(xù)內(nèi)存區(qū)域存儲到存儲器中;(4)除了整像素子圖像外,對已存儲的所述各個子圖像進(jìn)行零初始化處理。在本發(fā)明所述插值圖像內(nèi)存組織方法的第(3)步中,可按以下三種拼接方法中的任一種將所述各個子圖像形成一個連續(xù)內(nèi)存區(qū)域存儲到存儲器中A、22n×1拼接,即豎條拼接;B、2n×2n拼接,即正方形拼接;C、1×22n拼接,即橫條形拼接。針對1/4像素精度運動預(yù)測,本發(fā)明還提供一種根據(jù)上述插值圖像內(nèi)存組織方法、利用DSP提供的SIMD類加速技術(shù)生成4倍插值圖像的各分?jǐn)?shù)像素的方法,其中包括以下步驟(1)利用整像素子圖像SP0,通過濾波插值生成1/2像素子圖像SP4、SP8。(2)利用1/2像素子圖像SP5,通過濾波插值生成1/2像素子圖像SP12。(3)利用整像素子圖像SP0和1/2像素子圖像SP4、SP8、SP12,通過水平方向濾波插值生成1/4像素子圖像SP1、SP5、SP9、SP13。(4)利用整像素子圖像SP0和1/2像素子圖像SP4、SP8、SP12,通過垂直方向濾波插值生成1/4像素子圖像SP2SP6、SP10、SP14。(5)利用整像素子圖像SP0和1/2像素子圖像SP4、SP8、SP12,通過+45°和-45°對角線方向濾波插值生成1/4像素子圖像SP3、SP7、SP11、SP15。針對1/4像素精度運動預(yù)測,本發(fā)明還提供一種根據(jù)上述生成4倍插值圖像的各分?jǐn)?shù)像素的方法、利用DSP提供的SIMD類加速技術(shù)快速計算預(yù)測誤差指標(biāo)SAD的方法,其中按以下步驟計算當(dāng)前宏塊MB0與運動估計過程中,參考幀中某個位置的參考宏塊MBr之間的預(yù)測誤差指標(biāo)SAD(1)在進(jìn)行整像素精度運動預(yù)測時,根據(jù)MBr的位置,從子圖像SP0中整塊讀取MBr的數(shù)據(jù),然后計算SAD。(2)在進(jìn)行1/2像素精度運動預(yù)測時,根據(jù)MBr的位置,從子圖像SP4、SP8、SP12中的某個整塊讀取MBr的數(shù)據(jù),然后計算SAD。(3)在進(jìn)行1/4像素精度運動預(yù)測時,根據(jù)MBr的位置,從子圖像SP1,SP2,SP3、SP5、SP7、SP7、SP9、SP10、SP11、SP13、SP14、SP15中的某個整塊讀取MBr的數(shù)據(jù),然后計算SAD。本發(fā)明的方法克服了現(xiàn)有4倍插值圖像在內(nèi)存中按照自然順序存放時所帶來的讀取不便的問題。使得1/2像素和1/4像素精度運動預(yù)測能夠充分利用SIMD類DSP加速算法以提高效率。其中,按照屬性將4倍插值圖像中的各個像素分成子集,每種子集再分成若干子圖像,使得每個子圖像能夠在SIMD類指令運算中作為整塊數(shù)據(jù)被讀取。采用本發(fā)明的方法,可以在H.263/H.263+、H.264、MPEG-4等國際標(biāo)準(zhǔn)和AVS1.0國家標(biāo)準(zhǔn)中,對于1/2像素和1/4像素精度運動預(yù)測過程中的插值生成4倍插值圖像運算和運動估計運算,能進(jìn)行有效的加速。尤其是借助SIMD類DSP加速機(jī)制的時候。因此,可以在其它條件不變的前提下,提高視頻編碼和解碼的幀率。提高視頻通信類設(shè)備比如視頻會議或者可視電話的性能,或者通過采用處理能力更低的DSP達(dá)到同樣的性能,來降低產(chǎn)品的成本。下面將結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步說明,附圖中圖1是現(xiàn)有H.264/AVC標(biāo)準(zhǔn)中的1/4像素精度運動預(yù)測的搜索過程;圖2是整數(shù)像素、1/2像素和1/4像素在4倍插值圖像中的相對幾何位置關(guān)系;圖3是本發(fā)明中對4倍插值圖像中的各種像素按照屬性進(jìn)行分類和各類的編號;圖4a、圖4b、圖4c分別是原始圖像、傳統(tǒng)存儲方法下的4倍插值圖像、以及本發(fā)明存儲方法下的4倍插值圖像;圖5a、圖5b、圖5c分別本發(fā)明所得4倍插值圖像P4×4中的16個子圖像的拼接存儲方法。具體實施例方式下面將以1/4像素精度運動預(yù)測為例對本發(fā)明進(jìn)行說明。對于1/4像素精度運動預(yù)測,本發(fā)明方法的關(guān)鍵在于一種對于4倍(即寬度和高度都是原來圖像的4倍的插值圖像)插值參考圖像內(nèi)容的重新組織和拼接方法,從而保證其在內(nèi)存中連續(xù)存儲。使用本發(fā)明的方法后,在通過插值形成4倍插值參考圖像以及進(jìn)行1/2像素、1/4像素運動估計時,可以充分利用被相繼訪問的像素數(shù)據(jù)在存儲空間中的鄰近性來顯著提高計算效率。當(dāng)利用DSP提供的SIMD加速功能,如IntelCPU的MMX、SSE等進(jìn)行加速處理時,其性能提升尤其明顯,因為這種數(shù)據(jù)空間鄰近性非常適合SIMD。該方法主要針對H.264/AVC中要求的1/4像素精度運動預(yù)測的高效實現(xiàn),但是其原理完全可以用于H.263/H.263+中的1/2像素精度運動預(yù)測,MPEG-4中的1/4像素精度運動預(yù)測,以及AVS標(biāo)準(zhǔn)中的1/4像素精度運動預(yù)測。其中,根據(jù)將要生成的4倍插值圖像,將其中的像素分成三個子集,如下整數(shù)位置子集SIP={全體整數(shù)像素},在圖3中該子集的像素用實心大園表示;1/2位置子集SHP={全體1/2像素},在圖3中該子集的像素用實心正方形表示;1/4位置子集SQP={全體1/4像素},在圖3中該子集的像素用空心正方形表示。從圖3中的虛線框內(nèi)可以看出,針對右上角的整數(shù)像素A(編號為0),相應(yīng)會有3個1/2像素(編號為4、8、12),并有12個1/4像素(編號為1、2、3、5、6、7、9、10、11、13、14、15)。因此,本發(fā)明中以整數(shù)位置子集SIP中的全體像素作構(gòu)成一個整像素子圖像SP0,該子圖像與原圖像尺寸相同。再按各個1/2像素與相鄰整數(shù)像素之間的垂直、水平、以及對角位置關(guān)系進(jìn)行分類,將1/2位置子集SHP中的全體1/2像素進(jìn)一步分成3個子集,每一個子集構(gòu)成一個與原始圖像尺寸相同的1/2像素子圖像,共構(gòu)成3個1/2像素子圖像SP4、SP8、SP12;再按各個1/4像素與相鄰整數(shù)像素及1/2像素之間的垂直、水平、以及對角位置關(guān)系和距離關(guān)系(對于1/4像素分類要考慮距離)進(jìn)行分類,將1/4位置子集SHP中的全體1/4像素進(jìn)一步分成12個子集,每一個子集構(gòu)成一個與原始圖像尺寸相同的1/4像素子圖像,共構(gòu)成12個1/4像素子圖像SP1、SP2、SP3、SP5、SP6、SP7、SP9、SP10、SP11、SP13、SP14、SP15;因此,4倍插值圖像最終可以表示成P4x4=SP0,SP1,SP4,SP5SP2,SP3,SP6,SP7SP8,SP9,SP12,SP13SP10,SP11,SP14,SP15]]>在上面對于P4×4進(jìn)行按像素分類重新組織之后,生成了16個與原圖像等大小的子圖像。這些子圖像具體在內(nèi)存中的存儲可以有很多方式。最簡單的方法就是把16幅圖像分別單獨存儲,但是,這種存儲方法會導(dǎo)致計算各位置相應(yīng)SAD值時發(fā)生跳躍式讀取數(shù)據(jù),如在1/2像素搜索過程中,計算最佳整數(shù)像素位置正上方的1/2像素位置對應(yīng)的SAD值時,需要從第8幅圖像中讀取數(shù)據(jù),但計算左上方和右上方1/2像素位置對應(yīng)的SAD值時,卻需要從第12幅圖像中讀取數(shù)據(jù),若16幅圖像分別獨立存儲,則第8幅圖像和第12幅圖像在內(nèi)存中的存放位置會相距很遠(yuǎn),在這兩個位置往復(fù)訪問勢必會影響存取速度。因此,更為科學(xué)的方法是拼接存儲,即把16幅圖像拼接成一幅大的圖像存儲在內(nèi)存中。為此,本發(fā)明提出了三種拼接方法,所謂內(nèi)存拼接,主要是用于那些對于內(nèi)存中讀取寫入數(shù)據(jù)有按照2的整數(shù)次方倍數(shù)字節(jié)邊界對次要求的DSP設(shè)計的提高讀寫效率的方法。如果讀寫的某個數(shù)據(jù)塊沒有按照一定字節(jié)數(shù)(比如32、64字節(jié))的邊界對齊,就需要多讀或?qū)懸恍?shù)據(jù)(通常補(bǔ)零)來湊成邊界對齊,這樣一來自然會影響效率。對于1/2像素和1/4像素精度運動預(yù)測,本發(fā)明可以給出三種滿足邊界對齊的拼接方法。圖5a、圖5b、圖5c示出了對于1/4像素精度運動預(yù)測情況適用的三種內(nèi)存拼接方法。該圖中的每個塊表示一個子圖像。分別是A、16×1拼接,即16個子圖像拼接成一個豎條;B、4×4拼接,(即16個子圖像拼接成一個正方形);C、1×16拼接,即16個子圖像拼接成一個(橫條)。對于1/2像素精度運動預(yù)測情況,同樣也可以相應(yīng)有三種拼接策略A、4×1拼接(豎條);B、2×2拼接(正方形);C、1×4拼接(橫條)。對于1/8像素,乃至更大的n,這三種拼接策略都適用,但是可能還存在更多的策略。因此對于一般的n,三種拼接策略是A、22n×1拼接,即(豎條形拼接);B、2n×2n拼接,即正方形拼接;C、1×22n拼接,即橫條形拼接。最后,除了整像素子圖像外,對已存儲的所述各個子圖像進(jìn)行零初始化處理。由原始圖像生成4倍插值圖像P4×4的過程,因為P4×4結(jié)構(gòu)上的便利,可以采用SIMD類DSP加速指令完成,濾波設(shè)計的卷積運算、移位運算都可以以子圖像為單位整塊完成。之所以采用圖3所示的編號方法,是為了與現(xiàn)有的H.264和其它標(biāo)準(zhǔn)一致)在運動估計中,SAD運算可以通過從某個子圖像中取出和被預(yù)測宏塊大小相等的子矩陣借助SIMD指令進(jìn)行加速。根據(jù)上述插值圖像內(nèi)存組織方法,可利用DSP提供的SIMD類加速技術(shù),按以下步驟生成4倍插值圖像的各分?jǐn)?shù)像素(1)利用整像素子圖像SP0,通過濾波插值生成1/2像素子圖像SP4、SP8。(2)利用1/2像素子圖像SP4,通過濾波插值生成1/2像素子圖像SP12。(3)利用整像素子圖像SP0和1/2像素子圖像SP4、SP8、SP12,通過水平方向濾波插值生成1/4像素子圖像SP1、SP5、SP9、SP13。(4)利用整像素子圖像SP0和1/2像素子圖像SP4、SP8、SP12,通過垂直方向濾波插值生成1/4像素子圖像SP2SP6、SP10、SP14。(5)利用整像素子圖像SP0和1/2像素子圖像SP4、SP8、SP12,通過+45°和-45°對角線方向濾波插值生成1/4像素子圖像SP3、SP7、SP11、SP15。根據(jù)上述插值圖像內(nèi)存組織方法和生成4倍插值圖像的各分?jǐn)?shù)像素的方法,可利用DSP提供的SIMD類加速技術(shù),按以下步驟計算當(dāng)前宏塊MB0與運動估計過程中,參考幀中某個位置的參考宏塊MBr之間的預(yù)測誤差指標(biāo)SAD(1)在進(jìn)行整像素精度運動預(yù)測時,根據(jù)MBr的位置,從子圖像SP0中整塊讀取MBr的數(shù)據(jù),然后計算SAD。(2)在進(jìn)行1/2像素精度運動預(yù)測時,根據(jù)MBr的位置,從子圖像SP4、SP8、SP12中的某個整塊讀取MBr的數(shù)據(jù),然后計算SAD。(3)在進(jìn)行1/4像素精度運動預(yù)測時,根據(jù)MBr的位置,從子圖像SP1,SP2,SP3、SP5、SP7、SP7、SP9、SP10、SP11、SP13、SP14、SP15中的某個整塊讀取MBr的數(shù)據(jù),然后計算SAD。采用本發(fā)明,可以在H.263/H.263+、H.264、MPEG-4等國際標(biāo)準(zhǔn)和AVS1.0國家標(biāo)準(zhǔn)中,對于1/2像素和1/4像素精度運動預(yù)測過程中的插值生成4倍插值圖像運算和運動估計運算進(jìn)行有效的加速。尤其是借助SIMD類DSP加速機(jī)制的時候。因此,可以在其它條件不變的前提下,提高視頻編碼和解碼的幀率。提高視頻通信類設(shè)備比如視頻會議或者可視電話的性能,或者通過采用處理能力更低的DSP達(dá)到同樣的性能,來降低產(chǎn)品的成本。這兩種方法都能夠提高產(chǎn)品的市場競爭力。本發(fā)明的效果是顯著的,有如下實驗數(shù)據(jù)可以說明本發(fā)明的效果實驗1采用本發(fā)明方法結(jié)合MMX,SSE2對于1/4像素插值過程進(jìn)行優(yōu)化和加速,對于經(jīng)典測試圖像序列Clair、News和Foreman,結(jié)果如下表一所示表一<tablesid="table1"num="001"><tablewidth="751">圖像序列(6000幀)無優(yōu)化MMX優(yōu)化SSE2優(yōu)化Claire33.88秒7.81秒7.55秒News33.51秒7.64秒7.38秒Foreman33.42秒7.43秒7.27秒</table></tables>實驗2采用本發(fā)明方法,對于經(jīng)典測試圖像序列Clair、News和Foreman進(jìn)行整個1/4像素精度運動預(yù)測過程的加速優(yōu)化,結(jié)果如下表二所示,表二中的數(shù)據(jù)是每秒可以完成的編碼幀數(shù)表二本發(fā)明的方法直接適用于遵循H.263/H.263+、H.264、MPEG-4國際標(biāo)準(zhǔn)和AVS國內(nèi)標(biāo)準(zhǔn)的視頻編碼器和解碼器,可實現(xiàn)中1/2像素及1/4像素精度運動預(yù)測。也適合于其它采用1/2像素和1/4像素精度運動預(yù)測的視頻編碼器和解碼器,以實現(xiàn)1/2像素和1/4像素精度運動預(yù)測。本發(fā)明的方法還適用于實現(xiàn)1/8像素精度運動預(yù)測,且任何1/8像素精度運動預(yù)測必然首先進(jìn)行1/2像素和1/4像素精度的運動預(yù)測。因此1/2像素和1/4像素精度運動預(yù)測是1/8像素精度運動預(yù)測的必要組成部分和前提。也適用于任何其它(不一定遵循某種標(biāo)準(zhǔn)的)采用1/8像素精度運動預(yù)測的視頻編碼器和解碼器的實現(xiàn)中1/8像素精度運動預(yù)測的實現(xiàn)。附本專利中使用到的縮略語和關(guān)鍵術(shù)語縮寫英文中文AVCAudio-VideoCoding音頻-視頻編碼AVSAdvancedAudio-VideoSystem(國家)先進(jìn)音頻視頻編碼系統(tǒng)dBdeci-Bell分貝DSPDigitalSignalProcessor數(shù)字信號處理芯片DVDisplacementVector位移矢量MBMacroblock宏塊MVMotionVector運動矢量MPEGMovingPictureExpertsGroup運動圖像專家組(國際標(biāo)準(zhǔn)組織)PSNRPeakSignal-toNoiseRatio峰值信噪比SIMDSingleInstructionMultipleData單指令多數(shù)據(jù)MMXMultiMediaExtension多媒體擴(kuò)展指令集SADSumofAbsoluteDifferences絕對差和SSEStreamSIMDExtension單指令多數(shù)據(jù)擴(kuò)展指令集權(quán)利要求1.一種用于分?jǐn)?shù)像素精度運動預(yù)測的插值圖像內(nèi)存組織方法,其特征在于,在進(jìn)行1/2n像素精度運動預(yù)測時,其中,n為自然數(shù),按以下步驟組織插值圖像的內(nèi)存(1)根據(jù)要生成的2n倍插值圖像,將其中的像素分成整數(shù)位置子集、1/21位置子集、1/22位置子集、…、以及1/2n位置子集,所述各個子集中分別包含全體整數(shù)像素、全體1/2像素、全體1/4像素、…、以及全體1/2n像素;(2)以所述整數(shù)位置子集中的全體整數(shù)像素形成一個與原始圖像尺寸相同的整像素子圖像;按各個1/2像素與相鄰整數(shù)像素之間的垂直、水平、以及對角位置關(guān)系進(jìn)行分類,將所述1/2位置子集中的全體1/2像素進(jìn)一步分成3個更小的子集,一一對應(yīng)地構(gòu)成3個與原始圖像尺寸相同的1/2像素子圖像;按各個1/4像素與相鄰的整數(shù)像素及1/2像素之間的垂直、水平、以及對角位置關(guān)系和距離關(guān)系進(jìn)行分類,將所述1/4位置子集中的全體1/4像素進(jìn)一步分成12個更小的子集,一一對應(yīng)地構(gòu)成12個與原始圖像尺寸相同的1/4像素子圖像;依此類推,按各個1/2n像素與相鄰的整數(shù)像素、1/2像素、1/4像素、…、1/2(n-1)像素之間的垂直、水平、以及對角位置關(guān)系和距離關(guān)系進(jìn)行分類,將所述1/2n子集中的全體1/2n像素進(jìn)一步分成(22n-22(n-1))個更小的子集,一一對應(yīng)地構(gòu)成(22n-22(n-1))個與原始圖像尺寸相同的1/2n像素子圖像;(3)將所述各個子圖像形成一個連續(xù)內(nèi)存區(qū)域存儲到存儲器中;(4)除了整像素子圖像外,對已存儲的所述各個子圖像進(jìn)行零初始化處理。2.根據(jù)權(quán)利要求1所述的插值圖像內(nèi)存組織方法,其特征在于,所述n等于1,在進(jìn)行1/2像素精度運動預(yù)測時,按以下步驟組織插值圖像的內(nèi)存(1)根據(jù)要生成的2倍插值圖像,將其中的像素分成整數(shù)位置子集和1/2位置子集,所述整數(shù)位置子集中包含全體整數(shù)像素,所述1/2位置子集中包含全體1/2像素;(2)以所述整數(shù)位置子集中的全體整數(shù)像素形成一個與原始圖像尺寸相同的整像素子圖像;按各個1/2像素與相鄰整數(shù)像素之間的垂直、水平、以及對角位置關(guān)系進(jìn)行分類,將所述1/2位置子集中的全體1/2像素進(jìn)一步分成3個更小的子集,一一對應(yīng)地構(gòu)成3個與原始圖像尺寸相同的1/2像素子圖像;(3)將所述各個子圖像形成一個連續(xù)內(nèi)存區(qū)域存儲到存儲器中;(4)除了整像素子圖像外,對已存儲的所述3個1/2像素子圖像進(jìn)行零初始化處理。3.根據(jù)權(quán)利要求1所述的插值圖像內(nèi)存組織方法,其特征在于,所述n等于2,在進(jìn)行1/4像素精度運動預(yù)測時,按以下步驟組織插值圖像的內(nèi)存(1)根據(jù)要生成的4倍插值圖像,將其中的像素分成整數(shù)位置子集(SHP)、1/2位置子集(SHP)、以及1/4位置子集(SQP),所述整數(shù)位置子集(SIP)中包含全體整數(shù)像素,所述1/2位置子集(SHP)中包含全體1/2像素,所述1/4位置子集(SQP)中包含全體1/4像素;(2)以所述整數(shù)位置子集(SIP)中的全體整數(shù)像素形成一個與原始圖像尺寸相同的整像素子圖像(SP0);按各個1/2像素與相鄰整數(shù)像素之間的垂直、水平、以及對角位置關(guān)系進(jìn)行分類,將所述1/2位置子集(SHP)中的全體1/2像素進(jìn)一步分成3個更小的子集,一一對應(yīng)地構(gòu)成3個與原始圖像尺寸相同的子圖像(SP4、SP8、SP12);按各個1/4像素與相鄰整數(shù)像素及1/2像素之間的垂直、水平、以及對角位置關(guān)系和距離關(guān)系進(jìn)行分類,將所述1/4位置子集(SQP)中的全體1/4像素進(jìn)一步分成12個更小的子集,一一對應(yīng)地構(gòu)成12個與原始圖像尺寸相同的子圖像(SP1、SP2、SP3、SP5、SP6、SP7、SP9、SP10、SP11、SP13、SP14、SP15);(3)將所述各個子圖像形成一個連續(xù)內(nèi)存區(qū)域存儲到存儲器中;(4)除了整像素子圖像外,對已存儲的所述3個1/2像素子圖像和12個1/4像素子圖像進(jìn)行零初始化處理。4.根據(jù)權(quán)利要求1所述的插值圖像內(nèi)存組織方法,其特征在于,所述n等于3,在進(jìn)行1/8像素精度運動預(yù)測時,按以下步驟組織插值圖像的內(nèi)存(1)根據(jù)要生成的8倍插值圖像,將其中的像素分成整數(shù)位置子集、1/2位置子集、1/4位置子集、以及1/8位置子集,所述各個子集中分別包含全體整數(shù)像素、全體1/2像素、全體1/4像素、以及全體1/8像素;(2)以所述整數(shù)位置子集中的全體整數(shù)像素形成一個與原始圖像尺寸相同的子圖像;按各個1/2像素與相鄰整數(shù)像素之間的垂直、水平、以及對角位置關(guān)系進(jìn)行分類,將所述1/2位置子集中的全體1/2像素進(jìn)一步分成3個更小的子集,一一對應(yīng)地構(gòu)成3個與原始圖像尺寸相同的1/2像素子圖像;按各個1/4像素與相鄰的整數(shù)像素及1/2像素之間的垂直、水平、以及對角位置關(guān)系和距離關(guān)系進(jìn)行分類,將所述1/4位置子集中的全體1/4像素進(jìn)一步分成12個更小的子集,一一對應(yīng)地構(gòu)成12個與原始圖像尺寸相同的1/4像素子圖像;按各個1/8像素與相鄰的整數(shù)像素、1/2像素、1/4像素之間的垂直、水平、以及對角位置關(guān)系和距離關(guān)系進(jìn)行分類,將所述1/8子集中的全體1/8像素進(jìn)一步分成48個子集,一一對應(yīng)地構(gòu)成48個與原始圖像尺寸相同的1/8像素子圖像;(3)將所述各個子圖像形成一個連續(xù)內(nèi)存區(qū)域存儲到存儲器中;(4)除了整像素子圖像外,對已存儲的所述3個1/2像素子圖像、12個1/4像素子圖像、以及48個1/8像素子圖像進(jìn)行零初始化處理。5.根據(jù)權(quán)利要求1-4所述的插值圖像內(nèi)存組織方法,其特征在于,在所述第(3)步中,可按以下三種拼接方法中的任一種將所述各個子圖像形成一個連續(xù)內(nèi)存區(qū)域存儲到存儲器中A、22n×1拼接,即豎條拼接;B、2n×2n拼接,即正方形拼接;C、1×22n拼接,即橫條形拼接。6.根據(jù)權(quán)利要求5所述的插值圖像內(nèi)存組織方法,其特征在于,所述n=2,在所述第(3)步中,可按以下三種拼接方法中的任一種將所述各個子圖像形成一個連續(xù)內(nèi)存區(qū)域存儲到存儲器中A、16×1拼接,即豎條拼接;B、4×4拼接,即正方形拼接;C、1×16拼接,即橫條形拼接。7.根據(jù)權(quán)利要求6所述的插值圖像內(nèi)存組織方法而利用DSP提供的SIMD類加速技術(shù)生成4倍插值圖像的各分?jǐn)?shù)像素的方法,其特征在于,包括以下步驟(1)利用整像素子圖像SP0,通過濾波插值生成1/2像素子圖像SP4、SP8。(2)利用1/2像素子圖像SP4,通過濾波插值生成1/2像素子圖像SP12。(3)利用整像素子圖像SP0和1/2像素子圖像SP4、SP8、SP12,通過水平方向濾波插值生成1/4像素子圖像SP1、SP5、SP9、SP13。(4)利用整像素子圖像SP0和1/2像素子圖像SP4、SP8、SP12,通過垂直方向濾波插值生成1/4像素子圖像SP2SP6、SP10、SP14。(5)利用整像素子圖像SP0和1/2像素子圖像SP4、SP8、SP12,通過+45°和-45°對角線方向濾波插值生成1/4像素子圖像SP3、SP7、SP11、SP15。8.根據(jù)權(quán)利要求7所述的生成4倍插值圖像的各分?jǐn)?shù)像素的方法而利用DSP提供的SIMD類加速技術(shù)快速計算預(yù)測誤差指標(biāo)SAD的方法,其特征在于,按以下步驟計算當(dāng)前宏塊MB0與運動估計過程中,參考幀中某個位置的參考宏塊MBr之間的預(yù)測誤差指標(biāo)SAD(1)在進(jìn)行整像素精度運動預(yù)測時,根據(jù)MBr的位置,從子圖像SP0中整塊讀取MBr的數(shù)據(jù),然后計算SAD。(2)在進(jìn)行1/2像素精度運動預(yù)測時,根據(jù)MBr的位置,從子圖像SP4、SP8、SP12中的某個整塊讀取MBr的數(shù)據(jù),然后計算SAD。(3)在進(jìn)行1/4像素精度運動預(yù)測時,根據(jù)MBr的位置,從子圖像SP1,SP2,SP3、SP5、SP7、SP7、SP9、SP10、SP11、SP13、SP14、SP15中的某個整塊讀取MBr的數(shù)據(jù),然后計算SAD。全文摘要本發(fā)明涉及在視頻壓縮編碼中的分?jǐn)?shù)像素精度運動預(yù)測技術(shù),為解決現(xiàn)有技術(shù)中所需生成和使用的文檔編號H04N7/32GK1750659SQ200410076759公開日2006年3月22日申請日期2004年9月14日優(yōu)先權(quán)日2004年9月14日發(fā)明者羅忠,王靜,宋彬,常義林申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
林甸县| 内丘县| 安阳市| 东乡县| 都昌县| 阳高县| 金堂县| 锦州市| 宣城市| 颍上县| 克东县| 杂多县| 团风县| 三都| 桐乡市| 吉木乃县| 哈尔滨市| 金坛市| 通江县| 绵阳市| 开阳县| 洛隆县| 康定县| 奇台县| 汾西县| 根河市| 容城县| 东乡| 永顺县| 铜鼓县| 宁陕县| 靖江市| 措勤县| 陈巴尔虎旗| 子洲县| 新和县| 潮安县| 通河县| 运城市| 玛沁县| 呼伦贝尔市|