国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

視頻陣列處理器數據加載電路的設計與實現*

2014-12-10 05:37:38冼子雨柏承雙
電子技術應用 2014年12期
關鍵詞:處理單元時鐘處理器

冼子雨,蔣 林,柏承雙,王 汐

(西安郵電大學 電子工程學院,陜西 西安 710061)

0 引言

視頻信息的采集、存儲、傳輸與處理一直都是多媒體領域研究的熱點[1]。多種視頻標準并存,桌面、嵌入式等不同應用,需要兼顧計算高效性和編程靈活性的動態(tài)可重構可編程視頻處理器體系結構[2]。而傳統通用處理器(Gnereal Purpose Processor,GPP)、DSP 以及專 用電路已很難滿足視頻處理性能和靈活性的要求,所以支持多標準和多種視頻編解碼算法已成為視頻編解碼器發(fā)展的趨勢,這向體系結構設計提出了更高的要求[3-4]。GPP采用RISC指令系統,通過超標量、亂序執(zhí)行、動態(tài)分支預測、推測執(zhí)行等機制,但執(zhí)行效率低下,也只能處理較小 的圖像[5];如 Intel的 MMX/SSE、IBM 的 AltiVec、HP 的MAX-I/MAX-II等。專用集成電路(ASIC)性能高,執(zhí)行效率也成倍提高,如TIAN X H[6]通過利用流水線的方式來減少數據相關性,并設計了一種完全支持RDO的上下文存儲器管理機制,能夠達到每個時鐘周期處理一個符號的速度,但它沒有了可編程的靈活性,無法適應多標準的發(fā)展?,F有編解碼器體系結構無法完全滿足視頻處理的需求,研究創(chuàng)新的可編程可重構統一處理陣列體系結構,能夠解決視頻處理的計算高效性和編程靈活性問題[7-9],但在視頻陣列處理器中數據加載已逐步成為陣列處理器的瓶頸。如何減少數據的訪存冗余,提高視頻陣列處理效率,是一個亟待解決的問題。

本文將要介紹可編程可重構數據加載單元的設計與實現,從而提升視頻處理的效率與性能。

1 運動估計算法對存儲結構要求

目前在視頻編解碼標準中,運動估計算法主要是為了除去幀間冗余,使視頻傳輸過程中的比特數大大減少。運動估計基本算法就是要對當前幀和參考幀進行最小平均絕對值誤差(MAD)操作,得到其運動矢量發(fā)送到解碼端。如圖1所示,實線框分別表示當前幀(W×H)和編碼的當前塊(N×N),虛線框分別表示參考幀(W×H)和計算的候選塊(N×N),點線框是參考幀的搜索區(qū)域(2pv+N×2ph+N)。

圖1 運動估計算法圖

計算過程包括了六重循環(huán),當前塊和候選塊的每個像素計算絕對誤差和(SAA),候選塊遍歷了(2ph+N)×(2pv+N)個像素的搜索窗,即在搜索窗內選定了2ph×2pv比較塊。一幀圖像計算絕對誤差和 (SAA)就要進行 W×H×2pv×2ph次操作,每次絕對誤差和操作需要2個像素,那么一幀圖像要訪問存儲 2×W×H×2pv×2ph次。若為1 080P 30 f/s,則總線將要讀取像素點 7.962 64 Gpixel/s,而實際當前幀和參考幀的全部像素點僅為 2×1 080×1 920×30=0.124 416 Gpixel。訪存冗余規(guī)定如下:那么存儲的帶寬 BW=f×W×H×訪存冗余當前幀+f×W×H×訪存冗余候選塊。存儲帶寬由訪存冗余決定,當每個像素只進行一次訪存操作時,存儲器的帶寬最小。所以必須在硬件內部設置像素緩存區(qū)域。若系統時鐘為100 MHz,進行1 080P 30 f/s幀間預測,那么搜索一幀的最大時間為1/30 s,搜索每個4×4子塊的時間為 26個系統時鐘。pv=ph=32的搜索區(qū)域含有1 024個候選塊,每個候選塊要進行16次減法和15次加法,即26個時鐘要處理1 024個候選塊31K次操作,這顯然需要多個候選塊并行操作,所以存儲系統要有能夠支持多個候選塊并行操作的能力。

