實時視頻網(wǎng)絡(luò)傳輸系統(tǒng)實現(xiàn)技術(shù)
——
摘 要:實時視頻網(wǎng)絡(luò)傳輸技術(shù)的研究對開展視頻應(yīng)用具有重大意義。本文給出了一個實時視頻網(wǎng)絡(luò)傳輸系統(tǒng)的實現(xiàn)框圖,并結(jié)合該原理框圖,分析了實時視頻網(wǎng)絡(luò)傳輸系統(tǒng)的關(guān)鍵技術(shù):視頻采集、視頻編碼/解碼和網(wǎng)絡(luò)傳輸控制協(xié)議。其中特別強(qiáng)調(diào)了發(fā)送端的面向通信的視頻編碼、接收端的錯誤隱藏和差錯恢復(fù)和提供視頻應(yīng)用服務(wù)質(zhì)量保護(hù)(QoS)的網(wǎng)絡(luò)傳輸控制協(xié)議,同時給出具體的實現(xiàn)方式。最后與嵌入式系統(tǒng)開發(fā)相結(jié)合,搭建了一個用戶終端開發(fā)平臺。
關(guān)鍵詞:視頻采集;視頻通信;視頻編碼;嵌入式操作系統(tǒng)
Implementation of a Real-time Video Stream Transmission System
YANG Zhi-wei, FENG Zong-zhe, GUO Bao-long
(School of Mechanic Electronic Engineering, Xidian University, Xi'an 710071,China)
?。粒猓螅簦颍幔悖簦篟esearch on the implementation methods of real-time video stream transmission systems is important for video application. In this paper,the block diagram of a real-time video network transmission system is provided.On this base,a detailed analysis of the key technology is made,which indudes video capturing, encoding and decoding system, network transmission control protocol (TCP).Especially, the emphasis is laid on video encoding technology for communication at the sending terminal, error concealment and error resilience at the receiving terminal, network transmission control protocol for providing QoS(Quality of Service). And then the embedded video transmission platform is designed by integrating the embedded operating system for providing a powerful, flexible and robust real-time video application.
?。耍澹鳎铮颍洌螅篤ideo capturing;Video communication;Video encoding;Embedded operating system
一、引言
視頻技術(shù)和網(wǎng)絡(luò)通信技術(shù)的發(fā)展使得視頻流媒體應(yīng)用日益廣泛。在提供流媒體服務(wù)的系統(tǒng)中需要考慮兩個主要問題:如何獲取數(shù)字視頻信息?怎樣對獲取的視頻信息進(jìn)行有效、可靠傳輸?針對信息的獲取,隨著各種高性能視頻采集芯片的出現(xiàn),如SAA7111、SAA7114、TVP5145等,使得視頻采集系統(tǒng)的性能越來越穩(wěn)定、可靠且能夠提供更為滿意的視頻采集質(zhì)量;對于后者的關(guān)鍵性發(fā)展,則體現(xiàn)為各種視頻編碼標(biāo)準(zhǔn)的制訂(如H.26X[1,2]系列、JPEGE[3]和MPEG[4]系列)和網(wǎng)絡(luò)傳輸技術(shù)的發(fā)展(包括網(wǎng)絡(luò)交換技術(shù)和網(wǎng)絡(luò)傳輸控制協(xié)議的發(fā)展)。
流媒體應(yīng)用潛在地需要確定的收發(fā)同步、較寬的傳輸帶寬、低的質(zhì)量抖動、確知的傳輸延時、對誤碼不是非常敏感但對錯誤重傳延時非常敏感等,而目前基于TCP/IP的數(shù)據(jù)傳輸網(wǎng)絡(luò)在本質(zhì)上是盡力而為的網(wǎng)絡(luò),是為傳統(tǒng)數(shù)據(jù)業(yè)務(wù)提供傳輸服務(wù)的網(wǎng)絡(luò),傳輸帶寬的波動是不可避免的,傳輸延時也是隨機(jī)的[5]。因此如何在TCP/IP網(wǎng)絡(luò)上公平地提供流媒體服務(wù)與傳統(tǒng)數(shù)據(jù)業(yè)務(wù)是網(wǎng)絡(luò)傳輸控制協(xié)議需要考慮的核心問題。
本文在分析實時視頻網(wǎng)絡(luò)傳輸系統(tǒng)的系統(tǒng)構(gòu)成和傳輸協(xié)議的基礎(chǔ)上,給出了實時視頻網(wǎng)絡(luò)傳輸系統(tǒng)的組成框圖。結(jié)合該框圖,分析了發(fā)送模塊的3個核心子模塊:視頻采集子模塊,主要功能在于完成模擬視頻到數(shù)字視頻的轉(zhuǎn)換;視頻編碼子模塊,對獲取的原始數(shù)字視頻進(jìn)行編碼,生成符合一定標(biāo)準(zhǔn)的,適應(yīng)網(wǎng)絡(luò)傳輸?shù)拿嫦蛲ㄐ诺囊曨l流;視頻網(wǎng)絡(luò)傳輸控制子模塊,提供編碼視頻的實時、穩(wěn)健的網(wǎng)絡(luò)應(yīng)用。相應(yīng)地用接收模塊是發(fā)送模塊的逆。最后與嵌入式系統(tǒng)開發(fā)相結(jié)合,搭建了一個完整的實時視頻傳輸系統(tǒng)用戶終端開發(fā)平臺。
二、實時視頻網(wǎng)絡(luò)傳輸系統(tǒng)實現(xiàn)框圖
一個完整的實時視頻網(wǎng)絡(luò)傳輸系統(tǒng)包括視頻采集、視頻編碼、傳輸控制協(xié)議處理、通信網(wǎng)絡(luò)、視頻解碼。其功能為:在具有隨機(jī)時延特性和丟包特性的基于TCP/IP的通信網(wǎng)絡(luò)上提供視頻應(yīng)用服務(wù)。原理框圖如圖1所示。
在圖1所示的系統(tǒng)中,整個視頻流的處理、傳輸流程如下:在視頻發(fā)送端,對模擬視頻進(jìn)行采樣,獲得數(shù)字視頻并進(jìn)行視頻編碼,或者直接對輸入的數(shù)字視頻進(jìn)行編碼,生成適應(yīng)于網(wǎng)絡(luò)傳輸?shù)拿嫦蚓W(wǎng)絡(luò)通信的視頻碼流;根據(jù)反饋信息,估計網(wǎng)絡(luò)的可用傳輸帶寬,自適應(yīng)地調(diào)整編碼器的編碼輸出速率(包括信源碼率的調(diào)整與信道碼率的調(diào)整),使得視頻碼流能夠滿足當(dāng)前網(wǎng)絡(luò)傳輸可用帶寬的限制;在接收端,對接收的視頻流進(jìn)行解碼、重構(gòu)視頻信號、計算當(dāng)前網(wǎng)絡(luò)傳輸參數(shù)(如傳輸中的丟包率等)并發(fā)送反饋控制信息。
三、視頻采集模塊
視頻采集模塊主要由視頻A/D、視頻D/A、同步邏輯控制、視頻處理、數(shù)據(jù)存儲器構(gòu)成。視頻采集系統(tǒng)的基本構(gòu)成框圖如圖2所示。
A/D部分是將各種標(biāo)準(zhǔn)的模擬視頻信號轉(zhuǎn)換成數(shù)字視頻信號,作為視頻處理子單元的輸入數(shù)據(jù);邏輯產(chǎn)生單元通常選用FPGA或CPLD來完成各種同步邏輯控制,保證采集的實時性;對視頻數(shù)據(jù)進(jìn)行分析和處理,是整個采集模塊的靈魂,但所需運算量常常較大,為了保證視頻處理的實時性,常采用視頻處理專用芯片、高速DSP、FPGA和DSP等來完成視頻處理。
視頻采樣芯片可選用TI公司的數(shù)字視頻解碼器TVP5145,它能將NTSC、PAL、SECAM制式的模擬視頻轉(zhuǎn)換為數(shù)字復(fù)合視頻。在本文所搭建的系統(tǒng)中,視頻A/D部分采用Philips公司的可編程視頻輸入處理芯片SAA7111,該器件采用CMOS工藝,包含四路模擬視頻輸入通道,通過I2C總線,主機(jī)可以方便地對該器件進(jìn)行初始化。同時SAA7111內(nèi)部可以實現(xiàn)模擬通道選擇并可對輸入視頻進(jìn)行抗混疊濾波,并包含兩個8位的A/D轉(zhuǎn)換器。芯片還實現(xiàn)了自動鉗位、自動增益控制(AGC)、時鐘產(chǎn)生、多制式解碼,另外對亮度、色度和飽和度也是在片內(nèi)進(jìn)行控制的。芯片的最大特點在于僅需一個24.576 MHz的晶振就可滿足所有視頻標(biāo)準(zhǔn)的應(yīng)用,且在片內(nèi)實現(xiàn)制式的自動檢測,因此使得視頻桌面系統(tǒng)、數(shù)字電視系統(tǒng)、視頻電話、圖像處理等的開發(fā)極為方便。
四、視頻編碼/解碼模塊
視頻編碼模塊將數(shù)字視頻信號壓縮為滿足一定視覺質(zhì)量要求并且符合一定標(biāo)準(zhǔn)的數(shù)據(jù)流。在視頻流的網(wǎng)絡(luò)通信應(yīng)用中,特別強(qiáng)調(diào)編碼器所生成的視頻流應(yīng)該對網(wǎng)絡(luò)傳輸帶寬的隨機(jī)波動具有自適應(yīng)性。目前常采用可伸縮的視頻編碼器對視頻信號進(jìn)行編碼??缮炜s的視頻編碼可以在時域、空域或正交變換域進(jìn)行,基本思想是將碼流分成基本層和增強(qiáng)層。其中基本層碼流是必須傳輸?shù)?,包括提供最低質(zhì)量等級保證的視頻碼率和視頻序列的運動矢量;增加層是可選擇傳輸?shù)?,并且是可以根?jù)網(wǎng)絡(luò)的傳輸條件進(jìn)行任意截斷的。在理想狀況下,視頻流的質(zhì)量將隨著接收增強(qiáng)層碼流的增加而改善。
以TCP/IP為基礎(chǔ)的計算機(jī)通信網(wǎng)絡(luò)是一個提供盡力而為(Best-effort)服務(wù)的網(wǎng)絡(luò),無服務(wù)質(zhì)量(QoS)保證,并且數(shù)據(jù)包傳輸?shù)臅r延是隨機(jī)的,網(wǎng)絡(luò)丟包和網(wǎng)絡(luò)傳輸帶寬的波動是它固有的,因此為了能夠提供穩(wěn)定、平滑的流媒體服務(wù),必須要在對網(wǎng)絡(luò)傳輸帶寬做出實時估計的前提下對視頻編碼器的編碼速率進(jìn)行調(diào)整(包括信源碼流調(diào)整和信道碼率調(diào)整)和進(jìn)行有選擇性的幀丟棄。適應(yīng)于視頻網(wǎng)絡(luò)傳輸要求的編碼端數(shù)據(jù)流處理的原理框圖如圖3所示。
對照圖3,反饋控制模塊根據(jù)網(wǎng)絡(luò)的反饋信息,調(diào)整編碼器的編碼速率(信源碼率調(diào)整)和信道差錯控制(信道碼率調(diào)整)。調(diào)整的目標(biāo)是在總輸出碼率受限的條件下(≤Rmax),使得信源碼率與信道碼率達(dá)到最佳分配,理論基礎(chǔ)是率失真函數(shù)(RD函數(shù))。非均勻糾錯保護(hù)就是對基本層采用具有最大糾刪能力的RS碼(該碼為極大最小距離可分碼,即MDS碼。用于糾刪時,能夠在n=k+r個數(shù)據(jù)包中任意接收到個數(shù)據(jù)包而恢復(fù)原始信息)或者具有很強(qiáng)信息保護(hù)能力的Turbo碼進(jìn)行信道編碼,對增強(qiáng)層進(jìn)行一般錯誤保護(hù)能力的編碼。并且為了降低信道突發(fā)誤碼對視頻碼流的影響,常對視頻數(shù)據(jù)包進(jìn)行交織處理,以降低臨近數(shù)據(jù)包同時發(fā)生誤碼的概率,便于接收端的錯誤隱藏和恢復(fù)。
用戶終端解碼模塊的功能是編碼模塊的補(bǔ)。在視頻流的網(wǎng)絡(luò)傳輸中,丟包是不可避免的(特別是在無線網(wǎng)絡(luò)傳輸環(huán)境中)。為了保證完全正確的數(shù)據(jù)包傳輸,可以采用重傳的策略,但對于視頻流應(yīng)用,因為對時延的敏感更勝于對丟包的敏感,所以在接收端,不需要強(qiáng)調(diào)完全正確的數(shù)據(jù)包傳輸。在正確接收的數(shù)據(jù)包基礎(chǔ)上如何提供最大滿意程度的視頻質(zhì)量則為接收端解碼模塊的中心問題。該問題等價于如何利用接收數(shù)據(jù)包的冗余信息,提供更為滿意的解碼視頻流輸出。解決的辦法就是在接收端的錯誤隱藏和誤差恢復(fù)[6]。
錯誤隱藏的主要方法有:①基于空間相關(guān)性的錯誤隱藏:利用錯誤塊在同一幀內(nèi)相鄰塊的正確數(shù)據(jù)作內(nèi)插來重構(gòu)錯誤塊的數(shù)據(jù),以此來達(dá)到錯誤隱藏的目的。這種方能夠?qū)ο嗨苹蛘吆芏嗉?xì)節(jié)的區(qū)域進(jìn)行很有效的恢復(fù);②基于時間相關(guān)性的錯誤隱藏:這種方法是利用時間上相鄰的幀具有很強(qiáng)的相關(guān)性來進(jìn)行錯誤隱藏。
在上面所述的傳統(tǒng)方法基礎(chǔ)上,錯誤隱藏的一個新的發(fā)展是采用自適應(yīng)的方法進(jìn)行改進(jìn),即根據(jù)圖像的特點和誤碼的類型來選擇相應(yīng)的恢復(fù)方法或者是這幾種方法的結(jié)合。自適應(yīng)的一種準(zhǔn)則是恢復(fù)圖像的峰值信噪比(PSNR)最大化,結(jié)合的方式有線性加權(quán)合并、最大信噪比合并等。同時隨著MPEG-4基于對象編碼技術(shù)的完善,可以采用基于主元分析的錯誤隱藏。具體實現(xiàn)為:在基于模型的圖像編碼上對每一個對象找出其特征模型,然后在特征模型上進(jìn)行投影,得到投影系數(shù);再由這些投影系數(shù)重建圖像,作為恢復(fù)的最終結(jié)果。投影過程可以是循環(huán)的。
在本文所構(gòu)建的傳輸用戶終端平臺上,編碼模塊采用Analog公司的實時視頻壓縮解壓芯片ADV611和DSP芯片ADSP2185,用以完成視頻的編碼。ADV611是AD公司基于小波變換的視頻編解碼芯片ADV6XX系列的一款,該系列芯片還包括ADV601、ADV601LC、ADV612等,它的最大特性就是具有質(zhì)量窗特性,可以使得每場視頻圖像中的一部分較其它的部分得到更高的圖像解壓效果。質(zhì)量窗的原理是:用戶定義一個任意尺度和位置的方框,在這個方框內(nèi)部圖像按照原來的壓縮比進(jìn)行壓縮,對于方框外的圖像按照用戶設(shè)定的高壓縮比值C進(jìn)行壓縮。如此則可以在解壓縮時使得方框內(nèi)的圖像得到更大的對比度(相對于方框外的圖像而言)。
圖4給出了ADV611的內(nèi)部功能框圖。
原始的數(shù)字視頻經(jīng)過I/O接口后,在質(zhì)量窗的控制下進(jìn)行小波變換和幀抽取、量化、游程編碼、熵編碼,產(chǎn)生壓縮后的編碼視頻數(shù)據(jù)流,送入片內(nèi)的FIFO。在FIFO中的數(shù)據(jù)達(dá)到主機(jī)在寄存器中的設(shè)定值時,發(fā)出中斷請求,從主機(jī)接口發(fā)送數(shù)據(jù)流到主機(jī)。當(dāng)ADV611用于解碼時,數(shù)據(jù)流的方向與此相反。
從上面可以看出在編碼或者解碼的過程中各種壓縮、解壓參數(shù)是要依賴主機(jī)從主機(jī)接口傳輸給ADV611的。也就是說需要主機(jī)給ADV611提供各種編碼參數(shù)。因此采用一片AD公司的ADSP2185完成對ADV611所需的各種參數(shù)的計算和傳輸,同時對ADV611編碼后的裸壓縮數(shù)據(jù)流進(jìn)行網(wǎng)絡(luò)傳輸編碼,生成適應(yīng)網(wǎng)絡(luò)傳輸?shù)囊曨l流。
五、傳輸控制、協(xié)議處理模塊
視頻流傳輸與傳統(tǒng)的TCP/IP網(wǎng)絡(luò)的數(shù)據(jù)傳輸有明顯的區(qū)別,主要表現(xiàn)在:傳統(tǒng)的數(shù)據(jù)傳輸對傳輸延時和傳輸抖動沒有嚴(yán)格的要求,但是有嚴(yán)格的差錯控制和錯誤重傳機(jī)制。而視頻流要求傳輸具有實時性,對同步要求較高,并且對傳輸延時和抖動非常敏感,但在一定的情況下可以允許分組丟失,即可以接受一定程度的傳輸誤碼。并且流媒體服務(wù)需要滿足廣播和多播應(yīng)用,同時應(yīng)具有根據(jù)網(wǎng)絡(luò)的實時可用傳輸帶寬自適應(yīng)地調(diào)整視頻的傳輸質(zhì)量的能力。
基于上述顯著的不同網(wǎng)絡(luò)應(yīng)用要求,若要在Internet上面提供流媒體數(shù)據(jù)服務(wù),則需要使用RTP/RTCP(Real-time Transport Protocol/Real-time Transport Control Protocol)協(xié)議。RTP協(xié)議在一對一或者一對多的傳輸情況下面工作,提供數(shù)據(jù)包傳輸過程中的時間信息和實現(xiàn)流數(shù)據(jù)同步;RTCP協(xié)議與RTP協(xié)議一起工作,提供網(wǎng)絡(luò)傳輸中的流量控制和擁塞控制。
網(wǎng)絡(luò)擁塞控制是傳輸控制協(xié)議提供流媒體服務(wù)時需要處理的核心問題。解決的基本思路是:估計網(wǎng)絡(luò)的可用帶寬,然后根據(jù)網(wǎng)絡(luò)當(dāng)前的吞吐量調(diào)整終端的數(shù)據(jù)輸出速率,使得終端的碼率能自適應(yīng)地隨著網(wǎng)絡(luò)傳輸條件的變化而變化。估計網(wǎng)絡(luò)可用帶寬主要基于RTT(網(wǎng)絡(luò)傳輸往返時間)和丟包率進(jìn)行估計[7];對速率的調(diào)整,常采用AIMD(Additive Incresae,Multiplication Decrease)算法(加法增,乘法減)[8]算法進(jìn)行擁塞控制。
圖5給出了視頻網(wǎng)絡(luò)傳輸中所使用的傳輸控制協(xié)議。
其中,對應(yīng)用程序生成流媒體數(shù)據(jù)進(jìn)行打包處理,并進(jìn)行RTP協(xié)議數(shù)據(jù)封裝;將RTP協(xié)議數(shù)據(jù)封裝在UDP的消息字段,然后進(jìn)行IP數(shù)據(jù)封裝;經(jīng)過傳輸網(wǎng)絡(luò)完成數(shù)據(jù)包的發(fā)送。RTP協(xié)議數(shù)據(jù)包的包頭部分含有數(shù)據(jù)包的載荷類型(Payload Type)、序列號(Sequence Number)、時間戳(Timestamp)和同步標(biāo)識符(Synchronization Source Identifier)等。利用RTP包頭的信息,采取適當(dāng)緩存的工作方式,可以做到視頻流的正確解碼播放與回放。RTCP數(shù)據(jù)包對流媒體數(shù)據(jù)不進(jìn)行封裝,它只封裝發(fā)送端或者接收端的發(fā)送、接收統(tǒng)計信息(比如傳輸延時、傳輸丟包率等)。利用RTCP的反饋信息,在發(fā)送端能夠估計出網(wǎng)絡(luò)的傳輸帶寬,實時地根據(jù)網(wǎng)絡(luò)的傳輸條件自適應(yīng)地調(diào)整編碼器的編碼速率,使得在網(wǎng)絡(luò)傳輸帶寬波動的情況下可以提供穩(wěn)定的視頻流服務(wù)。
在需要提供流媒體的點對點或者一對多、多對多的通信業(yè)務(wù)時,還需要使用與具體的通信網(wǎng)絡(luò)環(huán)境相對應(yīng)的傳輸控制協(xié)議。如在ISDN環(huán)境下提供視頻會議的H.320協(xié)議,在PSTN環(huán)境下提供視頻會議的H.324協(xié)議,在局域網(wǎng)環(huán)境下提供視頻會議的H.323。支持的速率有64k、192k、384k、768k等。
在我們搭建的視頻網(wǎng)絡(luò)傳輸平臺上面,傳輸控制、協(xié)議處理模塊的硬件平臺以MPC860為核心,結(jié)合嵌入式的LINUX系統(tǒng)開發(fā),在用戶程序平面設(shè)計基于RTP/RTCP的應(yīng)用程序,通過操作系統(tǒng)提供的傳輸層UDP協(xié)議,利用LINUX的Socket網(wǎng)絡(luò)編程接口[9],實現(xiàn)實時視頻的網(wǎng)絡(luò)傳輸。
六、結(jié)論
隨著視頻編解碼器在速度和性能上的不斷提高,視頻處理終端的速度將更快,體積將更小。日益增強(qiáng)的用戶需要,使得視頻的實時傳輸和網(wǎng)絡(luò)服務(wù)不可避免。同時嵌入式系統(tǒng)基于計算機(jī)技術(shù),更加強(qiáng)調(diào)體積、功耗、成本、便攜化等等綜合因素。所以將兩者結(jié)合在一起而構(gòu)成的視頻傳輸系統(tǒng)用戶終端將具有不可比擬的優(yōu)越性。對于本文實現(xiàn)的系統(tǒng)而言,具體體現(xiàn)在:前端快速高效的圖像處理(可以自適應(yīng)地處理各種標(biāo)準(zhǔn)視頻和高效的圖像壓縮)、靈活的編碼方式選擇(DSP中的編碼程序可以靈活地更改)、強(qiáng)大的網(wǎng)絡(luò)處理能力和系統(tǒng)控制能力(可以在MPC860上實現(xiàn)非常豐富的網(wǎng)絡(luò)功能,比如從簡單的點到點傳輸?shù)綇?fù)雜的視頻會議,同時還可以方便靈活地擴(kuò)展各種應(yīng)用),因此完全有理由相信在嵌入式系統(tǒng)基礎(chǔ)上搭建的視頻傳輸系統(tǒng)平臺具有廣闊的市場前景。當(dāng)然在以應(yīng)用為主的開發(fā)過程中,同時也必然推動了對嵌入式操作系統(tǒng)本身的研究和視頻處理算法以及芯片的研究開發(fā)。
在本文所構(gòu)建的用戶終端傳輸平臺上,如何提供更為滿意的網(wǎng)絡(luò)流量控制和平滑的視頻流傳輸應(yīng)用服務(wù)將是以后進(jìn)一步研究的方向。
參考文獻(xiàn)
[1]ITU-T Recommendation H.263,Video Coding for Low Bit Rate Communication[S].
[2]Document JVT-C167,Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG. Draft ITU-T Recommendation H.264(a.k.a"H.26L")[S].
[3]ISO/IEC JTC 1/SC 29/WG 1 N1803:2000,JPEG2000 requirements and profiles version6.3[S].
[4]ISO/IEC/JTC1/SC29/WG11 N2687,MPEG-4 Video Verification Model Version 13.0[S].
[5]Busse I, Deffner B,et al. Dynamic QoS control of multimedia applications based on RTP[J]. Computer Communications, 1996, 19(1):49~58.
[6]Wang Yao,Zhu Qin-Fan.Error control and concealment for video communication:A review[J].Proceedings of the IEEE,1998,86(5):974~997.
[7]Padhye J, Firoiu V, Towsley D, et al. Modeling TCP throughput: A simple model and its empirical validation[A].ACM SIGCOMM 98[C]. Vancouver, 1998.
[8]Chiu D, Jani R. Analysis of the increase and decrease algorithms for congestion avoidance in computer networks[J]. Computer Networks and ISDN Systems, 1989, 9(1):2~13.
[9]Pomerantz Ori.The Linux Kernel Module Programming Guide(Version 1.0)[Z].Linux Documentation Project,1999.
出處
評論