唐湘成,黃自力,劉 怡,曾 晶,肖 柯
(西南技術物理研究所,四川 成都 610041)
?
無損數字視頻存儲回放設備設計
唐湘成,黃自力,劉 怡,曾 晶,肖 柯
(西南技術物理研究所,四川 成都 610041)
采用Altera公司的EP2C8 FPGA作為主控芯片,設計的無損數字視頻存儲回放設備實現了ATA-6規范的IDE硬盤接口協議和千兆網絡圖像傳輸,為圖像處理算法研究提供了一個效率高、成本低、驗證準確的仿真調試方法。該設備已在算法研發團隊中普及使用,具有較大的市場推廣價值。
IDE;千兆網;無損數字視頻存儲回放
隨著近年來視頻監控領域的智能化需求不斷提升,針對該領域的圖像處理算法研究也在持續升溫,無損(或稱作無壓縮)的數字視頻存儲回放設備成為了算法研究必不可少的調試驗證工具。目前智能視頻監控領域尤其是在高清攝像機普及應用的情況下,雖然配備有DVR(即數字視頻錄像機)設備能對監控過程中的數據進行存儲回放,但均采用了諸如MPEG-2、MPEG-4、H.264、M-JPEG等圖像壓縮技術,壓縮過后的視頻圖像不能真實反應出原始“問題”視頻,并不適合圖像處理算法仿真研究。
算法研究目前大多采用基于PCI/PCIE的無壓縮圖像采集卡的方案進行仿真調試,但存在以下問題:1)由于基于PC平臺,使用時需配置計算機,不便于攜帶;2)此類圖像采集卡只具備PC機端采集及回放功能,無法輸出數字視頻時序,只能對單幀圖像數據逐幀進行仿真調試,工作繁瑣,測試周期長;3)造價較高,不便于普及使用。
基于上述,本文設計的無損數字視頻存儲回放設備,采用Altera公司的EP2C8 FPGA作為主控芯片,實現了ATA-6規范的IDE硬盤接口協議和千兆網絡圖像傳輸,為圖像處理算法研究提供了一個效率高、成本低、驗證準確的仿真調試方法。
無損數字視頻存儲回放設備是先將攝像機輸入的數字視頻無壓縮的實時采集,并通過IDE接口協議存儲于外掛硬盤中。算法仿真調試時,按照原接收攝像機時的輸入時序將存入硬盤中的數據讀出,因此設備可完全模擬攝像機存儲數據時的狀態,將設備的數字視頻輸出接口直接替換原攝像機的輸出接口,接入待測試設備即可進行算法的仿真調試。為了便于在存儲/回放過程中操控及觀測實時圖像,設計中增設了千兆網傳輸圖像數據至PC端功能,實現對存儲/回放圖像的同步顯示以及指令控制。
系統整體結構組成如圖1所示,以Altera的Cyclone II EP2C8 FPGA芯片為主控制器,控制88E1111芯片實現千兆網與PC機的數據通信,通過FPGA外接的IDE接口與硬盤互聯,并行LVTTL接口則包含了數字視頻的輸入及輸出接口。
設計中使用的攝像機成像芯片為MT9M001,其輸出的數字圖像分辨率為1 280×1 024,圖像位寬10 bit,幀率30 f/s(幀/秒),要滿足實時存儲/讀取要求,IDE硬盤的讀寫速度應≥20 Mbit/s。IDE(Integrated Drive Electronics)即“電子集成驅動器”,又稱為ATA(AT-Attachment)接口。ATA經歷了從ATA-1到ATA-6的發展過程,ATA-6兼容之前所有的ATA協議標準[1],同時將DMA傳輸的最高傳輸速度提升至100 Mbit/s。設計中采用FPGA實現ATA-6規范的IDE硬盤接口協議能夠滿足無損數字視頻硬盤存儲及回放的速率要求,FPGA控制實現的千兆網圖像傳輸,也能保證圖像的實時顯示需求。

圖1 系統整體結構組成
設備主要有無損數字視頻存儲以及無損數字視頻回放兩大功能。無損數字視頻的存儲功能具體可劃分為如圖2所示的5個功能模塊。接收視頻緩存模塊將接收到的攝像機圖像數據一路送硬盤寫入模塊,在指令網絡接收模塊控制下,將圖像數據存入硬盤;另一路則送入視頻網絡發送模塊,并在指令網絡接收模塊控制下送PC顯控模塊進行顯示。

圖2 視頻存儲功能模塊劃分
無損數字視頻回放為無損數字視頻存儲的逆過程,具體可劃分為如圖3所示的6個功能模塊。硬盤讀出模塊在指令網絡接收模塊控制下將需回放的視頻數據從硬盤中讀出送入發送視頻緩存模塊,經該模塊處理后的圖像數據一路送入視頻網絡發送模塊,并在指令網絡接收模塊控制下送PC顯控模塊進行顯示;另一路送入視頻發送模塊后,經數字視頻輸出接口按照原攝像機輸入時序實時輸出數字圖像數據。