2 視頻陣列處理器數據加載單元設計

2.1 視頻陣列處理器結構

視頻陣列處理器可編程可重構的統一體系結構就是采用處理單元(PE)之間鄰接互連,基于單指令多數據(SIMD)的數據級并行計算和多指令多數據(MIMD)的指令級并行計算,解決了并行算法和非并行算法的計算高效性和編程靈活性。簡單來說就是將算法中靈活的部分用編程方式執(zhí)行,而算法中計算量較大的部分采用可重構的方式并行處理。圖2給出了完整的視頻陣列處理器系統結構,包含5個可編程可重構陣列,每個可編程可重構陣列都是通過總線與主處理器連接且可編程可重構陣列之間可以通過寄存器進行通信。每一個可編程可重構陣列包含 16個可編程可重構處理單元組以及一個單元組陣列控制器處理器;每一個處理單元組主要包含一個可重構的4×4處理單元陣列以及一個可編程的處理單元組控制處理器。

該視頻陣列處理器可編程可重構的統一體系結構可以完成視頻壓縮的計算任務,主處理器將不同的視頻壓縮算法映射到可編程可重構陣列處理器上。根據算法特點分為可重構處理部分和可編程處理部分,用4×4陣列處理單元處理一些計算量大的算法,用可編程控制器處理比較靈活的算法。

圖2 視頻陣列處理器總體結構

2.2 數據加載單元的設計

訪存時,需要局部存儲單元加載部分數據,以實現數據復用。對當前幀需要N×N存儲大小,而數據復用重疊區(qū)域的大小為N×(N-1);對參考幀搜索區(qū)域的存儲大小為2ph×2pv,數據復用重疊區(qū)域的大小為 2ph×(2pv-1)。由于處理單元(PE)不存在局部存儲,采用廣播策略分派數據。計算過程應該是PC地址和數據地址的計算,所有的操作指令都應由PC和數據地址驅動,系統根據PC取出相應指令得到所需數據,并由數據地址得到對應的數據,由新數據或已有數據計算下一次操作的PC值和數據地址循環(huán)往復。其數據流經計算部件輸出數據結果,可編程大多是自主申請所需數據,而可重構或ASIC為了更高的性能大多使用地址生成的策略將數據“灌入”計算單元,以節(jié)省讀取數據的時間,增加系統吞吐率。如圖3所示數據存儲結構,塊區(qū)域存儲(Block Area Mem)需要兼顧申請讀取和“灌入”數據兩種模式。實線表示加載數據通過總線分別加載到各個塊區(qū)域存儲中;而當多個PE組需要加載相同數據時,如虛線表示可以通過一個發(fā)出讀請求的塊區(qū)域存儲廣播到其他需要數據的塊區(qū)域存儲中實現數據的共享。

圖3 數據存儲結構圖

