《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于Avalon-ST接口幀讀取IP核的設(shè)計和應(yīng)用
基于Avalon-ST接口幀讀取IP核的設(shè)計和應(yīng)用
來源:電子技術(shù)應(yīng)用2010年第9期
鄧 超,付 揚
北京工商大學(xué) 計算機與信息工程學(xué)院,北京100048
摘要: 研究基于Avalon-ST接口幀讀取的IP核設(shè)計應(yīng)用,通過Avalon-ST接口將外部存儲中不同格式的幀數(shù)據(jù)轉(zhuǎn)化為視頻流輸出。根據(jù)Avalon總線協(xié)議及Avalon-ST視頻協(xié)議研究設(shè)計方案,使用Verilog HDL語言對模塊進行硬件設(shè)計,并將實現(xiàn)的模塊進行測試。結(jié)果表明,該IP核與Altera公司提供的Frame Reader模塊相比,突破了現(xiàn)有的Frame Reader只支持緊縮格式的局限,使其功能更加完善,并且該IP核占用的資源少,工作頻率更高,性能得到了優(yōu)化,實用性更強。
關(guān)鍵詞: SoPC Avalon-ST 幀讀取 IP核 CycloneII
中圖分類號: TN47
文獻標(biāo)識碼: A
文章編號: 0258-7998(2010)09-0024-04
The design and application of frame reader based on Avalon-ST interfaces
DENG Chao,F(xiàn)U Yang
Computer and Information Engineering Institute, Beijing Technology and Business University, Beijing 100048,China
Abstract: Research a IP core design and applications of frame reader based on Avalon-ST interface, IP core read data through the Avalon-ST interfaces from external storage in the frame data in different formats into a video stream output. According to Avalon bus protocol and the Avalon-ST video protocol design, using Verilog HDL language module hardware design, and implementation of the module for testing. The results show that the IP core and frame reader modules provided by the Altera compared to break the existing frame reader limited to tighten format to make it function more perfect, and the IP core occupies less resources, higher operating frequency, performance been optimized, more practical.
Key words : Avalon-ST;frame reader;IP core;SoPC

    可編程片上系統(tǒng)SoPC將軟核處理器Nios II、存儲器、I/O等IP核集成到單片F(xiàn)PGA上,它同時具有軟件和硬件所固有的特點。利用SoPC Builder將自定義的IP核加入到Nios II系統(tǒng)中,充分發(fā)揮IP核的可移植性、復(fù)用性,提高產(chǎn)品設(shè)計效率[1]。IP核通過Avalon總線與Nios II進行數(shù)據(jù)交互,Avalon片內(nèi)總線成為CPU與IP核交流的橋梁,直接影響系統(tǒng)的整體效率。Avalon總線是Altera公司專門為SoPC而推出的一套片內(nèi)總線系統(tǒng),與Nios系列的處理器軟核一起,二者構(gòu)成了Altera公司SoPC方案中的核心部分。Avalon總線標(biāo)準(zhǔn)規(guī)定了Avalon-MM(Memory Mapped)和Avalon-ST(Strming)兩種接口[2]。使用SoPC技術(shù)進行視頻數(shù)據(jù)處理時,兩種接口的不同使用可以提高系統(tǒng)的運行速度。Avalon-ST接口是一種單向點對點的高速接口,主要針對的是高速數(shù)據(jù)流的傳輸,減少數(shù)據(jù)流處理中的瓶頸,特別適合處理圖像和視頻數(shù)據(jù),利用Avalon-ST接口進行視頻處理,可極大地提高系統(tǒng)的處理速度[3]。
    本設(shè)計研究了如何將從外部存儲器中讀取的視頻數(shù)據(jù)轉(zhuǎn)換為滿足Avalon-ST視頻處理協(xié)議的視頻流,針對Altera公司提供的視頻及圖像處理套件中Frame Reader IP核只支持緊縮格式的使用局限,設(shè)計并實現(xiàn)了緊縮和平面兩種幀格式的幀讀取IP核。