圖3 視頻回放功能模塊劃分
2.1 硬盤寫入/讀出模塊
對于主機與硬盤之間的數據傳輸,IDE接口有兩種傳輸方式:一種是程序控制IO (PIO),另一種是DMA方式。DMA方式又分為單字DMA、多字DMA、Ultra DMA(簡稱UDMA)模式0到模式5。UDMA采用了與DMA不同的技術,時鐘的雙沿用做數據讀寫的選通信號,即每半個時鐘周期就可以傳輸一次數據,使得硬盤的數據傳輸率成倍增加[2]。本設計中采用PIO傳輸模式先對UDMA命令參數設置,如復位、DMA寫、DMA讀、特性參數設置等,然后啟動UDMA傳輸,具體操作流程如圖4所示。
圖5~圖7列出了硬盤操作幾個關鍵的時序圖,圖5為PIO模式讀寫時序[3],圖6為UDMA寫入時序[3],圖7為UDMA讀出時序[3]。設計時各信號間不僅需保證正確相位關系,還需滿足UDMA模式5規定的建立和保持時間。
2.2 視頻緩存模塊
硬盤的讀取速度為100 Mbit/s,FPGA控制的千兆網絡三速以太網(Tri Speed Ethernet,TSE)控制器運行時鐘頻率125 MHz,模擬前端攝像機MT9M001輸出圖像的時鐘頻率48 MHz,因此在圖像數據傳輸過程中需經兩級緩存處理:一級緩存為FIFO寫入/讀出操作,其保證硬盤讀取速率與SDRAM寫入速率以及SDRAM寫入同圖像輸出速率的匹配;二級緩存則保證SDRAM乒乓存入整幀圖像數據的正確讀寫操作。FPGA控制IDE硬盤回放實時視頻數據流程如圖8所示。
1)PIO控制邏輯模塊根據網絡控制命令產生PIO控制命令,對IDE硬盤的工作狀態、起始地址等進行設置,并控制IDE硬盤進入UDMA工作模式。
2)UDMA控制邏輯模塊根據網絡控制命令產生UDMA控制命令,通過UDMA接口控制硬盤進入UDMA讀出狀態。

圖4 操作硬盤控制命令流程

圖5 PIO模式時序波形圖

圖6 UDMA寫入時序波形圖

圖7 UDMA讀出時序波形圖
3)圖像數據從硬盤讀出寫入FIFO寫緩存[4],為圖像數據切換存入異步時鐘域的SDRAM作準備。
4)將FIFO寫緩存中的圖像數據存入SDRAM,圖9為采用Quartus II 的Signal Tap軟件對寫入SDRAM操作的采樣波形圖。
5)讀出SDRAM中的圖像數據寫入FIFO讀緩存[4],此刻應保證寫入FIFO讀緩存中的數據在產生模擬原攝像機時序的每行正程到來前數據準備就緒,圖10為采用Quartus II 的Signal Tap軟件對讀出SDRAM操作的采樣波形圖。
6)最后將FIFO讀緩存的數據一路由視頻時序模塊生成模擬原攝像機時序將數據讀出;另一路讀出后送入FPGA控制的千兆網TSE控制器封包后發送至PC端顯示。

圖8 FPGA控制IDE硬盤回放流程

圖9 SDRAM寫入操作(截圖)

圖10 SDRAM讀出操作(截圖)
FPGA控制IDE硬盤存儲實時視頻數據流程與回放流程互為逆過程,因此接收視頻緩存模塊同發送視頻緩存模塊也互為逆過程,功能相仿。
2.3 視頻發送模塊
模塊發送的視頻應滿足MT9M001芯片的輸出時序要求[5],如圖11及表1所示。

圖11 MT9M001輸出時序圖
表1 MT9M001時序主要參數

參數名稱默認時序A行有效數據26 7μsA+Q行周期31 75μsQ=P1+P2行消隱5 08μsFRAMETIME場周期33 34msPIXCLK像素時鐘48MHz
2.4 網絡傳輸模塊
網絡傳輸模塊由視頻網絡發送模塊以及指令網絡接收模塊組成。二者均采用UDP的通信協議,視頻網絡發送模塊主要負責板端圖像數據向PC端的網絡發送;指令網絡接收模塊主要完成板端接收PC端通過網絡發送的控制指令,如硬盤參數設置、硬盤存儲的開始停止命令、回放的開始停止命令等。
Altera提供了可參數化的千兆以太網Megacore解決方案[6],該方案可在Altera 的Arria GX、CycloneII、CycloneIII系列FPGA上工作,采用千兆網TSE控制器 IP核可實現單條或多條吉比特以太網鏈路,通過交換機或路由器可與任意以太網端口相連,整個配置界面如圖12所示可將 IP 核配置為所需模式[7]。
FPGA控制千兆以太網發送圖像數據時UDP包的封包協議設定為UDP包頭+圖像數據包的形式。
1)UDP包頭:由4 byte MAC報頭+20 byte IPv4報頭+8 byte UDP報頭組成;
2)圖像數據包:由1 byte幀序號+3 byte包序號+512 byte從FIFO中讀出Len(512 byte)長度的圖像數據+

