《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 運用 FPGA進行控制平面/數據平面視頻處理
運用 FPGA進行控制平面/數據平面視頻處理
摘要: 嵌入式設計人員面臨的最大挑戰之一就是界定系統的性能需求。用以確定實際性能需求所需的信息要么無法獲取,要么難以獲得。最精確的估算有時也會因無法預料的計算負荷而失效。分析通常會指出,對于數據處理需求而
Abstract:
Key words :
 嵌入式設計人員面臨的最大挑戰之一就是界定系統的性能需求。用以確定實際性能需求所需的信息要么無法獲取,要么難以獲得。最精確的估算有時也會因無法預料的計算負荷而失效。分析通常會指出,對于數據處理需求而言嵌入式處理系統的成本效益太低。因此,系統設計人員高度渴望擁有可擴展的能夠適應性能需求潛在變化以及能夠執行高性能數據處理的架構。而在FPGA內部實施的控制平面/數據平面處理架構就能夠有效滿足上述要求。

  什么是控制平面/數據平面處理?為什么您的下一代嵌入式系統可能會需要它?

  在無法用軟件完成所有處理工作的系統中,設計人員可以通過多種途徑來獲得其他性能。他們可以采用對稱或者非對稱處理配置的多處理器;使用硬件協處理器;或者將數據處理任務拆分給一個或多個專用處理單元——就像在控制平面/數據平面內進行處理一樣。

  在這種編程方式下,數據處理被分成兩個不同的平面。控制平面代表著對性能影響不大的算法元素,比如管理性任務、用戶界面和操作系統功能。同時,數據平面代表著數據在系統中的流動,例如視頻流或音頻流及其處理。在數據平面上,設計人員采用諸如流水線這樣的技術來增強數據吞吐能力。控制平面/數據平面處理的典型應用包括流視頻、網絡包處理以及高速信號處理。

  讓我們來近距離觀察一個涉及流數據實時處理的控制平面/數據平面應用。我們將面臨高清視頻流特有模式的識別。該實要求混合使用高性能數據處理和包含嵌入式微處理器的控制功能的多種應用的典型代表。

  720p/60Hz的HD視頻流的像素頻率為74.25MHz。這就要求222.75MB每秒的處理速率。假定采用2.5GHz的雙核雙指令處理器來處理該數據,最佳的指令率為10G指令每秒。這樣的處理器可針對所處理數據的每一字節執行22.4條指令。對某些應用而言這已經足夠了,但22.4 條指令表明所能處理的數據非常有限。復雜的視頻處理功能,比如內核卷積(kernelconvolution)、噪音消減和其他過濾功能需要更高的指令執行效率。本文的解決方案準備在數據平面上創建并行或流水線處理單元。

  HD視頻處理是一種可以把問題劃分為控制平面和數據平面予以高效處理的常見的現實應用。作為一種高度并行處理單元,FPGA在本例中負責視頻處理,同時由FPGA內部的中等性能處理器負責視頻處理流水線。該處理器可專用于單個應用,也可以運行諸如Linux這樣的操作系統。最終形成的硬軟件混合實施方案可以把處理交付給能夠進行最佳處理的部分,實現低成本、高性能數據處理解決方案。圖1顯示的是典型的控制平面/數據平面系統。

典型的控制平面/數據平面處理系統

圖1:典型的控制平面/數據平面處理系統。

  采用FPGA實現計算負載均衡

  除了不菲的ASIC,FPGA是性能最高、最具經濟效益的流數據處理單元實施方法。FPGA因其靈活的架構而能讓設計人員實施包含并行和流水線單元的處理系統。這樣設計人員即可優化系統的性能和時延。

  設計人員隨后可以將該數據平面解決方案應用于外部的分立微處理器以進行控制。在FPGA內部加入該處理器能夠帶來多項優勢。內部處理器能夠大大減少處理器和數據平面單元之間的控制時延。時延的減少可以釋放出許多處理器周期。外部處理器必須與數據平面保持通信。通信通道可以是32位或者更多位數,并同時需要更多導線用于尋址和控制。增加的導線可能會要求更強大的處理器和FPGA封裝,從而導致系統成本增加。而采用PCIExpress(PCIe)能大幅度減少引腳數量。遺憾的是,不是所有的處理器和FPGA都支持這種相對新型的接口,而且即便支持,PCIe器件的成本也大大高于不采用PCIe的同類器件。

  在FPGA內部實施控制平面處理器和數據平面可以減少器件數量、板級空間和功耗,最終形成一個低成本的解決方案。在FPGA內既有諸如PowerPC等硬核處理器,也有賽靈思MicroBlaze等軟核處理器,可以根據應用要求配置基于FPGA的處理器。基于FPGA的系統能夠在處理器和FPGA邏輯之間移植決策和計算功能,從而實現系統級的優化。

  控制平面/數據平面系統的實施

  某些工具可以簡化基于FPGA的控制平面/數據平面系統的實施。使用向導或者通過調整現有參考設計來編譯系統是其中兩種常用的方法。

  通過向導FPGA工具可迅速匯編微處理器系統。使用下拉列表或者復選框,您可以輕松地指定目標部件以及需要的處理器和外設。同時,可以使用諸如 MATLAB軟件這樣的工具來迅速編譯具有處理器總線接口的信號處理流水線以用于控制。另外,還可以使用C-to-HDL工具構建數字信號流水線。控制平面/數據平面的連接可以簡單地通過匹配總線接口來完成。圖2顯示的是啟動向導的說明窗口和用向導構建的最終系統。

