張 碩,楊 婷,李 博
(中北大學儀器科學與動態測試教育部重點實驗室,太原 030051)
基于DM6467的視頻實時壓縮與傳輸系統的設計*
張 碩,楊 婷,李 博*
(中北大學儀器科學與動態測試教育部重點實驗室,太原 030051)
針對大量視頻數據信息傳輸中延時、卡頓的問題,設計了一種以TMS320DM6467處理器為硬件核心,Windows操作系統為軟件核心的視頻壓縮與傳輸系統。系統采用CCD攝像頭以及解碼器TVP5150完成視頻的采集。運用H.264視頻編碼技術實現了視頻的實時壓縮,利用RTP協議將采集、壓縮編碼完成后的視頻數據通過局域網發送至上位機,對VLC配置后可接收傳輸的視頻流。在保證視頻清晰度的條件下,系統測試結果顯示:視頻實時性高,網絡傳輸視頻的速度滿足視頻監控的需求,可以獲得大于150的壓縮比。
視頻傳輸;TMS320DM6467;H.264;RTP;Windows
隨著信息技術及多媒體技術的飛速發展,視頻監控作為安防的主要手段逐漸進入到人們的生活,傳統的本地視頻監控已不能滿足人們的需要,人們對于遠程視頻通信的需求日益強烈[1]。但未經壓縮的視頻數據量很大,以分辨率為720X576的視頻為例,幀率為 25幀/s,每個像素由3 byte即24比特表示的RGB值,1 s的數據量就高達125 Mbit,這對網絡傳輸提出了很高的要求。因此,利用視頻壓縮技術來降低數據傳輸量就顯得十分必要。
目前視頻處理系統大多以 ARM、DSP、FPGA等為控制核心,但軟件開發平臺多為Linux系統[2-5]。Linux系統的構建十分復雜,多數開發軟件無法兼容,如CCS3.3。程序源代碼雖公開,但需要專業的研究人員才可以更改,對軟件的設計、移植帶來了一定困難。系統以ARM+DSP雙核芯片DM6467為核心進行了視頻壓縮和網絡傳輸系統設計,并在Windows系統下開發軟件,使系統軟件平臺的搭建變得更加簡潔。用戶可根據自己的需要修改代碼實現相應的功能,軟件的應用更加靈活。ARM核負責DM6467的外圍設備的控制及整個系統芯片的配置,DSP核只負責視頻壓縮算法的實現[6-7]。與單一DSP核芯片相比,該芯片ARM核的引入減輕了DSP核的壓力,提高了視頻處理的速度。另外,引入了新一代視頻編碼標準H.264對視頻進行實時壓縮,可以獲得更高壓縮比[8]。系統完成了視頻的采集,并對采集到的視頻進行實時壓縮,再將壓縮后的視頻數據通過千兆網實時地傳輸到監控中心[9-10]。
1.1 硬件方案設計
系統以DM6467為硬件核心,Windows操作系統為軟件開發平臺。由CCD攝像頭和TVP5150完成視頻數據的連續采集,并利用H.264編碼對視頻進行壓縮處理,最后采用 RTP協議將壓縮處理后的視頻數據發送到上位機。上位機通過VLC視頻播放器接收網絡視頻數據,并實時播放接收到的視頻流。
系統設計主要分為視頻信號采集和上位機兩部分。上位機的內容在PC機上完成,主要是VLC播放器的安裝與腳本編寫。視頻信號采集的主控芯片選取的是TI公司的一款專用的高清雙核數字媒體處理器——TMS320DM6467,同時還包括256 Mbyte的DDR2存儲器、128 Mbyte的NAND Flash存儲器、TVP5150解碼器、CCD攝像頭以及多種外圍接口。Flash用于系統啟動,其中存放有文件系統、驅動程序以及應用程序等。DDR2作為系統運行內存,同時充當視頻數據緩存的角色。TVP5150完成對模擬視頻信號的采集以及數字化,實現從RGB色彩空間到YCbCr色度空間的轉換。外圍接口中,以太網接口完成對視頻信號的傳輸;DM6467通過I2C接口對TVP5150進行參數配置,同時通過VPIF視頻接口接收TVP5150傳回的視頻信號。

