面向向量處理器的去塊濾波向量化實現(xiàn)方法
【專利摘要】一種面向向量處理器的去塊濾波向量化實現(xiàn)方法,其步驟為:S1:數(shù)據(jù)準(zhǔn)備;輸入n×m的被濾波視頻數(shù)據(jù)塊到向量存儲體中,并進行系向量化;S2:水平濾波操作;S3:結(jié)果存儲;根據(jù)步驟S2的結(jié)果為每個PE選擇出(p3,p2,p1,p0,q0,q1,q2,q3)的最終結(jié)果以及p3和q3的值(p3,p2′,p1′,p0′,q0′,q1′,q2′,q3),存入矩陣寄存器文件;S4:重復(fù)步驟S2和步驟S3,直到水平方向所有邊界濾波完畢;S5:垂直濾波;S6:結(jié)果存儲;根據(jù)步驟S5的結(jié)果為每個PE選擇出(p3,p2,p1,p0,q0,q1,q2,q3)的最終結(jié)果以及p3和q3的值(p3,p2′,p1′,p0′,q0′,q1′,q2′,q3),直接存入向量存儲體;S7:重復(fù)步驟5和步驟6,直到垂直方向所有邊界濾波完畢。本發(fā)明具有能夠高效計算、充分發(fā)揮向量處理器多PE協(xié)作、縮短運算時間等優(yōu)點。
【專利說明】
面向向量處理器的去塊濾波向量化實現(xiàn)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明主要設(shè)及到向量處理器及視頻編解碼領(lǐng)域,特指一種面向向量處理器的去 塊效應(yīng)濾波的向量化實現(xiàn)方法。
【背景技術(shù)】
[0002] 在視頻編解碼算法中,基于塊的預(yù)測、補償、變化、量化會造成塊效應(yīng),嚴(yán)重影響重 建圖像的主觀感知質(zhì)量。為了消除圖像的塊效應(yīng),往往需要對重建圖像進行塊濾波,而國際 標(biāo)準(zhǔn)H. 264更是把去塊效應(yīng)濾波算法納入到編解碼算法的環(huán)路中,稱為環(huán)路去塊效應(yīng)濾波 (in-loop deblocking filtering);由于編碼塊的每一個邊界都需要進行濾波判決、計算 W及反復(fù)更新存儲等,使得去塊濾波算法耗費了解碼器=分之一 W上的計算復(fù)雜度。因此, 采用加快去塊效應(yīng)濾波的執(zhí)行速度對于實時高清視頻編解碼具有重要意義。
[0003] 加速去塊效應(yīng)濾波的通常做法是并行化。研究者往往采用專用硬件來加速去塊效 應(yīng)濾波算法,運種方法的缺點是靈活性差,在標(biāo)準(zhǔn)更新較為頻繁的情況下開銷巨大;同時, 必須采用專用的轉(zhuǎn)置電路來處理去塊效應(yīng)濾波算法中對行列數(shù)據(jù)的訪問。因此,可編程方 式更具市場。
[0004] 然而,傳統(tǒng)單核處理器難W滿足實時解碼器對去塊效應(yīng)濾波的計算需求,多核處 理器由于禪合較為松散,核間數(shù)據(jù)傳遞開銷較大,因此也不適用于去塊效應(yīng)濾波并行化加 速。在運種情況下,向量處理器成為了首選。向量處理器一般由多個處理單元(PE)組成,PE 間禪合緊密,每個PE包含獨立的多個功能部件,如乘法部件、加法部件、移位部件等。每隔PE 都執(zhí)行超長指令字(VLIW)指令,包含多個執(zhí)行包,不共享流水線的功能部件可W同時執(zhí)行 多個執(zhí)行包。每個PE包含一組局部寄存器,所有PE的同一編號的局部寄存器在邏輯上又組 成一個向量寄存器。例如圖1中PE_0~PE_M-1的所有RO寄存器在邏輯上組成了向量寄存器 VR0,每個PE所對應(yīng)的RO稱為向量寄存器VRO的一個元素。同時,向量處理器往往可W提供用 于矩陣行列訪問的矩陣寄存器文件,可有效地滿足去塊效濾波不同方向濾波的存儲訪問需 求。
[0005] 然而,去塊效應(yīng)濾波算法自適應(yīng)較強,相鄰邊界的執(zhí)行路徑因數(shù)據(jù)源而不同,且對 于同一個數(shù)據(jù)需要進行間斷地、重復(fù)地讀寫,因此,如何在向量處理器上實現(xiàn)對去塊效應(yīng)濾 波算法的向量化計算加速是一個難點。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明要解決的技術(shù)問題就在于:針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一 種原理簡單、操作方便、能夠高效計算、充分發(fā)揮向量處理器多PE協(xié)作、縮短運算時間的面 向向量處理器的去塊濾波向量化實現(xiàn)方法。
[0007] 為解決上述技術(shù)問題,本發(fā)明采用W下技術(shù)方案:
[000引一種面向向量處理器的去塊濾波向量化實現(xiàn)方法,其步驟為:
[0009] SI:數(shù)據(jù)準(zhǔn)備;輸入nXm的被濾波視頻數(shù)據(jù)塊到向量存儲體中,并進行系向量化;
[0010] S2:水平濾波操作;選擇當(dāng)前需要濾波的水平邊界,每個PE從向量存儲體中讀取需 要濾波的圖像數(shù)據(jù)(口3,口2,口1,口0,9〇,91,92,93);使用圖像數(shù)據(jù)(口3,口2,口1,口0,9〇,91,92, q3)和常量計算判決條件,并存儲在向量條件寄存器中;根據(jù)去塊效應(yīng)濾波算法的規(guī)則計算 (p3,p2,Pl,PO,qO,ql,q2,q3)的所有結(jié)果,分別存人局部向量寄存器中;
[001 U S3:結(jié)果存儲;根據(jù)步驟S2的結(jié)果為每個陽選擇出(p3,p2,Pl,PO,qO,ql,q2,q3)的 最終結(jié)果W及p3和q3的值(p3,p2/,pl',p0/,q0/,ql/,q2/,q3),存入矩陣寄存器文件;
[0012] S4:重復(fù)步驟S2和步驟S3,直到水平方向所有邊界濾波完畢;
[0013] S5:垂直濾波;選擇當(dāng)前需要濾波的邊界,每個PE從矩陣寄存器文件中讀取需要濾 波的圖像數(shù)據(jù)(口3,口2,口1,口0,9〇,91,92,93),使用矩陣寄存器文件中經(jīng)過了水平濾波的數(shù) 據(jù)作為原始數(shù)據(jù),選擇垂直方向的圖像數(shù)據(jù)(口3,口2,口1,口0,9〇,91,92,93)和常量計算判決 條件,并存儲在向量條件寄存器中;根據(jù)去塊效應(yīng)濾波算法的規(guī)則計算(p3,p2,Pl,PO,qO, ql,q2,q3)的所有結(jié)果,分別存入局部向量寄存器中;
[0014] S6:結(jié)果存儲;根據(jù)步驟S5的結(jié)果為每個PE選擇出(p3,p2,Pl,PO,qO,ql,q2,q3)的 最終結(jié)果W及p3和q3的值(p3,p2/,pl',p〇/,q〇/,ql/,q2/,q3),直接存入向量存儲體;
[0015] S7:重復(fù)步驟5和步驟6,直到垂直方向所有邊界濾波完畢。
[0016] 作為本發(fā)明的進一步改進:所述步驟S3和步驟S6中選擇最終結(jié)果的操作包含W下 步驟:
[0017] Sioo:假設(shè)每個陽對應(yīng)的邊界的Pi的計算候選結(jié)果由RO~Rk-I組成,運些結(jié)果組 成一個完整的或者不完整的二叉樹;對于任意一個PE,Pi的最終結(jié)果一定存在于RO~Rk-I 中;把RO~Rk-I根據(jù)PE的個數(shù)展開可寫巧
;根據(jù)去塊效應(yīng)濾波算法 中相應(yīng)的判決條件獲得條件操作的條件矩^
, 其中 [001 引
[0019] S200:根據(jù)條件矩陣,通過k次向量條件MOV操作,可得Pi的最終結(jié)果Pi;即,Pi=S Ri ? Ci;
[0020] S300:重復(fù)步驟SlOO、S200,直到p2,Pl,pO,qO,ql,q2的結(jié)果選擇完畢。
[0021] 作為本發(fā)明的進一步改進:所述步驟S3和步驟S6中條件操作的具體操作方法是: 假設(shè)向量處理器當(dāng)前執(zhí)行向量指令I(lǐng)nst,同時有條件寄存器R0,RO= {Roi,R〇2, ...,Rom-I},分 別對應(yīng)陽G~陽M-1。若Roi = = 1,則陽i執(zhí)行指令I(lǐng)nst,否則陽i執(zhí)行空操作。
[0022] 作為本發(fā)明的進一步改進:所述向量存儲體包括M個存儲塊,所述M個存儲塊與M個 向量PE依次一一對應(yīng);M個存儲塊統(tǒng)一編址,按BANK交叉存放;即,第一個字在第一個BANK存 放,第二個字在第二個BANK存放,…,直到第M個字在第M個BANK存放;然后第M+1個字又在第 一個BANK存放,…,依次類推;每個存儲塊分成上存儲區(qū)和下存儲區(qū)并支持同時進行兩個向 量訪存操作。
[0023] 作為本發(fā)明的進一步改進:所述向量矩陣寄存器文件由MXM個存儲單元組成,每 個存儲單元的位寬一般為4、8、12、16、32,該陣列在邏輯上為由1個行向量寄存器¥則一¥尺|?-1 或M個列向量CVRo-CVRm-I寄存器組成;每個行向量寄存器包含M個元素 Ei,〇-Ei, M-I,其中i = 0,1,2……M-I,每個列向量寄存器包含M個元素 Eo,i-Em-I,i,其中i = 0,l,2……M-I;矩陣寄 存器在讀寫使能、讀寫地址和行列選擇信號的控制下完成行列向量的讀出和寫入。
[0024] 與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:
[0025] 1、本發(fā)明的面向向量處理器的去塊效應(yīng)濾波的向量化實現(xiàn)方法,可W同時執(zhí)行M 個邊界的濾波操作,有效地加速去塊效應(yīng)濾波的速度,為實時高清視頻編解碼的其他功能 模塊預(yù)留更充足的時間。運種向量化的并行方法能夠充分利用向量處理器的向量計算特 點、挖掘向量處理器的并行性,充分開發(fā)了去塊效應(yīng)濾波算法的數(shù)據(jù)并行性,能夠大幅度提 高其運算性能。
[0026] 2、本發(fā)明的面向向量處理器的去塊效應(yīng)濾波的向量化實現(xiàn)方法,通過條件操作, 可W使得向量處理器處理由于源數(shù)據(jù)觸發(fā)的多分支程序。向量處理器的各個PE從派發(fā)單元 獲得的是同一條指令,其執(zhí)行周期一般不能跨越各個PE執(zhí)行結(jié)果不同的分支指令。本發(fā)明 通過條件操作,使得向量處理器可W順利地執(zhí)行包含多分支目標(biāo)的指令。
【附圖說明】
[0027] 圖1是向量處理器的一般結(jié)構(gòu)示意圖。
[0028] 圖2是本發(fā)明在具體實施例中垂直和水平邊界濾波像素示意圖。
[0029] 圖3是本發(fā)明方法的流程示意圖。
[0030] 圖4是本發(fā)明在具體應(yīng)用實例中的向量存儲體結(jié)構(gòu)示意圖。
[0031] 圖5是本發(fā)明在具體應(yīng)用實例中濾波數(shù)據(jù)在向量存儲體中的一種存放方式示意 圖。
[0032] 圖6是本發(fā)明中使用的矩陣寄存器的存儲單元陣列結(jié)構(gòu)示意圖。
【具體實施方式】
[0033] W下將結(jié)合說明書附圖和具體實施例對本發(fā)明做進一步詳細說明。
[0034] 如圖3所示,本發(fā)明的面向向量處理器的去塊濾波向量化實現(xiàn)方法,包括W下步 驟:
[0035] SI:數(shù)據(jù)準(zhǔn)備;
[0036] SlOl:輸入nXm的被濾波視頻數(shù)據(jù)塊到向量存儲體中。
[0037] S102:從向量存儲體中加載算法所需要的常量,并對其進行系向量化。
[0038] S2:水平濾波操作;
[0039] S201:選擇當(dāng)前需要濾波的水平邊界,每個PE從向量存儲體中讀取需要濾波的圖 像數(shù)據(jù)(p3,p2,pl,p0,q0,ql,q2,q3);
[0040] S202:使用圖像數(shù)據(jù)(p3,p2,pi,PO,qO,ql,q2,q3)和常量計算判決條件,并存儲在 向量條件寄存器中;
[0041 ] S203 :根據(jù)去塊效應(yīng)濾波算法的規(guī)則計算(p3,p2,Pl,PO,qO,ql,q2,q3)的所有結(jié) 果,分別存入局部向量寄存器中。
[0042] S3:結(jié)果存儲;
[0043] 根據(jù)去塊效應(yīng)濾波算法的判決條件寄存器的結(jié)果,為每個PE選擇出(p3,p2,pl, p0,q0,ql,q2,q3)的最終結(jié)果W及p3和q3的值(p3,p2',pl',p0',q0',ql',q2',q3),存入矩 陣寄存器文件。
[0044] S4:重復(fù)步驟S2和步驟S3,直到水平方向所有邊界濾波完畢。
[0045] S5:垂直濾波;
[0046] S501:選擇當(dāng)前需要濾波的邊界,每個PE從矩陣寄存器文件中讀取需要濾波的圖 像數(shù)據(jù)(p3,p2,pl,p0,q0,ql,q2,q3)。
[0047] S502:使用矩陣寄存器文件中經(jīng)過了水平濾波的數(shù)據(jù)作為原始數(shù)據(jù),選擇垂直方 向的圖像數(shù)據(jù)(p3,p2,P1,PO,qO,ql,q2,q3)和常量計算判決條件,并存儲在向量條件寄存 器中。
[0048] S503 :根據(jù)去塊效應(yīng)濾波算法的規(guī)則計算(p3,p2,Pl,PO,qO,ql,q2,q3)的所有結(jié) 果,分別存入局部向量寄存器中。
[0049] S6:結(jié)果存儲;
[0050] 根據(jù)去塊效應(yīng)濾波算法的判決條件寄存器的結(jié)果,為每個PE選擇出(p3,p2,Pl, p0,q0,ql,q2,q3)的最終結(jié)果W及p3和q3的值(p3,p2',pl',p0',q0',ql',q2',q3),直接存 入向量存儲體。
[0051 ] S7:重復(fù)步驟5和步驟6,直到垂直方向所有邊界濾波完畢。
[0052] 通過本發(fā)明的上述方法,可W高效的支持去塊濾波向量化計算,充分發(fā)揮向量處 理器的全部PE的并行計算能力,有效地提高了向量處理器的執(zhí)行效率,縮短了運算時間。
[0053] 在具體應(yīng)用實例中,上述向量存儲體包括M個存儲塊,所述M個存儲塊與M個向量PE 依次一一對應(yīng);M個存儲塊統(tǒng)一編址,按BANK交叉存放(指第一個字在第一個BANK存放,第二 個字在第二個BANK存放,…,直到第M個字在第M個BANK存放。然后第M+1個字又在第一個 BANK存放,…,依次類推);每個存儲塊分成上存儲區(qū)和下存儲區(qū)并支持同時進行兩個向量 訪存操作。
[0054] 在具體應(yīng)用實例中,向量矩陣寄存器文件由MXM個存儲單元組成,每個存儲單元 的位寬一般為4、8、12、16、32,該陣列在邏輯上可^看成由1個行向量寄存器¥3〇-¥1?|?-1或1 個列向量CVRo-CVRm-I寄存器組成。每個行向量寄存器包含M個元素(存儲單元化i, O-Ei ,M-I (i =0,1,2……M-I ),每個列向量寄存器包含M個元素 Eq,i-Em-I,i( i = 0,1,2……M-I)。矩陣 寄存器在讀寫使能、讀寫地址和行列選擇信號的控制下完成行列向量的讀出和寫入。
[0055] 在具體應(yīng)用實例中,步驟S3和步驟S6中條件操作的具體操作方法是:假設(shè)向量處 理器當(dāng)前執(zhí)行向量指令I(lǐng)nst,同時有條件寄存器R0,R0= {R〇i,R日2,. . .,R日M-i},分別對應(yīng)陽0 ~陽M-I。若R日i = = 1,則陽i執(zhí)行指令I(lǐng)nst,否則陽i執(zhí)行空操作。
[0056] 在具體應(yīng)用實例中,步驟S3和步驟S6中選擇最終結(jié)果的操作包含W下步驟:
[0化7] Sioo:假設(shè)每個陽對應(yīng)的邊界的Pi的計算候選結(jié)果由RO~Rk-I組成,運些結(jié)果組 成一個完整的或者不完整的二叉樹。對于任意一個PE,pi的最終結(jié)果一定存在于RO~Rk-I 中。把RO~Rk-I根據(jù)PE的個數(shù)展開可寫式
根據(jù)去塊效應(yīng)濾波算法 中相應(yīng)的判決條件獲得條件操作的條件矩鴉
其中
[0化引
[0059] S200:根據(jù)條件矩陣,通過k次向量條件MOV操作,可得Pi的最終結(jié)果Pi。即,Pi = I: Ri ? Ci。
[0060] S300:重復(fù)步驟SlOO、S200,直到p2,Pl,pO,qO,ql,q2的結(jié)果選擇完畢。
[0061] 如圖2所示,為本發(fā)明在一個具體應(yīng)用實例中垂直和水平濾波邊界示意圖。其中, abcdef曲對應(yīng)的虛線是本塊的濾波邊界。在H. 264中,圖2中的圖像塊為16 X 16像素,每一個 虛線框中的像素塊為4 X 4個像素。每一次濾波所設(shè)及到的像素包括濾波邊界兩邊的4個像 素(p3,p2,pl,p0)和(q0,ql,q2,q3)。
[0062] 結(jié)合圖3, WH. 264標(biāo)準(zhǔn)中的環(huán)路去塊效應(yīng)濾波算法為例,本發(fā)明在具體實例中包 括W下步驟:
[0063] (1)輸入數(shù)據(jù):H. 264中每個16 X 16的宏塊,如圖2所示,都要進行去塊效應(yīng)濾波。16 X 16的宏塊被劃分為16個4X4的子塊,每個4X4的子塊的邊界都是濾波邊界,即圖2所示的 abcdef曲邊界。
[0064] 如圖4所示,向量存儲體由M= 16個塊(BANK_0~BANK_15)組成,且與向量處理單元 的陽_0~陽_15-一對應(yīng),16個BANK統(tǒng)一編址,按BANK交叉存放,可W進行數(shù)據(jù)共享,為16個 PE提供高帶寬的數(shù)據(jù)訪問;每個BANK按兩組多體交叉組織形式支持多端口訪問(多端口包 括兩個向量訪存操作端口,還包括DMA端口和標(biāo)量訪存端口),即分成上下兩個存儲區(qū),可同 時支持兩個向量訪存操作。
[0065] 在本實施例中,16X16的宏塊數(shù)據(jù)在向量存儲體中的存放位置如圖5所示。每一行 的16個待濾波數(shù)據(jù)可一次加載到局部寄存器中參與運算;最后濾波的結(jié)果可一次Store- 行數(shù)據(jù)到向量存儲器中,然后通過DMA搬運到外部存儲器中。
[0066] (2)計算(p3,p2,pl ,p0,q0,ql ,q2,q3)的濾波結(jié)果:16個陽一次可W計算16個行邊 界或者列邊界,運種向量操作模式大大縮減了濾波所需要的時間,僅4次計算就可完成一個 16 X 16的宏塊的所有行邊界或列邊界的濾波。
[0067] 在本實施例中,(p3,p2,Pl,PO,qO,ql,q2,q3)的濾波結(jié)果可能的取值方式有(用大 寫的?2^1,?0^0,?1,?2表示):
[0068] P0=Min(Max(0,p0+d),255)
[0069] PO = (P 化巧 pl+2*p0+巧 q0+ql+4)〉〉3
[0070] Pl = (p 化 pl+p0+q0+2)〉〉2
[0071] Pl=pl+Min(Max(-CO,(p 化(p0+q0)〉〉l-(pl?l))〉〉l),C0)
[0072] P2 = (2*p3+:3p 化 pl+p0+q0+4)〉〉3
[0073] Q0=Min(Max(0,q0-d),255)
[0074] QO = (q 化巧 ql+2*q0+巧 p0+pl+4)〉〉3
[00 巧]Ql=ql+Min(Max(-CO,(p 化(p0+q0)〉〉l-(pl?l))〉〉l),C0)
[0076] Ql = (q 化 ql+q〇+p〇+2)〉〉2
[0077] Q2 = (2*q3+3q 化 ql+q0+p0+4)〉〉3
[007引 d=Min(Max(-C,(((q0-pO)?^(pl-ql)+4)〉〉3)),C)
[0079] 其中,變量C和CO都是環(huán)路去塊效應(yīng)濾波的既定參數(shù)。
[0080] 在本實施例中,p3和q3在濾波操作中不被更改,而(口2,口1,口0,9〇,91,92)也可能不 被更改。
[0081] (3)計算判決條件:
[0082] 根據(jù)濾波控制參數(shù)W及被濾波的源數(shù)據(jù)之間的關(guān)系,計算濾波判決條件。每一個 判決條件決定一個條件寄存器的取值為真或者假。
[0083] 在本實施例中,濾波判決條件包括:濾波強度、相鄰像素之間的差異、相鄰像素之 間的差異的口限值等。
[0084] (4)篩選最終結(jié)果:
[0085] 根據(jù)步驟(3)的條件,對每一個可能的濾波結(jié)果執(zhí)行一次條件MOV操作,最終將得 到正確的濾波結(jié)果。
[0086] (5)存儲濾波結(jié)果:
[0087] 如果是行濾波,則把濾波結(jié)果存儲到矩陣寄存器文件中;否則直接存儲到向量存 儲體中,用DMA等外部數(shù)據(jù)傳輸引擎保存到用戶空間。
[0088] (6)如果濾波還未完成,則繼續(xù)步驟(2)~(5)直到所有濾波邊界均完成濾波位置。
[0089] 參見圖6,為本發(fā)明在具體應(yīng)用實例中矩陣寄存器的存儲單元陣列結(jié)構(gòu)示意圖。矩 陣寄存器的存儲單元陣列一般由N*N個存儲單元組成,N通常位2的幕數(shù)。每個存儲單元的位 寬為W,W-般為4、8、12、16、32。該陣列在邏輯上可W看成N個行向量寄存器VRo-VRN-域N個 列向量CVRo-CVRn-I寄存器組成,每個行向量寄存器包含N個元素(存儲單元化i,o-Ei,N-i(i = 0,1,2……N-DdWVRo為例,該行向量寄存器包括存儲單元Eo,0-Eo,N-1。該存儲單元陣列 按列劃分為N個N*W位的存儲單元列,每列由N個同列的元素組成。運N個存儲單元列與N個列 向量寄存器CVRo-CVRn-I-一對應(yīng),用于實現(xiàn)相應(yīng)列向量寄存器的存取功能。W CVRn-功例, 該列向量寄存器包括所有行向量寄存器VRo-VRn-I的最后一個元素 Ei,N-Ki = O, 1,2……N-Do
[0090] W上僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護范圍并不僅局限于上述實施例, 凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護范圍。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的 普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進和潤飾,應(yīng)視為本發(fā)明的保護 范圍。
【主權(quán)項】
1. 一種面向向量處理器的去塊濾波向量化實現(xiàn)方法,其特征在于,步驟為: S1:數(shù)據(jù)準(zhǔn)備;輸入η Xm的被濾波視頻數(shù)據(jù)塊到向量存儲體中,并進行系向量化; S2:水平濾波操作;選擇當(dāng)前需要濾波的水平邊界,每個PE從向量存儲體中讀取需要濾 波的圖像數(shù)據(jù)(口3,口2,口1,口0,9〇,91,92,93);使用圖像數(shù)據(jù)(口3,口2,口1,口0,9〇,91,92,93)和 常量計算判決條件,并存儲在向量條件寄存器中;根據(jù)去塊效應(yīng)濾波算法的規(guī)則計算(P3, p2,pl,p0,q0,ql,q2,q3)的所有結(jié)果,分別存入局部向量寄存器中; S3:結(jié)果存儲;根據(jù)步驟S2的結(jié)果為每個PE選擇出(p3,p2,pi,pO,qO,ql,q2,q3)的最終 結(jié)果以及p3和q3的值(P3 42',ρ1' ,ρΟ' ^2',q3),存入矩陣寄存器文件; S4:重復(fù)步驟S2和步驟S3,直到水平方向所有邊界濾波完畢; S5:垂直濾波;選擇當(dāng)前需要濾波的邊界,每個PE從矩陣寄存器文件中讀取需要濾波的 圖像數(shù)據(jù)(p3,p2,p 1,pO,qO,ql,q2,q3),使用矩陣寄存器文件中經(jīng)過了水平濾波的數(shù)據(jù)作 為原始數(shù)據(jù),選擇垂直方向的圖像數(shù)據(jù)化3,?2,?1,?0,(1〇,(11,(12,(13)和常量計算判決條件, 并存儲在向量條件寄存器中;根據(jù)去塊效應(yīng)濾波算法的規(guī)則計算(p3,p2,pl,p0,q0,ql,q2, q3)的所有結(jié)果,分別存入局部向量寄存器中; S6:結(jié)果存儲;根據(jù)步驟S5的結(jié)果為每個PE選擇出(p3,p2,pi,p0,qO,ql,q2,q3)的最終 結(jié)果以及p3和q3的值(P3 42',ρ1' ,ρΟ' ^2',q3),直接存入向量存儲體; S7:重復(fù)步驟5和步驟6,直到垂直方向所有邊界濾波完畢。2. 根據(jù)權(quán)利要求1所述的面向向量處理器的去塊濾波向量化實現(xiàn)方法,其特征在于,所 述步驟S3和步驟S6中選擇最終結(jié)果的操作包含以下步驟: S100:假設(shè)每個PE對應(yīng)的邊界的pi的計算候選結(jié)果由R0~Rk-Ι組成,這些結(jié)果組成一 個完整的或者不完整的二叉樹;對于任意一個PE,pi的最終結(jié)果一定存在于R0~Rk-Ι中;把 R0~Rk-Ι根據(jù)PE的個數(shù)展開可寫為;根據(jù)去塊效應(yīng)濾波算法中相應(yīng) 的判決條件獲得條件操作的條件矩陣S200:根據(jù)條件矩陣,通過k次向量條件MOV操作,可得pi的最終結(jié)果Pi ; 即,Pi = Σ Ri · Ci; S300:重復(fù)步驟S100、S200,直到p2,pi,pO,qO,ql,q2的結(jié)果選擇完畢。3. 根據(jù)權(quán)利要求1所述的面向向量處理器的去塊濾波向量化實現(xiàn)方法,其特征在于,所 述步驟S3和步驟S6中條件操作的具體操作方法是:假設(shè)向量處理器當(dāng)前執(zhí)行向量指令 Inst,同時有條件寄存器R0,RO = {RQ1,RQ2,…,Rom-1},分別對應(yīng)PEo~PEm-1;若R〇i = = 1,則 PEi執(zhí)行指令I(lǐng)nst,否則PEi執(zhí)行空操作。4. 根據(jù)權(quán)利要求1~3中任意一項所述的面向向量處理器的去塊濾波向量化實現(xiàn)方法, 其特征在于,所述向量存儲體包括Μ個存儲塊,所述Μ個存儲塊與Μ個向量PE依次一一對應(yīng);Μ 個存儲塊統(tǒng)一編址,按BANK交叉存放;即,第一個字在第一個BANK存放,第二個字在第二個 BANK存放,…,直到第Μ個字在第Μ個BANK存放;然后第M+1個字又在第一個BANK存放,…,依 次類推;每個存儲塊分成上存儲區(qū)和下存儲區(qū)并支持同時進行兩個向量訪存操作。5. 根據(jù)權(quán)利要求1~3中任意一項所述的面向向量處理器的去塊濾波向量化實現(xiàn)方法, 其特征在于,所述向量矩陣寄存器文件由MXM個存儲單元組成,每個存儲單元的位寬一般 為4、8、12、16、32,該陣列在邏輯上為由1個行向量寄存器¥1?()-¥1^-1或1個列向量(^1? 0- CVRm-x寄存器組成;每個行向量寄存器包含Μ個元素 Ei, 〇-Ei ,Μ-i,其中i = 0,1,2……M-1,每個 列向量寄存器包含Μ個元素 E〇, i-Em-i,其中i = 0,l,2……M_1;矩陣寄存器在讀寫使能、讀 寫地址和行列選擇信號的控制下完成行列向量的讀出和寫入。
【文檔編號】H04N19/117GK105828071SQ201610194300
【公開日】2016年8月3日
【申請日】2016年3月31日
【發(fā)明人】陳勝剛, 萬江華, 劉勝, 王耀華, 陳小文, 劉仲, 陳海燕
【申請人】中國人民解放軍國防科學(xué)技術(shù)大學(xué)