1 Avalon-ST視頻處理協(xié)議
    帶有Avalon-ST接口的IP核可以用來處理要求高帶寬、低延遲、單向性的數(shù)據(jù)。典型應(yīng)用包括多路復(fù)用數(shù)據(jù)流、數(shù)據(jù)包及DSP數(shù)據(jù)處理等。Avalon-ST接口信號既可以用來描述傳統(tǒng)的沒有確認信號的簡單數(shù)據(jù)流,也可以描述復(fù)雜的帶有傳輸協(xié)議或多通道交叉存取的數(shù)據(jù)包傳輸。
    Avalon-ST接口包含兩種傳輸方式:普通傳輸方式和包傳輸方式[4]。普通傳輸方式如圖1所示。

    圖中寫明了用到的接口信號,帶箭頭的橫線表示端口的作用方向,省略了端口接收端的信號名稱。當(dāng)ready信號有效時,發(fā)送端通過data端口發(fā)送數(shù)據(jù),valid信號指明了發(fā)送的數(shù)據(jù)是否有效。channel為通道號,error信號為錯誤標(biāo)識號,零值代表傳輸無誤。
    包傳輸方式是在普通傳輸方式的基礎(chǔ)上增加了startofpacket、endofpacket、empty三個信號,實現(xiàn)了對封包型數(shù)據(jù)傳輸?shù)闹С?。Startofpacket信號用來標(biāo)識包的開始,endofpacket表示包的結(jié)尾,empty代表了包結(jié)尾的補零個數(shù)。
    Altera公司提供的視頻及圖像處理套件可以方便、靈活地對視頻和圖像進行處理。它提供通用的Avalon-ST接口及Avalon-ST視頻處理協(xié)議,使用Avalon Memory-Mapped(Avalon-MM)接口連接外部存儲器模塊并進行實時控制,可以很方便地通過MegaWizard面板進行參數(shù)設(shè)置及硬件生成。視頻及圖像處理套件中的IP核使用Avalon-ST視頻處理協(xié)議,該協(xié)議以封包的方式通過Avalon-ST接口傳輸控制數(shù)據(jù)和視頻數(shù)據(jù)。在很大程度上減小了視頻處理系統(tǒng)對外部控制邏輯的需求。
    Avalon-ST視頻處理協(xié)議將包分成若干個記號,每個記號代表一段單獨數(shù)據(jù)。傳輸前需要確定一個周期中并行傳輸?shù)挠浱杺€數(shù)及記號位寬,每個記號最小為4位。傳輸?shù)囊曨l數(shù)據(jù)包只能是未壓縮的視頻數(shù)據(jù),控制數(shù)據(jù)包用來對輸入的視頻數(shù)據(jù)進行配置。每個包并行傳輸?shù)牡谝唤M記號中,最低4位為包類型標(biāo)識符。0代表視頻數(shù)據(jù)包,1~8為用戶自定義包類型,9~14保留將來使用,15表示控制數(shù)據(jù)包。
    一個視頻數(shù)據(jù)包包含完整的逐行掃描幀或隔行掃描場的像素值,按圖像平面中從左上到右下的順序掃描發(fā)送,發(fā)送前需要確定顏色模式Color Pattern和每個像素占用的比特數(shù)。每個像素對應(yīng)傳輸中的一個記號,其位寬也決定了記號的位寬。顏色模式是對顏色平面采樣的組織形式,每種顏色模式都可按并行方式傳輸或串行方式傳輸。一般常用的顏色模式有RGB、YCbCr、YCbCr(4:2:2)和YCbCr(4:2:0)。
    完整的RGB和YCbCr型視頻數(shù)據(jù)包結(jié)構(gòu)如圖2所示。

    控制數(shù)據(jù)包用來傳輸控制信號,除了4位的包類型標(biāo)識符15外,還包含寬(Width)16位、高(Height)16位、隔行標(biāo)志位(Interlacing)4位。寬為一幀圖像每行所包含的像素數(shù),高為一幀或一場中包含的行數(shù)。隔行標(biāo)志位Interlacing的前兩位指明了下一個視頻數(shù)據(jù)包是否為隔行掃描方式,00表示逐行掃描方式,10表示偶數(shù)場,11為奇數(shù)場。當(dāng)前兩位為10或11時,標(biāo)志位中的后兩位用于隔行數(shù)據(jù)的同步。
    每次發(fā)送視頻數(shù)據(jù)包之前必須先發(fā)送控制數(shù)據(jù)包,每個控制數(shù)據(jù)包一般由10個有效記號組成,每個記號只使用最低4位,其余位不使用。第一個有效記號為包類型標(biāo)識符,剩下的9個有效記號為寬、高和隔行標(biāo)志位。圖3為并行傳輸3個記號的控制數(shù)據(jù)包。

    圖中第一列記號是包類型標(biāo)識符,F(xiàn)為十六進制數(shù),等于十進制數(shù)中的15。記號1~4的低4位共同組成16位的幀寬,記號5~8的低4位組成16的幀高,記號9的低4位為隔行標(biāo)志位(Interlacing 4位)。