圖1 系統硬件設計框圖
系統選用VSC8641作為PHY芯片,與DM6467的EMAC通過GMⅡ/MⅡ協議相連,同時VSC8641輸出直接連接以太網接口RJ-45,該網口能夠自適應10/100/1000M。千兆網因具有經濟、可靠性高、擴展性好等的優點,使其成為目前局域網領域主流的解決方案,為系統實時的網絡傳輸提供了較高的理論支持。系統的硬件設計框圖如圖1所示。
1.2 軟件方案設計
系統軟件設計都是在Windows下,CCS3.3軟件平臺上開發完成。軟件部分分為多個子程序,主要包括視頻采集子程序設計、視頻壓縮編碼子程序設計、網絡傳輸子程序設計以及上位機腳本程序的編寫。如圖2所示為系統軟件設計框圖。

圖2 系統軟件設計框圖
1.2.1 視頻采集程序設計
視頻采集的數據格式為BT.656,其主要由CCD攝像頭以及TVP5150解碼器完成。TVP5150將解碼完成的數字信號通過DM6467的VPIF視頻接口接收并將數據存儲到緩存區,保證后續視頻壓縮、傳輸的順利進行。具體程序的流程圖如圖3所示。

圖3 視頻采集程序流程圖
首先利用Capture_init( )函數對視頻采集設備進行初始化。在該函數中,TVP5150_enable( )函數實現對視頻解碼器使能,通過TVP5150_setup(mode,1)函數完成對解碼器的設置,TVP5150的控制是由ARM核通過I2C對其內部寄存器編程實現。然后利用vpif_capture(void*pvY,void*pvCrCb)函數完成對視頻采集的設置,包括輸入視頻格式的選擇函數select_sd_video_input( ),VPIF的控制設置vpif_preinit( )以及通過對視頻通道0控制寄存器CH0_CTRL的配置,設置底場的垂直同步以及Y/C復用等。為防止視頻數據擁堵,系統設計中用 #pragma DATA_SECTION(,".ddr2_video")函數在DDR2中分配兩個存儲空間,供采集到的視頻的亮度及色度數據緩存使用。最后通過VPIF_enable( )函數開始視頻的采集。除此之外,ARM核的快速中斷函數c_FIQ( )實現判斷一幀圖像是否采集完成以及是否存在丟幀、跳幀現象的功能,對其進行初始化后就能進入工作狀態。
1.2.2 視頻壓縮編碼程序設計
一幀圖像采集完成后,就會觸發ARM核的快速中斷請求,繼而ARM核會響應中斷,并通過COP_creatH264Enc( )函數給DSP核發出創建H264編碼的命令。DSP核程序中switch(pcArmCtl->m_uCmd)語句會實時的檢查ARM核中是否有命令發出,當檢測到ARM_CMD_H264_CREATE指令時,就會執行H264APP_create( )編碼創建函數。這是一個帶參數的函數,參數包括高度、寬度、節距、幀率、碼率以及畫面組,參數的尋址由變量指針pcArmCtl逐層訪問結構體m_cParam和m_cH264CreateParam完成。該函數中包含H264APP_initParams( )參數初始化函數,H264APP_initDynamicparams( )動態參數初始化函數等。
編碼方式選擇幀內編碼8X8模式,I幀和P幀分開編碼。函數H264APP_encode_Frame( )完成對視頻的編碼工作,該函數主要由H264APP_encodeHeader( )函數及H264APP_encode( )函數組成。編碼時首先利用函數H264APP_encodeHeader( )進行動態的參數設置,主要是對亮度、色度及輸出緩存的設置。然后H264APP_encode( )函數完成編碼工作,并設置變量iErrorFlag跟蹤編碼錯誤。函數中首先通過指針變量pcH264Obj獲取圖像的地址(XDAS_Int8*)pvLum/pvC,然后由H264FHDVENC_encode( )函數實現P幀到I幀的轉換:編碼完最后一個P幀后緊接著把I幀標志位置0(標志下幀開始編碼I幀)。每編碼一個參數集(I幀),計數器加1,編碼完32 000個I幀后,調用H264_reast(pcH264Obj)函數復位一下,解決長時間編碼到65 536個I幀后出現錯誤的問題。
在編碼過程中,為使編碼和接收數據同步,防止漏編的現象,在程序中增加了時間戳函數TSC( ),保證了編碼的準確率。同時為保證編碼的效率,在DSP核中利用#pragma DATA_SECTION( ,".ddr2_share")函數建立兩個數據段,用于存放未編碼以及編碼完成的視頻數據,方便DSP核和ARM核之間的數據共享。編碼完成后,DSP會通過命令DSP_CMD_H264_STREAM通知ARM核已完成H264視頻編碼,ARM核在檢測到指令后,可對視頻數據進行下一步處理。具體流程圖如圖4所示。

