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