摘? 要: 介紹一種新型嵌入式網(wǎng)絡(luò)數(shù)字" title="網(wǎng)絡(luò)數(shù)字">網(wǎng)絡(luò)數(shù)字攝像系統(tǒng)的設(shè)計(jì)方案。該系統(tǒng)能夠采集高質(zhì)量的視頻信號,經(jīng)過DSP芯片實(shí)時(shí)壓縮后通過嵌入式微控制器傳送到互聯(lián)網(wǎng),并能根據(jù)網(wǎng)絡(luò)狀況和計(jì)算機(jī)用戶的需求實(shí)時(shí)改變攝像系統(tǒng)的工作參數(shù),。詳細(xì)介紹了其硬件結(jié)構(gòu)以及軟件設(shè)計(jì)方法,。該系統(tǒng)具有硬件集成度高、圖像傳輸實(shí)時(shí)性好,、操作簡單及控制靈活等優(yōu)點(diǎn),。
關(guān)鍵詞: 圖像壓縮? DSP? 嵌入式系統(tǒng)? 網(wǎng)絡(luò)傳輸
?
目前將攝像機(jī)拍攝的圖像傳送到計(jì)算機(jī)中進(jìn)行播放、處理主要有兩種方式:一是通過圖像采集卡;二是利用攝像機(jī)自帶的USB接口,。第一種方式雖然可以保證圖像采集的實(shí)時(shí)性,但不能脫離計(jì)算機(jī)單獨(dú)工作,應(yīng)用領(lǐng)域有局限性;后一種方式在圖像傳輸實(shí)時(shí)性和圖像播放質(zhì)量上又不盡人意,。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,使網(wǎng)絡(luò)接入技術(shù)直接嵌入到攝像機(jī)中成為可能。本文介紹一種基于DSP芯片和嵌入式微控制器的網(wǎng)絡(luò)數(shù)字?jǐn)z像系統(tǒng),。該系統(tǒng)內(nèi)部集成了圖像傳感芯片和數(shù)字圖像處理芯片,不需要借助計(jì)算機(jī),直接連接到互聯(lián)網(wǎng)上(見圖1),向互聯(lián)網(wǎng)上的計(jì)算機(jī)傳輸高質(zhì)量的實(shí)時(shí)視頻圖像,根據(jù)網(wǎng)絡(luò)通信狀況和計(jì)算機(jī)的命令改變傳輸圖像的分辨率和幀率等指標(biāo),。該系統(tǒng)硬件集成度高、圖像傳輸實(shí)時(shí)性好,、操作簡單,、控制靈活。
?
該系統(tǒng)包括兩大部分:圖像處理模塊和NetMCU模塊,。系統(tǒng)框圖見圖2,。由圖像處理模塊負(fù)責(zé)對圖像進(jìn)行采集和壓縮,先將模擬圖像信號轉(zhuǎn)變成YUV格式的數(shù)字信號,然后由DSP芯片按照J(rèn)PEG標(biāo)準(zhǔn)進(jìn)行圖像壓縮編碼。NetMCU模塊將接收到的壓縮圖像數(shù)據(jù)" title="圖像數(shù)據(jù)">圖像數(shù)據(jù)按TCP/IP協(xié)議打包,發(fā)送至互聯(lián)網(wǎng)的計(jì)算機(jī)上,并接收計(jì)算機(jī)傳來的控制命令,對系統(tǒng)進(jìn)行配置,。以下分別介紹各個(gè)模塊的工作原理和軟件設(shè)計(jì)方法,。
?
1 圖像處理模塊
1.1 芯片介紹
圖像采集芯片采用OmniVision公司的CMOS彩色圖像傳感器OV6620[1]。在它內(nèi)部集成了一個(gè)356×292的彩色圖像陣列,。該圖像傳感器能對所拍攝的圖像進(jìn)行預(yù)處理,包括自動(dòng)曝光控制,、自動(dòng)白平衡調(diào)節(jié)、gamma校正,、自動(dòng)圖像增強(qiáng);并可通過與DSP芯片相連的串行通信接口,對傳感器內(nèi)部的92個(gè)寄存器的參數(shù)進(jìn)行設(shè)置,。
圖像壓縮芯片采用TI公司的TMS320VC5416[2]定點(diǎn)運(yùn)算數(shù)字信號處理器(DSP),其內(nèi)部采用一種改進(jìn)型的哈佛總線結(jié)構(gòu)(一條程序總線,三條數(shù)據(jù)總線),數(shù)據(jù)總線寬度為16bit。分開的數(shù)據(jù)和指令空間使該芯片具有高度的并行操作能力,在單周期內(nèi)允許指令和數(shù)據(jù)同時(shí)存取,再加上其高度優(yōu)化的指令集" title="指令集">指令集,使得該芯片具有很高的運(yùn)算速度,最高可達(dá)160MIPS,。
VC5416芯片的外部程序存儲(chǔ)空間為8M×16bits,外部數(shù)據(jù)存儲(chǔ)" title="數(shù)據(jù)存儲(chǔ)">數(shù)據(jù)存儲(chǔ)空間為64K×16bits。在芯片內(nèi)部還集成了128K×16bits片上存儲(chǔ)器,。該芯片具有多種片上外部設(shè)備單元,包括一個(gè)16位計(jì)時(shí)器,一個(gè)6通道DMA傳輸控制器,三個(gè)帶緩沖器的串行通信接口(McBSP)和一個(gè)8/16位的主機(jī)通信接口(HPI8/16),。
1.2 功能介紹
圖像處理模塊主要負(fù)責(zé)模擬圖像的采集、數(shù)字化,、壓縮等工作,。首先,在系統(tǒng)加電運(yùn)行后,由NetMCU模塊對VC5416芯片復(fù)位,然后VC5416芯片運(yùn)行固化在芯片內(nèi)的BootLoader程序,將存儲(chǔ)在外部程序存儲(chǔ)器上的應(yīng)用程序復(fù)制到內(nèi)部存儲(chǔ)器中,并開始運(yùn)行應(yīng)用程序,。應(yīng)用程序的任務(wù)主要有以下三個(gè)方面:
(1)通過VC5416芯片的1號串行通信接口(McBSP1)對OV6620的內(nèi)部寄存器進(jìn)行參數(shù)配置。主要參數(shù)包括:將輸出圖像分辨率設(shè)置為352×288,將輸出圖像幀的速率設(shè)置為25幀/秒,將數(shù)字圖像的輸出格式設(shè)置為YUV分量4:2:2格式,。
(2)將OV6620芯片輸出的圖像數(shù)據(jù)利用JPEG算法進(jìn)行數(shù)字圖像壓縮,。在本設(shè)計(jì)中采用一種改進(jìn)的JPEG算法[4]。將二維DCT變換分解成兩次一維快速DCT變換,。對8×8象素塊的DCT變換,共需176次乘法和464次加法,比標(biāo)準(zhǔn)DCT算法的1024次乘法和896次加法在運(yùn)算速度上有極大提高,。
(3)VC5416芯片通過與NetMCU模塊相連的0號串行通信接口(McBSP0),接收改變傳輸圖像的分辨率、幀速,、曝光時(shí)間等參數(shù)的命令,并及時(shí)調(diào)整OV6620芯片的內(nèi)部寄存器參數(shù),。
OV6620芯片和VC5416芯片之間存在大量的數(shù)據(jù)傳輸,因此在系統(tǒng)中采用一片ALTERA公司的FPGA(FLEX10K20)芯片作為數(shù)據(jù)傳輸接口,代替VC5416芯片管理外部數(shù)據(jù)存儲(chǔ)區(qū)。在FPGA芯片中集成了一個(gè)512×16bits的FIFO和一個(gè)存儲(chǔ)控制器" title="存儲(chǔ)控制器">存儲(chǔ)控制器,。通過OV6620芯片輸出的圖像象素移位脈沖和圖像的行,、場同步脈沖的控制,將原始圖像數(shù)據(jù)存入FIFO中。由于JPEG圖像壓縮以8×8象素塊基本運(yùn)算單位,需要存儲(chǔ)控制器將FIFO中以行順序輸入的原始圖像數(shù)據(jù)進(jìn)行存儲(chǔ)地址調(diào)整,變換成按8×8像素塊順序存入外部數(shù)據(jù)存儲(chǔ)區(qū),。同時(shí),由于受VC5416芯片的外部數(shù)據(jù)存儲(chǔ)區(qū)容量的限制,存儲(chǔ)控制器將一幀原始圖像數(shù)據(jù)分成上下兩個(gè)半?yún)^(qū),各占用一個(gè)64KB地址空間,。當(dāng)VC5416芯片讀數(shù)據(jù)時(shí),存儲(chǔ)控制器會(huì)自動(dòng)在這兩個(gè)半?yún)^(qū)之間切換,使得DSP芯片能夠處理一幀圖像。
2 NetMCU模塊
2.1 芯片介紹
本系統(tǒng)采用三星公司的S3C4510B[3]芯片作為主控制器,。芯片內(nèi)部結(jié)構(gòu)見圖3,。S3C4510B芯片集成了ARM公司的32位精簡指令集處理器ARM7TDMI核。ARM7TDMI核采用馮·諾依曼體系結(jié)構(gòu),使用單一32位總線傳送指令和數(shù)據(jù),使用三級流水線操作以提高處理器執(zhí)行速度,。ARM7TDMI核可以使用兩種指令集:一種是32位ARM指令集;一種是16位Thumb指令集,。Thumb指令集是ARM指令集的子集,但它能提供比16位體系結(jié)構(gòu)更高的性能、比32位體系結(jié)構(gòu)更高的代碼密度,。因此,Thumb指令集使ARM7TDMI核非常適合有存儲(chǔ)器寬度和代碼密度限制的嵌入式場合,。
?
?
S3C4510B芯片的存儲(chǔ)空間最大可達(dá)16M×32bits(包括程序存儲(chǔ)區(qū)、數(shù)據(jù)存儲(chǔ)區(qū)和I/O設(shè)備區(qū)),它內(nèi)部集成了一個(gè)存儲(chǔ)控制器,具有自動(dòng)刷新存儲(chǔ)區(qū)數(shù)據(jù)和自動(dòng)插入可編程等待周期的功能,可以支持多種類型的存儲(chǔ)芯片(包括ROM,、SRAM,、FLASH和DRAM)。在芯片內(nèi)部還集成有8K×8bits的指令/數(shù)據(jù)Cache,采用pseudo-LRU(Least Recently Used)算法,大大提高了芯片的性能,。
由于S3C4510B芯片面向網(wǎng)絡(luò)應(yīng)用,因此在芯片內(nèi)部集成了一個(gè)以太網(wǎng)控制器,。該控制器工作于MAC層,完全兼容IEEE802.3協(xié)議標(biāo)準(zhǔn)。它能運(yùn)行于10Mbps/100Mbps模式,。該控制器包括一個(gè)接收/發(fā)送單元,、一個(gè)流控制器、一個(gè)用于存放網(wǎng)絡(luò)地址的內(nèi)容可尋址存儲(chǔ)單元和一系列命令/狀態(tài)寄存器,。
2.2 功能介紹
S3C4510B芯片作為系統(tǒng)的主控制芯片,負(fù)責(zé)控制嵌入式網(wǎng)絡(luò)數(shù)字?jǐn)z像系統(tǒng)的正常工作,包括將壓縮后的圖像數(shù)據(jù)按照TCPIP協(xié)議發(fā)送到互聯(lián)網(wǎng)中的計(jì)算機(jī)上并接收計(jì)算機(jī)的命令修改系統(tǒng)工作參數(shù)等,。
系統(tǒng)加電后,S3C4510B芯片自動(dòng)從地址0x00處運(yùn)行系統(tǒng)程序。系統(tǒng)程序首先初始化異常向量表,之后初始化1K×32bits的系統(tǒng)堆棧區(qū),用于存放出現(xiàn)異常情況(中斷)時(shí)的寄存器值。然后,系統(tǒng)程序設(shè)置系統(tǒng)正常工作時(shí)的各個(gè)存儲(chǔ)區(qū)起始地址及存儲(chǔ)區(qū)容量,將地址0x00000~0x7FFFF共512K×32bits范圍作為程序存儲(chǔ)區(qū)(ROM),用于存放系統(tǒng)程序和用戶程序;將地址0x1000000~0x10FFFFF共1M×32bits作為程序/數(shù)據(jù)存儲(chǔ)區(qū)(RAM),又將該段存儲(chǔ)區(qū)分為用戶程序段,、用戶堆棧段和用戶數(shù)據(jù)段;將片內(nèi)存儲(chǔ)區(qū)地址映射到0x3FE0000~0x3FEFFFF;將特殊寄存器區(qū)地址映射到0x3FF0000~0x3FFFFFF,。最后系統(tǒng)程序設(shè)置片內(nèi)寄存器的值,初始化S3C4510B芯片的各個(gè)外部接口,包括異步串行通信接口(UART)、計(jì)時(shí)器,、可編程I/O口,、以太網(wǎng)控制器等。在系統(tǒng)初始化結(jié)束后,自動(dòng)進(jìn)入用戶模式,執(zhí)行用戶程序,。
在用戶模式下,攝像系統(tǒng)作為網(wǎng)絡(luò)視頻服務(wù)器,。根據(jù)用戶程序設(shè)置的MAC地址和IP地址,接收來自互聯(lián)網(wǎng)中計(jì)算機(jī)發(fā)出的請求信號。當(dāng)系統(tǒng)收到請求信號后,用戶程序立即在本地與計(jì)算機(jī)建立TCP連接,。將待傳輸?shù)囊粠瑝嚎s圖像數(shù)據(jù)首先按TCP協(xié)議封裝成TCP數(shù)據(jù)報(bào),然后交付給IP層子程序封裝成IP數(shù)據(jù)報(bào),最后由S3C4510B芯片內(nèi)的MAC控制器將其拆分封裝成幀并發(fā)送到目的計(jì)算機(jī)上,。當(dāng)有多個(gè)計(jì)算機(jī)用戶發(fā)出請求信號時(shí),用戶程序會(huì)在數(shù)據(jù)存儲(chǔ)區(qū)中設(shè)置一個(gè)用戶列表,自動(dòng)根據(jù)各個(gè)計(jì)算機(jī)的IP地址和建立連接時(shí)的端口號分別發(fā)送圖像數(shù)據(jù)。圖4顯示了用戶程序與一臺(tái)計(jì)算機(jī)發(fā)送和接收TCP/IP數(shù)據(jù)報(bào)的流程圖,。目的計(jì)算機(jī)將接收到的TCP/IP數(shù)據(jù)報(bào)解封,恢復(fù)成JPEG壓縮圖像幀,再解壓縮,完成視頻圖像流的接收和播放,。
?
?
用戶程序在發(fā)送數(shù)據(jù)幀的同時(shí),會(huì)根據(jù)圖像數(shù)據(jù)發(fā)送的速度及網(wǎng)絡(luò)的擁塞情況,自動(dòng)通過異步串行通信接口(UART0)向VC5416芯片發(fā)送控制信號,及時(shí)改變圖像采集和壓縮的速率。本系統(tǒng)在發(fā)送視頻數(shù)據(jù)的同時(shí),還能夠接收來自計(jì)算機(jī)的控制命令,。根據(jù)不同的控制命令,系統(tǒng)也可以完成對圖像分辨率,、圖像幀速率等指標(biāo)的調(diào)節(jié)。
????本文介紹的網(wǎng)絡(luò)數(shù)字?jǐn)z像系統(tǒng)目前運(yùn)行于評估板平臺(tái)上,下一步將繼續(xù)進(jìn)行系統(tǒng)的集成和優(yōu)化并最終實(shí)現(xiàn)產(chǎn)品化,。由于該設(shè)計(jì)方案采用高性能的32位微控制器和多個(gè)通用可編程器件(FPGA和DSP),因此該系統(tǒng)能夠支持VxWorks嵌入式實(shí)時(shí)操作系統(tǒng)和更為復(fù)雜的應(yīng)用程序,。而且軟件和硬件設(shè)計(jì)只需稍加改進(jìn)就能實(shí)現(xiàn)無線聯(lián)網(wǎng),使得數(shù)字?jǐn)z像系統(tǒng)能在移動(dòng)中傳輸實(shí)時(shí)圖像。該網(wǎng)絡(luò)數(shù)字?jǐn)z像系統(tǒng)具有硬件集成度高,、圖像傳輸實(shí)時(shí)性好,、操作簡單、維護(hù)方便等優(yōu)點(diǎn),??梢杂糜陔娨晻?huì)議、電訊基站,、智能樓宇,、銀行的保安監(jiān)控以及交通違章和流量管理等。
?
參考文獻(xiàn)
1 OmniVision Technologies,, Inc.OV6620 Single-Chip CMOS?CIF Color Digital Camera Data Manual.
2 Texas Instruments Inc.TMS320VC5416 Fixed-Point Digital Signal Processor.March 1999-Revised May 2002.
3 Samsung Co. Ltd.S3C4510B 16/32-bit RISC Micro-controller Data Manual.
4 Christoph Loeffler,, Adriaan Ligtenberg, George S. Moschytz.Practical Fast 1-D Algorithms with 11 Multiplications.Acoustics,, Speech,, and Signal Processing, 1989. ICASSP-89,,1989 International Conference on,,1989;(2):988~991