向導啟動屏幕截圖和已完成的系統

圖2:向導啟動屏幕截圖和已完成的系統。

  第二種方法是調整現有的參考設計。FPGA參考設計不斷發展并已成為市場的焦點。在我們的案例研究中使用的參考設計具有完整的微處理器系統、存儲器、外設和720pHD數字信號處理流水線。因此,該系統相當于一款完整的控制平面/數據平面解決方案。在該參考設計中,由處理器控制增益和流水線中的 FIR濾波器。使用C-to-FPGA工具創建目標探測和高亮顯示模塊,讓整個系統具備功能所化的時間不到20個小時。

  該處理器可以使用板卡支持包(BSP)提供的補充驅動程序來控制數據流水線。目前已有面向Linux的驅動程序,可以讓處理器直接控制數據處理流水線。Linux調用包括從Linux應用中打開I/O器件,然后針對該器件進行讀出或者寫入。

  HD視頻識別系統案例研究

  目標檢測和識別廣泛應用于監控、醫學成像和工廠自動化等行業。圖像的分辨率越高,目標識別的準確度越高。因此,對HD攝影機和相關的HD視頻流處理功能的需求較為強勁。我們的案例研究從這個問題(受一部著名的動畫電影啟發)出發:我們能否檢測并高亮顯示720pHD視頻流中的小丑魚?

  該設計需要16位色譜,以便識別小丑魚的條紋圖案。一旦識別,小丑魚在屏幕上將被移動的聚光燈并高亮顯示。此外,聚光燈的大小經設計后可以隨匹配的似然性而調整(實際上,系統降低了聚光燈外的其他區域的圖像亮度)。聚光燈的尺寸變化和形狀計算以及為在每個像素位置搜索克隆魚所進行的比較,將需要大量的計算以使其工作于74.25MHz的時鐘周期。顯然,這樣的處理要求大大超出了一般嵌入式處理器的能力。

  在這種情況下,最好的解決辦法是把流數據處理轉移到協處理器上。在FPGA內部實施協處理器能夠以最低成本靈活構建能夠滿足性能要求的解決方案。因此,基于FPGA的控制平面/數據平面架構就是最佳的選擇。FPGA嵌入式處理可以通過總線接口控制負責接收視頻數據、探測小丑魚、高亮顯示小丑魚并輸出供顯示之用的視頻數據的數字信號處理流水線。

  因此,在本目標檢測和高亮顯示案例中,我們選擇50MHz的MicroBlaze嵌入式處理器來管理和控制74.25MHz的數據處理流水線,同時管理用戶界面。在免除了實際執行視頻處理的責任后,處理器可以處理許多其他的功能,比如托管以太網數據通信、管理圖形用戶界面、對數據處理流水線進行精細控制(例如,逐幀增益控制)等。

  諸如Linux這樣的操作系統是提供多任務功能、網絡協議棧和用戶界面語言支持的理想選擇。圖3顯示了所實施系統的方框圖。該解決方案可以在高數據處理帶寬需求和用軟件控制數據處理方式之間實現理想的平衡。

小丑魚探測器控制平面/數據平面系統

