閆旭剛,李博
(中北大學(xué) 儀器與電子學(xué)院,山西 太原 030051)
隨著大數(shù)據(jù)時代的到來,人們對音視頻信息的需求越來越大,音視頻處理技術(shù)的研究將需持續(xù)發(fā)展,其中高清音視頻的同步技術(shù)研究一直是業(yè)內(nèi)的主流話題。該系統(tǒng)設(shè)計了以DM6467T為核心的硬件電路為平臺,利用H.264/AVC量化后的DCT系數(shù)奇偶性嵌入音頻信息后進行同步壓縮,先對視頻文件進行幀內(nèi)預(yù)測、運動估計、DCT變換、量化,之后利用DCT系數(shù)的奇偶性嵌入通過AIC32芯片處理后的二進制音頻比特數(shù),嵌入之后通過重排序、熵編碼得到音視頻混合文件。壓縮完成之后的音視頻混合文件經(jīng)DM6467T板卡中的以太網(wǎng)口傳輸至PC機,在重排序之后分出壓縮后的音頻文件,同步采集同步壓縮同步傳輸,解決音視頻在壓縮傳輸過程中的數(shù)據(jù)延時丟失情況,故而實現(xiàn)同步播放。
該系統(tǒng)是在DSP+ARM雙核芯片DM6467T為核心的硬件電路上實現(xiàn)的[1],視頻采集使用的是HDMI攝像頭,音頻采集使用的是3.5 mm麥克風(fēng),DSP芯片完成壓縮工作,ARM芯片完成外圍電路工作[2]。軟件設(shè)計選擇更為方便的Windows操作系統(tǒng),在CCS 3.3軟件中使用C語言編寫完成。系統(tǒng)物理結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)圖Fig.1 Diagram of system
本文系統(tǒng)選用HDMI高清攝像頭進行視頻采集,使用3.5 mm插頭的麥克風(fēng)進行音頻采集,采集到的信息通過以TMS320DM6467T為主處理器的DSP+ARM雙核開發(fā)板進行音視頻同步壓縮[1],壓縮后的文件通過DM6467T中的以太網(wǎng)口進行網(wǎng)絡(luò)傳輸至PC機進行觀看。
硬件電路采用DSP與ARM相結(jié)合的方式來實現(xiàn),系統(tǒng)的核心處理單元是以TMS320DM6467T作為主處理器[3],實現(xiàn)視頻的多路H.264/AVC的編碼與解碼。DM6467T有2個獨立的VICP視頻編碼協(xié)議處理單元,能很大程度上提高編碼實現(xiàn)的效率,使之能適應(yīng)高清圖像或多路標清圖像的處理。其主要由DM6467T處理器、DDR2的存儲器、NAND FLASH存儲器組成。其中平臺的存儲器有 32K×8 bits(AT25256A)的 SPI串行FLASH,128M×8 bits的NAND的FLASH和2片64M×16 bits的DDR2;外設(shè)接口有5個視頻輸入、4個視頻輸出、一路雙聲音音頻的輸入與輸出及一通路S/PDIF光口、具有10M/100M/1 000M自適應(yīng)功能的RJ45對外網(wǎng)絡(luò)接口、可接入硬盤外設(shè)的SATA接口、USB 2.0接口、UART接口,完全可滿足該系統(tǒng)的設(shè)計需求[2]。
故本文系統(tǒng)決定采用該板卡來設(shè)計,用具有VLIW的DSP核負責音視頻壓縮算法的實現(xiàn)[2]。ARM核則負責采集傳輸轉(zhuǎn)換等外圍設(shè)備的控制以及系統(tǒng)芯片的配置[1]。這樣的設(shè)計使得DSP核占用減少,能夠更大地提高壓縮率。該系統(tǒng)的硬件實現(xiàn)如圖2所示,高清HDMI攝像頭和SII9125解碼驅(qū)動共同完成采集視頻工作,麥克風(fēng)和AIC32芯片完成音頻采集工作,采集后的音視頻根據(jù)現(xiàn)下流行的H.264/AVC壓縮編碼進行DCT奇偶性同步壓縮[4]。壓縮后的視頻通過以太網(wǎng)接口進行網(wǎng)絡(luò)輸出至PC機進行解碼觀看,實現(xiàn)在高清顯示器上高質(zhì)顯示視頻的工作。
由于Windows操作系統(tǒng)具有更好的兼容性、可操作性與移植性,所以選用Windows操作系統(tǒng)作為軟件系統(tǒng)的開發(fā)平臺,在CCS 3.3中進行軟件編程[1]。軟件設(shè)計實現(xiàn)框圖如圖3所示。
圖2 硬件系統(tǒng)結(jié)構(gòu)圖Fig.2 Structure diagram of hardware system
圖3 軟件框圖Fig.3 Block diagram of software
1.2.1 音視頻采集
對音頻和視頻進行分開采集。音頻信息由Takstar的PCM-5560麥克風(fēng)進行采集。采集的音頻格式為WMA。該麥克風(fēng)靈敏度可達-42 dB±3 dB;等效噪聲級為小于等于 22 dB(IEC581-5);聲壓級為 128 dB(THD≤1%at1 kHz);頻率響應(yīng)范圍 30 Hz~20 kHz;輸出電抗為350(1+30%)Ω;負載阻抗>10 000 Ω;使用電壓[5]為1.5 V。麥克風(fēng)采集音頻模擬信號通過AIC32芯片及周邊電路轉(zhuǎn)成數(shù)字二進制比特位信號,以IIS格式傳給DM646T進入緩存區(qū)等待與視頻文件一起壓縮處理后經(jīng)網(wǎng)絡(luò)傳輸至PC機進行播放[5]。
由于HDMI高清攝像頭小巧便攜、使用方便,輸出分辨率極高色彩還原度逼真能達到更好的成像效果,故選用HDMI高清攝像頭及其常用的SII9152解碼驅(qū)動來共同完成視頻采集工作。采集工作中由HDMI高清攝像頭采集的BT.1120格式的視頻數(shù)據(jù)經(jīng)SII9152驅(qū)動傳輸至DM6467T的VPIF接口[2],從而進入緩存區(qū)等待進行音視頻同步壓縮處理。工作流程如圖4所示。
1.2.2 音視頻同步壓縮
音視頻壓縮編碼選用當下最流行的H.264/AVC進行編碼。H.264/AVC是2003年經(jīng)聯(lián)合視頻組開發(fā)的一種新的視頻標準[6],是當下最流行視頻壓縮標準,主要用于視頻實時傳輸。由于H.264/AVC有更好的網(wǎng)絡(luò)適配性和更大的視頻壓縮率,受到廣大的應(yīng)用和視頻實時通信等各應(yīng)用領(lǐng)域的共同認可,并隨之發(fā)展成為最主要的視頻壓縮標準[6]。H.264/AVC編碼流程主要包括5個部分:幀間和幀內(nèi)預(yù)測、變換和反變換、量化和反量化、環(huán)路濾波、熵編碼[7]。該系統(tǒng)在H.264/AVC視頻壓縮編碼的DCT變換過程中加入音頻信號進行同步壓縮編碼[8],將音頻序列看作一個二進制比特流與DCT系數(shù)中微小改變對視頻質(zhì)量影響不大的中頻部分建立某種聯(lián)系,如DCT系數(shù)為偶數(shù)則傳輸音頻比特位的0;為奇數(shù)則傳輸音頻比特位為1。若系數(shù)不滿足該關(guān)系,則強制修改系數(shù)使之滿足,嵌入算法公式為[4]:
圖5為音視頻同步壓縮流程。
圖4 視頻采集流程Fig.4 Flow chart of video acquisition
圖5 音視頻同步壓縮流程Fig.5 Flow chart of audio-video synchronous compression
音視頻同步編碼流程為:首先,是把視頻系列的每一幀進行分塊[9],得到子塊;然后,基于這些子塊進行預(yù)測編碼,I幀和P幀分開編碼[4],函數(shù)H264 encode-Frame()完成視頻編碼;由函數(shù) H264 encodeHeade()對動態(tài)的參數(shù)進行設(shè)置,包括亮度色度等,通過fseek()和fread()將原始待嵌入的音頻流中的每個字節(jié)讀取出來,通過奇偶性嵌入量化后的DCT系數(shù)level中,得到含有音視頻信息的DCT系數(shù);最后將得到的DCT系數(shù)經(jīng)過重排序和熵編碼得到音視頻混合編碼文件[8]。
1.2.3 實時網(wǎng)絡(luò)傳輸
編解碼完成之后的音視頻文件通過DM6467T上的以太網(wǎng)接口根據(jù)RTP協(xié)議傳輸至PC機上進行實時觀看[5]。網(wǎng)絡(luò)傳輸之前,先通過emac net init()函數(shù)進行以太網(wǎng)的初始化,運用net phy getReg()函數(shù)讀取PHY芯片的寄存器的值[2],同時利用net_phy_seReg()函數(shù)完成對 PHY 的設(shè)置;然后由 UDPCtrl_init()、bind()和socket()函數(shù)完成數(shù)據(jù)的打包處理。ARM核在接收到編碼完成的數(shù)據(jù)后,先創(chuàng)建時間戳函數(shù)TSC(),對時間戳的文件UDPCtrl init()、bind()和socket()函數(shù)完成數(shù)據(jù)打包處理;最后利用RTP sendH264()函數(shù)將編碼完成的數(shù)據(jù)通過網(wǎng)絡(luò)傳輸至目的IP,傳輸至目標IP的音視頻混合文件可通過式(2)解析出音頻信息,在選定PC機上通過上位機進行觀看[9],具體流程如圖6所示。
圖6 網(wǎng)絡(luò)傳輸流程Fig.6 Flow chart of network transmission
硬件平臺搭建完成之后,啟動板卡,在Windows下打開CCS 3.3,通過仿真器將軟件程序下載至板卡中,運行程序后可查看未壓縮的音視頻文件,通過與壓縮后傳輸至PC機的音視頻文件對比,發(fā)現(xiàn)壓縮后的音視頻質(zhì)量良好,傳輸實時性良好。至于壓縮比的計算,視頻采集時間為3 min,輸入格式為PAL,幀率為25 f/s,分辨率為720P(1 280×720)。視頻數(shù)據(jù)率=水平像素×垂直像素×3(3基色)×一種顏色深度(bit)×幀率,碼率(KBPS)=[文件大?。╙字節(jié))×8×s-1×1000。經(jīng)計算表明視頻壓縮比普遍高達到為160。如圖7所示為壓縮前后的圖像質(zhì)量對比。圖8為壓縮前后音頻的時域濾波波形對比,可知壓縮前后音視頻質(zhì)量保存完好[10]。
圖7 壓縮前后視頻圖像對比Fig.7 Comparison for video images before and after compression
圖8 壓縮前后音頻時域波形對比Fig.8 Comparison for time domain waveforms of audios before and after compression
本文所提系統(tǒng)經(jīng)測試結(jié)果表明,基于DM6467T實現(xiàn)了H.264/AVC音視頻同步壓縮傳輸,得到了以下結(jié)論:壓縮傳輸后視頻清晰度高,壓縮完之后的視頻仍可達到720P分辨率;音頻失真率小,壓縮前后音頻時域波形變化很??;壓縮比高,視頻壓縮均可達到150以上,音頻壓縮比比傳統(tǒng)音視頻單獨壓縮提高7.5%;傳輸實時性好,雖有些延遲但不影響觀看;采用DCT系數(shù)奇偶性同步音視頻壓縮算法省去了單獨對音頻進行編解碼的部分,節(jié)約了硬件和網(wǎng)絡(luò)資源,提高了編碼效率;選用對視頻質(zhì)量影響不大的DCT系數(shù)中頻部位,壓縮后,既加大了音視頻壓縮比又降低了對音頻質(zhì)量的損害,當DCT系數(shù)為-1時,采用-1處理,避免在音頻嵌入式將非零系數(shù)修改為0,或?qū)?系數(shù)改為非0,進一步降低對視頻圖像的影響[3];音視頻同步采集、同步壓縮、同步傳輸,避免在分開壓縮、分開傳輸過程中,因為信道受阻導(dǎo)致數(shù)據(jù)延遲、丟失而造成的音視頻不同步現(xiàn)象,采用基于DCT系數(shù)奇偶性的音視頻同步壓縮傳輸更好地實現(xiàn)了音視頻同步播放。