劉森
(西安美術(shù)學(xué)院影視動畫系,陜西西安 710065)
隨著多媒體影視資源的日益豐富與通信技術(shù)的日趨成熟,視頻傳輸技術(shù)得以應(yīng)用于更加廣泛的日常生活中,視頻內(nèi)容的質(zhì)量、信息量也攀升至新的高峰。尤其是隨著近幾年CCD 設(shè)備工藝的提升,產(chǎn)生大量的原始視頻素材數(shù)據(jù),且數(shù)據(jù)終端的人們對高清視頻的需求也越來越大。因此,開發(fā)多功能、低成本、性能穩(wěn)定的視頻壓縮傳輸系統(tǒng)有著很大的應(yīng)用前景[1-3]。
視頻信號具有數(shù)據(jù)量大、運算復(fù)雜的特征,因此通常采用軟硬件結(jié)合的方式來設(shè)計實現(xiàn)視頻壓縮系統(tǒng)。DSP 與FPGA 具有實時和并行的處理方式,是實現(xiàn)視頻信號處理的合適器件[4-6]。大量的視頻數(shù)據(jù)需要幾秒來讀出、傳輸與顯示,對網(wǎng)絡(luò)傳輸速度提出了較高的要求,而改善壓縮數(shù)據(jù)的技術(shù)方案是解決這一問題的有效途徑。
攝像頭采集環(huán)境光信號后,輸出CVBS 格式的模擬視頻信號。經(jīng)過視頻解碼器芯片后,解碼成RGB信號。此信號是圖像真實的色彩數(shù)據(jù),但數(shù)據(jù)量較大。在進入DM365芯片后,進行信息預(yù)處理。將RGB信號轉(zhuǎn)換成更適合壓縮的亮度色度信號YCbCr,轉(zhuǎn)換公式為:
由于人眼對亮度信息比色度信息更敏感,所以還可以進一步舍棄轉(zhuǎn)換得到的YCbCr 信號中的部分色度信號,從而降低信息量,轉(zhuǎn)換為4∶2∶2 格式的YUV 信號,如圖1 所示。
圖1 YUV4∶2∶2格式
視頻信號的壓縮過程即為視頻信號的編碼過程[7-8],如圖2 所示。
圖2 視頻信號編碼流程
原始視頻信號數(shù)據(jù)量較大,但同一幀圖像數(shù)據(jù)內(nèi),相鄰像素點僅含有較小的差異,像素值變化平緩,稱為空間冗余。在相鄰幀內(nèi),圖像的內(nèi)容大體相似,稱為時間冗余。人眼對于不同信息的敏感程度差異較大,如亮度變化時,人眼能夠輕易覺察到。但對于色度變化卻相對遲鈍,且人眼對邊緣的變化關(guān)注高于對內(nèi)部細節(jié)的變化。利用這種差異,可以刪除人眼不敏感的信息,從而達到數(shù)據(jù)壓縮的目的,這稱為視覺冗余。
視頻壓縮即利用這幾種冗余,在信號編碼時舍棄一部分相對次要的信息,由此實現(xiàn)降低傳輸數(shù)據(jù)量的目的。
1.2.1 預(yù) 測
將圖像幀分組,每組7 幀,以IPBBPBB的次序劃分。對每組圖像幀序列的第一幀,即I幀做幀內(nèi)預(yù)測。通過計算像素點的預(yù)測值與取樣值之差,來消除空間冗余。假設(shè)P點為當(dāng)前采樣像素點,在P點之前的相鄰像素,如圖3 所示。
圖3 像素點預(yù)測
由A~G點來預(yù)測P點,得到預(yù)測值的算法如下:
求實際值與預(yù)測值之間的差值:
相較于P,傳輸?shù)臄?shù)據(jù)d下降了兩個數(shù)量級。解碼端將根據(jù)式(6)還原實際的像素值:
對一組圖像幀序列剩下的幀(前向預(yù)測幀P幀與雙向預(yù)測幀B幀)做幀間預(yù)測,以消除其時間冗余。幀間預(yù)測包括宏塊分割、運動估計、運動補償。先將每幀圖像分割為若干N×N像素的宏塊,把時域上一幀(P幀或I幀)作為參考幀,此參考幀是由反量化與反DCT 變換重建得到的。當(dāng)前幀中的每一塊均在參考幀中尋找一個最佳匹配塊,并計算兩塊之間的位移(運動矢量MV)[9-11]。
尋找匹配塊以最小絕對誤差和?為評判標(biāo)準(zhǔn),使用全局搜索法將當(dāng)前塊與參考幀中所有塊的像素值逐一計算絕對誤差,最終求和并取其最小值,算法如下:
其中,xP為當(dāng)前塊中的像素值,為參考塊中的像素值。
如圖4 所示,求得最佳匹配后,計算當(dāng)前塊與匹配塊間像素的相對位移平均值,即得到該塊的運動矢量MV。
圖4 最佳匹配與MV
在尋找最佳匹配的過程中,使用菱形搜索法以提高匹配效率,算法的過程如下:
1)從參考幀的宏塊中心按照如圖5 所示的大菱形模板進行搜索。判斷最佳匹配點是否在中心:若是,則跳轉(zhuǎn)步驟2);若否,則重復(fù)該步驟。
圖5 大菱形模板
2)采用小菱形模板搜索,小菱形模板如圖6 所示。判斷最佳匹配點是否在中心:若是,則算法結(jié)束;若否,則跳轉(zhuǎn)步驟3)。
圖6 小菱形模板
3)以當(dāng)前的最佳匹配點為中心,取大菱形模板判斷最佳匹配點是否在中心:若是,則轉(zhuǎn)步驟2);若否,則重復(fù)該步驟。
在求出的MV 與參考幀的基礎(chǔ)上,可以得到待解碼塊的預(yù)測。最終,用待預(yù)測宏塊的實際值減去預(yù)測值,即可求得預(yù)測殘差,公式如下:
預(yù)測殘差用于編碼傳輸,而分割方式MV 則被送入接收端。
1.2.2 變 換
對原始圖像的亮度宏塊與色度宏塊預(yù)測后,得到的信號仍為空域信號。進行兩維4×4 或8×8 像素的DCT 變換,將信號轉(zhuǎn)換為頻域信號[12-14]。相同內(nèi)容的時域信號只用一個頻域信號表示,從而去除了空間冗余。每個信號均有準(zhǔn)確的數(shù)值,x與y坐標(biāo)的三維信號變換公式如下:
1.2.3 量 化
DCT 變換后,對頻域的DCT 變換系數(shù)、幀間預(yù)測的預(yù)測插值和幀內(nèi)預(yù)測的插值做量化,對其中的低頻信息細量化、高頻信息粗量化。量化過程可以用下式描述:
FQ(u,v)為量化得到的DCT 系數(shù),Q(u,v)為量化矩陣,q為量化步長,round(·)為取整函數(shù)。
視頻壓縮傳輸系統(tǒng)由攝像頭采集環(huán)境信息,產(chǎn)生的模擬視頻信號首先經(jīng)過OPA361 濾波放大器進行信號放大。然后送入ADV7180 解碼芯片轉(zhuǎn)換為ITU.656 格式的8 位色差亮度信號YCbCr,并分離出行場同步信號。視頻解碼信號通過CCDC 進入TMS320DM365 芯片的視頻處理子系統(tǒng)VPSS,在這里完成視頻信號的壓縮編碼。并經(jīng)過乒乓存儲后,從子系統(tǒng)的視頻后端輸出接口發(fā)送到網(wǎng)絡(luò)接口,進入局域網(wǎng)中繼續(xù)傳輸。信息傳輸流程如圖7所示。
圖7 系統(tǒng)信息流程圖
該系統(tǒng)的硬件主要由TMS320DM365 開發(fā)板和外置攝像頭組成,可分為六大模塊:電源管理模塊、攝像頭模塊、DDR 儲存模塊、DSP 視頻處理模塊、ARM控制模塊與網(wǎng)絡(luò)控制模塊。各模塊相互配合,完成信號的轉(zhuǎn)換和流通。硬件配置如圖8 所示。
圖8 硬件組織結(jié)構(gòu)
TMS320DM365 芯片內(nèi)部集成了ARM926EJ-S精簡指令集CPU,包括16 kB 指令緩存、8 kB 數(shù)據(jù)緩存。其用來控制開發(fā)板、管理DDR 內(nèi)存數(shù)據(jù)、配置各模塊初始化參數(shù)等[15-16]。
該系統(tǒng)采用1 GB 容量的DDR3 SDRAM 存儲器,確保視頻信號有足夠的緩存空間。正常工作后,在DDR 芯片中進行YUV 信號的乒乓存儲,將存儲器分出兩個塊區(qū)A 與B:寫入塊A 時,讀取塊B;寫入塊B時,讀取塊A。上述兩種操作循環(huán)執(zhí)行。
DSP 視頻處理包括DM365 前端的視頻解碼器和DM365 中的VPSS 部分。將視頻信號CVBS的解碼——IUT656 格式的YCbCr 信號轉(zhuǎn)換為YUV 信號,以及將關(guān)鍵的視頻信號壓縮編碼并生成碼流。同時,壓縮好的圖像碼流也暫存在這里。
該系統(tǒng)采用型號為DM9000A的網(wǎng)卡控制器,由外部20 MHz 晶振提供時鐘信號。PHY 可以通過自動協(xié)商來配置網(wǎng)卡控制器的寄存器值,并根據(jù)實際情況發(fā)揮最優(yōu)性能。DM90000A 連接到DM365 中的MII 接口,將壓縮編碼后的碼流進行轉(zhuǎn)換,然后傳遞到以太網(wǎng)中。
該系統(tǒng)采用實時傳輸協(xié)議RTP,通過以太網(wǎng)傳輸系統(tǒng)生成的視頻流數(shù)據(jù),該協(xié)議實際包含RTP 與RTCP 兩部分。前者為實時傳輸協(xié)議,為終端提供連續(xù)的多媒體實時傳輸服務(wù);后者為實時傳輸控制協(xié)議,用來監(jiān)控傳輸質(zhì)量,并負責(zé)擁塞控制與流控制。
傳輸中的視頻信號碼流除了像素碼流外,還有兩個重要參數(shù)集:序列參數(shù)集與圖像參數(shù)集。在DM9000A的協(xié)商階段將參數(shù)集發(fā)送給網(wǎng)絡(luò)節(jié)點上的接收端,DM9000A 使用的端口號為8080。
在與接收端的連接建立后,首先發(fā)送參數(shù)集信息,然后發(fā)送視頻碼流。在得到接收端的服務(wù)質(zhì)量信息后,根據(jù)實時信道狀況調(diào)整壓縮率等編碼信息,并重新發(fā)送參數(shù)集。
基于TI 公司的TMS320DM365 音視頻處理芯片與DaVinci 軟件,在Linux 系統(tǒng)中搭建DaVinci 技術(shù)開發(fā)平臺。編輯壓縮應(yīng)用程序后,使用命令來調(diào)試各功能模塊,工作正常后連接攝像頭。主機作為網(wǎng)絡(luò)傳輸?shù)慕K端最后收到了編碼后的視頻信號,對其進行信道解碼與解壓縮后,正常播放攝像頭拍攝到的圖像顯示效果,如圖9 所示。
圖9 顯示效果圖
試驗采集到的幀率與網(wǎng)絡(luò)傳輸速度如圖10所示。經(jīng)過抓包測試,DM9000A的傳輸速度達到了40 Mbps,視頻壓縮后的信號幀率為5 幀/s,平均碼率約為41 kbit/s。截取視頻信號傳輸時的網(wǎng)絡(luò)所占帶寬和利用率,如表1 所示。從表2 可看出,該系統(tǒng)的壓縮率與H.264 相比差異較小,但由于壓縮效率的提升,有效降低了傳輸時的平均時延,較H.264 系統(tǒng)下降了30 ms。
表1 網(wǎng)絡(luò)傳輸抓包數(shù)據(jù)統(tǒng)計
表2 該系統(tǒng)與H.264系統(tǒng)性能對比
圖10 幀率與網(wǎng)絡(luò)傳輸速度
該文基于DaVinci 技術(shù)和H.264 框架,使用優(yōu)化的幀間預(yù)測匹配算法提高視頻壓縮效率,通過搭建硬件實現(xiàn)平臺編寫了Linux 系統(tǒng)下的實現(xiàn)程序,并將其固化于開發(fā)板中,最終實現(xiàn)了視頻壓縮傳輸?shù)脑O(shè)計目的。仿真顯示該系統(tǒng)工作穩(wěn)定,能夠有效地解決視頻數(shù)據(jù)量大、不便于網(wǎng)絡(luò)傳輸?shù)膯栴},可以用于視頻素材的直接采集與迅速傳輸。且具有所需攜帶設(shè)備少、操作簡單的特點,適用于高清晰度源文件的高速實時傳輸。在高清素材采集、整理、智能化的編輯加工等應(yīng)用場景中,具有較強的實用價值。