圖3:小丑魚探測器控制平面/數據平面系統。

  采用C-to-FPGA工具實現軟硬件協同設計

  C-to-FPGA編譯器可以讓開發人員使用新的開發工具集和新技術解決軟件/硬件開發問題。開發人員可以先在軟件中進行算法編碼。經驗告訴我們,在軟件中開發算法較在硬件中開發算法的效率更高。具體原因如下:首先,諸如C語言能夠讓編程人員在高級軟件語言的層面上開發算法,而這是使用 Verilog或者VHDL硬件描述語言所不能達到的;其次,與同類的硬件開發工具相比,針對C語言的調試和測試工具運行速度更快、效率更高,通常也更易于使用。相當于硬件算法,C語言算法可以在目標處理器上全速運行,而硬件算法需要先在仿真程序上完成測試和調拭;最后,C語言開發工具較同類硬件開發工具的成本要低得多。因此,工程人員一般傾向于在C語言或者類似的高級語言中開發算法。

  一旦使用C語言這樣的軟件語言完成對某個算法的驗證,設計人員必須測量其性能,并確定該算法是否能夠完全在嵌入式處理器或是完全在硬件上運行、或者硬軟件混合協處理實施方案是否為最佳選擇。在這種判斷過程中可以采用性能分析工具。如果代碼必須被轉到硬件上,則設計人員必須手工轉換算法,或者使用 C-to-FPGA工具。

  C-to-FPGA工具可以讓開發人員迅速把算法轉換成HDL代碼,優化生成的硬件處理器,并執行假設場景平衡性能和FPGA資源。該工具還能夠讓軟件工程師使用FPGA內部的高性能數據處理邏輯,從而變身為硬件工程師。

  使用Linux把處理器連接到FPGA

  與FPGA制造商合作的Linux供應商已經開發完成了可讓處理器與FPGA通信并對其進行控制的驅動程序。首先,您必須針對該I/O器件配置Linux。配置步驟由兩個步驟組成。首先,把定制的驅動程序加載到Linux內核中:

程序

  隨后,將驅動程序注冊到特定的器件號碼(比如253):

程序

  通信是通過開啟該I/O器件、然后對該器件進行讀寫而完成的,示例代碼段如下所示:

程序