2 幀讀取IP核的硬件設(shè)計
2.1 總體設(shè)計方案

    利用SoPC技術(shù)進行視頻數(shù)據(jù)處理時,待處理的原始視頻數(shù)據(jù)可以是由外部設(shè)備輸出的視頻信號,也可以是存放在外部存儲器中的視頻數(shù)據(jù)。當(dāng)視頻數(shù)據(jù)存放在存儲器中時,SoPC系統(tǒng)需要使用Avalon-MM接口從外部存儲器中讀取視頻數(shù)據(jù),然后通過Avalon-ST接口將原來的視頻數(shù)據(jù)轉(zhuǎn)為滿足Avalon-ST視頻處理協(xié)議的視頻流,以方便之后使用Altera視頻及圖像處理套件對視頻進行處理。因此系統(tǒng)中需要一個幀讀取IP核來完成這種轉(zhuǎn)換。
    一幀完整的圖像其像素數(shù)據(jù)在存儲器中有多種組織形式,按顏色空間可以分為RGB型和YUV(YCbCr)型。如果是YUV模型,又可以按組織方式分為平面型和緊縮型,按采樣比可分為4:4:4、4:2:2和4:2:0等。一般RGB模型均為緊縮型,按像素值的位數(shù)不同可分為RGB24、RGB32等??偟恼f來,常用的數(shù)據(jù)格式有RGB24、RGB32、YV12、I420等幾種。
    現(xiàn)有的Altera公司提供的視頻及圖像處理套件中Frame Reader模塊可以將存儲器中視頻數(shù)據(jù)轉(zhuǎn)為滿足Avalon-ST視頻處理協(xié)議的視頻流,但該IP核只支持緊縮格式,原始數(shù)據(jù)在存儲器中必須按像素掃描順序連續(xù)存放。而實際中有多種幀格式,例如I420是平面格式,這種情況就無法使用Frame Reader了。
    在實際應(yīng)用中,由于Altera的Frame Reader使用限制,作者自行研發(fā)了幀讀取IP核(Frame Reader),除了實現(xiàn)緊縮格式的視頻數(shù)據(jù)轉(zhuǎn)為滿足Avalon-ST視頻處理協(xié)議的視頻流,還能實現(xiàn)I420到RGB24的平面格式的轉(zhuǎn)換。
    該IP核應(yīng)包含Avalon總線讀取模塊,幀格式轉(zhuǎn)換模塊、視頻流輸出模塊,以及控制器和控制寄存器組。如圖4所示。Avalon總線讀取模塊用于訪問Avalon總線,從而讀取外部存儲器中的視頻數(shù)據(jù)。幀格式轉(zhuǎn)換模塊完成YUV向RGB的轉(zhuǎn)換,視頻流輸出模塊用來產(chǎn)生滿足Avalon-ST視頻處理協(xié)議的視頻流。

    圖中實線為數(shù)據(jù)流向,虛線為控制信號流向。雙向箭頭同時表示了主控制器的控制信號,以及被控模塊的反饋信號。
2.2 Avalon總線讀取模塊
    Avalon總線讀取模塊使用基于地址讀寫的Avalon-MM接口,這種接口包含主端口和從端口。主端口能主動發(fā)起傳輸信號,從端口對傳輸信號進行響應(yīng),兩種接口在數(shù)據(jù)傳輸過程中通過Avalon交換結(jié)構(gòu)相連接。Avalon總線讀取模塊需要讀取視頻數(shù)據(jù),并能夠主動對Avalon總線發(fā)起讀取信號,因此應(yīng)使用Avalon-MM主端口。
    當(dāng)總線讀取模塊工作時,主控制器傳入地址和讀入字節(jié)數(shù)目等參數(shù)后啟動該模塊,該模塊對總線發(fā)起數(shù)據(jù)讀取操作。由于外部存儲器中的視頻數(shù)據(jù)為I420格式,即采樣比為4:2:0,因此每讀取一行視頻數(shù)據(jù),要讀取兩次Y分量、一次U、V分量,這樣就完成了采樣比4:2:0到4:4:4的轉(zhuǎn)化。該模塊內(nèi)部包含一個FIFO作為輸入緩存,當(dāng)模塊從總線上讀取數(shù)據(jù)后,直接將數(shù)據(jù)按讀入的順序輸入FIFO,以便后續(xù)模塊處理。
