亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        HEVC中運動補償算法的動態(tài)可重構(gòu)實現(xiàn)

        2020-04-11 02:56:28謝曉燕周金娜劉新闖
        小型微型計算機系統(tǒng) 2020年4期
        關(guān)鍵詞:指令

        謝曉燕,周金娜,朱 筠,劉新闖,雷 祥

        1(西安郵電大學(xué) 計算機學(xué)院,西安 710121)2(西安郵電大學(xué) 電子工程學(xué)院,西安 710121)

        1 引 言

        HEVC是在視頻編碼專家組(Video Coding Experts Group,ITU-T VCEG)和運動圖像專家組(Moving Picture Experts Group,ISO/IEC MPEG)的共同協(xié)作下開發(fā)的最新視頻編碼標(biāo)準(zhǔn)[1].HEVC具有顯著的壓縮效果,在確保與H.264相同視頻質(zhì)量的同時降低了50%的比特率[2].其預(yù)測單元塊(Prediction Unit,PU)的大小從64×64到4×4不等[3].運動補償算法由于不同尺寸的編碼單元和插值操作,采用了8抽頭亮度濾波器和4抽頭色度濾波器.HEVC的內(nèi)插濾波器分別占編碼器和解碼器執(zhí)行時間的20%~30%和20%~40%,使得插值濾波器成為HEVC中最耗時的編碼工具之一[4],插值運算的高復(fù)雜性增加了對硬件加速的需求.為了提高運動補償算法的計算效率,一些學(xué)者提出了多種解決方案.

        文獻(xiàn)[5]提出了四行并行2維(2 Dimensional,2D)緩存機制,以減少61.86%的存儲器流量并支持更高的內(nèi)插器吞吐量,可以更高效地完成數(shù)據(jù)的更新,但是其硬件設(shè)計復(fù)雜,靈活性差.文獻(xiàn)[6]根據(jù)運動補償算法中8抽頭濾波器的系數(shù)設(shè)計出了21個加法器完成濾波操作,將A、B型濾波器合并為一個可重構(gòu)濾波器架構(gòu).雖然這種方法與H.264相比效率提高了0.043%,但是所需濾波器和寄存器的數(shù)量較多,占用硬件資源較大.文獻(xiàn)[7]設(shè)計了一種可重構(gòu)數(shù)據(jù)通路的亮度插值濾波器,擁有較高的設(shè)計效率,但是需要額外的存儲器和控制邏輯.文獻(xiàn)[8]提出了一種新的靈活的硬件結(jié)構(gòu),用于插值濾波器中使用的半像素和四分之一像素.該架構(gòu)可以在30個時鐘周期內(nèi)處理4×4 PU的整個分?jǐn)?shù)位置,但是卻僅能計算4×4塊.文獻(xiàn)[9]使用64個可重構(gòu)的濾波器來滿足不同的濾波器類型,該架構(gòu)雖然能夠?qū)崿F(xiàn)高吞吐量,但是設(shè)計復(fù)雜性較高,僅能計算8×8塊.文獻(xiàn)[10]提出了并行化和流水線結(jié)構(gòu)的分像素插值方案,采用高并行度的8輸入雙通道插值器,實現(xiàn)了視頻的實時傳輸,但所占資源較多.

        綜上所述,動態(tài)可重構(gòu)的并行化運動補償算法已成為視頻高計算性能有效的解決方案[11].本文采用動態(tài)可編程可重構(gòu)的陣列處理器來實現(xiàn)運動補償算法的并行化實現(xiàn),基于該結(jié)構(gòu)即高效又靈活的特點,又采用數(shù)據(jù)復(fù)用和并行操作的思想,動態(tài)實現(xiàn)運動補償算法的可變塊模式切換.提高插值過程的計算效率,縮短了編碼時間,提高算法的靈活性.

        2 運動補償算法

        運動補償算法采用8抽頭濾波器替換H.264中的6抽頭濾波器,新的8抽頭濾波器中使用了三種不同的插值系數(shù),使得分?jǐn)?shù)精度的樣本預(yù)測更加精確,插值系數(shù)如表1所示.

        表1 分?jǐn)?shù)精度樣本位置對應(yīng)插值系數(shù)
        Table 1 Fractional accuracy sample position corresponding
        to interpolation coefficient

        分?jǐn)?shù)精度樣本位置插值系數(shù) a、d、e、f、g{-1,4,-10,58,17,-5,1}/64 b、h、i、j、k{-1,4,-11,40,40,-11,4,-1}/64 c、n、p、q、r{1,-5,17,58,-10,4,-1}/64

        圖1所示為亮度插值分?jǐn)?shù)精度樣本位置示意圖.整數(shù)樣本所在位置用大寫字母表示,分?jǐn)?shù)樣本所在位置用小寫字母表示.當(dāng)運動矢量(Motion Vector,MV)指向整數(shù)樣本所在位置時,不進(jìn)行插值運算,直接以此整數(shù)樣本值作為最后的預(yù)測結(jié)果輸出.當(dāng)運動矢量指向分?jǐn)?shù)位置時,即1/2像素精度或1/4像素精度位置時,運動補償插值模塊將利用插值濾波器進(jìn)行非整數(shù)樣本預(yù)測.

        圖1 亮度插值分?jǐn)?shù)精度樣本位置Fig.1 Luma interpolation score accuracy sample position

        運動補償算法的數(shù)據(jù)相關(guān)性大部分來源于參考像素的讀取,插值操作需要用周圍的像素點作為參考.例如一個8×8編碼塊,最多需要15×15參考塊,而對于下一個編碼塊,也需要15×15參考塊.其中當(dāng)前參考塊的數(shù)據(jù)和下一參考塊的數(shù)據(jù)存在數(shù)據(jù)重疊現(xiàn)象,如果對參考數(shù)據(jù)分開做處理,則需要復(fù)雜的控制邏輯來完成.而針對更大的編碼塊,需要的參考塊數(shù)據(jù)更多,可以根據(jù)數(shù)據(jù)復(fù)用思想來更新下一參考塊數(shù)據(jù).并且PU塊越大,需要計算的插值像素點越多,需要處理的分像素位置情況也更復(fù)雜.如果每次只處理一個像素點,只針對一種分像素位置進(jìn)行處理,耗時較長,算法的計算效率低下.運動補償算法在同一時間內(nèi)可以進(jìn)行相同的插值計算操作,比如執(zhí)行8×8像素塊,每個像素點的插值計算和其余63個像素點的插值計算并無數(shù)據(jù)相關(guān)性,所以插值計算過程可以采用并行的思想,在同一時刻處理多個像素.讀取參考塊數(shù)據(jù)和插值計算數(shù)據(jù)存在相關(guān)性,所以參考塊讀取與插值計算這兩個過程為串行執(zhí)行.

        依照前面分析,本文提出一種基于動態(tài)可重構(gòu)陣列處理器的運動補償并行插值計算方法,該結(jié)構(gòu)兼顧專用硬件的高效性和通用處理器的靈活性,充分滿足了運動補償算法插值計算的需求[12].同時采用數(shù)據(jù)復(fù)用的思想進(jìn)行參考塊數(shù)據(jù)的動態(tài)選取,進(jìn)行陣列和指令的可配置來實現(xiàn)可變塊模式的動態(tài)選擇.

        3 參考塊數(shù)據(jù)更新

        采用數(shù)據(jù)復(fù)用的思想進(jìn)行參考塊數(shù)據(jù)的動態(tài)選取,參考塊更新以8×8的編碼塊為例進(jìn)行說明.當(dāng)前一編碼塊處理完之后,就緊接著處理下一編碼塊,這涉及到了參考塊數(shù)據(jù)的更新,如圖2所示.當(dāng)前參考塊和下一個參考塊數(shù)據(jù)重合的區(qū)域大小為7×15,則下一個參考塊可以通過當(dāng)前參考塊更新120個數(shù)據(jù)即可得到下一個參考塊.該過程分為兩個步驟,執(zhí)行流程圖如圖2所示.

        圖2 更新參考塊數(shù)據(jù)Fig.2 Update reference block data

        第一步:按列處理參考塊像素:首先將處理元中15×15參考塊的前8列像素值刪除.并把第9列像素作為重構(gòu)15×15參考塊的第1列像素;然后把第10列像素作為重構(gòu)15×15的參考塊的第2列像素;把第11列像素作為重構(gòu)15×15的參考塊的第3列像素;把第12列像素作為重構(gòu)15×15的參考塊的第4列像素;把第13列像素作為重構(gòu)15×15的參考塊的第5列像素;把第14列像素作為重構(gòu)15×15的參考塊的第6列像素;最后把第15列像素作為重構(gòu)15×15的參考塊的第7列像素,即處理完成下一參考塊的前7列數(shù)據(jù).

        第二步:將剩余參考塊數(shù)據(jù)從外存中按行加載,處理后8列像素:先將第一行8個像素從外存中加載進(jìn)來,放在重構(gòu)15×15參考塊的第1行像素位置;再將下一行8個像素從外存中加載進(jìn)來,放在重構(gòu)15×15參考塊的第2行像素位置;并將第3行8個像素從外存中加載進(jìn)來,放在重構(gòu)15×15參考塊的第3行像素位置;以此類推,最后將第15行8個像素從外存中加載進(jìn)來,放在重構(gòu)15×15的參考塊第15行像素的位置.

        4 運動補償算法的動態(tài)可重構(gòu)實現(xiàn)

        4.1 動態(tài)可重構(gòu)結(jié)構(gòu)

        本文所采用的可重構(gòu)視頻陣列結(jié)構(gòu)由1024個同構(gòu)且規(guī)則的輕核處理元以鄰接互連的方式構(gòu)成,簇內(nèi)通過鄰接互連和共享存儲通信,簇間通過路由器和適配器進(jìn)行通信.可重構(gòu)陣列處理器由全局指令存儲器、輸入存儲器、輸出存儲器、陣列處理器和全局控制器五部分組成.全局指令存儲器用于存儲陣列處理器工作的操作指令和調(diào)用指令;輸入存儲器負(fù)責(zé)從外存中加載相應(yīng)的視頻序列;陣列處理器為核心計算部分由8×8個簇(Processing Element Group,PEG)組成.全局控制器為可重構(gòu)機制的核心部分,全局控制器用于實現(xiàn)對陣列計算資源的控制與管理,包括操作指令的廣播、調(diào)用指令的分發(fā)、計算資源信息的收集等.其上層為主機接口,下層為32×32個處理元(Processing Element,PE)組成的陣列處理器.主要功能是在主機接口和陣列處理器之間形成一個層次化編程網(wǎng)絡(luò),利用層次化編程網(wǎng)絡(luò)來實現(xiàn)對陣列計算資源的控制與管理.為取址簡單,尋址過程中的位寬可以逐級遞減以確保每一條指令都同時到達(dá)PE,層次化編程網(wǎng)絡(luò)設(shè)計通過H型網(wǎng)絡(luò)進(jìn)行指令加載.主處理器只需要向全局控制器發(fā)送任務(wù)指令和必要的數(shù)據(jù)或數(shù)據(jù)存儲地址,全局控制器便會控制指令傳輸網(wǎng)絡(luò)分配指令給不同PE執(zhí)行相應(yīng)的操作,如圖3所示.

        圖3 動態(tài)可重構(gòu)陣列處理器Fig.3 Dynamic reconfigurable array processor

        4.2 運動補償算法的并行化實現(xiàn)

        在運動補償算法中,處理的編碼塊越大,需要計算的插值像素點也就越多,待處理的分像素位置情況越復(fù)雜.如果每次只處理一個像素點,只針對一種分像素位置進(jìn)行處理,則耗時太長,算法計算效率低下.所以本文采用數(shù)據(jù)并行的思想,在同一時間處理多個像素點,縮短數(shù)據(jù)讀取和計算時間從而提高算法的計算效率.以8×8塊大小為例,算法的映射圖如圖4所示,具體操作步驟如下:

        Step 1.原始數(shù)據(jù)和參考數(shù)據(jù)加載.當(dāng)前幀的數(shù)據(jù)存儲在DIM中,參考幀的數(shù)據(jù)存儲在到DOM中的.PE00訪問DIM,讀取原始像素值,并發(fā)送到PE03.同時PE01訪問DOM,讀取相應(yīng)的參考像素值.并下發(fā)到PE00,PE11,PE02,PE03.其中PE00將數(shù)據(jù)下發(fā)給PE10,PE20,PE30;PE11將數(shù)據(jù)下發(fā)給PE21,PE31;PE02將數(shù)據(jù)下發(fā)給PE12,PE22,PE32;PE03將數(shù)據(jù)下發(fā)給PE13,PE23,PE33.為了提高數(shù)據(jù)傳輸效率,不需要等待PE00下發(fā)完后其他PE才下發(fā),只要某個PE接收到下發(fā)數(shù)據(jù)命令就立刻將數(shù)據(jù)下發(fā)給相對應(yīng)的PE.

        Step 2.插值計算.各個PE接收到數(shù)據(jù)之后,開始進(jìn)行1/2或者1/4插值計算.由于運動補償算法在同一時間內(nèi)有大量相同的插值計算,每個像素點的插值計算和其他像素點的插值計算并無數(shù)據(jù)相關(guān)性,所以插值計算可以在16個PE中同時進(jìn)行.插值計算完成后再將預(yù)測值通過共享存儲傳輸?shù)絇E03中.

        Step 3.將PE03中的預(yù)測值和當(dāng)前像素值進(jìn)行殘差計算,計算完后將殘差值傳輸?shù)絇E30中與預(yù)測值完成圖像重建.

        圖4 運動補償算法的映射圖Fig.4 Map of motion compensation algorithm

        4.3 運動補償算法的可重構(gòu)實現(xiàn)

        運動補償算法支持所有可能的PU尺寸,其范圍從4×4像素塊到64×64像素塊,這對內(nèi)存訪問,控制和處理的并行性要求是一個重大挑戰(zhàn).為了應(yīng)對這一挑戰(zhàn),本文提出了一種運動補償算法的動態(tài)可重構(gòu)實現(xiàn)方案,基于上下文切換的重構(gòu)機制,實現(xiàn)對可變塊算法的動態(tài)映射.動態(tài)重構(gòu)機制主要核心分為指令重構(gòu)和規(guī)模重構(gòu).主要用到指令下發(fā)網(wǎng)絡(luò)的指令廣播操作和指令下發(fā)操作.指令重構(gòu)是將不同塊的代碼下發(fā)到相應(yīng)簇中,實現(xiàn)PE功能單元的重構(gòu).規(guī)模重構(gòu)是基于上下文切換的方式將指令預(yù)先存放在陣列結(jié)構(gòu)中每個PE自帶的指令存儲器中,然后通過廣播操作同時開啟所需PE.規(guī)模重構(gòu)有256個PE(16個PEG),64個PE(4個PEG)和16個PE(1個PEG),當(dāng)執(zhí)行4×4至64×64塊大小時,PEG00-PEG33的本地同時存儲指令,其規(guī)模重構(gòu)如圖5所示.若做64×64的塊大小,則通過指令廣播操作指令讓所有的簇(PEG00-PEG33)工作;若做32×32塊大小,則通過指令廣播操作指令讓所有的簇(PEG00-PEG11)工作;若做16×16塊大小,則通過指令廣播操作指令讓簇(PEG00-PEG01)工作;若做8×8塊大小,則通過指令廣播操作指令讓簇(PEG00)工作;若做4×4塊大小,則通過指令廣播操作指令讓簇(PEG01)工作.

        圖5 4×4-64×64運動補償算法可重構(gòu)功能圖Fig.5 4×4-64×64 motion compensation algorithmreconfigurable function diagram

        下面以4×4塊大小切換8×8塊大小為例具體說明.在加載之前應(yīng)針對不同分辨率的測試序列進(jìn)行編碼塊首地址存放.首先將YUV測試序列通過Matlab軟件轉(zhuǎn)換成陣列結(jié)構(gòu)能識別的二進(jìn)制數(shù)值.并將該數(shù)據(jù)以陣列的格式分布在文檔中,存放到DIM中.當(dāng)執(zhí)行4×4塊大小,通過廣播操作指令讓PEG00工作,當(dāng)執(zhí)行完4×4塊大小之后,通過CALL調(diào)用指令切換到8×8塊大小,此時PEG01工作,其中簇內(nèi)具體映射方案如上圖4所示.4×4塊的映射方案和8×8映射方案相同,4×4塊大小每個PE計算一個像素,8×8塊大小每個PE計算4個像素.

        5 實驗結(jié)果與分析

        為了驗證運動補償算法可重構(gòu)實現(xiàn)的可行性,本文基于動態(tài)可重構(gòu)陣列結(jié)構(gòu)進(jìn)行驗證.方法如下:通過修改測試模型HM10.0的配置文件,獲取測試數(shù)據(jù)和塊劃分信息,存入片外存儲,然后通過QuestaSim將可重構(gòu)方案映射到動態(tài)可重構(gòu)陣列結(jié)構(gòu)上進(jìn)行仿真驗證.圖6為不同陣列規(guī)模下處理不同塊大小所需的時間,其中串行處理時間為單PE處理結(jié)果,相比于串行執(zhí)行,并行處理縮短了約93%處理時間.在不同的陣列規(guī)模下,當(dāng)執(zhí)行4×4切換到8×8塊大小時,執(zhí)行4個4×4既可切換到8×8;當(dāng)執(zhí)行8×8切換到16×16塊大小時,執(zhí)行4個8×8塊大小即可切換到16×16塊;當(dāng)執(zhí)行16×16切換到32×32塊大小時,執(zhí)行4個16×16塊大小即可切換到32×32塊;同理,執(zhí)行32×32塊切換到64×64塊大小時,執(zhí)行4個32×32塊大小即可切換到64×64.

        圖6 不同塊大小運動補償算法計算時間統(tǒng)計Fig.6 Calculation of time statistics for different block sizemotion compensation algorithms

        采用CMOS90nm工藝對可重構(gòu)視頻陣列處理器進(jìn)行綜合,再通過BEE4平臺上的FPGA LX6V550T對設(shè)計進(jìn)行綜合,如表2所示為8×8編碼塊綜合結(jié)果,從頻率、資源占用率以及并行度分別進(jìn)行比較.根據(jù)能同時處理像素的多少,可以得出16個PE規(guī)模的陣列結(jié)構(gòu)并行度為16.文獻(xiàn)[6]設(shè)計了可重構(gòu)的濾波器,其頻率遠(yuǎn)遠(yuǎn)低于本文,而且設(shè)計的像素處理并行度也是其2倍.文獻(xiàn)[10]僅用于處理8×8編碼塊,雖然資源占用比本文低,但是工作頻率遠(yuǎn)遠(yuǎn)低于本文,并行度也僅為本文的一半.文獻(xiàn)[13]提出的高度并行的流水線設(shè)計,可同時處理32個像素,頻率雖然略高,但是資源占用卻是本文的2倍之多.文獻(xiàn)[14]在頻率和本文相當(dāng)?shù)那闆r下,硬件資源是本文設(shè)計的4倍還要多.文獻(xiàn)[15]在頻率上略高于本文,但是其硬件資源卻差不多是本文設(shè)計的4倍.

        表2 運算性能比較
        Table 2 Comparison of computing performance

        本文文獻(xiàn)[6]文獻(xiàn)[10]文獻(xiàn)[13]文獻(xiàn)[14]文獻(xiàn)[15]FPGAZynq 7045///65nmFPGAZynq 7045ASIC90nm90nm65nm40nm//工作頻率ISE綜合156MHz///150MHz180MHzDC綜合300MHz171 MHz34.2MHz342 MHz//LUT38.345k///126k74200ALM?+341DSP+113KGate137.425k32.49K64.8K297.3K//并行度168832//

        6 結(jié)束語

        本文基于可重構(gòu)視頻陣列處理器結(jié)構(gòu),針對可變塊的運動補償算法,提出了一種新的高并行度的可重構(gòu)方案.該方案能夠通過動態(tài)調(diào)整視頻陣列處理器規(guī)模,來實現(xiàn)不同塊大小的運動補償算法.該設(shè)計能夠靈活的切換塊大小并且最大限度地利用可重構(gòu)陣列處理器.實驗結(jié)果表明:所提出的可重構(gòu)實現(xiàn)方式相比于串行單PE處理時間節(jié)省了約93%,該結(jié)構(gòu)在具有較高的執(zhí)行效率的同時也具有較好的靈活性.

        猜你喜歡
        指令
        聽我指令:大催眠術(shù)
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        殺毒軟件中指令虛擬機的脆弱性分析
        巧用G10指令實現(xiàn)橢圓輪廓零件倒圓角
        中斷與跳轉(zhuǎn)操作對指令串的影響
        科技傳播(2015年20期)2015-03-25 08:20:30
        基于匯編指令分布的惡意代碼檢測算法研究
        一種基于滑窗的余度指令判別算法
        歐盟修訂電氣及電子設(shè)備等產(chǎn)品安全規(guī)定
        家電科技(2014年5期)2014-04-16 03:11:28
        MAC指令推動制冷劑行業(yè)發(fā)展
        汽車零部件(2014年2期)2014-03-11 17:46:27
        呦系列视频一区二区三区| 日本无吗一区二区视频| 男人天堂插插综合搜索| 99精品又硬又爽又粗少妇毛片| 偷拍综合在线视频二区日韩| 国产精品无码一区二区三区 | 少妇人妻在线视频| 久久久久久无码AV成人影院| 久久久精品国产三级精品| 国产一区二区精品久久岳| 亚洲视频一区| 亚洲国产精品综合久久20| 在线国产丝袜自拍观看| 免费超爽大片黄| 国产精品一区二区久久| 在线观看视频日本一区二区三区| 五月激情在线视频观看| 欧美人与禽zozzo性伦交| 国产91中文| 国内专区一区二区三区| 蜜桃18禁成人午夜免费网站| 中国人妻被两个老外三p| 色窝窝无码一区二区三区2022| 天堂麻豆精品在线观看| 国内精品久久久久久99| 国产suv精品一区二区69| 日本啪啪一区二区三区| 日韩少妇人妻中文视频| 天堂国精产品2023年| 国产最新一区二区三区天堂| 精品黑人一区二区三区久久hd| 国产精品国产三级国产av品爱网 | 狼友AV在线| 美女被强吻并脱下胸罩内裤视频 | 青青草成人原视频在线播放视频| 亚洲av无码一区二区三区鸳鸯影院| 国产一区二区三区在线观看免费| 国产成人精品cao在线| 不卡一本av天堂专区| 黄网站欧美内射| 免费一区二区三区视频狠狠|