圖4 視頻壓縮程序流程圖
1.2.3 網絡傳輸程序設計
實時網絡協議(RTP)是一種網絡傳輸協議,由于其為數據提供了具有實時特征的端對端傳送服務,常應用于流媒體系統。每一個RTP數據報都由頭部(Header)和負載(Payload)兩個部分組成,并且通常使用UDP來進行多媒體數據的傳輸。在進行網絡傳輸之前,要先通過emac_mii_init( )函數完成對以太網協議的初始化,主要包括emac_poll( )函數對以太網控制器的驅動。運用mii_phy_getReg( )函數讀取PHY芯片的寄存器值,同時利用mii_phy_setReg( )函數完成對PHY的設置,然后由UDPCtrl_init( )、bind( )和socket( )函數完成數據的打包處理。ARM核在接收到編碼完成的數據后,先創建時間戳函數TSC( ),然后利用RTP_sendH264(uint8_t*pu8Buf,int32_t iLen,int32_t uTime90K,struct udp_pcb*sock,struct ip_addr*pcPeerAddr,uint16_t u16PeerPort)函數將編碼完成的數據通過網絡傳送到目的IP。具體流程圖如圖5所示。
1.2.4 上位機程序設計
上位機程序的目的是為了在PC機上,VLC視頻播放器能夠準確地找到H.264流媒體的來源,以便網絡傳輸過來的視頻能夠成功顯示。具體腳本程序如下:
m=video 6000 RTP/AVP 96
a=rtpmap:96 H264/90000
a=profile-level-id=42A01E;packetization-mode=1;sprop-parameter-sets=H264
m行為媒體行,video為媒體名表示支持視頻類型,6000為socket包發送方的公網端口號,RTP/AVP指明流媒體傳輸協議,96指凈荷類型編號。a行為媒體屬性行,編碼類型為H264,時鐘頻率是90 000 MHz,packetization-mode=1說明必 須使 用非交錯封 包模式,profile-level-id參數用來指示H.264流的文件類型和級別,prop-parameter-sets參數用于傳輸H.264序列參數集及圖像參數NAL單元。

圖5 網絡傳輸程序流程圖