程序

  FPGA的優勢

  信號處理器系統的數據帶寬要求往往會超過通用處理器能經濟地獲得的水平。在這種情況下,設計人員一般會把他們的數據處理系統劃分為兩個處理功能:使用通用處理器進行控制處理,另外使用諸如FPGA等硬件加速器進行數據處理。這樣就構成了一個控制平面/數據平面處理系統。

  FPGA非常適用于同時實施控制平面和數據平面功能。一個FPGA可以包含一個或者多個像MicroBlaze這樣軟處理器,和/或像PowerPC這樣的硬處理器。將它們集成到FPGA中可以實現控制平面處理器和數據平面處理系統之間的低時延、高帶寬通信。

  借助向導和預先構建的參考設計,針對嵌入式和數據處理功能的系統編譯簡單明了。通過把在C語言中構建的算法原型轉換到高性能硬件處理單元,C- to-FPGA工具有助于優化這一進程。最后,可以利用現在可用的Linux驅動程序方便地完成處理器和FPGA信號處理流水線之間的通信及控制編碼。

  我們的案例研究是一個典型的應用示例。在這個例子中,通過低成本通用處理器處理HD視頻流是不合實際的,但是可以通過FPGA內部的信號處理流水線輕松加以解決。處理器隨即被釋放出來用于提供用戶界面、網絡和系統管理功能,并同時監測和控制信號處理流水線。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧洲视频| 欧美一区二区私人影院日本| 国产日韩欧美在线视频观看| 欧美日韩精品一区二区在线播放 | 欧美日韩视频在线观看一区二区三区| 久久综合九色九九| 久久精品一二三区| 久久精品人人做人人爽电影蜜月 | 国产亚洲成av人片在线观看桃| 国产精品久久久久久久久果冻传媒 | 久久深夜福利免费观看| 久久国产精品72免费观看| 午夜亚洲性色视频| 午夜精品区一区二区三| 性xx色xx综合久久久xx| 香蕉久久夜色精品| 欧美一区影院| 久久久精品五月天| 久久免费的精品国产v∧| 久久久久久亚洲精品中文字幕| 久久精品视频99| 久久夜色精品亚洲噜噜国产mv| 久久久免费精品| 欧美大片一区二区| 欧美日韩另类字幕中文| 国产精品videossex久久发布| 欧美视频四区| 国产精品视频观看| 国产一区二区电影在线观看| 国语自产精品视频在线看一大j8| 好看不卡的中文字幕| 亚洲国产激情| 一区二区精品在线观看| 亚洲午夜在线视频| 欧美一级片久久久久久久| 亚洲第一毛片| 亚洲区国产区| 亚洲——在线| 欧美中文字幕在线视频| 免播放器亚洲一区| 欧美日韩一区在线观看视频| 国产精品日韩一区| 精品不卡在线| 日韩亚洲一区二区| 午夜一区二区三区在线观看| 亚洲黄色免费| 亚洲视频在线观看网站| 久久不射中文字幕| 欧美xart系列高清| 国产精品免费aⅴ片在线观看| 狠狠久久亚洲欧美| 亚洲美女在线一区| 欧美一区视频在线| 99在线精品视频| 欧美自拍丝袜亚洲| 欧美精品v国产精品v日韩精品| 国产精品久久久久久久久借妻| 国产亚洲成av人片在线观看桃| 亚洲国产精品一区二区www在线| 亚洲无线视频| 欧美专区在线观看一区| 宅男66日本亚洲欧美视频| 欧美在线看片| 欧美日韩不卡在线| 国外成人性视频| 一本不卡影院| 久久精品国产亚洲高清剧情介绍| 一本大道久久a久久精品综合| 久久精品亚洲精品| 欧美三区在线视频| 一区在线视频| 亚洲欧美精品在线| 一本一道久久综合狠狠老精东影业 | 女同性一区二区三区人了人一 | 欧美一级理论性理论a| 一区二区三区免费网站| 久久久久久久综合| 欧美天天视频| 亚洲黄色大片| 久久aⅴ国产欧美74aaa| 亚洲影院在线观看| 欧美福利专区| 国产一区二区三区电影在线观看| 一区二区免费在线视频| 亚洲精品乱码久久久久久| 久久国产精品久久国产精品| 欧美日韩日本网| 原创国产精品91| 午夜久久久久久| 亚洲一级二级| 欧美激情亚洲综合一区| 国内偷自视频区视频综合| 亚洲天堂成人在线观看| 99精品视频免费观看| 久久青草久久| 国产日韩综合| 亚洲欧美国产高清va在线播| 一区二区三区三区在线| 欧美成人免费小视频| 国产一区二区三区高清在线观看 | 一区二区三区免费在线观看| 亚洲激情专区| 久久精品女人的天堂av| 国产精品一区视频网站| 一本色道精品久久一区二区三区| 日韩午夜视频在线观看| 欧美成人日本| 黄色资源网久久资源365| 亚洲免费在线视频一区 二区| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 夜夜嗨av一区二区三区四区 | 久久精品2019中文字幕| 久久精品人人做人人爽| 国产精品亚洲第一区在线暖暖韩国 | 亚洲一区二区三区欧美 | 欧美 日韩 国产一区二区在线视频 | 激情久久一区| 亚洲国产电影| 久热精品视频在线观看| 黄色成人在线| 亚洲欧洲日产国产网站| 免费在线国产精品| 亚洲高清在线| 亚洲精品日韩在线观看| 欧美成人在线网站| 亚洲激情婷婷| 一本色道久久综合狠狠躁篇的优点| 欧美大片在线看免费观看| 亚洲国产一区在线| 亚洲精品在线视频观看| 欧美精品在线观看91| 亚洲狼人综合| 亚洲一区二区三区精品在线| 国产精品成人免费| 亚洲午夜高清视频| 小处雏高清一区二区三区| 国产精品视频一二三| 午夜精品福利一区二区蜜股av| 欧美在线视频观看| 国产一区91精品张津瑜| 久久精品午夜| 欧美精品18+| 中文有码久久| 欧美在线日韩精品| 激情欧美一区二区| 日韩视频三区| 国产精品久久久久免费a∨| 欧美一级播放| 蘑菇福利视频一区播放| 亚洲精品一区二区在线| 亚洲欧美激情视频| 国产一区二区精品丝袜| 亚洲三级性片| 欧美四级剧情无删版影片| 亚洲免费中文字幕| 老司机精品导航| 日韩视频欧美视频| 欧美一区二区在线播放| 激情综合视频| 国产精品99久久不卡二区| 国产欧美精品日韩精品| 亚洲黄色成人网| 国产精品高清在线| 亚洲二区视频| 欧美日韩一区二区在线观看视频| 亚洲男人天堂2024| 欧美r片在线| 亚洲小说欧美另类社区| 久久色在线播放| aa级大片欧美| 久久综合狠狠综合久久综青草 | 久久精品国产69国产精品亚洲| 欧美激情视频免费观看| 亚洲一区二区成人| 老司机精品久久| 一区二区国产在线观看| 久久久久久久网站| 一个色综合av| 美女国产一区| 亚洲一区二区三区午夜| 欧美成人精品一区二区三区| 中文在线不卡| 欧美电影免费| 欧美一区二区三区另类| 欧美另类一区二区三区| 性欧美超级视频| 欧美日本乱大交xxxxx| 欧美一区二区网站| 国产精品成人va在线观看| 亚洲激情一区二区三区| 国产伦精品一区二区三区高清版 | 欧美日韩精品在线| 久久精品免费看| 国产精品久久久久久户外露出| 亚洲国产一区二区三区高清| 国产精品久久久久久五月尺| 亚洲精品久久视频| 国产主播一区二区三区四区| 亚洲自拍偷拍网址| 亚洲国产日韩在线|