專利名稱:Avs/h.264色度插值的硬件實(shí)現(xiàn)方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)字視頻編解碼技術(shù)領(lǐng)域的方法及其裝置,具體是一種AVS/H.264色度插值的硬件實(shí)現(xiàn)方法及其裝置。
背景技術(shù):
AVS(數(shù)字音視頻編解碼技術(shù)標(biāo)準(zhǔn))是由AVS工作組制定的一種多媒體信源編碼標(biāo)準(zhǔn)。該技術(shù)標(biāo)準(zhǔn)的視頻部分于2006年2月22日被頒布為中華人民共和國國家標(biāo)準(zhǔn),標(biāo)準(zhǔn)號GB/T 20090.2-2006,于2006年3月1日起實(shí)施。H.264是由國際電信聯(lián)盟(ITU)和國際標(biāo)準(zhǔn)化組織(ISO)于2003年5月共同發(fā)布的新一代視頻壓縮編解碼標(biāo)準(zhǔn)。它目前已經(jīng)得到了業(yè)界的廣泛支持,不僅出現(xiàn)在了不同的行業(yè)應(yīng)用中,而且也涉及各個(gè)國家、各個(gè)組織。AVS和H.264具有相似的技術(shù)特點(diǎn),兩者均采用了分?jǐn)?shù)精度的運(yùn)動(dòng)矢量進(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償。運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償旨在消除視頻數(shù)據(jù)幀與幀之間的時(shí)間冗余,從而達(dá)到視頻數(shù)據(jù)壓縮的目的。由于在實(shí)際情況下,畫面運(yùn)動(dòng)的距離可以具有無限精度,整數(shù)精度的運(yùn)動(dòng)矢量已無法滿足日益增長的對視頻質(zhì)量的要求,因此,有必要采用分?jǐn)?shù)精度的運(yùn)動(dòng)矢量來提高圖像質(zhì)量。在AVS和H.264中,亮度信息的運(yùn)動(dòng)矢量具有1/4像素的精度;相應(yīng)地,色度信息運(yùn)動(dòng)矢量的精度達(dá)到1/8像素。對于色度信息,兩種標(biāo)準(zhǔn)規(guī)定的分?jǐn)?shù)樣本生成方法也是相同的,即通過對相鄰整數(shù)樣本做雙線性插值來得到分?jǐn)?shù)樣本值。分?jǐn)?shù)樣本插值在提高圖像質(zhì)量的同時(shí),也大大增加了計(jì)算的復(fù)雜度。如果直接使用標(biāo)準(zhǔn)給出的公式進(jìn)行插值計(jì)算,那么每計(jì)算一個(gè)色度分?jǐn)?shù)樣本都需要用到8次乘法和4次加法,其代價(jià)是非常高昂的。因此有必要尋找一種比較簡單的運(yùn)算方法來替代復(fù)雜的乘加運(yùn)算,從而達(dá)到節(jié)省資源的目的。
經(jīng)對現(xiàn)有技術(shù)文獻(xiàn)的檢索發(fā)現(xiàn),胡力等人在“H.264中1/4精度像素插值算法的一種硬件實(shí)現(xiàn)架構(gòu)”(《電視技術(shù)》2005年第10期)中提出了一種H.264色度插值架構(gòu)。在該架構(gòu)中,通過對雙線性插值公式進(jìn)行數(shù)學(xué)變換,達(dá)到了減少乘加運(yùn)算數(shù)量和計(jì)算單元復(fù)用的效果。但是,該架構(gòu)采用的方法仍然包含較多的冗余成分,沒有充分利用到各個(gè)乘法間的相關(guān)性,因而并不是最優(yōu)化的。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)的不足,提供一種AVS/H.264色度插值的硬件實(shí)現(xiàn)方法及其裝置。本發(fā)明要解決的技術(shù)問題是,尋找一種比較簡單的方法來實(shí)現(xiàn)AVS/H.264色度插值中復(fù)雜的乘加運(yùn)算,從而達(dá)到節(jié)省資源的目的。
本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的本發(fā)明提供了一種AVS/H.264色度插值的硬件實(shí)現(xiàn)方法,包括如下步驟第一步輸入數(shù)據(jù)A、B、C、D、dy和dx,其中A、B、C和D為8比特?zé)o符號數(shù),dy和dx為3比特?zé)o符號數(shù),令變量M=A,N=B,k=dx,各步驟中所用的運(yùn)算符號與表達(dá)式的含義羅列如下P[n]取變量P的第n個(gè)2進(jìn)制位,a?b:c當(dāng)a為1時(shí),運(yùn)算結(jié)果為b,當(dāng)a為0時(shí),運(yùn)算結(jié)果為c,A<<n將A左移n個(gè)二進(jìn)制位,A>>n將A右移n個(gè)二進(jìn)制位;以上未羅列的其他運(yùn)算均為普通整數(shù)運(yùn)算;第二步計(jì)算T0=k
?N:M,T1=k[1]?N:M,T2=k[2]?N:M;第三步計(jì)算P=M+T0+T1<<1+T2<<2;第四步令變量L1=P;第五步令變量M=C,N=D,k=dx,重復(fù)第二步和第三步,得到新的P,并令L2=P;第六步令變量M=L1,N=L2,k=dy,重復(fù)第二步和第三步,得到新的P;第七步令R=(P+32)>>6,便完成了一個(gè)樣本的色度插值,R為8比特輸出數(shù)據(jù)。
在上述方案中,第二步和第三步完成了由式P=(8-k)×M+k×N所表示的工作,利用兩個(gè)乘法之間的相關(guān)性,使用簡單的數(shù)據(jù)選擇和加法操作實(shí)現(xiàn)了復(fù)雜的乘加運(yùn)算。
為了解決上述技術(shù)問題,本發(fā)明還提供了一種AVS/H.264色度插值裝置,包括n個(gè)基本運(yùn)算單元和1個(gè)數(shù)據(jù)流控制單元,其中參數(shù)n表示并行計(jì)算的色度樣本個(gè)數(shù);基本運(yùn)算單元,使用數(shù)據(jù)選擇器和加法器完成了由式P=(8-k)×M+k×N所表示的工作,其中M、N和k來自數(shù)據(jù)流控制單元,P送回?cái)?shù)據(jù)流控制單元;數(shù)據(jù)流控制單元,使系統(tǒng)在兩個(gè)狀態(tài)間反復(fù)切換,在第一狀態(tài)中,將輸入數(shù)據(jù)分別送入n個(gè)基本運(yùn)算單元,使k=dx,并取回n個(gè)中間運(yùn)算結(jié)果,在第二狀態(tài)中,將最近兩次經(jīng)歷第一狀態(tài)而得到的2n個(gè)中間運(yùn)算結(jié)果送入n個(gè)基本運(yùn)算單元,使k=dy,并取回n個(gè)R,從而使R=(8-dy)×((8-dx)×A+dx×B)+dy×((8-dx)×C+dx×D),然后將n個(gè)R舍入為8比特輸出數(shù)據(jù)完成了插值過程。
在上述方案中,并行計(jì)算的色度樣本的個(gè)數(shù)即參數(shù)n,是可變的,從而可以調(diào)整具體實(shí)現(xiàn)時(shí)所使用的硬件資源的數(shù)量。
由上可知,本發(fā)明的提供的硬件實(shí)現(xiàn)方法和裝置,利用AVS/H.264色度插值中乘法之間的相關(guān)性,使用簡單的數(shù)據(jù)選擇和加法操作實(shí)現(xiàn)了復(fù)雜的乘加運(yùn)算,從而有效地節(jié)省了資源。
特別地,將本方案與胡力等人的論文中的方案進(jìn)行比較,能夠發(fā)現(xiàn),為了實(shí)現(xiàn)由式P=(8-k)×M+k×N所表示的運(yùn)算,胡力等人的方案中需要使用6組11比特的二路選擇器和5個(gè)加法器;而在本方案中,只使用了3組11比特的二路選擇器和3個(gè)加法器,所占資源是前者的一半略多。因此,使用本方案所能節(jié)省的資源是相當(dāng)可觀的。
圖1是AVS/H.264色度分?jǐn)?shù)樣本插值的位置示意圖;圖2是色度插值裝置的總體結(jié)構(gòu)圖,以n=2(并行計(jì)算的樣本數(shù)為2)的情況為例;圖3是基本運(yùn)算單元的內(nèi)部結(jié)構(gòu)圖。
具體實(shí)現(xiàn)方式在AVS和H.264種,色度分?jǐn)?shù)樣本插值的方法是相同的,即通過對與目標(biāo)位置相鄰的4個(gè)整數(shù)樣本進(jìn)行雙線性濾波來計(jì)算目標(biāo)位置的樣本值。參閱圖1,設(shè)未經(jīng)舍入的目標(biāo)位置樣本值為R,其分?jǐn)?shù)坐標(biāo)為(dy,dx),與之相鄰的四個(gè)整數(shù)樣本為A、B、C和D,那么就有如下的對應(yīng)關(guān)系R=(8-dy)×(8-dx)×A+(8-dy)×dx×B+dy×(8-dx)×C+dy×dx×D對該式進(jìn)行數(shù)學(xué)變換后可得到R=(8-dy)×((8-dx)×A+dx×B)+dy×((8-dx)×C+dx×D)如果規(guī)定一個(gè)三元函數(shù)
f(M,N,k)=(8-k)×M+k×N那么就有R=f(f(A,B,dx),f(C,D,dx),dy)可見,通過反復(fù)調(diào)用函數(shù)f(M,N,k),可以簡化整個(gè)計(jì)算過程。本發(fā)明的重點(diǎn)在于進(jìn)一步優(yōu)化該函數(shù)的實(shí)現(xiàn)方法,使用簡單的選擇和加法操作實(shí)現(xiàn)復(fù)雜的乘加運(yùn)算。由于k的范圍在0到7,是一個(gè)3比特?zé)o符號數(shù),可以將它表示為{k[2],k[1],k
},其中k[n]表示k的第n比特,就有f(M,N,k)=(8-k)×M+k×N]]>=k~×M+k×N+M]]>=k~[2]×M<<2+k~[1]×M<<1+k~
×M+M+]]>k[2]×N<<2+k[1]×N<<1+k
×N]]>=(k[2] N:M)<<2+(k[1] N:M)<<1+k
N:M+M]]>其中運(yùn)算符號與表達(dá)式含義羅列如下 表示對p按位取反;<<表示左移;a?b:c表示當(dāng)a為1時(shí),結(jié)果取b,當(dāng)a為0時(shí),結(jié)果取c。
以上的推導(dǎo)表明,AVS/H.264色度插值中的乘法之間具有相關(guān)性;利用這種相關(guān)性,可以使用簡單的選擇、移位和加法操作實(shí)現(xiàn)整個(gè)插值過程。而確定位數(shù)的移位在硬件實(shí)現(xiàn)時(shí)幾乎不占用資源。
參閱圖2,本發(fā)明提供的一種基于AVS/H.264的色度插值算法的硬件實(shí)現(xiàn),由n個(gè)基本運(yùn)算單元和1個(gè)數(shù)據(jù)流控制單元組成。圖2中是n=2的情況,當(dāng)n=1或n>2時(shí),只需要對圖2中的結(jié)構(gòu)做簡單的精簡或擴(kuò)展即可。
基本運(yùn)算單元。如圖3所示,基本運(yùn)算單元由3組二路選擇器和3個(gè)加法器構(gòu)成。M和N為11比特輸入數(shù)據(jù),P為14比特輸出數(shù)據(jù)。3組二路選擇器根據(jù)3比特輸入?yún)?shù)k對M和N進(jìn)行選擇,輸出中間變量T0=k
?N:M,T1=k[1]?N:M,T2=k[2]?N:M。三個(gè)加法器將3個(gè)中間變量以及M相加后作為14比特輸出P。至此完成了以下操作f(M,N,k)=(k[2]?N:M)<<2+(k[1]?N:M)<<1+k
?N:M+M=(8-k)×M+k×N數(shù)據(jù)流控制單元。其輸入信號包括時(shí)鐘信號、塊輸入起始信號、坐標(biāo)參數(shù)(dy,dx)以及n+1個(gè)處于同一行并相鄰的整數(shù)位置色度樣本,其中輸入樣本表示為{In,In-1,...I0},其輸出為n個(gè)插值完畢的分?jǐn)?shù)位置色度樣本。該單元每2個(gè)時(shí)鐘周期進(jìn)行一次數(shù)據(jù)輸入,每個(gè)時(shí)鐘周期改變一次系統(tǒng)的狀態(tài)(共2個(gè)狀態(tài))。在第一狀態(tài)中,使k=dx,并將輸入數(shù)據(jù)分別送入n個(gè)基本運(yùn)算單元,其中,第m個(gè)基本運(yùn)算單元的輸入數(shù)據(jù)M、N分別為Im+1和Im(0<m<=n-1),然后取回n個(gè)中間運(yùn)算結(jié)果。在第二狀態(tài)中,將最近兩次經(jīng)歷第一狀態(tài)而得到的2n個(gè)中間運(yùn)算結(jié)果送入n個(gè)基本運(yùn)算單元,使k=dy,并取回n個(gè)R=P,從而使R=(8-dy)×((8-dx)×A+dx×B)+dy×((8-dx)×C+dx×D),然后將n個(gè)R舍入為8比特輸出數(shù)據(jù)完成了插值過程。
權(quán)利要求
1.一種AVS/H.264色度插值的硬件實(shí)現(xiàn)方法,其特征在于,包括如下步驟第一步輸入數(shù)據(jù)A、B、C、D、dy和dx,其中A、B、C和D為8比特?zé)o符號數(shù),dy和dx為3比特?zé)o符號數(shù),令變量M=A,N=B,k=dx,各步驟中所用的運(yùn)算符號與表達(dá)式的含義羅列如下P[n]取變量P的第n個(gè)2進(jìn)制位,a?b:c當(dāng)a為1時(shí),結(jié)果為b,當(dāng)a為0時(shí),結(jié)果為c,A<<n將A左移n個(gè)二進(jìn)制位,A>>n將A右移n個(gè)二進(jìn)制位;第二步計(jì)算T0=k
?N:M,T1=k[1]?N:M,T2=k[2]?N:M;第三步計(jì)算P=M+T0+T1<<1+T2<<2;第四步令變量L1=P;第五步令變量M=C,N=D,k=dx,重復(fù)第二步和第三步,得到新的P,并令L2=P;第六步令變量M=L1,N=L2,k=dy,重復(fù)第二步和第三步,得到新的P;第七步令R=(P+32)>>6,便完成了一個(gè)樣本的色度插值,R為8比特輸出數(shù)據(jù)。
2.如權(quán)利要求1所述的一種AVS/H.264色度插值的硬件實(shí)現(xiàn)方法,其特征是,第二步和第三步完成了由式P=(8-k)×M+k×N所表示的工作,利用兩個(gè)乘法之間的相關(guān)性,使用簡單的數(shù)據(jù)選擇和加法操作實(shí)現(xiàn)了復(fù)雜的乘加運(yùn)算。
3.一種AVS/H.264色度插值裝置,其特征在于,包括n個(gè)基本運(yùn)算單元和1個(gè)數(shù)據(jù)流控制單元,其中參數(shù)n表示并行計(jì)算的色度樣本個(gè)數(shù);基本運(yùn)算單元,使用數(shù)據(jù)選擇器和加法器完成了由式P=(8-k)×M+k×N所表示的工作,其中M、N和k來自數(shù)據(jù)流控制單元,P送回?cái)?shù)據(jù)流控制單元;數(shù)據(jù)流控制單元,使系統(tǒng)在兩個(gè)狀態(tài)間反復(fù)切換,在第一狀態(tài)中,將輸入數(shù)據(jù)分別送入n個(gè)基本運(yùn)算單元,使k=dx,并取回n個(gè)中間運(yùn)算結(jié)果,在第二狀態(tài)中,將最近兩次經(jīng)歷第一狀態(tài)而得到的2n個(gè)中間運(yùn)算結(jié)果送入n個(gè)基本運(yùn)算單元,使k=dy,并取回n個(gè)R,從而使R=(8-dy)×((8-dx)×A+dx×B)+dy×((8-dx)×C+dx×D),然后將n個(gè)R舍入為8比特輸出數(shù)據(jù)完成了插值過程。
4.如權(quán)利要求2所述的一種AVS/H.264色度插值裝置,其特征是,并行計(jì)算的色度樣本的個(gè)數(shù)即參數(shù)n,是可變的,從而調(diào)整具體實(shí)現(xiàn)時(shí)所使用的硬件資源的數(shù)量。
全文摘要
本發(fā)明涉及一種數(shù)字視頻編解碼技術(shù)領(lǐng)域的AVS/H.264色度插值的硬件實(shí)現(xiàn)方法及其裝置。其硬件由基本運(yùn)算單元和數(shù)據(jù)流控制單元組成。其中,基本運(yùn)算單元完成由式P=(8-k)×M+k×N所表示的工作;數(shù)據(jù)流控制單元通過對基本運(yùn)算單元進(jìn)行反復(fù)調(diào)用完成由式R=(8-dy)×((8-dx)×A+dx×B)+dy×((8-dx)×C+dx×D)所表示的工作,然后將R舍入為8比特輸出數(shù)據(jù),完成整個(gè)插值過程。本發(fā)明提供的硬件實(shí)現(xiàn)方法和裝置,利用乘法之間的相關(guān)性,使用簡單的數(shù)據(jù)選擇和加法操作實(shí)現(xiàn)了復(fù)雜的乘加運(yùn)算,從而有效地節(jié)省了資源。
文檔編號H04N9/64GK1852434SQ20061002668
公開日2006年10月25日 申請日期2006年5月18日 優(yōu)先權(quán)日2006年5月18日
發(fā)明者周大江, 劉佩林 申請人:上海交通大學(xué)