唐湘成,黃自力,劉 怡,曾 晶,肖 柯
(西南技術(shù)物理研究所,四川 成都 610041)
?
無損數(shù)字視頻存儲(chǔ)回放設(shè)備設(shè)計(jì)
唐湘成,黃自力,劉 怡,曾 晶,肖 柯
(西南技術(shù)物理研究所,四川 成都 610041)
采用Altera公司的EP2C8 FPGA作為主控芯片,設(shè)計(jì)的無損數(shù)字視頻存儲(chǔ)回放設(shè)備實(shí)現(xiàn)了ATA-6規(guī)范的IDE硬盤接口協(xié)議和千兆網(wǎng)絡(luò)圖像傳輸,為圖像處理算法研究提供了一個(gè)效率高、成本低、驗(yàn)證準(zhǔn)確的仿真調(diào)試方法。該設(shè)備已在算法研發(fā)團(tuán)隊(duì)中普及使用,具有較大的市場(chǎng)推廣價(jià)值。
IDE;千兆網(wǎng);無損數(shù)字視頻存儲(chǔ)回放
隨著近年來視頻監(jiān)控領(lǐng)域的智能化需求不斷提升,針對(duì)該領(lǐng)域的圖像處理算法研究也在持續(xù)升溫,無損(或稱作無壓縮)的數(shù)字視頻存儲(chǔ)回放設(shè)備成為了算法研究必不可少的調(diào)試驗(yàn)證工具。目前智能視頻監(jiān)控領(lǐng)域尤其是在高清攝像機(jī)普及應(yīng)用的情況下,雖然配備有DVR(即數(shù)字視頻錄像機(jī))設(shè)備能對(duì)監(jiān)控過程中的數(shù)據(jù)進(jìn)行存儲(chǔ)回放,但均采用了諸如MPEG-2、MPEG-4、H.264、M-JPEG等圖像壓縮技術(shù),壓縮過后的視頻圖像不能真實(shí)反應(yīng)出原始“問題”視頻,并不適合圖像處理算法仿真研究。
算法研究目前大多采用基于PCI/PCIE的無壓縮圖像采集卡的方案進(jìn)行仿真調(diào)試,但存在以下問題:1)由于基于PC平臺(tái),使用時(shí)需配置計(jì)算機(jī),不便于攜帶;2)此類圖像采集卡只具備PC機(jī)端采集及回放功能,無法輸出數(shù)字視頻時(shí)序,只能對(duì)單幀圖像數(shù)據(jù)逐幀進(jìn)行仿真調(diào)試,工作繁瑣,測(cè)試周期長(zhǎng);3)造價(jià)較高,不便于普及使用。
基于上述,本文設(shè)計(jì)的無損數(shù)字視頻存儲(chǔ)回放設(shè)備,采用Altera公司的EP2C8 FPGA作為主控芯片,實(shí)現(xiàn)了ATA-6規(guī)范的IDE硬盤接口協(xié)議和千兆網(wǎng)絡(luò)圖像傳輸,為圖像處理算法研究提供了一個(gè)效率高、成本低、驗(yàn)證準(zhǔn)確的仿真調(diào)試方法。
無損數(shù)字視頻存儲(chǔ)回放設(shè)備是先將攝像機(jī)輸入的數(shù)字視頻無壓縮的實(shí)時(shí)采集,并通過IDE接口協(xié)議存儲(chǔ)于外掛硬盤中。算法仿真調(diào)試時(shí),按照原接收攝像機(jī)時(shí)的輸入時(shí)序?qū)⒋嫒胗脖P中的數(shù)據(jù)讀出,因此設(shè)備可完全模擬攝像機(jī)存儲(chǔ)數(shù)據(jù)時(shí)的狀態(tài),將設(shè)備的數(shù)字視頻輸出接口直接替換原攝像機(jī)的輸出接口,接入待測(cè)試設(shè)備即可進(jìn)行算法的仿真調(diào)試。為了便于在存儲(chǔ)/回放過程中操控及觀測(cè)實(shí)時(shí)圖像,設(shè)計(jì)中增設(shè)了千兆網(wǎng)傳輸圖像數(shù)據(jù)至PC端功能,實(shí)現(xiàn)對(duì)存儲(chǔ)/回放圖像的同步顯示以及指令控制。
系統(tǒng)整體結(jié)構(gòu)組成如圖1所示,以Altera的Cyclone II EP2C8 FPGA芯片為主控制器,控制88E1111芯片實(shí)現(xiàn)千兆網(wǎng)與PC機(jī)的數(shù)據(jù)通信,通過FPGA外接的IDE接口與硬盤互聯(lián),并行LVTTL接口則包含了數(shù)字視頻的輸入及輸出接口。
設(shè)計(jì)中使用的攝像機(jī)成像芯片為MT9M001,其輸出的數(shù)字圖像分辨率為1 280×1 024,圖像位寬10 bit,幀率30 f/s(幀/秒),要滿足實(shí)時(shí)存儲(chǔ)/讀取要求,IDE硬盤的讀寫速度應(yīng)≥20 Mbit/s。IDE(Integrated Drive Electronics)即“電子集成驅(qū)動(dòng)器”,又稱為ATA(AT-Attachment)接口。ATA經(jīng)歷了從ATA-1到ATA-6的發(fā)展過程,ATA-6兼容之前所有的ATA協(xié)議標(biāo)準(zhǔn)[1],同時(shí)將DMA傳輸?shù)淖罡邆鬏斔俣忍嵘?00 Mbit/s。設(shè)計(jì)中采用FPGA實(shí)現(xiàn)ATA-6規(guī)范的IDE硬盤接口協(xié)議能夠滿足無損數(shù)字視頻硬盤存儲(chǔ)及回放的速率要求,F(xiàn)PGA控制實(shí)現(xiàn)的千兆網(wǎng)圖像傳輸,也能保證圖像的實(shí)時(shí)顯示需求。
圖1 系統(tǒng)整體結(jié)構(gòu)組成
設(shè)備主要有無損數(shù)字視頻存儲(chǔ)以及無損數(shù)字視頻回放兩大功能。無損數(shù)字視頻的存儲(chǔ)功能具體可劃分為如圖2所示的5個(gè)功能模塊。接收視頻緩存模塊將接收到的攝像機(jī)圖像數(shù)據(jù)一路送硬盤寫入模塊,在指令網(wǎng)絡(luò)接收模塊控制下,將圖像數(shù)據(jù)存入硬盤;另一路則送入視頻網(wǎng)絡(luò)發(fā)送模塊,并在指令網(wǎng)絡(luò)接收模塊控制下送PC顯控模塊進(jìn)行顯示。
圖2 視頻存儲(chǔ)功能模塊劃分
無損數(shù)字視頻回放為無損數(shù)字視頻存儲(chǔ)的逆過程,具體可劃分為如圖3所示的6個(gè)功能模塊。硬盤讀出模塊在指令網(wǎng)絡(luò)接收模塊控制下將需回放的視頻數(shù)據(jù)從硬盤中讀出送入發(fā)送視頻緩存模塊,經(jīng)該模塊處理后的圖像數(shù)據(jù)一路送入視頻網(wǎng)絡(luò)發(fā)送模塊,并在指令網(wǎng)絡(luò)接收模塊控制下送PC顯控模塊進(jìn)行顯示;另一路送入視頻發(fā)送模塊后,經(jīng)數(shù)字視頻輸出接口按照原攝像機(jī)輸入時(shí)序?qū)崟r(shí)輸出數(shù)字圖像數(shù)據(jù)。
圖3 視頻回放功能模塊劃分
2.1 硬盤寫入/讀出模塊
對(duì)于主機(jī)與硬盤之間的數(shù)據(jù)傳輸,IDE接口有兩種傳輸方式:一種是程序控制IO (PIO),另一種是DMA方式。DMA方式又分為單字DMA、多字DMA、Ultra DMA(簡(jiǎn)稱UDMA)模式0到模式5。UDMA采用了與DMA不同的技術(shù),時(shí)鐘的雙沿用做數(shù)據(jù)讀寫的選通信號(hào),即每半個(gè)時(shí)鐘周期就可以傳輸一次數(shù)據(jù),使得硬盤的數(shù)據(jù)傳輸率成倍增加[2]。本設(shè)計(jì)中采用PIO傳輸模式先對(duì)UDMA命令參數(shù)設(shè)置,如復(fù)位、DMA寫、DMA讀、特性參數(shù)設(shè)置等,然后啟動(dòng)UDMA傳輸,具體操作流程如圖4所示。
圖5~圖7列出了硬盤操作幾個(gè)關(guān)鍵的時(shí)序圖,圖5為PIO模式讀寫時(shí)序[3],圖6為UDMA寫入時(shí)序[3],圖7為UDMA讀出時(shí)序[3]。設(shè)計(jì)時(shí)各信號(hào)間不僅需保證正確相位關(guān)系,還需滿足UDMA模式5規(guī)定的建立和保持時(shí)間。
2.2 視頻緩存模塊
硬盤的讀取速度為100 Mbit/s,F(xiàn)PGA控制的千兆網(wǎng)絡(luò)三速以太網(wǎng)(Tri Speed Ethernet,TSE)控制器運(yùn)行時(shí)鐘頻率125 MHz,模擬前端攝像機(jī)MT9M001輸出圖像的時(shí)鐘頻率48 MHz,因此在圖像數(shù)據(jù)傳輸過程中需經(jīng)兩級(jí)緩存處理:一級(jí)緩存為FIFO寫入/讀出操作,其保證硬盤讀取速率與SDRAM寫入速率以及SDRAM寫入同圖像輸出速率的匹配;二級(jí)緩存則保證SDRAM乒乓存入整幀圖像數(shù)據(jù)的正確讀寫操作。FPGA控制IDE硬盤回放實(shí)時(shí)視頻數(shù)據(jù)流程如圖8所示。
1)PIO控制邏輯模塊根據(jù)網(wǎng)絡(luò)控制命令產(chǎn)生PIO控制命令,對(duì)IDE硬盤的工作狀態(tài)、起始地址等進(jìn)行設(shè)置,并控制IDE硬盤進(jìn)入U(xiǎn)DMA工作模式。
2)UDMA控制邏輯模塊根據(jù)網(wǎng)絡(luò)控制命令產(chǎn)生UDMA控制命令,通過UDMA接口控制硬盤進(jìn)入U(xiǎn)DMA讀出狀態(tài)。
圖4 操作硬盤控制命令流程
圖5 PIO模式時(shí)序波形圖
圖6 UDMA寫入時(shí)序波形圖
圖7 UDMA讀出時(shí)序波形圖
3)圖像數(shù)據(jù)從硬盤讀出寫入FIFO寫緩存[4],為圖像數(shù)據(jù)切換存入異步時(shí)鐘域的SDRAM作準(zhǔn)備。
4)將FIFO寫緩存中的圖像數(shù)據(jù)存入SDRAM,圖9為采用Quartus II 的Signal Tap軟件對(duì)寫入SDRAM操作的采樣波形圖。
5)讀出SDRAM中的圖像數(shù)據(jù)寫入FIFO讀緩存[4],此刻應(yīng)保證寫入FIFO讀緩存中的數(shù)據(jù)在產(chǎn)生模擬原攝像機(jī)時(shí)序的每行正程到來前數(shù)據(jù)準(zhǔn)備就緒,圖10為采用Quartus II 的Signal Tap軟件對(duì)讀出SDRAM操作的采樣波形圖。
6)最后將FIFO讀緩存的數(shù)據(jù)一路由視頻時(shí)序模塊生成模擬原攝像機(jī)時(shí)序?qū)?shù)據(jù)讀出;另一路讀出后送入FPGA控制的千兆網(wǎng)TSE控制器封包后發(fā)送至PC端顯示。
圖8 FPGA控制IDE硬盤回放流程
圖9 SDRAM寫入操作(截圖)
圖10 SDRAM讀出操作(截圖)
FPGA控制IDE硬盤存儲(chǔ)實(shí)時(shí)視頻數(shù)據(jù)流程與回放流程互為逆過程,因此接收視頻緩存模塊同發(fā)送視頻緩存模塊也互為逆過程,功能相仿。
2.3 視頻發(fā)送模塊
模塊發(fā)送的視頻應(yīng)滿足MT9M001芯片的輸出時(shí)序要求[5],如圖11及表1所示。
圖11 MT9M001輸出時(shí)序圖
表1 MT9M001時(shí)序主要參數(shù)
參數(shù)名稱默認(rèn)時(shí)序A行有效數(shù)據(jù)26 7μsA+Q行周期31 75μsQ=P1+P2行消隱5 08μsFRAMETIME場(chǎng)周期33 34msPIXCLK像素時(shí)鐘48MHz
2.4 網(wǎng)絡(luò)傳輸模塊
網(wǎng)絡(luò)傳輸模塊由視頻網(wǎng)絡(luò)發(fā)送模塊以及指令網(wǎng)絡(luò)接收模塊組成。二者均采用UDP的通信協(xié)議,視頻網(wǎng)絡(luò)發(fā)送模塊主要負(fù)責(zé)板端圖像數(shù)據(jù)向PC端的網(wǎng)絡(luò)發(fā)送;指令網(wǎng)絡(luò)接收模塊主要完成板端接收PC端通過網(wǎng)絡(luò)發(fā)送的控制指令,如硬盤參數(shù)設(shè)置、硬盤存儲(chǔ)的開始停止命令、回放的開始停止命令等。
Altera提供了可參數(shù)化的千兆以太網(wǎng)Megacore解決方案[6],該方案可在Altera 的Arria GX、CycloneII、CycloneIII系列FPGA上工作,采用千兆網(wǎng)TSE控制器 IP核可實(shí)現(xiàn)單條或多條吉比特以太網(wǎng)鏈路,通過交換機(jī)或路由器可與任意以太網(wǎng)端口相連,整個(gè)配置界面如圖12所示可將 IP 核配置為所需模式[7]。
FPGA控制千兆以太網(wǎng)發(fā)送圖像數(shù)據(jù)時(shí)UDP包的封包協(xié)議設(shè)定為UDP包頭+圖像數(shù)據(jù)包的形式。
1)UDP包頭:由4 byte MAC報(bào)頭+20 byte IPv4報(bào)頭+8 byte UDP報(bào)頭組成;
2)圖像數(shù)據(jù)包:由1 byte幀序號(hào)+3 byte包序號(hào)+512 byte從FIFO中讀出Len(512 byte)長(zhǎng)度的圖像數(shù)據(jù)+
圖12 IP 核參數(shù)配置界面(截圖)
3 byte包尾組成。
FPGA控制千兆以太網(wǎng)發(fā)送圖像數(shù)據(jù)的大致流程如下:
1)每個(gè)UDP包的長(zhǎng)度設(shè)定為L(zhǎng)en(512 byte);
2)將圖像數(shù)據(jù)按行在FIFO中緩存,當(dāng)存滿一個(gè)設(shè)定的Len長(zhǎng)度數(shù)據(jù)后產(chǎn)生一個(gè)UDP包生成信號(hào);
3)FPGA接收信號(hào)后生成上述封包形式的UDP包發(fā)送給TSE控制器,完成一次UDP包的圖像數(shù)據(jù)網(wǎng)絡(luò)傳輸;
4)以此往復(fù),完成一幀圖像數(shù)據(jù)的發(fā)送。
圖13為利用winpcap軟件對(duì)送達(dá)PC端網(wǎng)口數(shù)據(jù)抓取UDP包的結(jié)果,經(jīng)測(cè)試滿足上述協(xié)議要求。
圖13 winpcap抓包結(jié)果圖(截圖)
2.5 PC顯控模塊
PC端使用VS2008開發(fā)軟件,內(nèi)嵌winpcap網(wǎng)絡(luò)抓包函數(shù)將收到的圖像數(shù)據(jù)包依次保存至圖像緩存區(qū),當(dāng)一幅圖像存儲(chǔ)完成后,采用位圖顯示方式進(jìn)行圖像的顯示。除此之外,PC端顯控模塊還完成了諸如硬盤參數(shù)設(shè)置、存儲(chǔ)的啟動(dòng)/停止、回放的啟動(dòng)/停止等操作,其界面如圖14所示。
圖14 PC端顯控界面(截圖)
本設(shè)計(jì)采用Altera公司的EP2C8 FPGA作為主控芯片,實(shí)現(xiàn)了ATA-6規(guī)范的IDE硬盤接口協(xié)議及千兆網(wǎng)絡(luò)圖像傳輸。經(jīng)測(cè)試,可滿足攝像頭分辨率為1 280×1 024,幀頻30 f/s(幀/秒)的無損數(shù)字圖像采集存儲(chǔ),實(shí)時(shí)回放過程可完全模擬原攝像頭采集時(shí)狀態(tài),將此設(shè)備作為圖像處理算法研究的調(diào)試工具具有仿真驗(yàn)證準(zhǔn)確、效率高的特點(diǎn)。由于設(shè)計(jì)采用FPGA為核心架構(gòu),今后可根據(jù)用戶需求更改以適應(yīng)各種標(biāo)準(zhǔn)的攝像頭應(yīng)用,并且硬盤的操作不依賴于操作系統(tǒng),可實(shí)現(xiàn)脫機(jī)工作,便于攜帶。此外整個(gè)設(shè)備的硬件成本低廉,不足500元,采用如圖15所示的IDE轉(zhuǎn)SATA2.0轉(zhuǎn)接卡后,還可掛接大容量的SATA2.0硬盤,以滿足長(zhǎng)時(shí)間存儲(chǔ)數(shù)據(jù)需求,方案具有較高的性價(jià)比。現(xiàn)該設(shè)備已在算法研發(fā)團(tuán)隊(duì)中普及使用,具有較大的市場(chǎng)推廣價(jià)值。
圖15 硬件連接圖(照片)
[1]王毅,管會(huì)生,劉斌彬,等.基于FPGA的IDE硬盤接口卡的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006,22(11):201-203.
[2]程海波.基于FPGA的機(jī)載高速數(shù)據(jù)記錄系統(tǒng)的研究[D].西安:中國科學(xué)院西安光學(xué)機(jī)械研究所,2005.
[3]Technical Committee.Information technology-AT Attachment with Packet Interface-6(ATA/ATAPI-6)[S].2001.
[4]劉妍妍.遙感圖像采集中的SDRAM圖像緩存技術(shù)[J].電視技術(shù),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的遠(yuǎn)程屏幕傳輸系統(tǒng)[J].電視技術(shù),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— ),博士生,主研電路系統(tǒng)設(shè)計(jì)、數(shù)字圖像處理;
黃自力(1965— ),研究員,博士生導(dǎo)師,主研數(shù)字圖像處理;
劉 怡(1981— ),高級(jí)工程師,主研嵌入式數(shù)字圖像處理;
曾 晶(1984— ),碩士生,主研數(shù)字圖像處理;
肖 柯(1978— ),高級(jí)工程師,主研嵌入式數(shù)字圖像處理。
責(zé)任編輯:閆雯雯
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
【本文獻(xiàn)信息】唐湘成,黃自力,劉怡,等.無損數(shù)字視頻存儲(chǔ)回放設(shè)備設(shè)計(jì)[J].電視技術(shù),2015,39(7).