嵌入式視頻采集系統(tǒng)的設計與實現(xiàn)
0 引言
視頻采集系統(tǒng)是數(shù)字圖像獲取的最基本手段,是進行數(shù)字圖像處理、多媒體和網(wǎng)絡傳輸?shù)那疤?,它可為各種圖像處理算法提供待處理的原始數(shù)字圖像和算法驗證平臺,隨著人們對視頻圖像需求的激增和各種圖像和視頻新的壓縮標準相繼提出,如H.263、H.264、MPEG2、MPEG4和JPEG2000等,對高性能視頻采集系統(tǒng)的研究將成為一個熱點。
按系統(tǒng)的處理器不同嵌入式視頻采集系統(tǒng)大致可分為三類:(1)基于專用視頻圖像芯片的視頻采集系統(tǒng);(2)基于PC的視頻采集系統(tǒng);(3)基于DSP的視頻采集系統(tǒng)。
基于專用視頻圖像芯片的視頻采集系統(tǒng)其核心處理單元為專用圖像芯片,該圖像芯片決定系統(tǒng)的功能,其應用主要針對某一類產(chǎn)品(如數(shù)碼攝像機),所以具有一定的局限性。而基于PC機的視頻采集系統(tǒng)最為普遍的就是基于視頻采集卡獲取數(shù)字化視頻信息,通過運行相應的PC程序實現(xiàn)視頻的采集、顯示與存儲,但是目前基于PC的算法程序通常處理時間較長,很難實現(xiàn)實時的圖像處理應用。
相比基于專用視頻圖像芯片和基于PC的視頻采集系統(tǒng)而言,嵌入式視頻采集系統(tǒng)可完成視頻的實時采集、傳輸以及各種視頻壓縮算法和圖像處理算法的實現(xiàn),根據(jù)不同的應用,可以編制不同的圖像處理程序,所以具有更大的靈活性,并且設計與實現(xiàn)簡單,硬件設計一般采用基于DSP的視頻采集系統(tǒng),即“CCD+視頻信號處理芯片+CPLD/FPGA/EPLD +DSP”的模式實現(xiàn)。其中,視頻信號處理芯片進行信號的A/D轉換,CPLD或EPLD或FPGA用于視頻采樣控制,DSP對采集的數(shù)據(jù)進行處理。嵌入式視頻圖像采集系統(tǒng)主要包括硬件設計、軟件設計和操作系統(tǒng)3個部分。
1 嵌入式視頻采集系統(tǒng)的硬件設計
1.1 視頻采集系統(tǒng)的基本構成
基于DSP的視頻采集系統(tǒng)要求對視頻信號具備采集、實時顯示,對圖像的處理和分析功能。因此,一個視頻采集系統(tǒng)通??捎扇缦挛宀糠謽嫵?視頻圖像的采集、視頻圖像的顯示輸出、各種同步邏輯控制、視頻圖像的分析和處理、視頻數(shù)據(jù)的存儲。因此,對于視頻采集系統(tǒng)的基本構成可用圖1所示框圖描述。
500)this.style.width=500;" border="0" />
1.2基于DSP的視頻采集系統(tǒng)
圖2給出了基于TMS320DM642[1]與TVP5150[2]構成的視頻采集系統(tǒng)[3],TMS320DM642可以直接和視頻編解碼器接口,該系統(tǒng)可同時完成四路視頻圖像的實時采集、傳輸以及各種視頻壓縮算法和圖像處理算法的實現(xiàn),根據(jù)不同的應用,可以編制不同的圖像處理程序。TMS320DM642有自己的圖像處理庫函數(shù),可以實現(xiàn)各類圖像處理算法。因此,該系統(tǒng)具有更大的靈活性與通用性。
500)this.style.width=500;" border="0" />
1.2.1 TMS320DM642簡介
TMS320DM642是TI推出的一款面向數(shù)字多媒體應用的DSP,它在TI的C64x DSP內(nèi)核基礎上進一步集成了完備的視頻/音頻輸入/輸出接口、以太網(wǎng)接口、PCI-66總線等片上外設,不僅能使用戶很方便地對音頻/視頻等各種復雜的運算進行高速處理,還能為方便、無縫地接口視頻/音頻編解碼器件和以太網(wǎng)/PCI總線等數(shù)據(jù)傳輸接口。因此,它非常適用于VoIP、數(shù)字視頻服務器、多通道數(shù)字視頻錄像機(DVB)、多通道數(shù)字視頻監(jiān)控等應用。[!--empirenews.page--]
DM642的程序/數(shù)據(jù)空間以字節(jié)為單位進行統(tǒng)一編址,整個尋址空間為4GB。其片上存儲器、片上外設、及外部存儲器接口(EMIF)均映射到此4GB的空間中。DM642通過外部存貯器接口(EMIF)訪問片外存儲器(Flash、SDRAM、UART、ATA),如圖2所示,DM642共有三個視頻口,分別為VP0、VP1和VP2。VP0與VP1則與McBSP、McASP復用引腳的,其功能選擇由DM642上的外設配置寄存器(PERCFG)進行配置的。DM642支持多種外部接口:PCI接口、HPI接口和以太網(wǎng)MAC接口,這些接口信號復用相同的引腳,它們的功能選擇和配置是在上電復位時通過檢測DM642上的特殊引腳(PCI_EN、MAC_EN、HD5、PCI_EEAI)的狀態(tài)來實現(xiàn)的。
1.2.2 視頻A/D采樣電路-TVP5150
在圖2系統(tǒng)中,TVP5150是由TI公司推出的一款高性能視頻解碼器,可將NTSC、PAL視頻信號轉換成數(shù)字色差信號(YUV4:2:2),支持兩個復合視頻或一個S端子輸入。輸出格式為ITU-R BT.656,并支持Macrovision™復制保護以及高級的VBI功能。不僅如此,TVP5150還具備了封裝小(32腳的TQFP)、功耗小的特點(<150mW)。因此,它非常適用于便攜、批量大、高質(zhì)量和高性能的視頻產(chǎn)品。TVP5150可接受2路復合視頻信號(CVBS)輸入和1路超級視頻信號(S-Video即Super-Video,Y/C)輸入。該芯片包含一個擴展端口(X-端口)用于數(shù)字視頻(雙向半雙工),它可直接連接倒MPEG或視頻電話進行編解碼。TVP5150的圖像端口(I-端口)支持8位或16位的輸出數(shù)據(jù)并帶輔助參考數(shù)據(jù)可直接與VGA控制器接口。TVP5150提供I2C總線接口,其最高傳輸速率為400kbits/s,通過它可以完成芯片的初始化以及設置修改等操作。TVP5150作為I2C總線的從設備,最多可配置為2個不同的從設備地址,一條I2C總線只能同時訪問2個TVP5150配置口,所以DM642可以連接4個TVP5150,進行4路視頻輸入。
1.2.3 視頻D/A電路-SAA7121
圖2系統(tǒng)中視頻D/A由視頻編碼器SAA7121[4]完成。SAA7121支持PAL與NTSC格式的視頻編碼,其輸入支持BT.656格式的數(shù)字視頻。SAA7121有1路復合視頻(CVBS)輸出和1路超級視頻(S-Video,Y/C)輸出,其系統(tǒng)像素時鐘頻率為13.5MHz,它可以直接接收MPEG解碼數(shù)據(jù)和采用4:2:2格式每行720有效像素的CCIR兼容YUV數(shù)據(jù),其內(nèi)部包含同步/時鐘產(chǎn)生器和數(shù)模轉換器兩部分電路。SAA7121同樣需要通過I2C總線進行初始化和設置修改等操作。
從圖2中可看出,VP0既要做視頻輸入口,也要支持視頻輸出口,即VP0可以工作在Capture與Display兩種作模式。但這兩種工作模式不能同時使用作模式不能同時使用。當VP0作為8-位的BT.656視頻采集口時,僅需視頻數(shù)據(jù)流串行時鐘和采集使能控制信號,串行數(shù)據(jù)流串行時鐘由TVP5150的SCLK,采集使能控制信號則由TVP5150的INTREQ/GPCL/VBLK引腳配置為通用輸出引腳來控制,此時SAA7121H不起作用。當VP0作為8-位的BT.656顯示口時,SAA7121需要HSYNC(行同步信號)、VSYNC(場同步信號)、LLC(27MHz的行鎖存號)控制。
1.2.4 系統(tǒng)原理
圖2系統(tǒng)其主要功能是完成視頻圖像的采集、處理、存儲和傳輸。系統(tǒng)的視頻輸入可以是NTSC、PAL和SECAM制式的任何一種,或者采用S端子輸入。TVP5150完成視頻信號的A/D轉換,為后續(xù)處理提供數(shù)字視頻數(shù)據(jù),同時它還分離出行、場同步信號并輸出系統(tǒng)時鐘供視頻D/A芯片和FIFO使用。TVP5150的輸出格式包括4:2:2、4:1:1、4:2:0和4:1:0等四種YUV格式輸出,數(shù)據(jù)輸出格式是通過I2C總線編程來選擇的,TVP5150的內(nèi)部寄存器初始化也通過I2C串行接口來完成。對于不同的輸入制式、不同的采集要求和不同的處理要求,其幀緩存要求是不相同的,如對于PAL-D制ITU-R BT.601視頻輸入,采樣后按4:2:2格式輸出,一幀數(shù)據(jù)為720×576×2=0.83Mbyte,若緩存三幀圖像,則需要3Mbyte空間的采集幀緩存,若按4:1:1格式輸出,則只需2Mbyte的幀緩存。系統(tǒng)可選擇8M×32-bit的SDRAM在系統(tǒng)中即作為采集幀緩存和處理后的數(shù)據(jù)幀緩存,也可作下載程序的存儲器使用。系統(tǒng)提供串行接口,可與外部設備進行通信和傳輸圖像數(shù)據(jù)。其中Xilinx Xc2s300 FPGA[5]實現(xiàn)以下四點功能:
(1) 完成系統(tǒng)中視頻采集和輸出部分的同步信號和消隱信號的控制,其中主要包括TVP5150和SAA7121的行同步信號、場同步信號、消隱信號;
(2) 將部分邏輯單元設計為FIFO作數(shù)據(jù)緩存,完成外接FIFO的同步讀寫控制,承擔TVP5150與DSP的數(shù)據(jù)傳送工作;
(3) 作PCI總線控制器,完成TMS320DM642與計算機的數(shù)據(jù)通信工作以及從計算機加載各種圖像處理算法;
(4) 對TVP5150輸出的數(shù)字圖像進行預處理,其中主要包括圖像數(shù)據(jù)的色度空間轉換如YUV到RGB的轉換,數(shù)據(jù)格式轉換如將4:2:2轉換為4:2:0;
(5) 作數(shù)據(jù)總線接口,實現(xiàn)數(shù)據(jù)的驅動傳輸?shù)裙δ堋?br />TMS320DM642在系統(tǒng)中是各類算法實現(xiàn)的核心器件,根據(jù)不同的應用場合,可以編制不同的算法處理程序,使得該系統(tǒng)具有了很強的靈活性與通用性。值得強調(diào)的一點是為了便于操作系統(tǒng)中的其它外設,在該系統(tǒng)中,TMS320DM642的外部存儲器接口控制寄存器必須配置為優(yōu)先使用外部存儲器模式。[!--empirenews.page--]
2 嵌入式視頻圖像采集系統(tǒng)的軟件設計
一個完整的嵌入式系統(tǒng)由圖3所示的4部分來組成。
500)this.style.width=500;" border="0" />
圖3中的底層是硬件系統(tǒng),核心是嵌入式處理器(嵌入芯片),通常這樣構成的系統(tǒng)又被稱為是SOC(System on Chip)系統(tǒng)。在硬件系統(tǒng)的上面是BSP(板級支持包),包括各種必要的對底層硬件系統(tǒng)的屏蔽,引導上層操作系統(tǒng)在硬件系統(tǒng)上的正確運行。操作系統(tǒng)正確運行之后還需要開發(fā)各種設備驅動程序,目的是給用戶的應用程序開發(fā)提供對底層設備的屏蔽,提供一個統(tǒng)一的用戶開發(fā)接口(API)。
BSP是指系統(tǒng)內(nèi)核在特定的硬件系統(tǒng)上面運行所需要的初始化代碼和各種設備驅動程序。它主要包括:系統(tǒng)初始化,初始化CPU寄存器和測試CPU的型號版本等,它和Bootloader中的初始化部分共同完成所有的系統(tǒng)準備工作,使得系統(tǒng)處于預期的穩(wěn)定工作狀態(tài);內(nèi)存管理,在沒有MMU(內(nèi)存管理單元)的系統(tǒng)里面主要是數(shù)據(jù)cache和程序cache的管理,在具有MMU單元的系統(tǒng)中還要包括MMU的各種表的管理,它主要用來實現(xiàn)內(nèi)存的映射;中斷控制器管理,對于一個RTOS來說,中斷是不可缺少的部分。
嵌入式操作系統(tǒng)相關技術已經(jīng)成熟,由于Linux[6]具有源碼開放、開發(fā)工具豐富、技術支持廣泛等特點,視頻圖像采集系統(tǒng)選用嵌入式Linux操作系統(tǒng)(Embedded Linux Operation System)。Linux中的中斷管理包括中斷號的申請和釋放、中斷屏蔽和中斷服務、中斷向量分配等,時鐘和設備驅動程序。
驅動程序是利用操作系統(tǒng)提供的接口,完成對底層硬件的操作。驅動程序的開發(fā),是在操作系統(tǒng)提供的接口基礎上編寫對底層硬件的操作和控制程序,然后加入到操作系統(tǒng)的內(nèi)核。用戶對某一個設備的訪問,首先是將用戶的各種操作傳遞給操作系統(tǒng),然后由操作系統(tǒng)調(diào)用設備的驅動程序,完成對硬件的各種數(shù)據(jù)傳輸,所以驅動程序必須要告訴操作系統(tǒng)該硬件的各種操作程序的入口地址。特別對于Linux下的驅動程序開發(fā),經(jīng)過調(diào)試通過的驅動程序可以編譯為一個模塊動態(tài)地裝載入操作系統(tǒng)內(nèi)核或者從操作系統(tǒng)內(nèi)核中刪除,因此驅動程序在Linux中是可以作為內(nèi)核的一部分來編寫。
對于用戶程序開發(fā),與通用PC上面開發(fā)應用程序類似。但是在嵌入式應用中,應用程序一般是作為文件系統(tǒng)的一部分加入到操作系統(tǒng)的內(nèi)核,然后重新編譯內(nèi)核,最后生成一個可以執(zhí)行的二進制壓縮映像文件加載到系統(tǒng)的存儲空間。加載的加入了用戶應用程序的操作系統(tǒng)一般還必須固化,燒到系統(tǒng)的Flash中。在系統(tǒng)運行時,根據(jù)操作系統(tǒng)的INIT函數(shù)轉到用戶程序執(zhí)行。
3 結 論
基于DSP的視頻采集系統(tǒng),由于可以靈活的修改其圖像處理算法,它的應用主要面向用戶的特定需求和對實時性有較高要求的場合。隨著技術的發(fā)展和日益增強的需要,圖像的實時傳輸和網(wǎng)絡服務將是不可避免的,同時嵌入式系統(tǒng)是基于計算機技術且更加強調(diào)體積、功耗、成本、便攜化應用等綜合因素的精簡計算機系統(tǒng),將二者結合在一起而構成的完整傳輸系統(tǒng)將具有不可比擬的優(yōu)越性。因此完全有理由相信在嵌入式系統(tǒng)的基礎上構建視頻圖像采集、處理及傳輸系統(tǒng)具有廣闊的市場前景。