旦喜榮,陳建春
(西安電子科技大學(xué) 電子工程學(xué)院,陜西 西安 710071)
?
基于TMS320DM365視頻壓縮傳輸系統(tǒng)的設(shè)計(jì)
旦喜榮,陳建春
(西安電子科技大學(xué) 電子工程學(xué)院,陜西 西安 710071)
針對(duì)原始視頻數(shù)據(jù)量大,不利于存儲(chǔ)與傳輸?shù)膯?wèn)題,設(shè)計(jì)了基于TMS320DM365的視頻壓縮傳輸系統(tǒng)。實(shí)現(xiàn)將多路輸入的模擬視頻轉(zhuǎn)換為數(shù)字視頻,在TMS320DM365中壓縮編碼并打包成TS碼流。提供幀率、分辨率、P/I比等參數(shù)的設(shè)置功能,能適應(yīng)于多種應(yīng)用場(chǎng)景。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)可實(shí)現(xiàn)25幀/s、D1分辨率標(biāo)清視頻的壓縮傳輸,滿足視頻監(jiān)控的需求。
視頻壓縮;TMS320DM365;系統(tǒng)電路設(shè)計(jì)
DAN Xirong, CHEN Jianchun
(School of Electronic Engineering, Xidian University, Xi’an 710071, China)
原始視頻數(shù)據(jù)量大,不利于存儲(chǔ)與傳輸。因此,視頻數(shù)據(jù)的壓縮對(duì)于視頻應(yīng)用尤為重要。尤其是目前視頻質(zhì)量越來(lái)越高,傳輸方式各式各樣,這對(duì)于視頻采集設(shè)備、壓縮算法以及視頻解決方案又提出了更高的要求。
本文基于視頻壓縮技術(shù)的發(fā)展現(xiàn)狀與課題具體需求,設(shè)計(jì)了一種視頻壓縮傳輸系統(tǒng),該系統(tǒng)能夠?qū)⑤斎氲亩嗦纺M視頻信號(hào)中任一路轉(zhuǎn)換為數(shù)字視頻并以MPEG-4壓縮編碼規(guī)范壓縮處理,將兩路音頻信號(hào)轉(zhuǎn)換為數(shù)字音頻并以AAC格式壓縮編碼,按照MPEG-2系統(tǒng)規(guī)范將音視頻壓縮數(shù)據(jù)打包為TS碼流進(jìn)行傳輸。
本文采用TI公司DaVinci系列低功耗、低成本的多媒體處理芯片TMS320DM365作為系統(tǒng)的核心處理器,外圍加以必要的輔助器件,完成音視頻采集壓縮傳輸?shù)那度胧较到y(tǒng)設(shè)計(jì)。作為高性能數(shù)字媒體處理器,TMS320DM365內(nèi)部集成ARM9處理器與視頻圖像協(xié)處理器,支持H.264、MPEG4等多種格式的視頻編解碼操作[1]。系統(tǒng)總體框圖如圖1所示。
圖1 系統(tǒng)總體框圖
系統(tǒng)的硬件設(shè)計(jì)包括音視頻采集模塊、壓縮編碼模塊、DDR存儲(chǔ)模塊、Flash系統(tǒng)存儲(chǔ)模塊、傳輸接口模塊以及電源時(shí)鐘模塊[2-3]。其中視頻A/D選用TI公司的TVP5146,支持NTSC、PAL、SECAM制式的多路復(fù)合視頻或者S端子轉(zhuǎn)換為BT.656格式的數(shù)字視頻,能與TMS320DM365的視頻處理前端完美無(wú)縫連接。采用處理速度較快、存儲(chǔ)空間較大的DDR2作為系統(tǒng)緩存,設(shè)計(jì)Flash模塊存儲(chǔ)嵌入式操作系統(tǒng)。模擬音視頻數(shù)據(jù)經(jīng)過(guò)A/D轉(zhuǎn)換之后,在DM365中壓縮編碼并打包成TS碼流,最后經(jīng)EMIF接口傳輸至FPGA進(jìn)行數(shù)據(jù)的傳輸。
2.1 DDR2緩存模塊設(shè)計(jì)
緩存模塊在系統(tǒng)中的主要功能是存儲(chǔ)必要的程序和數(shù)據(jù),對(duì)于視頻壓縮系統(tǒng)而言,通常需要高速緩存大量的數(shù)據(jù),DDR2(Double Data Rate 2)SDRAM由于其速度快、容量大,且價(jià)格便宜,因此能較好地滿足系統(tǒng)對(duì)于緩存的需求[4]。
本系統(tǒng)采用的DDR2為Micron(美國(guó)鎂光)公司的MT47H64M16,8個(gè)L-Bank,16位數(shù)據(jù)寬度,128 MB的存儲(chǔ)空間完全滿足視頻壓縮系統(tǒng)的開發(fā)。TMS320DM365內(nèi)部集成有DDR2控制器,可與DDR2完美無(wú)縫連接,兩者的電路連接如圖2所示。
圖2 DDR2電路連接圖
其中,電源供電要求1.8 V,DM為輸入數(shù)據(jù)掩碼,寫數(shù)據(jù)的過(guò)程中若DM為高,則輸入數(shù)據(jù)被屏蔽掉而無(wú)效。其中LDM為低8位數(shù)據(jù)的數(shù)據(jù)掩碼,UDM為高8位數(shù)據(jù)的數(shù)據(jù)掩碼,分別與TMS320DM365的DQM[0]、DQM[1]相連。DQS(數(shù)據(jù)鎖存信號(hào))是數(shù)據(jù)的同步信號(hào),采用差分對(duì)形式,LDQS與LDQS#為低字節(jié)數(shù)據(jù)鎖存信號(hào),UDQS與UDQS#為高字節(jié)數(shù)據(jù)鎖存信號(hào)。
DDR2中使用ODT(On-Die Termination)新技術(shù),將終端匹配電阻集成到芯片內(nèi)部。ODT終端電阻值可通過(guò)DDR2內(nèi)部的EMR寄存器來(lái)進(jìn)行設(shè)置,有關(guān)閉、50 Ω、75 Ω、150 Ω這4種模式供選擇。使用DDR2內(nèi)部終端電阻一方面減少了PCB的板上面積和布局布線的壓力,一方面能獲得更好的信號(hào)完整性。
2.2 NAND Flash存儲(chǔ)模塊設(shè)計(jì)
本系統(tǒng)采用的NAND Flash為三星公司的K9K8G08U0A,具有1 GB的存儲(chǔ)空間。系統(tǒng)中NAND Flash的主要功能是存儲(chǔ)包括引導(dǎo)程序(UBL)、啟動(dòng)程序(UBoot)、內(nèi)核文件(uImage)以及文件系統(tǒng)等操作系統(tǒng)數(shù)據(jù)[5]。其中引導(dǎo)程序占用空間20 kB,啟動(dòng)程序占用149 kB,內(nèi)核文件占用2 001 kB,文件系統(tǒng)占用51.6 MB,總共約54 MB?1 GB的空間容量。故采用此芯片作為系統(tǒng)的存儲(chǔ)模塊,可為后期系統(tǒng)的擴(kuò)展預(yù)留較大的空間。
2.3 EMIF接口模塊設(shè)計(jì)
外部存儲(chǔ)器接口(EMIF),External Memory Interface,是TI DSP器件上用于外擴(kuò)存儲(chǔ)的一種接口。EMIF可實(shí)現(xiàn)DSP與不同類型存儲(chǔ)器(SRAM、NAND Flash、OneNAND Flash)的連接,也可與FPGA相連實(shí)現(xiàn)數(shù)據(jù)的高速處理或傳輸[6]。本系統(tǒng)中將EMIF接口與NAND Flash以及FPGA相連,通過(guò)片選來(lái)實(shí)現(xiàn)分別選通。其中,與NAND Flash的連接完成操作系統(tǒng)等信息的交互,與FPGA的連接則是將壓縮好的音視頻數(shù)據(jù)從TMS320DM365傳輸?shù)紽PGA中。具體是在FPGA中設(shè)計(jì)一個(gè)雙口RAM,其一端連接TMS320DM365接收數(shù)據(jù),另外一端在FPGA中實(shí)現(xiàn)數(shù)據(jù)的緩沖與傳輸。
其中,EMIF的地址總線由EM_BA與EM_A結(jié)合構(gòu)成,使用方法依賴于數(shù)據(jù)位寬的選擇。當(dāng)使用16位數(shù)據(jù)模式時(shí),EM_BA[1]代表最低有效地址位,EM_BA[0]代表地址位EM_A14。而當(dāng)使用8位數(shù)據(jù)模式時(shí),EM_BA[1:0]為有效地址位的低兩位。
2.4 SPI接口設(shè)計(jì)
串行外設(shè)接口(Serial Peripheral Interface,SPI)是一種高速、全雙工同步通信總線[7]。DM365內(nèi)部集成了SPI模塊,支持2~16位的數(shù)據(jù)寬度,可編程的時(shí)鐘極性和相位選擇。分別在數(shù)據(jù)格式寄存器(SPIFMTn)中的POLARITYn位與PHASEn位進(jìn)行設(shè)置。與傳統(tǒng)視頻壓縮系統(tǒng)固定啟動(dòng)參數(shù)不同,本系統(tǒng)設(shè)置動(dòng)態(tài)參數(shù)緩沖區(qū),在系統(tǒng)啟動(dòng)前通過(guò)PCI橋從上位機(jī)獲取啟動(dòng)參數(shù),使用SPI接口傳輸音視頻壓縮參數(shù)到DM365中,系統(tǒng)每次上電后從FPGA中的RAM處讀取包括幀率、分辨率、P/I幀比率以及時(shí)間等信息再進(jìn)行嵌入式系統(tǒng)的啟動(dòng),以適用于不同的應(yīng)用場(chǎng)景。
各個(gè)模塊硬件電路的功能測(cè)試成功之后,進(jìn)行嵌入式軟件的設(shè)計(jì)。首先進(jìn)行嵌入式系統(tǒng)的啟動(dòng),由于DM365片內(nèi)存儲(chǔ)器空間只有32 kB,而一般UBoot文件>100 kB(系統(tǒng)采用的UBoot-1.3.4大小為149 kB),所以想要采取片內(nèi)存儲(chǔ)器的方式從NAND Flash啟動(dòng)系統(tǒng),至少需要3個(gè)階段的代碼引導(dǎo),即RBL→UBL→UBoot,最后再加載內(nèi)核及創(chuàng)建文件系統(tǒng)[8]。以本系統(tǒng)選擇的NAND Flash啟動(dòng)方式為例,系統(tǒng)加電后先執(zhí)行固化在芯片內(nèi)部只讀存儲(chǔ)器中的RBL程序,RBL根據(jù)UBL程序描述符讀取UBL程序到芯片內(nèi)部存儲(chǔ)器并運(yùn)行。UBL程序?qū)Φ讓佑布龊?jiǎn)單的初始化之后開始加載功能復(fù)雜的UBoot程序到DDR2并運(yùn)行。UBoot程序可設(shè)置更多的參數(shù)及器件的初始化,然后從Nand Flash加載、解壓和運(yùn)行Linux內(nèi)核uImage并啟動(dòng)系統(tǒng)。
本系統(tǒng)嵌入式軟件采用多線程設(shè)計(jì)思想,軟件設(shè)計(jì)包括主線程、視頻捕獲線程、視頻編碼線程和視頻寫線程[9]。主線程執(zhí)行必要的初始化并創(chuàng)建其他線程后變成控制線程[10],視頻捕獲線程采集原始數(shù)據(jù),視頻編碼線程接收來(lái)自視頻捕獲線程的幀數(shù)據(jù)進(jìn)行編碼,寫線程將編碼后的視頻幀通過(guò)EMIF接口發(fā)送給FPGA。其中,主線程運(yùn)行流程如圖3所示。
圖3 主線程運(yùn)行流程圖
為驗(yàn)證系統(tǒng)中所設(shè)計(jì)軟件的可行性,在目標(biāo)板中進(jìn)行程序測(cè)試。測(cè)試環(huán)境包括操作系統(tǒng)為Windows XP的PC機(jī)一臺(tái),其中安裝有VirtualBox虛擬機(jī)以及uBuntu 9.04操作系統(tǒng);使用系統(tǒng)設(shè)計(jì)的目標(biāo)板作為硬件平臺(tái);800線標(biāo)準(zhǔn)模擬攝像頭作為視頻采集設(shè)備;使用Windows XP自帶的超級(jí)終端作為宿主PC機(jī)與目標(biāo)板之間通信的終端界面。
由于NFS服務(wù)不用將操作系統(tǒng)及應(yīng)用程序燒寫到目標(biāo)板中,而能借助于虛擬機(jī)中的操作系統(tǒng)進(jìn)行開發(fā),可加快程序調(diào)試和修改的效率。所以在調(diào)試階段一般使用NFS模式進(jìn)行應(yīng)用軟件的調(diào)試。NFS模式下系統(tǒng)啟動(dòng)界面如圖4所示。
圖4 系統(tǒng)啟動(dòng)界面
系統(tǒng)啟動(dòng)成功后,運(yùn)行編解碼程序,顯示效果如圖5所示。圖像質(zhì)量較為清晰,25 fra·s-1下720×576分辨率的碼率約為500 kbit·s-1。
圖5 視頻編解碼顯示效果圖
本文針對(duì)不同的應(yīng)用場(chǎng)景,提供參數(shù)選擇功能。用戶可根據(jù)實(shí)際需求對(duì)視頻編碼程序的幀率、分辨率、碼率、P/I幀比率等參數(shù)進(jìn)行靈活設(shè)置。以P/I比參數(shù)為例,在視頻編碼過(guò)程中,會(huì)出現(xiàn)幾種不同類型的幀,包括關(guān)鍵I幀、預(yù)測(cè)P幀以及雙向B幀。P幀以前一個(gè)I幀做參考,描述幀間變化,B幀則根據(jù)兩個(gè)I幀進(jìn)行預(yù)測(cè)。P幀與B幀的使用可有效的降低數(shù)據(jù)率,在低速目標(biāo)或靜止目標(biāo)場(chǎng)景較為適用。在venc1.c中修改intraFrameRate可修改P/I幀的比例,默認(rèn)為30(即每30幀出現(xiàn)一幀I幀)。修改interFrameInterval可修改P/I幀間的B幀比例。修改前后對(duì)比如圖6所示。
圖6 P/I修改前后對(duì)比
兩圖均為25 fra·s-1下352×288分辨率的效果圖。其中,圖6(a)為默認(rèn)P/I比30的測(cè)試結(jié)果,其平均碼率約為130 kbit·s-1。圖6(b)為P/I比1 800的測(cè)試結(jié)果,其平均碼率約為40 kbit·s-1,可見數(shù)據(jù)量大幅降低。
本系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)了視頻數(shù)據(jù)的采集、壓縮以及傳輸。在低成本低功耗的前提下,較為有效的解決了原始視頻存儲(chǔ)與傳輸?shù)膯?wèn)題。測(cè)試結(jié)果表明,系統(tǒng)可實(shí)現(xiàn)25幀/s、D1分辨率標(biāo)清視頻的壓縮傳輸。且可靈活的設(shè)置分辨率、幀率、P/I幀比例等參數(shù),能滿足多種應(yīng)用場(chǎng)景的需求,具有一定的工程實(shí)用性。
[1] Texas Instruments. TMS320DM365 digital media system on chip[M].Texas, USA:Texas Instruments,2011.
[2] 王飛.基于DaVinci技術(shù)的視頻編碼系統(tǒng)實(shí)現(xiàn)[D]. 西安:西安電子科技大學(xué),2012.
[3] 郝舜.基于DaVinci技術(shù)的數(shù)字視頻系統(tǒng)設(shè)計(jì)[D]. 西安:西安電子科技大學(xué),2012.
[4] 韓彬,于瀟宇,張雷鳴.FPGA 設(shè)計(jì)技巧與案例開發(fā)詳解[M].北京:電子工業(yè)出版社,2014.
[5] 歐洋.基于閃存的高速PCIe固態(tài)存儲(chǔ)卡的研究與實(shí)現(xiàn)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2012.
[6] 周順燕,吳丹.TMS320C6713 DSP的高速EMIF數(shù)據(jù)接口設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(7):1654-1656.
[7] 劉文博.基于FPGA的微控制器設(shè)計(jì)[D].西安:西安電子科技大學(xué),2011.
[8] Texas Instruments. TMS320DM36x Digital Media System on Chip ARM_SUBSYSTEM User Guide[M]. Texas,USA:Texas Instruments,2009.
[9] 高玉龍,白旭,吳瑋.達(dá)芬奇技術(shù)開發(fā)基礎(chǔ)、原理與實(shí)例[M].北京:電子工業(yè)出版社,2012.
[10] 肖福海.基于DM6446的數(shù)字多媒體播放系統(tǒng)的設(shè)計(jì)[D].哈爾濱:哈爾濱工程大學(xué),2011.
Design and Implementation of Video Compression and Transmission System Based on TMS320DM365
A video compression transmission system based on TMS320DM365 is designed, which is not conducive to the storage and transmission of the original video data. The multi-channel analog video is converted into digital video with compressed encoding and packaged into TS standard stream in TMS320DM365. Setting of such parameters as resolution, frame rate,P/Iratio is provided for use in various application scenarios. Experimental results show that video compression transmission of 25 frames per second andD1resolution is achieved, meeting the needs of video surveillance.
video compression; TMS320DM365; system circuit design
2015- 11- 27
旦喜榮(1990-),男,碩士研究生。研究方向:視頻壓縮與電路設(shè)計(jì)。陳建春(1962-),男,博士,教授。研究方向:電子系統(tǒng)設(shè)計(jì),信號(hào)處理。
10.16180/j.cnki.issn1007-7820.2016.10.005
TN919.8
A
1007-7820(2016)10-15-04