塊區(qū)域存儲(Block Area Mem)負責與總線通信,以及數據的緩存,即需要當前幀緩存、參考幀緩存和寫入數據緩存。當前幀緩存負責當前塊的緩存和預取,參考幀緩存負責參考塊的緩存和預取,寫入緩存負責重建幀和相關變量的寫入。若使用灌入模式,為了達到高的處理能力,塊區(qū)域存儲(Block Area Mem)對當前塊和參考塊進行緩存和預取,為陣列處理器提供不間斷的數據源。在數據加載中搜索窗口的數據量要多于當前塊數據,能滿足搜索窗口的加載即可滿足當前塊的加載,若要實時加載32×32搜索區(qū)域,每個搜索區(qū)域的最大處理時間是4 115 ns,即410個時鐘要加載1 024個像素分量,每時鐘應加載3個像素。塊區(qū)域存儲(Block Area Mem)采用一次加載4個像素分量設計,即32 bit的數據位寬,256個時鐘可以加載一個32×32搜索區(qū)域的像素分量。對16×16宏塊和 32×32搜索區(qū)域數據采用乒乓操作,使當前塊和參考幀在“灌入”模式下不間斷地提供數據。根據幀間預測算法對存儲需求,電路工作在100 MHz下,對于pv=ph=32的搜索區(qū)域,每26個系統時鐘要處理1 024個候選塊,若 16×16 PE組的每個 PE只求一個當前塊像素和候選塊像素差的絕對值,剩余操作由其他PE組的PE流水完成,那么一個16×16的PE組可以處理16個4×4子塊像素差的絕對值。這樣要完成1 080P 30 f/s實時整數運動估計,需要讀取數據的 16×16 PE組有 1 024/(26×16)=2.462個,且這 3個 PE組可以利用數據共享減少對存儲的訪問,而總線可以對各塊區(qū)域存儲進行數據廣播,為減少對內部總線帶寬的要求,塊區(qū)域存儲(Block Area Mem)應具備從總線讀取相同數據的能力。在Cache模式下20 KB的當前塊緩存和參考塊緩存共同構成了16個2路直接相聯Cache。

如圖 4所示,塊區(qū)域存儲(Block Area Mem)由互連檢測模塊(connect_chk)、讀寫控制模塊(rd_wt_ctrl)、16×16 Buf和 32×32 Buf構成。

圖4 塊區(qū)域存儲模塊劃分

(1)互連檢測模塊:主要用于檢測相鄰塊區(qū)域存儲與本塊區(qū)域存儲的互連情況,根據配置的互連情況與周圍模塊建立連接,傳遞數據以實現數據的廣播。

(2)讀寫控制模塊:負責在“灌入”模式時計算下次讀取數據的首地址、緩沖區(qū)的切換及數據寫入;在Cache模式時,負責對2 KB寄存器進行管理,構成16個 2路直接相聯Cache。

(3)16×16 Buf:用于存儲當前塊數據,受讀寫控制模塊的控制。

(4)32×32 Buf:用于存儲參考塊及搜索區(qū)域數據,受讀寫控制模塊的控制。

3 結果及分析

用Synopsys公司Desgin Compiler在 SMIC 0.13μm CMOS工藝標準單元庫下綜合,頻率可達197.3 MHz。選用Xilinx公司Virtex6系列芯片Virtex XC6VLX550T進行FPGA驗證,綜合后的芯片資源使用情況如表1所示。本結構采用Verilog硬件描述,在Questasim 10.1d下完成了功能仿真和驗證;圖5所示為Cache模式時一組2路直接相連Cache替換策略仿真波形圖。

第 1次訪問的數據地址 peg_rd_add0為 25’d823區(qū)號塊號(rd_area_nu,rd_block_nu)即(12,13),在輸出有效信號valid0有效時,hit0_0、hit0_1均為低,此次訪問沒有命中,替換 id(excid0)為低表示本次讀取數據應寫入本組2路ram中的0號數據ram。第2次訪問的地址仍是25’d823,在輸出有效信號 valid0有效時,hit0_0有效表示0號ram命中,且0號ram的訪問計數counter_0為0,1號 ram的訪問計數 counter_1為 1,表明 ram0最近被訪問過而ram1沒有被訪問。第3次訪問的地址為25’d564 區(qū)號塊號(rd_area_nu,rd_block_nu)為(8,13)與 823的塊號一致,但ram1數據有效標志tag_valid1無效,表示不發(fā)生替換exch0為低。第4次訪問地址為上次的564,hit0_1有效表示ram1命中。第5次訪問的地址為25’d52 區(qū)號塊號(rd_area_nu,rd_block_nu)為(0,13),此次exch0為高表示需要替換cache數據塊,且excid0為低表示要替換ram0的數據。從上述描述可知,Cache替換策略得以正確實現,電路功能正確。

