在全集成設(shè)計(jì)環(huán)境中開(kāi)發(fā)視頻IP
典型的視頻處理系統(tǒng)使用一個(gè)微處理器來(lái)控制一個(gè)視頻流水線,該視頻流水線包括一個(gè)視頻源和宿,一個(gè)用于存儲(chǔ)視頻數(shù)據(jù)的大型存儲(chǔ)器,和一個(gè)視頻處理系統(tǒng)(圖 1)。
在實(shí)現(xiàn)和調(diào)試各種視頻算法時(shí),您需要通過(guò)軟件和硬件仿真來(lái)驗(yàn)證其功能性。視頻流的實(shí)時(shí)特性和每幀所需的大量視頻數(shù)據(jù),令視頻處理應(yīng)用的仿真產(chǎn)生了特別的挑戰(zhàn)。
設(shè)計(jì)環(huán)境
視頻基本套件 (VSK) 支持廣泛視頻應(yīng)用領(lǐng)域的高性能視頻處理系統(tǒng)的快速開(kāi)發(fā)與調(diào)試。VSK 采用賽靈思®Virtex™-4 XC4VSX35 器件,該器件通過(guò)結(jié)構(gòu)中高比例的乘法累加塊(也稱為 DSP48)而針對(duì) DSP 處理進(jìn)行了優(yōu)化,并具有豐富的視頻接口特性集支持,如 DVI、VGA、分量 (HD)、復(fù)合、S-視頻和 SDI等。
通常,開(kāi)發(fā)視頻算法需要使用硬件對(duì)實(shí)時(shí)數(shù)據(jù)流進(jìn)行視頻操作驗(yàn)證,需要仿真環(huán)境來(lái)開(kāi)發(fā)和測(cè)試視頻處理組件。VSK 為視頻系統(tǒng)的每個(gè)組件同時(shí)提供了軟件仿真和實(shí)時(shí)操作,可讓您開(kāi)發(fā)視頻 IP(包括濾波器、視頻塊集、加速器和視頻接口轉(zhuǎn)換)或最終應(yīng)用程序,如編解碼器、圖像增強(qiáng)、動(dòng)態(tài)伽馬校正和運(yùn)動(dòng)估計(jì)等。與工具套件的集成和 I/O 多樣性使能快捷而容易地把視頻引入板上和優(yōu)化其運(yùn)行算法。
與 VSK 一起提供的還有參考設(shè)計(jì),其中一些使用 HDL 編寫(xiě),其他的則用Xilinx System Generator for DSP 設(shè)計(jì)環(huán)境構(gòu)建。為了去除通過(guò)各種視頻接口引入數(shù)據(jù)并把它們發(fā)送到 Virtex-4 器件的復(fù)雜性,所以我們附帶了一個(gè)視頻接口塊集庫(kù),使所有接口塊集均可通過(guò)一個(gè) MicroBlaze™ 控制器來(lái)進(jìn)行控制。
為了突出顯示 VSK 的部分能力,我將對(duì) MPEG-4 第 2 部分解碼器演示設(shè)計(jì)進(jìn)行說(shuō)明。
MPEG-4 第 2 部分
該 MPEG-4 解碼器演示系統(tǒng)由 FPGA 硬件評(píng)估平臺(tái)、賽靈思 IP 核和嵌入式軟件組成,并一起對(duì)工業(yè)標(biāo)準(zhǔn)編碼視頻位流執(zhí)行解壓操作。
對(duì)于此設(shè)計(jì),F(xiàn)PGA 被編程為執(zhí)行解壓和驅(qū)動(dòng)視頻顯示之用。一個(gè)Compact Flash 卡用于保存多個(gè)壓縮視頻流和 FPGA 配置位流。一個(gè)位于 FPGA 內(nèi)的嵌入式處理器從 Compact Flash 卡讀取位流,將其寫(xiě)入一個(gè)外部DDR 存儲(chǔ)器中,然后將其發(fā)送到 MPEG-4 第 2 部分解碼器。然后通過(guò)視頻 I/O 子卡,將解碼器的輸出重新格式化為要在外部監(jiān)視器上顯示的視頻標(biāo)準(zhǔn)。
系統(tǒng)概覽如圖 2 所示。MPEG-4 解碼器核、DDR 存儲(chǔ)器控制器、顏色空間轉(zhuǎn)換器、VGA 接口、宏塊格式轉(zhuǎn)換器、以及 MicroBlaze 軟核處理器及相關(guān)外圍電路,在XC4VSX35 FPGA 中實(shí)現(xiàn)。
而ZBT 存儲(chǔ)器、DDR 存儲(chǔ)器、System ACE™ 技術(shù)、Compact Flash 連接器、兩線式 LCD 顯示器,和一個(gè)數(shù)模轉(zhuǎn)換器,都是位于硬件平臺(tái)上。
嵌入式處理器
視頻系統(tǒng)一般需要有一個(gè)控制處理器。該處理器通常用于與主機(jī)系統(tǒng)通信,建立視頻處理操作,計(jì)算系數(shù),且一般作為低速率數(shù)據(jù)處理器運(yùn)行。
VSK 具有輸入與輸出源的視頻標(biāo)準(zhǔn),與 System Generator 硬件聯(lián)合仿真能力相配合,可讓您通過(guò)實(shí)時(shí)視頻流快速測(cè)試和調(diào)試系統(tǒng)。
在該 MPEG-4 演示設(shè)計(jì)中,嵌入式 MicroBlaze 處理器用作總體系統(tǒng)級(jí)控制器,處理以下功能,如用戶接口,從 Compact Flash 卡中讀取壓縮位流,將位流發(fā)送到 MPEG-4 解碼器核,和監(jiān)視所有系統(tǒng)狀態(tài)標(biāo)志等。
通過(guò)Xilinx System Generator for DSP,可大大簡(jiǎn)化 MicroBlaze 處理器整合到框架中的設(shè)計(jì)流程。您可以結(jié)合使用 Xilinx System Generator 與嵌入式開(kāi)發(fā)套件 (EDK) 軟件工具,去實(shí)現(xiàn)和仿真具有一個(gè)處理器和 FPGA 視頻處理器功能、對(duì)實(shí)況視頻流進(jìn)行操作的系統(tǒng)。System Generator 自動(dòng)生成軟件驅(qū)動(dòng)程序來(lái)支持用于向 System Generator 設(shè)計(jì)的數(shù)據(jù)讀寫(xiě)。
兩種方法學(xué)目前均支持集成一個(gè) MicroBlaze 控制器:
• System Generator 設(shè)計(jì)導(dǎo)出到 EDK 系統(tǒng)。當(dāng)在 pcore(處理器核)導(dǎo)出模式下使用時(shí),內(nèi)存映射塊和所有其他塊被封裝到一個(gè) pcore 外設(shè)中。內(nèi)存映射接口的軟件驅(qū)動(dòng)程序及文檔也被生成并隨該外設(shè)一起提供。
• EDK 項(xiàng)目導(dǎo)入到 System Generator 設(shè)計(jì)中,以便進(jìn)行硬件聯(lián)合仿真。當(dāng)在 EDK 導(dǎo)入模式下使用時(shí),通過(guò)運(yùn)行 EDK 導(dǎo)入向?qū)⒁粋€(gè) EDK 文件導(dǎo)入到 System Generator 中。當(dāng)導(dǎo)入向?qū)瓿珊?,?nbsp;EDK 系統(tǒng)象一個(gè)黑盒子的被拉入 System Generator 設(shè)計(jì)中。在導(dǎo)入過(guò)程中,EDK 系統(tǒng)通過(guò)快速單工鏈路 (FSL) 接口進(jìn)行擴(kuò)展,該接口用于與內(nèi)存映射進(jìn)行通信。
硬件聯(lián)合仿真
觀看最后輸出視頻是所有視頻系統(tǒng)一項(xiàng)重要的質(zhì)量測(cè)量指標(biāo)。VSK 具有的輸入與輸出源視頻標(biāo)準(zhǔn),與 System Generator 硬件聯(lián)合仿真能力相配合,可讓您通過(guò)實(shí)時(shí)視頻流快速測(cè)試和調(diào)試系統(tǒng)。
System Generator 提供了硬件聯(lián)合仿真接口,可以將 System Generator 圖編譯為 FPGA 位流,并將該位流與一個(gè)新的運(yùn)行時(shí)硬件聯(lián)合仿真塊相關(guān)聯(lián)。當(dāng)在 Simulink 中仿真該設(shè)計(jì)時(shí),編譯部分的結(jié)果將通過(guò)硬件而非軟件來(lái)計(jì)算。
System Generator 提供了高速硬件聯(lián)合仿真接口,允許Simulink 矢量或矩陣信號(hào)在單個(gè)事務(wù)中向 FPGA 硬件讀出或?qū)懭搿Mㄟ^(guò)使用這些接口,您可以極大地減少仿真過(guò)程中 PC/硬件交易的數(shù)量,進(jìn)一步加快仿真速度,超出傳統(tǒng)硬件聯(lián)合仿真所能達(dá)到的速度。
利用以太網(wǎng)技術(shù)的普及和先進(jìn)性,該接口提供給外部 FPGA 器件一種便捷和高帶寬的聯(lián)合仿真方法。
VSK 支持兩種以太網(wǎng)聯(lián)合仿真模式:
• 基于網(wǎng)絡(luò)的以太網(wǎng)硬件聯(lián)合仿真接口提供了通過(guò) IPv4 網(wǎng)絡(luò)基礎(chǔ)設(shè)施到 FPGA 平臺(tái)的聯(lián)合仿真接入。由于 IPv4 網(wǎng)絡(luò)分布廣泛,因此該接口提供了一種直接與連接到有線或無(wú)線網(wǎng)絡(luò)的遠(yuǎn)程硬件進(jìn)行通信的方式。該接口特別適用于在遠(yuǎn)處的 FPGA 平臺(tái)(如跨局或跨國(guó)),或多個(gè)設(shè)計(jì)者必須共享一個(gè)開(kāi)發(fā)板的情況?;诰W(wǎng)絡(luò)的以太網(wǎng)接口支持工作在 10/100 Mbps 半/全雙工模式。
• 點(diǎn)對(duì)點(diǎn)以太網(wǎng)硬件聯(lián)合仿真提供了一種通過(guò)原始以太網(wǎng)連接進(jìn)行的聯(lián)合仿真接口。原始以太網(wǎng)連接指第 2 層(數(shù)據(jù)鏈路層)以太網(wǎng)連接,位于一個(gè)支持的 FPGA 開(kāi)發(fā)板和一個(gè) PC 主機(jī)之間,沿途沒(méi)有路由網(wǎng)絡(luò)設(shè)備。點(diǎn)對(duì)點(diǎn)以太網(wǎng)接口支持工作在 10/100/1000 Mbps 半/全雙工模式。只要底層連接支持,還可支持在千兆位以太網(wǎng)連接的巨大框架。
結(jié)論
憑借這一完整且易用的解決方案,視頻基本套件是一個(gè)理想硬件平臺(tái)來(lái)評(píng)估賽靈思 FPGA成為廣泛的視頻與成像應(yīng)用領(lǐng)域。通過(guò)完全集成 Xilinx System Generator for DSP 軟件并擁有其支持,VSK 可以充分利用新的高速以太網(wǎng)硬件聯(lián)合仿真能力,實(shí)現(xiàn)編解碼器、IP 和視頻算法的實(shí)時(shí)系統(tǒng)集成、開(kāi)發(fā)和驗(yàn)證。
VSK 包括軟件、硬件、相機(jī)、電纜和一份詳細(xì)的用戶指南及參考設(shè)計(jì)。它包括一套限制版的 System Generator for DSP、ISE™ 軟件,和嵌入式設(shè)計(jì)套件 (EDK) FPGA 設(shè)計(jì)工具,以及一個(gè)賽靈思 ML402-SX35 開(kāi)發(fā)板,視頻 I/O 子卡 (VIODC),CMOS 圖像傳感器相機(jī),電源和電纜。
Sabine Lam ,DSP 技術(shù)營(yíng)銷(xiāo)工程師 賽靈思公司 sabine.lam@xilinx.com