圖12 IP 核參數配置界面(截圖)
3 byte包尾組成。
FPGA控制千兆以太網發送圖像數據的大致流程如下:
1)每個UDP包的長度設定為Len(512 byte);
2)將圖像數據按行在FIFO中緩存,當存滿一個設定的Len長度數據后產生一個UDP包生成信號;
3)FPGA接收信號后生成上述封包形式的UDP包發送給TSE控制器,完成一次UDP包的圖像數據網絡傳輸;
4)以此往復,完成一幀圖像數據的發送。
圖13為利用winpcap軟件對送達PC端網口數據抓取UDP包的結果,經測試滿足上述協議要求。

圖13 winpcap抓包結果圖(截圖)
2.5 PC顯控模塊
PC端使用VS2008開發軟件,內嵌winpcap網絡抓包函數將收到的圖像數據包依次保存至圖像緩存區,當一幅圖像存儲完成后,采用位圖顯示方式進行圖像的顯示。除此之外,PC端顯控模塊還完成了諸如硬盤參數設置、存儲的啟動/停止、回放的啟動/停止等操作,其界面如圖14所示。

圖14 PC端顯控界面(截圖)
本設計采用Altera公司的EP2C8 FPGA作為主控芯片,實現了ATA-6規范的IDE硬盤接口協議及千兆網絡圖像傳輸。經測試,可滿足攝像頭分辨率為1 280×1 024,幀頻30 f/s(幀/秒)的無損數字圖像采集存儲,實時回放過程可完全模擬原攝像頭采集時狀態,將此設備作為圖像處理算法研究的調試工具具有仿真驗證準確、效率高的特點。由于設計采用FPGA為核心架構,今后可根據用戶需求更改以適應各種標準的攝像頭應用,并且硬盤的操作不依賴于操作系統,可實現脫機工作,便于攜帶。此外整個設備的硬件成本低廉,不足500元,采用如圖15所示的IDE轉SATA2.0轉接卡后,還可掛接大容量的SATA2.0硬盤,以滿足長時間存儲數據需求,方案具有較高的性價比?,F該設備已在算法研發團隊中普及使用,具有較大的市場推廣價值。

圖15 硬件連接圖(照片)
[1]王毅,管會生,劉斌彬,等.基于FPGA的IDE硬盤接口卡的實現[J].微計算機信息,2006,22(11):201-203.
[2]程海波.基于FPGA的機載高速數據記錄系統的研究[D].西安:中國科學院西安光學機械研究所,2005.
[3]Technical Committee.Information technology-AT Attachment with Packet Interface-6(ATA/ATAPI-6)[S].2001.
[4]劉妍妍.遙感圖像采集中的SDRAM圖像緩存技術[J].電視技術,2012,36(17):52-55.
[5]Micron Technology Inc.MT9M001-1/2-Inch Megapixel Digital Image Sensor Features[EB/OL].[2014-08-18].http://www.
micron.com.
[6]王雪萍,唐林波,趙保軍.基于DSP+FPGA的遠程屏幕傳輸系統[J].電視技術,2013,37(9):75-79.
[7]Altera Corportion.Triple speed Ethernet megacore function user guide[EB/OL].[2014-08-18].http://www.altera.com.cn.
唐湘成(1980— ),博士生,主研電路系統設計、數字圖像處理;
黃自力(1965— ),研究員,博士生導師,主研數字圖像處理;
劉 怡(1981— ),高級工程師,主研嵌入式數字圖像處理;
曾 晶(1984— ),碩士生,主研數字圖像處理;
肖 柯(1978— ),高級工程師,主研嵌入式數字圖像處理。
責任編輯:閆雯雯
Design of Non-compressed Digital Video Storage Playback Equipment
TANG Xiangcheng,HUANG Zili,LIU Yi,ZENG Jing,XIAO Ke
(SouthwestInstituteofTechnicalPhysics,Chengdu610041,China)
The non-compressed digital video storage playback equipment is designed with EP2C8 FPGA of the Altera Corporation as the main control chip, the IDE hard disk interface protocols standardized by ATA-6 and image transmission of gigabit network are implemented.Thus an accurate stimulated debugging method with higher-efficiency and lower-cost for image processing is eventually achieved.
IDE;gigabit network;non-compressed digital video storage playback
TN946.7
A
10.16280/j.videoe.2015.07.029
2014-09-18
【本文獻信息】唐湘成,黃自力,劉怡,等.無損數字視頻存儲回放設備設計[J].電視技術,2015,39(7).