專利名稱:一種基于選擇器的雙線性插值方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字視頻編解碼技術(shù)領(lǐng)域,具體的說,涉及數(shù)字視頻編解碼運動補償?shù)膩喯袼仉p線性插值方法和裝置。
背景技術(shù):
視頻是指由一系列時間上相關(guān)的圖像組成的圖像序列,其中的每幅圖像稱為 “幀”(本申請中對幀模式和場模式的圖像都統(tǒng)一適用,所以不區(qū)分幀和場,統(tǒng)一稱為幀),每幀圖像又可以劃分為若干個“塊”,通常塊為正方形或矩形,視頻編解碼以塊為基礎(chǔ)單位進行編碼,視頻編碼中常用的塊有16X16,8X16,16X8,8X8,4X4等,都是以像素為單位。 “像素”則是指構(gòu)成圖像的點。對視頻進行編碼的目的是對視頻數(shù)據(jù)進行壓縮,以便存儲傳輸,而視頻編碼方法就是實現(xiàn)上述功能的方法。一個好的視頻編碼方法,可以在保持視頻盡量好的視覺質(zhì)量的同時,把數(shù)據(jù)量壓縮到盡可能低。而視頻解碼方法則是把壓縮后的數(shù)據(jù)恢復到可直接觀看的視頻的方法,從壓縮數(shù)據(jù)得到解碼后的圖像的過程稱為圖像重建。視頻編解碼方法由若干功能模塊組成,其中“運動補償(Motion Compensation, MC)模塊”是視頻編解碼中的一個重要模塊。運動補償模塊的功能是,針對當前需要重建的塊,根據(jù)已經(jīng)重建的圖像計算出用于參考的圖像塊,把解碼所得殘差圖像塊和該參考圖像塊相加,得到重建的圖像塊。由于重建圖像不只在解碼過程中需要,在編碼過程中也需要, 因此運動補償模塊在編碼方法和解碼方法中都存在。運動補償模塊所實現(xiàn)的功能,如圖1所示,該圖包括了 一個wXh的殘差圖像塊 (在圖像處理中,一個圖像是wXh,是指“寬X高”,單位為像素),該塊在編碼或解碼過程中經(jīng)過反量化、反變換等處理得到;一個WXH的已重建幀,將在后續(xù)編解碼過程中作為參考用,也稱為參考幀。參考幀中,有一個JXK的區(qū)域,該區(qū)域是參考范圍,對這個參考范圍內(nèi)的像素插值,可以得到wXh的塊作為參考圖像塊;用于和殘差圖像塊相加,得到一個wXh 的重建圖像塊。上述提及的插值過程,有多種插值方法,其中一種插值方法是雙線性插值方法。如圖2所示,通過雙線性插值方法計算得到wXh的參考圖像塊中的一個像素P的值;A、B、C、 D是已重建幀中JXK的參考范圍內(nèi)的4個相鄰的像素值;dx、dy分別是水平法方向和垂直方向的亞像素位置參數(shù),其中dx表示了 P對于A所在亞像素位置在水平方向的偏移量,dy 表示了 P對于A所在亞像素位置在垂直方向的偏移量,上述兩個參數(shù)在編碼過程中由其他階段的功能模塊計算得到,如果亞像素P的dx和dy均為0,這時亞像素P就是整像素A ;Dx 和Dy是兩個固定不變的常數(shù),值是2的指數(shù)次方(例如2、4、8、16等)。dx和dy的值滿足關(guān)系0彡dx < Dx,0彡dy < Dy,且dx和dy只能為整數(shù)。因此亞像素P的偏移量步長為 1。Dx和Dy可以認為A、B、C、D這4個整像素在水平方向和垂直方向以亞像素偏移量步長為單位表示的距離。在雙線性插值方法中,P的值通過以下算法計算得到ρ = ((Dx-dx) X (Dy-dy) X A+dx X (Dy-dy) X B+ (Dx_dx) XdyX C+dx XdyXD)/ (DxXDy);
P = int (ρ+0· 5);其中,int (p+0. 5)表示取(p+0. 5)的整數(shù)部分,丟掉小數(shù)部分。在傳統(tǒng)的視頻編解碼方法中,該雙線性插值都直接實現(xiàn)。用直接實現(xiàn)的方法,每個像素需要8個乘法,3個加法。對于視頻編解碼過程中一次需要處理的wXh的參考圖像塊, 共需要SXwXh的乘法,3XwXh的加法。對于采用硬件邏輯(如FPGA、ASIC等)實現(xiàn)的情況下,乘法需要用到乘法器比加法用到的加法器需要消耗更多的資源,同時速度性能也更差,傳統(tǒng)的直接實現(xiàn)方法具有資源消耗大,工作速度低等缺點。
發(fā)明內(nèi)容
本發(fā)明的目的是為克服已有方法的不足之處,提出一種視頻編解碼中基于選擇器實現(xiàn)雙線性插值的裝置和方法。根據(jù)本發(fā)明的基于選擇器實現(xiàn)雙線性插值的裝置和方法具有垂直和水平分離,按權(quán)重選擇相加的特點,這種方法在如FPGA、ASIC等硬件平臺上實現(xiàn)時,具有資源占用少,工作速度快等優(yōu)點。一種視頻編解碼中實現(xiàn)雙線性插值的方法,該方法通過雙線性插值計算得到wXh 的參考圖像塊的一個像素P的值;如圖3所示,其特征在于包括以下步驟第一步計算Pl、P2的值Pl = ((Dx-dx) XA+dxXB) /Dx ;P2 = ((Dx-dx) X C+dx X D) /Dx ;第二步計算ρ的值ρ = ((Dy-dy) XPl+dy XP2) /Dy ;第三步計算P的值P = int (p+0. 5);其中A、B、C、D是wXh參考圖像塊中4個相鄰的像素值;dx、dy分別是水平法方向和垂直方向的位置參數(shù),其中dx表示了 P對于A所在位置在水平方向的偏移量,dy表示了 P對于A所在位置在垂直方向的偏移量,上述兩個參數(shù)在編碼過程中由其他階段的功能模塊計算得到;Dx和Dy是兩個固定不變的常數(shù),值是2的指數(shù)次方(例如2、4、8、16等), 分別表示了 A、B、C、D這4個像素在水平方向和垂直方向的距離。dx和dy的值滿足關(guān)系 0^dx<Dx,0^dy< Dy。Pl點是像素A點水平偏移dx的像素點,P2點是像素C點水平偏移dx的像素點。P1、P2和P點處于同一水平位置,P可以看作Pl垂直偏移dy的像素點。根據(jù)本發(fā)明的一個方面,提供一種線性插值模塊,該線性插值模塊包括第一和第二輸入端,用于分別輸入第一值和第二值;第三輸入端,用于輸入η位二進制數(shù)dX[Xn_lXn_2. · · X2X1X0JjO ^ dx < 2η,η為大于 1的整數(shù);η個二選一選擇器,來自插值模塊第三輸入端的所述η位輸入(Xlri,χη_2,. . .,χ2, X1, X0)中的第i位輸入Xi提供給第i 二選一選擇器的控制端,插值模塊的第一輸入端和第二輸入端分別與每一二選一選擇器的第一輸入端和第二輸入端連接,使得當所述控制端的輸入Xi為0時,第i 二選一選擇器輸出第一值,當所述控制端的輸入Xi為1時,第i 二選一選擇器輸出第二值,i = 0,1,...,n-1 ;加法模塊,用于將n+1個輸入(aQ, ,···,an_i;an)求和得到和信號,所述n+1個輸入之一為第一值且其它η個輸入分別為第i 二選一選擇器的輸出從右側(cè)補i位0后構(gòu)成的信號;以及輸出端,用于將所述加法模塊的和信號舍去η個最低有效位得到所述第一值和第二值之間的線性插值并輸出該線性插值。優(yōu)選地,所述η為2,3,4,5,6或7。優(yōu)選地,該線性插值模塊進一步包括多個補位數(shù)據(jù)線,用于實現(xiàn)對各二選一選擇器的輸出補0。優(yōu)選地,所述加法模塊包括級聯(lián)的η個加法器。優(yōu)選地,所述輸出端進一步包括取整模塊,該取整模塊用于將所述加法模塊的和信號舍去η個最低有效位后構(gòu)成的數(shù)據(jù)與所述加法模塊的和信號中從右側(cè)數(shù)第η位的值求和得到線性插值。根據(jù)本發(fā)明的另一方面,提供一種基于選擇器計算線性插值的方法,該方法包括以下步驟將第一值分別輸入η個二選一選擇器中的每一二選一選擇器的第一輸入端,將第二值分別輸入所述每一二選一選擇器的第二輸入端;將η位二進制數(shù)dX[Xn_lXn_2. . . X2X1X0]中的第i位輸入Xi分別輸入所述η個二選一選擇器中的第i 二選一選擇器的控制端,使得當?shù)趇 二選一選擇器的控制端輸入Xi為0 時,第i 二選一選擇器輸出所述第一值,當控制端輸入Xi為1時,第i 二選一選擇器輸出所述第二值,0彡dx< 2n,n為大于1的整數(shù),i = 0,1,...,η-1 ;將η+1個輸入求和得到和信號,所述η+1個輸入之一為第一值且其它η個輸入分別為第i 二選一選擇器的輸出從右側(cè)補i位0后構(gòu)成的信號;將所述和信號舍去η個最低有效位得到所述第一值和第二值之間的線性插值;以及輸出所述線性插值。優(yōu)選地,將所述和信號舍去η個最低有效位第二所述第一值和第二值之間的線性插值的步驟進一步包括,將所述和信號舍去η個最低有效位后構(gòu)成的數(shù)據(jù)與所述加法模塊的和信號中從右側(cè)數(shù)第η位的值求和得到線性插值。根據(jù)本發(fā)明的又一方面,提供一種雙線性插值模塊,該雙線性插值模塊包括第一插值模塊、第二插值模塊和第三插值模塊以及輸出端,第一插值模塊,包括第一和第二輸入端,用于分別輸入第一值和第二值;第三輸入端,用于輸入η位2進制數(shù)dX[Xn_lXn_2. · · X2X1X0JjO ^ dx < 2η,η為大于 1的整數(shù);第一 η個二選一選擇器,來自第一插值模塊第三輸入端的所述η位輸入中的第i 位輸入Xi提供給第i 二選一選擇器的控制端,第一插值模塊的第一輸入端和第二輸入端分別與每一二選一選擇器的第一輸入端和第二輸入端連接,使得當所述控制端的輸入Xi為0 時,第i 二選一選擇器輸出第一值,當所述控制端的輸入Xi為1時,第i 二選一選擇器輸出第二值,i =0,1,..., n-1 ;第一加法模塊,用于將η+1個輸入求和得到第一和信號,所述η+1個輸入之一為第一值且其它η個輸入分別為第i 二選一選擇器的輸出從右側(cè)補i位0后構(gòu)成的信號;第二插值模塊,包括第四和第五輸入端,用于分別輸入第三值和第四值;第六輸入端,用于輸入所述η位2進制數(shù)dX[Xn_lXn_2. . . X2X1X0];第二 η個二選一選擇器,來自第二插值模塊第六輸入端的所述輸入中的第i位輸入Xi提供給第i 二選一選擇器的控制端,第二插值模塊的第四輸入端和第五輸入端分別與每一二選一選擇器的第一輸入端和第二輸入端連接,使得當所述控制端的輸入Xi為0時, 第i 二選一選擇器輸出第三值,當所述控制端的輸入Xi為1時,第i 二選一選擇器輸出第四值,i = 0,1,. . .,n-1 ;第二加法模塊,用于將n+1個輸入求和得到第二和信號,所述n+1個輸入之一為第三值且其它η個輸入分別為第i 二選一選擇器的輸出從右側(cè)補i位0后構(gòu)成的信號;第三插值模塊,包括第七和第八輸入端,用于分別輸入所述第一和信號和所述第二和信號;第九輸入端,用于輸入m位二進制數(shù)dy [ym_iym_2. . . γ2γιΥο],0彡dy < 2m,m為大于 1的整數(shù);m個二選一選擇器,來自第三插值模塊第九輸入端的所述m位輸入Ynri,ym_2,..., I2, I1, Yo中的第j位輸入提供給第j 二選一選擇器的控制端,第三插值模塊的第七輸入端和第八輸入端分別與每一二選一選擇器的第一輸入端和第二輸入端連接,使得當所述控制端的輸入1、為0時,第j 二選一選擇器輸出第一和信號,當所述控制端的輸入Yj為1時,第 j 二選一選擇器輸出第二和信號,j = 0,1,. . .,m-1 ;第三加法模塊,用于將m+1個輸入求和得到第三和信號,所述m+1個輸入之一為第一和信號且其它m個輸入為第j 二選一選擇器的輸出從右側(cè)補j位0后構(gòu)成的數(shù)據(jù);以及輸出端,用于將所述第三和信號(p3)中舍去n+m位最低有效位得到所述第一值、 第二值、第三值和第四值之間的雙線性插值并輸出該雙線性插值。優(yōu)選地,所述η為2,3,4,5,6或7。優(yōu)選地,所述m為2,3,4,5,6或7。優(yōu)選地,該每一插值模塊分別包括多個補位數(shù)據(jù)線,用于實現(xiàn)對二選一選擇器的輸出補0。優(yōu)選地,所述第一加法模塊和所述第二加法模塊分別包括η個加法器,所述第三加法模塊包括m個加法器。優(yōu)選地,所述輸出端進一步包括取整模塊,該取整模塊用于將所述第三和信號舍去n+m個最低有效位后構(gòu)成的數(shù)據(jù)與所述第三和信號從右側(cè)數(shù)第n+m位的值求和得到雙線性插值。根據(jù)本發(fā)明的再一方面,提供一種視頻編解碼器,該視頻編解碼器包括如上所述的雙線性插值模塊。根據(jù)本發(fā)明的再一方面,提供一種基于選擇器計算雙線性插值的方法,該方法包括以下步驟將第一值分別輸入第一 η個二選一選擇器中的每一二選一選擇器的第一輸入端, 將第二值分別輸入所述每一二選一選擇器的第二輸入端,
將η位二進制數(shù)dx [Xn_lXn_2. . . X2X1X0]中的第i位輸入Xi分別輸入所述第一 η個二選一選擇器中的第i 二選一選擇器的控制端,使得當該第i 二選一選擇器的控制端輸入Xi 為0時,第i 二選一選擇器輸出所述第一值,當?shù)趇 二選一選擇器的控制端輸入Xi為1時, 第i 二選一選擇器輸出所述第二值,0 ^ dx < 2η,η為大于1的整數(shù),i = 0,1,. . .,η-1 ;將第一 η+1個輸入求和得到第一和信號,所述η+1個輸入之一為第一值且其它η 個輸入分別為第i 二選一選擇器的輸出從右側(cè)補i位0后構(gòu)成的信號;將第三值分別輸入第二 η個二選一選擇器中的每一二選一選擇器的第一輸入端, 將第四值分別輸入所述每一二選一選擇器的第二輸入端;所述將η位二進制數(shù)dx [Xn_lXn_2. . . X2X1X0]中第i位輸入Xi分別輸入所述第二 η個二選一選擇器中的第i 二選一選擇器的控制端,使得當該第i 二選一選擇器的控制端輸入 Xi為0時,第i 二選一選擇器輸出所述第三值,當該第i 二選一選擇器的控制端輸入Xi為1 時,第i 二選一選擇器輸出所述第四值,1=0,1,..., η-1;將第二 η+1個輸入求和得到第二和信號,所述η+1個輸入之一為第三值且其它η 個輸入分別為第i 二選一選擇器的輸出從右側(cè)補i位0后構(gòu)成的信號;將第一和信號分別輸入m個二選一選擇器中的每一二選一選擇器的第一輸入端, 將第二和信號分別輸入每一二選一選擇器的第二輸入端;將m位二進制數(shù)dy [ym_iym_2. . . γ2γιΥο]中的第j位輸入y」分別輸入m個二選一選擇器中的第j 二選一選擇器的控制端,使得當該第j 二選一選擇器的控制端輸入&為0時,第 j 二選一選擇器輸出所述第一和信號,當該第j 二選一選擇器的控制端輸入Yj為1時,第j 二選一選擇器輸出所述第二和信號,0 ^dy < 2m,m為大于1的整數(shù),j = 0,1,. . .,m_l ;將m+1個輸入求和得到第三和信號,所述m+1個輸入之一為第一和信號且其他m 個輸入為第j 二選一選擇器的輸出從右側(cè)補j位0后構(gòu)成的數(shù)據(jù);以及將所述第三和信號舍去m+n個最低有效位后得到所述第一值、第二值、第三值和第四值之間的雙線性插值;以及輸出所述雙線性插值。優(yōu)選地,將所述第三和信號舍去m+n個最低有效位后構(gòu)成的數(shù)據(jù)作為雙線性插值的步驟進一步包括,將第三和信號舍去m+n個最低有效位后構(gòu)成的數(shù)據(jù)與所述第三和信號中從右側(cè)數(shù)第n+m位的值求和得到雙線性插值。優(yōu)選地,該雙線性插值的方法用于視頻編碼,視頻解碼或視頻編解碼中。根據(jù)本發(fā)明的基于選擇器實現(xiàn)線性插值的方法和實現(xiàn)雙線性插值的方法,不使用乘法,而是按照表示水平或垂直偏移量的位權(quán)重累加的方法,不但消除了乘法,還減少了加法器的數(shù)量。根據(jù)本發(fā)明的基于選擇器實現(xiàn)線性插值的裝置和實現(xiàn)雙線性插值的裝置,不使用加法器,通過使用選擇器,按照表示水平或垂直偏移量的位權(quán)重對已知值累加的方法,不但消除了乘法,還減少了加法器的數(shù)量。根據(jù)本發(fā)明的實現(xiàn)雙線性插值的方法和裝置,在提高運算速度的同時速度改善了硬件裝置的性能,降低了資源消耗,改善了裝置的工作速度。
圖1是運動補償?shù)膶崿F(xiàn)原理示意圖。圖2是本發(fā)明采用的雙線性插值方法的示意圖。圖3是另一種雙線性插值的方法示意圖。圖4是根據(jù)本發(fā)明實施例1的線性插值模塊的實現(xiàn)結(jié)構(gòu)圖。圖5是根據(jù)本發(fā)明實施例1的線性插值模塊中的加法模塊的一種實現(xiàn)結(jié)構(gòu)圖。圖6是根據(jù)本發(fā)明實施例2用線性插值模塊實現(xiàn)的雙線性插值結(jié)構(gòu)圖。圖7是根據(jù)本發(fā)明實施例2的雙線性插值實施例結(jié)構(gòu)圖。
具體實施例方式下面結(jié)合附圖及實施例對本發(fā)明作進一步說明。圖3示出了一種視頻編解碼中實現(xiàn)雙線性插值的方法。該方法通過雙線性插值計算得到WXh的參考圖像塊的一個像素P的值。A、B、C、D是WXh參考圖像塊中4個相鄰的像素值;dx、dy分別是水平法方向和垂直方向的位置參數(shù),其中dx表示了 P對于A所在位置在水平方向的偏移量,dy表示了 P對于A所在位置在垂直方向的偏移量,上述兩個參數(shù)在編碼過程中由其他階段的功能模塊計算得到;Dx和Dy是兩個固定不變的常數(shù),值是2的指數(shù)次方(例如2、4、8、16等),分別表示了 A、B、C、D這4個像素在水平方向和垂直方向的距離。dx和dy的值滿足關(guān)系0彡dx < Dx,0彡dy < Dy。Pl點是像素A點水平偏移dx的像素點,P2點是像素C點水平偏移dx的像素點。PI、P2和P點處于同一水平位置,P可以看作Pl垂直偏移dy的像素點。本發(fā)明提出計算P的方法按如下步驟進行第一步計算P1、P2的值Pl = ((Dx-dx) XA+dxXB) /Dx ;P2 = ((Dx-dx) X C+dx X D) /Dx ;第二步計算ρ的值ρ = ((Dy-dy) XPl+dy XP2)/Dy ;第三步計算P的值P = int (P+0. 5);為了實現(xiàn)上述計算像素Pl、P2、p的步驟,本發(fā)明的優(yōu)選實施例提供了一種不使用乘法實現(xiàn)的方法和裝置。圖4示出根據(jù)本發(fā)明實施例1的線性插值模塊的結(jié)構(gòu)圖。參見圖3,以由A和B獲得插值Pl為例對圖4的線性插值模塊的工作原理進行說明。圖3中A、B是參考范圍兩個水平相鄰的像素點的像素值,Pl是像素值A(chǔ)、B的像素連線上的一個亞像素的像素值,它是像素值A(chǔ)的像素在水平方向上偏移dx的亞像素。當Dx為2的η次冪,dx可以用η位2進制數(shù)表示,即dx = [Wn_2. · · X2X1X0],0彡dx < Dx,η為大于1的整數(shù)。根據(jù)本發(fā)明的線性插值模塊包括η個選擇器MUX,優(yōu)選為二選一選擇器,和加法模塊。偏移量dx = [Xn_lXn_2. . . X2X1X0] 的每一位作為對應的一個二選一選擇器的控制端的輸入,如位^為MUX0的控制端的輸入, 位X1 SMUX1的控制端的輸入,……,位Xlri為MUXlri的控制端輸入。數(shù)值A(chǔ)和B分別輸入給每個選擇器的輸入端,以使對于每個選擇器,如果控制端為1則選擇值B作為輸出,否則選擇值A(chǔ)作為輸出。對于加法模塊的各個輸入,輸入如為值A(chǔ)直接輸入,輸入 為MUX0的輸出,輸入ει2、輸入 、……、ειη分別為MUX1JUX2……MUXlri的輸出左移1、2、……、n_l位后的值。通過將選擇器輸出從右側(cè)補相應個數(shù)的0來實現(xiàn)所述輸出的左移。例如通過選擇器的輸出和加法模塊的輸入之間增加數(shù)據(jù)線,可實現(xiàn)所述輸出的左移。加法模塊將輸入%、 、 、 、……、ειη求和得到總和W。注意,在這里總和w的值為像素值Pl的Dx倍,沒有被截位。將該總和w舍去η位,即將總和w從右側(cè)截去η位得到像素值Ρ1,即為以距數(shù)據(jù)A的偏移量dx對間距為Dx的數(shù)據(jù)A和B進行線性插值得到的插值數(shù)據(jù)。線性插值模塊中加法模塊有多種實現(xiàn)方式,典型實現(xiàn)結(jié)構(gòu)圖如圖5,采用級聯(lián)方式實現(xiàn),即每2個輸入使用一個加法器得到一個輸出,兩個輸出再使用一個加法器得到下一個輸出,這樣級聯(lián)下去,最后得到總和ι這樣要使用η個加法器實現(xiàn)加法模塊。圖6示出根據(jù)本發(fā)明實現(xiàn)雙線性插值的方法的示意圖。線性插值模塊1的輸入為 η位2進制數(shù)dx、數(shù)據(jù)A、數(shù)據(jù)B,產(chǎn)生輸出信號pi ;線性插值模塊2的輸入為同一 η位2進制數(shù)dx、數(shù)據(jù)C、數(shù)據(jù)D,產(chǎn)生輸出信號p2 ;線性插值模塊3的輸入為m位2進制數(shù)dy、信號 pi、信號p2,產(chǎn)生輸出信號ρ。由于信號pi和p2沒有截位,因此其數(shù)值分別為像素值P1、P2 的Dx = 2n倍。同樣,因為信號ρ也沒有截位,因此其數(shù)值為實際插值的DxXDy倍,Dy = 2m。 因為Dx為2的η次冪,Dy為2的m次冪,計算插值P的值時需要將ρ截去右邊的n+m位得到pint。進一步,可以判斷η+m-l位的值,如果為1,則取P = pint+Ι,否則取P = pint。下面參照圖7以具體實例說明根據(jù)本發(fā)明實施例2的雙線性插值裝置和方法。實施例2的雙線性插值模塊包括插值模塊1、插值模塊2、插值模塊3和輸出端。插值模塊1 以數(shù)據(jù)A和數(shù)據(jù)B作為輸入,分別輸入給η個二選一選擇器每一個選擇器的第一輸入端和第二輸入端,以η位二進制數(shù)dx的每一位分別作為η個二選一選擇器中一個選擇器的控制端輸入;插值模塊2以數(shù)據(jù)C和數(shù)據(jù)D作為輸入,分別輸入給η個二選一選擇器每一個選擇器的第一輸入端和第二輸入端,以η位二進制數(shù)dx的每一位分別作為η個二選一選擇器中一個選擇器的控制端輸入;插值模塊3以第一插值模塊的輸出和第二插值模塊的輸出作為輸入,分別輸入給m個二選一選擇器每一個選擇器的第一輸入端和第二輸入端,以m位二進制數(shù)dy的每一位分別作為m個二選一選擇器中一個選擇器的控制端輸入。該雙線性插值模塊的輸出端對插值模塊3中的加法模塊的和舍m+n個最低有效位得到數(shù)據(jù)A、B、C和D的雙線性插值。本實例中,Dx= 8 = 23, Dy = 8 = 23,dx = 3, dy = 5。數(shù)據(jù) A、B、C、D 的值例如為8位16進制無符號數(shù),它們分別是A = 0x23, B = 0x17, C = 0x85, D = 0x97,其中Ox表示16進制數(shù)。圖中數(shù)據(jù)線上的斜杠短線及右邊的數(shù)值表示數(shù)據(jù)線的寬度,如/8表示數(shù)據(jù)線寬度為8位。圖中dx = [X2X1X0]是以3位2進制數(shù)表示的dx。本例中dx = 3 = ObOll, 式中Ob表示2進制表示。由于 dx = [X2X1X0] = ObOll,因此得到 & = 0, X1 = 1, =1。所以對于圖7中的插值模塊LMUi^MUXpMUXc1分別選通數(shù)據(jù)A、B、B。所以對于第一插值模塊1中的加法器,4個輸入分別為a0 = A = 0x23 ;B1 = B = 0x17 ;a2 = B << 1 = = 0x17 << 1 = 0x2E ;a3 = A << 2 = 0x23 << 2 = 0x8C ;經(jīng)力口禾口得至Ij pi = ao+a^a^ag = 0x23+0xl7+0x2E+0x8C = 0xF4 ;
所以對于圖7中的線性插值模塊2,MUi^MUXpMUXtl分別選通數(shù)據(jù)C、D、D。所以對于第二插值模塊2中的加法器,4個輸入分別為b0 = C = 0x85 ;bi = D = 0x97 ;b2 = D << 1 = = 0x97 << 1 = 0xl2E ;b3 = C << 2 = 0x85 << 2 = 0x214 ;經(jīng)加和得到,p2= b0+b1+b2+b3 = 0x85+0x97+0xl2E+0x214 = 0x45E ;由于dy= [y2yiyo] = OblOl,因此得到 y2 = Ly1 = OjY0 = 1。所以對于圖7線性插值模塊3中,MTOpMUXpMUh分別選通p2、pl、p2。所以對于第三插值模塊1中的加法器,4個輸入分別為c0 = pi = 0xF4 ;C1 = p2 = 0x45E ;c2 = pi << 1 = = 0xF4 << 1 = 0xlE8 ;C3 = p2 << 2 = 0x45E << 2 = 0x1178 ;經(jīng)加和得到ρ = c0+ci+c2+c3 = 0xF4+0x45E+0xlE8+0xl 178 = 0xl8B2 ;由于 ρ = [P13P12P11PltlP9P8P7P6P5P4P3P2P1P0] = 0xl8B2 = ObOllOOOlOllOOlO,因此對輸出ρ從右側(cè)截去3+3 = 6位后剩余位構(gòu)成的數(shù)據(jù)P作為A、B、C和D的雙線性插值,P= [P13P12P11PltlP9P8P7P6] =0b01100010。例如,為對輸出P進行四舍五入的取整,可對上述數(shù)據(jù)P作進一步處理。輸出P的第6位數(shù)據(jù)p5 = Obl,P = [P13P12P11P10P9P8P7P6]+p5 = ObOl 100010+0bl = 0x62+1 = 0x63。由此,本例中得到經(jīng)取整的雙線性插值,P = 0x63。本發(fā)明采用選擇器和加法器實現(xiàn)了現(xiàn)有技術(shù)中以多個加法器和乘法器實現(xiàn)的插值運算,在提高運算速度的同時速度改善了硬件裝置的性能,降低了資源消耗,改善了裝置的工作速度。如上所述,根據(jù)本發(fā)明的雙線性插值裝置可用于視頻編碼裝置中,可應用于視頻解碼裝置中,可應用于視頻編解碼裝置中。應當理解,以上借助優(yōu)選實施例對本發(fā)明的技術(shù)方案進行的詳細說明是示意性的而非限制性的。本領(lǐng)域的普通技術(shù)人員在閱讀本發(fā)明說明書的基礎(chǔ)上可以對各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。本發(fā)明的保護范圍僅由隨附權(quán)利要求書限定。
權(quán)利要求
1.一種線性插值模塊,其特征在于,該線性插值模塊包括第一和第二輸入端,用于分別輸入第一值和第二值;第三輸入端,用于輸入η位二進制數(shù)dX([Xn_lXn_2. · · X2X1X0DjO彡dx < 2η,η為大于1 的整數(shù);η個二選一選擇器,來自插值模塊第三輸入端的所述η位輸入Ulri,χη_2,...,x2,X1, X0)中的第i位輸入Ui)提供給第i 二選一選擇器的控制端,插值模塊的第一輸入端和第二輸入端分別與每一二選一選擇器的第一輸入端和第二輸入端連接,使得當其控制端的輸入(Xi)為0時,第i 二選一選擇器輸出第一值,當其控制端的輸入(Xi)為1時,第i 二選一選擇器輸出第二值,i = 0,1,. . .,n-1 加法模塊,用于將n+1個輸入( , B1,... , an_i;an)求和得到和信號(w),所述n+1個輸入之一為第一值且其它η個輸入分別為第i 二選一選擇器的輸出從右側(cè)補i位0后構(gòu)成的信號;以及輸出端,用于將所述加法模塊的和信號(w)舍去η個最低有效位得到所述第一值和第二值之間的線性插值(Pl)并輸出該線性插值。
2.如權(quán)利要求1所述的線性插值模塊,其特征在于,所述η為2,3,4,5,6或7。
3.如權(quán)利要求1所述的線性插值模塊,其特征在于,該線性插值模塊進一步包括多個補位數(shù)據(jù)線,用于實現(xiàn)對各二選一選擇器的輸出補0。
4.如權(quán)利要求1所述的線性插值模塊,其特征在于,所述加法模塊包括級聯(lián)的η個加法ο
5.如權(quán)利要求1所述的線性插值模塊,其特征在于,所述輸出端進一步包括取整模塊, 該取整模塊用于將所述加法模塊的和信號(w)舍去η個最低有效位后構(gòu)成的數(shù)據(jù)與所述加法模塊的和信號(w)中從右側(cè)數(shù)第η位的值求和得到所述線性插值(Pl)。
6.一種基于選擇器計算線性插值的方法,其特征在于,該方法包括以下步驟將第一值分別輸入η個二選一選擇器中的每一二選一選擇器的第一輸入端,將第二值分別輸入所述每一二選一選擇器的第二輸入端;將η位二進制數(shù)dX([Xn_lXn_2. · · X2X1X0])中的第i位輸入(Xi)分別輸入所述η個二選一選擇器中第i 二選一選擇器的控制端,使得當?shù)趇 二選一選擇器的控制端輸入(Xi)為0 時,第i 二選一選擇器輸出所述第一值,當其控制端輸入(Xi)為1時,第i 二選一選擇器輸出所述第二值,0彡dx< 2n,n為大于1的整數(shù),i = 0,1,...,η-1 ;將n+1個輸入(aQ,ai; ... , ^v1,an)求和得到和信號(w),所述n+1個輸入之一為第一值且其它η個輸入分別為第i 二選一選擇器的輸出從右側(cè)補i位0后構(gòu)成的信號;將所述和信號(w)舍去η個最低有效位得到所述第一值和第二值之間的線性插值 (Pl);以及輸出所述線性插值(Pl)。
7.如權(quán)利要求6所述的基于選擇器計算線性插值的方法,其特征在于,將所述和信號(w)舍去η個最低有效位得到所述第一值和第二值之間的線性插值(Pl) 的步驟進一步包括,將所述和信號(w)舍去η個最低有效位后構(gòu)成的數(shù)據(jù)與所述加法模塊的和信號(w)中從右側(cè)數(shù)第η位的值求和得到所述線性插值(Pl)。
8.—種雙線性插值模塊,其特征在于,該雙線性插值模塊包括第一插值模塊、第二插值模塊和第三插值模塊以及輸出端,第一插值模塊,包括第一和第二輸入端,用于分別輸入第一值和第二值;第三輸入端,用于輸入η位2進制數(shù)dX([Xn_lXn_2. · · X2X1X0DjO彡dx < 2η,η為大于1 的整數(shù);第一 η個二選一選擇器,來自第一插值模塊第三輸入端的所述η位輸入(Xlri,xn_2,..., x2,X1,X0)中的第i位輸入Ui)提供給第i 二選一選擇器的控制端,第一插值模塊的第一輸入端和第二輸入端分別與每一二選一選擇器的第一輸入端和第二輸入端連接,使得當所述控制端的輸入(Xi)為0時,第i 二選一選擇器輸出第一值,當所述控制端的輸入(Xi)為1 時,第i 二選一選擇器輸出第二值,i = 0,1, ... ,n-1 ;第一加法模塊,用于將n+1個輸入( , ai; ... , Bn^1, an)求和得到第一和信號(pi),所述n+1個輸入之一為第一值且其它η個輸入分別為第i 二選一選擇器的輸出從右側(cè)補i位 0后構(gòu)成的信號;第二插值模塊,包括第四和第五輸入端,用于分別輸入第三值和第四值; 第六輸入端,用于輸入所述η位2進制數(shù)dX([Xn_lXn_2. · · X2X1X0]); 第二 η個二選一選擇器,來自第二插值模塊第六輸入端的所述輸入Ulri,xn_2,...,x2, X1, X0)中的第i位輸入Ui)提供給第i 二選一選擇器的控制端,第二插值模塊的第四輸入端和第五輸入端分別與每一二選一選擇器的第一輸入端和第二輸入端連接,使得當所述控制端的輸入(Xi)為0時,第i 二選一選擇器輸出第三值,當所述控制端的輸入(Xi)為1時, 第i 二選一選擇器輸出第四值,1=0,1,..., n-1;第二加法模塊,用于將n+1個輸入Ov bi; ... , Iv1,bn)求和得到第二和信號(p2),所述n+1個輸入之一為第三值且其它η個輸入分別為第i 二選一選擇器的輸出從右側(cè)補i位 0后構(gòu)成的信號;第三插值模塊,包括第七和第八輸入端,用于分別輸入第一和信號(Pl)和第二和信號(P2); 第九輸入端,用于輸入m位二進制數(shù)dy ([ym_iym_2. · · Y2Y1Y0] ),0彡dy < 2m,m為大于1 的整數(shù);m個二選一選擇器,來自第三插值模塊第九輸入端的所述m位輸入Gnrl,ym_2,. . .,y2, Y1, y0)中的第j位輸入提供給第j 二選一選擇器的控制端,第三插值模塊的第七輸入端和第八輸入端分別與每一二選一選擇器的第一輸入端和第二輸入端連接,使得當所述控制端的輸入(yP為0時,第j 二選一選擇器輸出第一和信號(pi),當所述控制端的輸入(yj) 為1時,第j 二選一選擇器輸出第二和信號(P2),j = 0,1,...,m-1 ;第三加法模塊,用于將m+1個輸入(C(l,C1,..., Cffl^1, cffl)求和得到第三和信號(p3),所述m+1個輸入之一為第一和信號(pi)且其它m個輸入為第j 二選一選擇器的輸出從右側(cè)補j位0后構(gòu)成的數(shù)據(jù);以及輸出端,用于將所述第三和信號(P; )中舍去n+m位最低有效位得到所述第一值、第二值、第三值和第四值之間的雙線性插值(P)并輸出該雙線性插值。
9.如權(quán)利要求8所述的雙線性插值模塊,其特征在于,所述η為2,3,4,5,6或7。
10.如權(quán)利要求8所述的雙線性插值模塊,其特征在于,所述m為2,3,4,5,6或7。
11.如權(quán)利要求8所述的雙線性插值模塊,其特征在于,該每一插值模塊分別包括多個補位數(shù)據(jù)線,用于實現(xiàn)對各二選一選擇器的輸出補0。
12.如權(quán)利要求8所述的雙線性插值模塊,其特征在于,所述第一加法模塊和所述第二加法模塊分別包括η個級聯(lián)的加法器,所述第三加法模塊包括m個級聯(lián)的加法器。
13.如權(quán)利要求8所述的雙線性插值模塊,其特征在于,所述輸出端進一步包括取整模塊,該取整模塊用于將所述第三和信號(P; )舍去n+m個最低有效位后構(gòu)成的數(shù)據(jù)與所述第三和信號(P; )從右側(cè)數(shù)第n+m位的值求和得到雙線性插值(P)。
14.一種視頻編解碼器,包括如權(quán)利要求8所述的雙線性插值模塊。
15.一種基于選擇器計算雙線性插值的方法,其特征在于,該方法包括以下步驟將第一值分別輸入第一 η個二選一選擇器中的每一二選一選擇器的第一輸入端,將第二值分別輸入所述每一二選一選擇器的第二輸入端,將η位二進制數(shù)dX([Xn_lXn_2. · · X2X1X0])中的第i位輸入(Xi)分別輸入所述第一 η個二選一選擇器中的第i 二選一選擇器的控制端,使得當該第i 二選一選擇器的控制端輸入 (Xi)為0時,第i 二選一選擇器輸出所述第一值,當?shù)趇 二選一選擇器的控制端輸入(Xi)為 1時,第i 二選一選擇器輸出所述第二值,0彡dx < 2η, η為大于1的整數(shù),i = 0,1,..., n-1 ;將第一 n+1個輸入( ,ai; ... , an_i; an)求和得到第一和信號(pi),所述n+1個輸入之一為第一值且其它η個輸入分別為第i 二選一選擇器的輸出從右側(cè)補i位0后構(gòu)成的信號;將第三值分別輸入第二 η個二選一選擇器中的每一二選一選擇器的第一輸入端,將第四值分別輸入所述每一二選一選擇器的第二輸入端;所述將η位二進制數(shù)dx ([Xn_lXn_2. . . X2X1X0])中第i位輸入(Xi)分別輸入所述第二 η個二選一選擇器中的第i 二選一選擇器的控制端,使得當該第i 二選一選擇器的控制端輸入 (Xi)為0時,第i 二選一選擇器輸出所述第三值,當該第i 二選一選擇器的控制端輸入(Xi) 為1時,第i 二選一選擇器輸出所述第四值,1=0,1,..., n-1;將第二 n+1個輸入Ov bi; ... , Iv1,bn)求和得到第二和信號(p2),所述n+1個輸入之一為第三值且其它η個輸入分別為第i 二選一選擇器的輸出從右側(cè)補i位0后構(gòu)成的信號;將第一和信號(Pl)分別輸入m個二選一選擇器中的每一二選一選擇器的第一輸入端, 將第二和信號(P》分別輸入每一二選一選擇器的第二輸入端;將m位二進制數(shù)(^([Υω_ιΥω_2...Υ2ΥιΥ。])中的第j位輸入(y」)分別輸入m個二選一選擇器中的第j 二選一選擇器的控制端,使得當該第j 二選一選擇器的控制端輸入為0 時,第j 二選一選擇器輸出所述第一和信號(Pl),當該第j 二選一選擇器的控制端輸入(y」) 為1時,第j 二選一選擇器輸出所述第二和信號(p2),0 < dy < 2m,m為大于1的整數(shù),j = 0,1,…,m-1 ;將m+1個輸入(C(l,Cl,...,Cn^Cm)求和得到第三和信號(p3),所述m+1個輸入之一為第一和信號(Pl)且其他m個輸入為第j 二選一選擇器的輸出從右側(cè)補j位0后構(gòu)成的數(shù)據(jù);以及將所述第三和信號(P; )舍去m+n個最低有效位得到所述第一值、第二值、第三值和第四值之間的雙線性插值(P);以及輸出所述雙線性插值(P)。
16.如權(quán)利要求15所述的基于選擇器計算雙線性插值的方法,其特征在于,將所述第三和信號(P3)舍去m+n個最低有效位后構(gòu)成的數(shù)據(jù)作為雙線性插值(P)的步驟進一步包括,將第三和信號(P; )舍去m+n個最低有效位后構(gòu)成的數(shù)據(jù)與所述第三和信號(P3)中從右側(cè)數(shù)第n+m位的值求和得到雙線性插值(P)。
17.如權(quán)利要求15所述的基于選擇器計算雙線性插值的方法,其特征在于,該雙線性插值的方法用于視頻編碼,視頻解碼或視頻編解碼中。
全文摘要
本發(fā)明提供一種基于選擇器的雙線性插值方法和裝置。本發(fā)明的雙線性插值裝置包括第一、第二和第三插值模塊。每一插值模塊包括多個二選一選擇器,第i選擇器的控制端輸入多位二進制數(shù)dx[xn-1xn-2...x2x1x0]中的第i位;當所述控制端的輸入為0時,第i二選一選擇器輸出第一輸入,當所述控制端的輸入為1時,第i二選一選擇器輸出第二輸入;和加法模塊,用于所述第一輸入和n個選擇器的輸出求和。所述第三插值模塊以第一和第二插值模塊的輸出作為輸入。根據(jù)本發(fā)明的實現(xiàn)雙線性插值的方法和裝置,在提高運算速度的同時速度改善了硬件裝置的性能,降低了資源消耗,改善了裝置的工作速度。
文檔編號H04N7/26GK102497549SQ20111039662
公開日2012年6月13日 申請日期2011年12月2日 優(yōu)先權(quán)日2011年12月2日
發(fā)明者于天歌, 呼大明, 徐昕, 王萬亭, 邵冬英, 鄭海鷗 申請人:北京瀚景錦河科技有限公司