表1 FPGA芯片資源使用報告表

圖5 Cache替換策略仿真波形

從上述分析可知,在Cache模式時對寄存器進行管理。驗證結果表明,灌入和Cache模式可以滿足1 080P實時處理對數據加載的需求。

4 結束語

本文在研究分析了視頻處理編碼中運動估計算法的基礎上,制定了視頻陣列處理器數據加載電路設計的詳細方案,通過功能仿真驗證了電路功能的正確性,并綜合電路,得到了資源占用率、工作頻率等指標。結果表明,該電路能夠滿足1 080P視頻處理對數據加載的要求。該研究對于靈活性和高效性的可編程可重構視頻陣列處理器結構的設計有重要意義,后期將選用更多的視頻算法對該設計進行驗證。

[1]畢厚杰.新一代視頻壓縮編碼標準—H.264/AVC(第二版)[M].北京:人民郵電出版社,2009.

[2]CHEN T C,CHIEN S Y,HUANG Y W,et al.Analysis and architecture design of an HDTV720p 30 frames/s H.264/AVC encoder[J].IEEE Trans.Circ.Syst.Video Technol.,2006,16(6):673-688.

[3]LIN Y L S,KAO C Y,KUO H C,et al.VLSI design for video coding[M].Springer,2010.

[4]劉定佳.H_264視頻編碼算法研究及DSP實現[D].西安:西安電子科技大學,2010.

[5]黃小平,樊曉椏,張盛兵,等.32位雙發(fā)射雙流水線結構RISC微處理器設計[J].西北工業(yè)大學學報,2011,29(1):6-11.

[6]TIAN X H,LE T M,HO B L,et al.A CABAC encoder design of H.264/AVC with RDO support[C].IEEE International Workshop on Rapid System Prototyping,2007:167-173.

[7]陶文卿.面向媒體處理的可重構陣列的結構設計與研究[D].上海:上海交通大學,2010.

[8]張鵬,杜建國,解曉東,等.一種基于多核流水的多標準視頻編解碼器體系結構[J].計算機研究與發(fā)展,2008,45(11):1985-1993.

[9]PASTUSZAK G,TROCHIMIUK M.Architecture design and efficiency evaluation for the high-throughput interpolation in the HEVC encoder[C].Digital System Design(DSD),Euromicro,Los Alamitos CA,2013:423-428.

猜你喜歡
處理單元時鐘處理器
不同生物鏈組合對黃河下游地區(qū)引黃水庫富營養(yǎng)化及藻類控制
凈水技術(2022年1期)2022-01-13 00:45:28
別樣的“時鐘”
城市污水處理廠設備能耗及影響因素分析研究
科技資訊(2021年10期)2021-07-28 04:04:53
長填齡滲濾液MBR+NF組合工藝各處理單元的DOM化學多樣性
古代的時鐘
一種高可用負載均衡網絡數據采集處理的方法及系統
有趣的時鐘
時鐘會開“花”
Imagination的ClearCallTM VoIP應用現可支持Cavium的OCTEON? Ⅲ多核處理器
ADI推出新一代SigmaDSP處理器
汽車零部件(2014年1期)2014-09-21 11:41:11
蕉岭县| 德安县| 丹凤县| 文化| 宜川县| 绵竹市| 阜宁县| 通渭县| 吉林省| 墨竹工卡县| 郧西县| 泾阳县| 廊坊市| 通榆县| 遂昌县| 阜平县| 方正县| 安阳县| 毕节市| 兴安县| 曲靖市| 黄龙县| 吉首市| 石狮市| 涿州市| 贺州市| 防城港市| 霞浦县| 永仁县| 呼伦贝尔市| 呼和浩特市| 灌阳县| 阿克陶县| 华容县| 新泰市| 互助| 内乡县| 汉寿县| 庆元县| 焉耆| 乃东县|