圖6 圖像對比
將系統硬件連接完成后,啟動卡板。在CCS3.3軟件下仿真器配置完成后先將系統控制程序加載到ARM926中,然后再下載視頻壓縮編碼程序至DSP核中。程序運行時,截屏獲取VLC視頻播放器查看到的視頻流圖像,并與采集到的原始圖像作對比,如圖6(a)、圖6(b)所示。通過圖片的對比可以發現編碼后的圖片質量較好,在視頻傳輸過程中雖存在一點延時,但仍能達到實時性的要求,滿足視頻監控的需要。
另外,本次實驗視頻采集的時間為3 min,視頻的輸入格式為PAL,幀率為25幀/s,分辨率為720像素×576像素,沒有經過壓縮的視頻數據率為125 Mbit/s,計算后可知:未壓縮的數據量為2812.5 Mbyte。在編碼完成的數據通過網絡傳輸時,設置的碼率為800 kbit/s。由碼率的計算公式[碼率](kbit/s)=[文件大小](字節)X8/[時間](s)/1 000,可以得到壓縮后的視頻數據量僅為18 Mbyte,因此壓縮比為156.25。
本文基于DM6467及Windows設計了一套視頻實時壓縮與傳輸系統。實驗結果顯示,視頻實時性高、壓縮比達到了150以上,大大減小了網絡傳輸的壓力。編碼后的數據網絡傳輸時性能穩定,畫面清晰,滿足視頻數據實時傳輸的要求。在Windows軟件平臺下,系統的搭建、開發更加靈活便捷,根據個人的需要可更改碼率獲得不同壓縮率的視頻。鑒于該系統的實時性及高壓縮率,其在視頻會議、智能家居以及視頻監控等視頻傳輸領域有著廣闊的發展。
[1] 劉勇,張忠偉,董文濤,等. 基于DM642的視頻采集系統的設計與實現[J]. 計算機應用,2013,33(S2):302-304.
[2] 趙德偉,王永超. 基于多DSP與FPGA的視頻處理平臺硬件設計[J]. 電視技術,2014,38(7):75-80.
[3] 施現偉. 基于ARM11的遠程視頻監控系統設計[D]. 哈爾濱:哈爾濱理工大學,2013.
[4] 韓文俊,張艷艷,任國強,等. 基于雙DSP的實時高清H.264視頻編碼器實現[J]. 電視技術,2010,34(5):33-36.
[5] 李忠. 基于片上系統的VC-1高清視頻編碼器的實現研究[D]. 南京:南京郵電大學,2011.
[6] 朱衍明. 基于TMS320DM6467的多格式視頻處理技術的研究[D]. 南京:南京理工大學,2013:14-21.
[7] Texas Instruments.SPRUTMS320C64x DSP Vi deo Port/VCXO Interpolated Control(VIC)Port Reference Guide[R/OL]. (2007-06)[2013-02-01]. http://www.ti.com/lit/ug/spru629g/sp-ru629g.df.
[8] 郭昕,蘇寒松. 基于TMS320DM6446的X264編碼器的移植和優化[J]. 電子器件,2012,35(4):465-469.
[9] 張晶,戴明,孫麗娜,等. 基于DM6467T多路視頻實時采集與顯示系統設計[J]. 電視技術,2014,38(7):217-220.
[10] 嚴勝剛,王培培. 基于FPGA的數字視頻接口轉換器設計[J]. 計算機測量與控制,2012,21(2):464-465.
Design Real-Time Video Compression and Transmission System Based on DM6467*
ZHANGShuo,YANGTing,LIBo*
(Key Laboratory of Instrumentation Science and Dynamic Measurement,Ministry of Education,North University,Taiyuan 030051,China)
For a large number of video data transmission delay and Caton’s problem,a video compression and transmission system based on a TMS320DM6467 processor as the hardware core,a Windows operating system as the core of software has been designed. System uses a CCD camera and decoder TVP5150 to complete video capture. The H.264 video encoding technology enables real-time to realize video compression using RTP(Real-time Transport Protocol)protocol to transmit the compression-encoded video data to the upper computer via LAN,after the configuration of VLC(Video LAN Creator)the sytem can receive the video transmission streaming. Under conditions to ensure the clarity of the video,the system test results show that,high real-time video,video network transmission speed meet,the needs of the video surveillance. The compression ratio is greater than 150.
video transmission;TMS320DM6467;H.264;RTP;Windows

項目來源:山西省科學技術發展計劃項目(20100321057);國家自然科學基金項目(61471325)
2016-04-12 修改日期:2016-05-06
TN949.197
A
1005-9490(2017)03-0617-05
C:6140;6430
10.3969/j.issn.1005-9490.2017.03.020