1 前言
隨著數(shù)字信號(hào)處理技術(shù)和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,基于嵌入式架構(gòu)的網(wǎng)絡(luò)視頻處理及應(yīng)用需求不斷增加。視頻技術(shù)從傳統(tǒng)的模擬視頻到數(shù)字視頻,進(jìn)而發(fā)展到網(wǎng)絡(luò)視頻并逐漸成為視頻應(yīng)用發(fā)展的主流。傳統(tǒng)的數(shù)字視頻服務(wù)系統(tǒng)僅限于本地編解碼、存儲(chǔ)和顯示。攝像機(jī)采集的視頻數(shù)據(jù)通過線纜傳輸?shù)胶笈_(tái)服務(wù)系統(tǒng)進(jìn)行壓縮存儲(chǔ),無法實(shí)現(xiàn)遠(yuǎn)程網(wǎng)絡(luò)訪問。網(wǎng)絡(luò)攝像機(jī)的出現(xiàn)很好地解決了這個(gè)問題,在網(wǎng)絡(luò)攝像機(jī)中,視音頻數(shù)據(jù)的壓縮功能前移到攝像機(jī)端實(shí)現(xiàn),這樣一方面能夠在帶寬有限的網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)傳輸,另一方面也大大擴(kuò)展了其應(yīng)用。網(wǎng)絡(luò)攝像機(jī)已經(jīng)不僅僅是應(yīng)用于監(jiān)控系統(tǒng),而且正逐漸成為家庭數(shù)字娛樂和智能家居的重要組成部分。
當(dāng)前國(guó)內(nèi)市場(chǎng)上的網(wǎng)絡(luò)攝像機(jī)產(chǎn)品全部是基于國(guó)際主流視頻壓縮標(biāo)準(zhǔn)MPEG4和H.264的,其實(shí)現(xiàn)或采用專用集成芯片,或采用DSP實(shí)現(xiàn)。采用專用集成芯片的缺點(diǎn)是壓縮算法固定,難以擴(kuò)展。采用DSP實(shí)現(xiàn)MPEG4或H.264壓縮算法存在專利問題。而AVS作為我國(guó)擁有自主知識(shí)產(chǎn)權(quán)的視頻壓縮標(biāo)準(zhǔn),其與最先進(jìn)的H.264標(biāo)準(zhǔn)相當(dāng)?shù)膲嚎s性能和“一元人民幣”的專利策略使其在網(wǎng)絡(luò)攝像機(jī)應(yīng)用中具有無可比擬的優(yōu)勢(shì)。
基于此,我們開發(fā)了國(guó)內(nèi)首款支持AVS標(biāo)準(zhǔn)的網(wǎng)絡(luò)攝像機(jī),本文對(duì)該產(chǎn)品的系統(tǒng)結(jié)構(gòu)、關(guān)鍵模塊實(shí)現(xiàn)進(jìn)行分析和討論。
2 系統(tǒng)結(jié)構(gòu)
支持AVS的網(wǎng)絡(luò)攝像機(jī)的總體結(jié)構(gòu)如圖1所示。
在該網(wǎng)絡(luò)攝像機(jī)中,視頻采集采用了TI的5150視頻采集芯片。TVP5150 可支持諸如視頻采集設(shè)備及便攜式個(gè)人攝像機(jī)等新產(chǎn)品。它在正常工作時(shí)的功耗僅為 115 毫瓦 (mW) ,并具有業(yè)界最小尺寸的 32 引腳超薄四方扁平封裝 (TQFP) ,TVP5150 的應(yīng)用范圍非常廣泛。音頻采集和處理芯片為TI的高性能立體聲編解碼器TLV320AIC23,AIC23與DM642的I/O電壓兼容,可以實(shí)現(xiàn)與DM642的McASP接口無縫連接。主處理芯片采用TI公司的TMS320DM642實(shí)現(xiàn),TMS320DM642(以下簡(jiǎn)稱DM642)是一款專門面向多媒體應(yīng)用的專用DSP。該DSP時(shí)鐘高達(dá)600 MHz,8個(gè)并行運(yùn)算單元,處理能力達(dá)4800MIPS;采用二級(jí)緩存結(jié)構(gòu);具有64位外接存儲(chǔ)器接口;集成有3個(gè)視頻端口、音頻McASP和以太網(wǎng)MAC等外設(shè)。視頻端口外設(shè)提供了視頻采集到DSP核心處理單元的無縫接口,可以支持多種視頻解決方案。鑒于DM642的上述優(yōu)點(diǎn),本網(wǎng)絡(luò)攝像機(jī)系統(tǒng)就以DM642為核心,完成音頻信號(hào)的實(shí)時(shí)采集、壓縮及傳輸功能。內(nèi)部功能結(jié)構(gòu)如圖2所示。 [nextpage]
3 關(guān)鍵模塊實(shí)現(xiàn)
AVS網(wǎng)絡(luò)攝像機(jī)實(shí)現(xiàn)的主要功能模塊包括視音頻數(shù)據(jù)采集、視頻預(yù)處理、編碼、運(yùn)動(dòng)檢測(cè)、視頻加密、網(wǎng)絡(luò)收發(fā)、內(nèi)嵌WEB服務(wù)器和系統(tǒng)配置等諸多模塊組成。下面就主要模塊的設(shè)計(jì)實(shí)現(xiàn)進(jìn)行介紹。
3.1 視頻數(shù)據(jù)預(yù)處理和壓縮編碼
在視頻壓縮編碼之前,為提高壓縮比,首先進(jìn)行視頻預(yù)處理。采用較為簡(jiǎn)單的算法對(duì)攝像機(jī)采集進(jìn)來的原始YUV數(shù)據(jù)進(jìn)行濾波,去掉高頻信號(hào) ,一方面可以減輕編碼器的壓力,降低碼率;另一方面,攝像機(jī)對(duì) CCD以及攝像頭的質(zhì)量要求降低,可以節(jié)約成本。濾波算法復(fù)雜度較低,對(duì)D1大小格式圖像進(jìn)行濾波,運(yùn)算時(shí)間在2ms以下。視頻數(shù)據(jù)采用AVS標(biāo)準(zhǔn)進(jìn)行壓縮編碼,AVS編碼的技術(shù)框架如圖3所示。其基本框架如下圖所示。
編碼過程根據(jù)編碼模式的不同而有所區(qū)別。幀內(nèi)預(yù)測(cè)幀(I幀)采用幀內(nèi)預(yù)測(cè)編碼,原始輸入圖像中的宏塊首先經(jīng)過幀內(nèi)預(yù)測(cè)找到最匹配的預(yù)測(cè)塊(以8?8子塊為單位),然后與原始?jí)K相減得到殘差塊,經(jīng)過變換和量化處理后得到的系數(shù)矩陣經(jīng)過熵編碼寫入到碼流中。在進(jìn)行熵編碼的同時(shí),對(duì)系數(shù)矩陣進(jìn)行反量化和反變換,得到殘差塊估計(jì)并與預(yù)測(cè)塊相加得到重構(gòu)塊,用于后續(xù)宏塊的編碼參考以及后續(xù)幀間預(yù)測(cè)幀(P幀)的編碼參考。除殘差塊外,每個(gè)塊的預(yù)測(cè)模式信息也經(jīng)過編碼寫入碼流中,用于在解碼時(shí)得到參考?jí)K。 [nextpage]
視頻序列的第一幀編碼必須是I幀模式。I幀可以在編碼序列中周期性插入。由于I幀編碼與其他視頻幀不相關(guān),因此周期性插入I幀有助于抑制解碼端由于傳輸錯(cuò)誤導(dǎo)致的解碼錯(cuò)誤傳播。
P幀利用相鄰幀之間的相關(guān)性進(jìn)行編碼?;舅枷胧呛陦K或者子塊在已編碼重構(gòu)的參考幀中在一定范圍內(nèi)尋找(運(yùn)動(dòng)估計(jì))最匹配的宏塊或者子塊(代價(jià)最?。┳鳛轭A(yù)測(cè)塊,類似地對(duì)殘差塊進(jìn)行基于8×8的變換和量化、熵編碼,同時(shí)對(duì)量化結(jié)果進(jìn)行反量化和反變換處理,得到相應(yīng)的重構(gòu)塊。AVS支持16?16、16?8、8?16和8?8等塊劃分。
3.2 音頻編碼
音頻編碼采用G.729A標(biāo)準(zhǔn)實(shí)現(xiàn),主要包括預(yù)處理濾波、LP分析、量化、插值、基音分析、固定碼本搜索和增益量化幾部分組成。預(yù)處理主要是將數(shù)字語音信號(hào)經(jīng)過截止頻率為140HZ的高通濾波器預(yù)處理,以消除低頻干擾,同時(shí)進(jìn)行幅度調(diào)整,防止運(yùn)算過程中的數(shù)值溢出。然后將每10ms的音頻數(shù)據(jù)作為一幀,用10階線性預(yù)測(cè)作短時(shí)分析,得到LPC參數(shù)并變換為L(zhǎng)SP(線譜對(duì))參數(shù),然后將LSP參數(shù)用二級(jí)分裂式矢量量化,第1級(jí)用7bit表示,量化得到的最小均方誤差矢量分為2個(gè)子矢量,分別以5bit量化,在保證精度的同時(shí)減少碼本的搜索時(shí)間,量化的(非量化的)LP 參數(shù)用于第2子幀,對(duì)于第1子幀LP系數(shù)的獲得,是通過對(duì)其相鄰子幀的對(duì)應(yīng)參數(shù)線性內(nèi)插得到,用量化和未量化的LPC參數(shù)構(gòu)成感知加權(quán)濾波器及合成濾波器,從感知加權(quán)語音信號(hào)中減去感知加權(quán)濾波器的零輸入響應(yīng),得到目標(biāo)信號(hào)。短時(shí)語音的基音分析和固定碼本搜索都是基于對(duì)目標(biāo)信號(hào)的分析得到的。在G.729算法中,采用開環(huán)和閉環(huán)相結(jié)合的方法。首先,利用語音的短時(shí)自相關(guān)特性對(duì)每幀語音信號(hào)的基音周期進(jìn)行開環(huán)估計(jì),然后在開環(huán)估計(jì)得到的基音周期附近的小范圍內(nèi)分別對(duì)2個(gè)子幀進(jìn)行閉環(huán)基音搜索。閉環(huán)基音搜索的準(zhǔn)則是使原始語音和重構(gòu)語音之間均方加權(quán)誤差最小。第1子幀的搜索結(jié)果以8bit表示,由于語音信號(hào)具有短時(shí)平穩(wěn)特性,第2子幀在第1幀搜索的基礎(chǔ)上,搜索本子幀最佳基音周期,采用差分量化的方法以5bit表示,提高了編碼效率。固定碼本搜索時(shí)碼本采用代數(shù)碼本結(jié)構(gòu),正負(fù)脈沖交錯(cuò)設(shè)計(jì),碼本中每個(gè)碼本矢量含有4個(gè)非零脈沖,每個(gè)脈沖的幅度或正或負(fù)。以加權(quán)語音和加權(quán)重構(gòu)語音之間的均方誤差最小為搜索準(zhǔn)則?;粼鲆婧凸潭ùa本增益用7bit矢量量化,用原始語音和重構(gòu)語音之間的加權(quán)均方誤差最小為準(zhǔn)則來搜索增益碼本。增益碼本采用共軛結(jié)構(gòu)二級(jí)碼本矢量,每個(gè)碼本的第1個(gè)元素表示量化自適應(yīng)碼本增益,第2個(gè)元素表示量化固定碼本增益的相關(guān)因子。
3.3 網(wǎng)絡(luò)收發(fā)模塊
網(wǎng)絡(luò)發(fā)送可以通過TCP或者UDP協(xié)議發(fā)送。以TCP發(fā)送為例,流程如圖4所示。
3.4 WEB服務(wù)器模塊
采用HTTP協(xié)議實(shí)現(xiàn)。HTTP協(xié)議是一個(gè)采用的請(qǐng)求/響應(yīng)模型的協(xié)議。采用HTTP協(xié)議實(shí)現(xiàn)WEB服務(wù)器和WEB瀏覽器之間傳遞數(shù)據(jù)。 [nextpage]
模塊工作流程如下:
1)首先,CGI程序需要判斷字符串指針pArg指向的字符串是否為NULL:如果是,那么要處理的是一個(gè)POST方法,如果不是,那么要處理的是一個(gè)GET方法;
2)如果CGI程序要處理的是POST方法,那么按下列步驟編寫程序:a)動(dòng)態(tài)分配字節(jié)數(shù)為ContentLength+1的緩沖區(qū);b)調(diào)用recv從套接字htmlSock上接收ContentLength個(gè)字節(jié)的數(shù)據(jù)到該緩沖區(qū);c)在把緩沖區(qū)的最后一個(gè)字節(jié)設(shè)置為'\0';如果CGI程序要處理的是GET方法,那么此步可以忽略;
3)解析、處理該接收到的數(shù)據(jù)(POST)或字符串指針pArg指向的字符串(GET);
4)向客戶端發(fā)送一個(gè)HTTP響應(yīng)報(bào)文,其中HTTP包包頭:
a)HTTP報(bào)文報(bào)頭第一行必須是一個(gè)完整的Response-Line;
b)HTTP報(bào)文報(bào)頭最后一行必須是CRLF結(jié)束;
c)HTTP報(bào)文數(shù)據(jù)必須和包頭中指定的Content-Type保持一致(html、txt、gif等);
5)如果是處理POST方法,必須釋放動(dòng)態(tài)分配的內(nèi)存;
6)返回值必須是0或者1(0:關(guān)閉該套接字)。
3.5 其他模塊
視頻加密模塊:采用經(jīng)典的數(shù)據(jù)加密算法和數(shù)字水印技術(shù),為降低復(fù)雜性,在實(shí)現(xiàn)時(shí)進(jìn)對(duì)包括序列頭、圖像頭、條帶頭以及I 幀的重要數(shù)據(jù)進(jìn)行加密,確保非法訪問者無法正常解碼視頻數(shù)據(jù)。
運(yùn)動(dòng)檢測(cè)模塊:設(shè)計(jì)了多種運(yùn)動(dòng)檢測(cè)算法并根據(jù)視頻內(nèi)容變化進(jìn)行自適應(yīng)選擇。實(shí)現(xiàn)的算法主要有背景減除、時(shí)域差分、背景統(tǒng)計(jì)分類以及光流場(chǎng)等算法。碼流控制模塊借鑒H.264標(biāo)準(zhǔn)組提供的推薦碼率控制算法。云臺(tái)控制通過RJ485接口電路實(shí)現(xiàn)。
4 性能
該AVS網(wǎng)絡(luò)攝像機(jī)實(shí)現(xiàn)的性能指標(biāo)如下:
1)符合AVS標(biāo)準(zhǔn),處于國(guó)內(nèi)領(lǐng)先水平;
2)支持N制式和PAL制式;
3)支持QCIF、CIF、2CIF、Half D1、D1的實(shí)時(shí)編碼傳輸;
4)網(wǎng)絡(luò)自適應(yīng),根據(jù)網(wǎng)絡(luò)狀況自動(dòng)調(diào)整碼率和幀率,支持碼率控制,支持CBR和VBR工作方式,碼率調(diào)整范圍為64Kbps—3Mbps;
5)支持幀率控制,控制范圍為0.1fps-25fps(PAL)/30fps(NTSC);
6)編碼延時(shí)小于200毫秒;
7)根據(jù)檢測(cè)結(jié)果產(chǎn)生聯(lián)動(dòng)抓拍、報(bào)警;
8)檢測(cè)時(shí)間<70ms;
9)檢測(cè)正確率>90%;
10)支持移動(dòng)偵測(cè)報(bào)警、事件聯(lián)動(dòng)報(bào)警、視頻丟失報(bào)警;
11)支持TCP、UDP等多種網(wǎng)絡(luò)協(xié)議,適應(yīng)不同網(wǎng)絡(luò)環(huán)境;
12)內(nèi)置WEB服務(wù)器,支持IE瀏覽和設(shè)備配置;
13)最大支持10個(gè)用戶同時(shí)訪問;
14)整機(jī)功耗小、小于10瓦,發(fā)熱低
15)故障自動(dòng)恢復(fù),工作穩(wěn)定可靠;
16)支持網(wǎng)絡(luò)在線升級(jí)和參數(shù)調(diào)整;
17)控制軟件界面友好,易操作。
5 結(jié)束語
本網(wǎng)絡(luò)攝像機(jī)采用DM642 DSP芯片實(shí)現(xiàn),支持AVS標(biāo)準(zhǔn),實(shí)現(xiàn)了網(wǎng)絡(luò)攝像機(jī)的幾乎全部功能,能對(duì)音視頻進(jìn)行實(shí)時(shí)的編解碼和實(shí)時(shí)的網(wǎng)絡(luò)傳輸。圖像質(zhì)量高、易于升級(jí),目前已成功應(yīng)用于上海某企業(yè)內(nèi)部網(wǎng)絡(luò)視頻服務(wù)系統(tǒng),并在吉林網(wǎng)通等多家應(yīng)用企業(yè)進(jìn)行測(cè)試和使用,是一種比較理想的網(wǎng)絡(luò)攝像機(jī)解決方案。