1 達芬奇技術的主要特點
達芬奇平臺是典型的基于共享存儲的嵌入式多處理(ARM,DSP,VICP,視頻前端和后端等)環境,支持的關鍵技術是片內實現了多通道的交換中心資源(Switch Central Resources,SCR)。基于片內SCR,達芬奇平臺在片內多處理器之間形成了典型的C/S架構:計算能力強大的DSP可以作為服務器提供算法的實時計算服務;帶有JAVA處理能力的ARM9實現網絡,硬盤音視頻I/O等用戶界面。美國TI公司在達芬奇平臺上專門為音視頻編解碼(Codec)多媒體應用精心設計了系統框架,提供了豐富的系統程序接口SPI,應用程序接口API以及視頻,圖像,話音和音頻千余種流媒體算法組件。他們與操作系統,中間件構成了一個應用系統的大部分內容,應用系統開發團隊只需要將他們封裝成運行包,就能得到高可用性和高可靠性的產品。
達芬奇平臺的最大特點就是基于DSP與ARM的SOC芯片,和與之相關的相關軟件,如圖1所示。
![](/uploads/allimg/120511/09430QT6-0.jpg)
?
對達芬奇平臺,硬件上給與雙核架構強有力的支持,在DSP端用DPS/BIOS來支持音/視頻算法的運行,在ARM端用MontaVistaLinux(MV)來支持其對外設的管理。對于ARM與DSP之間的數據交叉,則用Codec Engine和Codec Server來加以管理。達芬奇平臺的先進性,對高端音/視頻系統來說,無疑是開發平臺的最好選擇。
2 TMS320DM365介紹
TI公司的TMS320DM365是一款面向多媒體技術應用的高性能芯片。TM320DM365功能框圖如圖2所示。
![](/uploads/allimg/120511/09430W207-1.jpg)
?
內核方面TMS320DM365集成ARM926EJ-S.H.264協處理器(HDVICP),MPEG4/JPEG協處理器(MJCP),能以1080p格式與10幀/s的速度提供H.264編解碼功能,和以1080p格式與24幀/s的速度提供MPEG4編解碼功能,以及以720p格式與30幀/s的速度提供H.264或MPEG4編解碼功能。存儲方面擴展存儲器接口EMIFs包括1個16位256 M地址空間的DDR2和mDDR,以及1個16/8位的AEMIF,可擴展的類型有8/16位NAND Flash,16Mb NOR Flash,SRAM,16位OneNAND等。其他外圍擴展控制器還包括16位HPI(Host-Port Interface),2個MMC(Multimedia Card)/SD(Secure Digital)/SDIO接口,1個16位的WDT(Watch DogTimer),5個SPI(Serial Port Interface)接口其中每個具有兩個片選,1個主/從I2C(Inter-Integrated Circuit)總線控制器,1個支持2.0USB OTG接口控制器等。
TMS320DM365集成的ARM926EJ-S處理器包括32 kBRAM、16 kB ROM(用于非AEMIF啟動模式下的ARMbootloader)、16 kB指令緩存、8 kB數據緩存、CP15及MMU等。其中CP15用來對指令、數據緩存、MMU以及其他ARM子系統進行配置及控制。MMU使用統一的TLB來對頁表中存儲的信息進行緩存,并為類似Linux、WindowsCE、ultron以及ThreadX等操作系統提供虛擬內存。該處理器的寫緩沖數據容量高達17 kB,使其可以大幅提高內核的性能。
TMS320DM365中的視頻處理子系統(VPSS)由兩個接口,分別用于視頻捕獲的視頻前段(VPFE)輸入接口和用于圖像顯示的視頻后端(VPBE)輸出接口。圖3為視頻處理子系統系統框圖。
![](/uploads/allimg/120511/09430Va5-2.jpg)
?
VPFE模塊主要用于捕獲視頻信號,也可以直接從前端輸入已有的視頻信號。VPFE輸入接口有1個CCD控制器(CCDC)、1個預處理器、柱狀模塊、自動曝光/白平衡/聚焦模塊(H3A)和寄存器組成。CCDC可以與視頻解碼器、CMOS傳感器或電荷耦合裝置連接;預處理器是一個實時的圖像處理器,它把來自CMOS或CCD的原始圖像從RGB轉變為YUV422的編碼;柱狀模塊和H3A模塊實現基于原始圖像信息的硬件操作。
VPBE輸出接口由1個OSD引擎和1個視頻編碼器組成。OSD引擎能夠顯示兩組獨立的視頻窗口或兩組獨立的OSD窗口,還可以以2個視頻窗口、1個OSD窗口和一個屬性窗口的形式顯示。OSD用于在視頻圖像上疊加音量,圖標等位圖或圖像信息。視頻編碼模塊提供數字輸出和模擬輸出。數字輸出支持24bitRGB888格式、8/16bit BT.656以及具有獨立的水平和垂直同步功能的CCIT.601輸出;模擬輸出支持4路10bit DAC,均工作于54 MHz,支持復合NTSC/PAL、S端子和分量視頻。
3 系統硬件設計
系統硬件結構如圖4所示,本系統選擇以TMS320DM365為嵌入式處理器,外圍電路包括有音頻、視頻信號采集電路,以太網絡電路,電源接口,JTFAG,UART,NAND Flash,SD卡,DDR2,USB2.0 OTG以及I2C。
![](/uploads/allimg/120511/09430Q257-3.jpg)
?
網絡攝像機系統的信息處理流程主要分為圖像的獲取、圖像的處理傳輸以及圖像的顯示3部分。本系統中,前端攝像頭負責圖像的捕捉,將獲取的未經壓縮處理的圖像信號傳輸至電路板中通過TMS320DM365芯片進行壓縮處理以及SD卡的相應存儲,再由以太網接口或其他接口將處理過圖像進行傳輸,在遠端監視器上將圖像進行顯示。
本系統的視頻采集模塊采用TVP5146。傳統NTSC/PAL攝像頭的輸出信號格式為模擬信號,由于TMS320DM365的視頻輸入信號是通過VPFE的CCDC以ITU-R BT.601/BT.656格式進行輸入的,所以首先需要通過視頻前段濾波放大器OPA361對采集到的模擬信號進行放大,經過視頻解碼芯片TVPS146將模擬信號進行圖像的抗混疊濾波預處理、模擬數字化轉換及亮度/色度、水平/垂直同步信號的分離,實現模擬視頻信號轉換為數字并行信號BT.656碼流格式,隨后通過2個12位2選1的FET多路復用器對4路視頻信號選擇1路作為輸入從而完成VPFE的視頻輸入工作。 TVP5146是一種高性能單片數字視頻解碼器,它可將所有常見的基帶模擬視頻信號,例如NTSC,PAL,SECAM混合信號數字化并解碼為數字視頻信號。該解碼器還包括了具有模擬預處理功能的4路10位30MSPS的模數轉換器。高達10組的視頻輸入終端可以用來配置作為RGB,YPbPr,CVBS分量信號或者S端子視頻輸入。
網絡控制模塊主要包括EMAC模塊和MDIO模塊,原理圖如圖5所示。
![](/uploads/allimg/120511/09430WU2-4.jpg)
?
本系統采用TI公司出品的TSB43EA42作為以太網收發器。TSB43EA42支持10 MB/100 MB基帶傳輸,提供與MAC層相接的MII接口。它與DM3 65通信的主要引腳有:發送、接收數據線、時鐘、使能信號、錯誤指示、管理數據接口、控制/指示引腳等。EMAC控制模塊內部集成了8 kB的RAM,主要功能使存放緩沖描述符和以太網數據包。MDIO模塊則主要通過兩線接口完成對物理層芯片的配置,工作狀態檢測等工作。
串口模塊采用TI公司的MAX322ICPW,主要用來負責開發板與計算機之間的通信。通過超級終端,完成Linux內核的下載以及相關參數的設置,完成系統的開發以及調試。存儲模塊包括了2個擴展存儲接口EMIF和2個MMC/SD卡接口。前者包括DDR控制器和異步擴展存儲接口AEMIF分別用于擴展連接對DDR存儲器和Flash存儲器;后者實現了2個SD卡存儲器的擴展連接。
電源模塊采用了TI公司的TPS65023作為電源管理芯片。該芯片包括3個DC/DC轉換器以及2個200mA線性穩壓器LDO。每路LDO由TMS320DM3 65通過I2C與之通信,實現各路輸出電源電壓的控制,為內核存儲器和I/O接口提供1.3,1.8,3.3 V的工作電壓;也可通過5 V穩壓器直流供電,通過DC/DC轉換器提供1.3,1.8,3.3 V供電。
4 系統軟件設計
系統的視頻采集模塊負責從攝像頭中讀取視頻流數據,讀出的圖像數據交由壓縮模塊處理。攝像頭驅動程序加載完成后為了進行視頻采集必須加入Video4Linux模塊,從而可以通過Video4Linux模塊提供的編程接口從攝像頭設備中獲取圖像幀。基于V4L的視頻采集流程圖如圖6所示。
![](/uploads/allimg/120511/09430Ua9-5.jpg)
?
本系統采用RTP實時傳輸協議以及RTCP實時傳輸控制協議作為視頻傳輸的協議。RTP在多點傳送或單點傳送的網絡服務上,提供端對端的網絡傳輸功能,適合應用程序傳輸實時數據,如:音頻、視頻或者仿真數據。RTP由于沒有為實時服務提供資源預留功能,所以不能保證QoS(服務質量)。RTCP作為一種控制協議,通過擴展可以升級為大型的多點傳送網絡,并提供最小限度的控制和鑒別功能。在RTP會話期間,各參與者周期性的傳送RTCP包,RTCP包中含有已發送的數據包的數據、丟失的數據包的數量等統計資料,因此服務器可以利用這些信息動態的改變傳輸速率,甚至改變有效載荷類型。RTP和RTCP配合使用,他們能以有效地反饋和量小的開銷使傳輸效率最佳化,RTCP利用主要的兩種控制包SR和RR反饋的信息如數據包丟失比,數據包丟失率,吞吐量和吞吐率,數據包到達時延抖動和往返傳播時延等來調節實時傳輸,并調整系統的打包格式,發包速率來保證流暢地傳輸數據和清晰的播放視頻,因此特別適合傳送網上的實時數據。
JRTPLIB作為一個RTP協議的庫,用來開發多媒體的應用十分方便。通過JRTPLIB庫發送或接收RTP數據,而不用考慮SSRC的沖突、調度,連RTCP的數據也不需要用戶來發送。用戶只需要使用相應的類來發送和接收媒體數據。下面介紹RTP相關代碼的具體實現。
在使用JRTPLIB傳輸多媒體數據之前,首先應該創建一個RTPSession類的一個對象來標識此次會話。然后通過RTPSession實例的create()方法來對其進行初始化操作。在create()時,需要兩個參數sessparams和transparams,分別為RTPSessionParams和RTPUDPv4Trans mission Params的實例。在create()成功以后,需要設置目標地址、凈荷類型、時間戳增量等信息。在RTP會話建立起來以后,我們就可以進行媒體數據的傳輸。傳輸凈荷數據的方法很簡單,只需要調用RTPSession實例的SendPacker()方法就可以了。同時為了適應在網上的傳輸,還需對凈荷數據進行分割。為了方便的使用,我們需進一步的封裝。對于RTP分組的接收部分,由于給出的是拆分了的數據幀,我們需要組合成完整的數據幀。這里需要注意的是由于本攝像機采用的H.264解碼算法,所以分流式接收方式以及RTP分組接收方式兩種模式,對于流式傳輸,有的組合成完整的數據幀的步驟放在了H.264的NAL層。但對有些音頻和JPEG等應用,還是需要進行組裝過程的。
5 結束語
實現了基于達芬奇技術TMS320DM365的高速網絡攝像機系統。該系統采用了最新的技術,降低了產品的成本,具有很強的實用性,是一種比較理想的網絡攝像機解決方案,可廣泛應用于視頻監控系統。
評論