2.3 顏色空間轉(zhuǎn)換模塊
    RGB和YUV兩種顏色模型之間的轉(zhuǎn)換可按下式計算[5]:
  
    RGB24格式是緊縮型格式,在存儲器中是按掃描順序連續(xù)存放的,每個像素分量占8位,共24位。I420格式是顏色模型為YUV,采樣比為4:2:0的平面格式。Y、U、V三個分量在存儲器中分別占用單獨的一片存儲區(qū)域,Y分量的數(shù)目與原始幀的像素個數(shù)一致,U、V分量只是原始像素個數(shù)的1/4。把Y分量平面按2×2進行劃分,相鄰構(gòu)成正方形的4個Y分量劃為一組,每組共用一個U、V分量。例如:Y_0,0、Y_0,1、Y_1,0、Y_1,1四個分量共用U_0,0和V_0,0。
    RGB24和I420轉(zhuǎn)換公式需要浮點運算,而Verilog-
HDL語言無法直接處理浮點數(shù)[6],因此設(shè)計中將原公式放大2n倍后再進行處理,然后再縮小相應(yīng)的倍數(shù)。顏色空間轉(zhuǎn)換模塊時序如圖5所示。當(dāng)iDVAL信號為1時,表示輸入數(shù)據(jù)Y、Cb、Cr有效,模塊處理完后,oDVAL信號置1,此時輸出數(shù)據(jù)Red、Green、Blue有效。

2.4 視頻流輸出模塊
    經(jīng)過顏色空間轉(zhuǎn)換模塊處理后的數(shù)據(jù),按順序?qū)懭胱鳛檩敵鼍彺娴腇IFO。從圖6中可以看出,當(dāng)dout_ready信號有效時,視頻流輸出模塊首先發(fā)送控制數(shù)據(jù)包。輸出的數(shù)據(jù)流為并行傳輸模式,每個周期同時傳輸3個記號(symbol),每個記號占8位。將dout_data信號改寫為并行8位模式,可以看出視頻流為176×144的逐行掃描數(shù)據(jù)。

    startofpacket和endofpacket分別標(biāo)記了數(shù)據(jù)包的開始和結(jié)尾。控制數(shù)據(jù)包發(fā)送結(jié)束后,第二個周期開始發(fā)送視頻數(shù)據(jù);一幀視頻數(shù)據(jù)完全發(fā)送完后,開始等待發(fā)送下一幀數(shù)據(jù)。
3 幀讀取IP核的測試
    測試平臺是以Altera公司Cyclone II EP2C35F 672C8 FPGA芯片為核心的SoPC開發(fā)平臺,該平臺同時配備了16 MB的Flash、2 MB的SSRAM以及16 MB的SDRAM等。搭建出使用Nios II軟核處理器的SoPC系統(tǒng),然后將幀讀取模塊作為組件接入該SoPC Builder系統(tǒng)。
    本設(shè)計使用Quartus II 9.1進行綜合與仿真,綜合后的結(jié)果如表1所示。

    通過測試發(fā)現(xiàn),本文設(shè)計的IP核占用的邏輯單元略少于Altera公司的Frame Reader IP核,可綜合的最高工作頻率fmax也較高,且在功能上更完善。由于IP核具有顏色空間轉(zhuǎn)換功能,減少了Nios II軟件開發(fā)的負擔(dān),因此使用該IP核開發(fā)SoPC視頻處理系統(tǒng)更加方便、靈活,系統(tǒng)性能可得到進一步提升。
    本文針對傳統(tǒng)的視頻處理系統(tǒng),研究了一種基于Avalon-ST接口的幀讀取模塊的設(shè)計。該IP核突破了現(xiàn)有的Frame Reader模塊局限,解決了傳統(tǒng)視頻處理系統(tǒng)的傳輸接口瓶頸問題。該IP核在視頻處理系統(tǒng)的使用中,具有較大的靈活性、優(yōu)越性。SoPC的IP核復(fù)用技術(shù)使得設(shè)計成果具有很強的實用性、通用性和擴展性。
參考文獻
[1] 李蘭英.Nios II嵌入式軟核-SoPC設(shè)計原理及應(yīng)用[M]. 北京:航天航空出版社,2006.
[2] Altera.Avalon Interface Specifications[DB/OL].[2009-11].http://www.altera.com.
[3] Altera.Quartus Version 9.1 Handbook[DB/OL].[2009-11].http://www.altera.com.
[4] Altera Video and Image Processing Suite User Guide[DB/OL].[2009-11].http://www.altera.com.
[5] IAIN E.G.Richardson H264 and MPEG-4 Video Compression[M].John Wiley & Sons Ltd Press,2003.
[6] UWE M B.數(shù)字信號處理的FPGA實現(xiàn)[M].北京:清華大學(xué)出版社,2007.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。