實時視頻網(wǎng)絡傳輸系統(tǒng)實現(xiàn)技術(shù)
——
摘 要:實時視頻網(wǎng)絡傳輸技術(shù)的研究對開展視頻應用具有重大意義。本文給出了一個實時視頻網(wǎng)絡傳輸系統(tǒng)的實現(xiàn)框圖,并結(jié)合該原理框圖,分析了實時視頻網(wǎng)絡傳輸系統(tǒng)的關(guān)鍵技術(shù):視頻采集、視頻編碼/解碼和網(wǎng)絡傳輸控制協(xié)議。其中特別強調(diào)了發(fā)送端的面向通信的視頻編碼、接收端的錯誤隱藏和差錯恢復和提供視頻應用服務質(zhì)量保護(QoS)的網(wǎng)絡傳輸控制協(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)絡通信技術(shù)的發(fā)展使得視頻流媒體應用日益廣泛。在提供流媒體服務的系統(tǒng)中需要考慮兩個主要問題:如何獲取數(shù)字視頻信息?怎樣對獲取的視頻信息進行有效、可靠傳輸?針對信息的獲取,隨著各種高性能視頻采集芯片的出現(xiàn),如SAA7111、SAA7114、TVP5145等,使得視頻采集系統(tǒng)的性能越來越穩(wěn)定、可靠且能夠提供更為滿意的視頻采集質(zhì)量;對于后者的關(guān)鍵性發(fā)展,則體現(xiàn)為各種視頻編碼標準的制訂(如H.26X[1,2]系列、JPEGE[3]和MPEG[4]系列)和網(wǎng)絡傳輸技術(shù)的發(fā)展(包括網(wǎng)絡交換技術(shù)和網(wǎng)絡傳輸控制協(xié)議的發(fā)展)。
流媒體應用潛在地需要確定的收發(fā)同步、較寬的傳輸帶寬、低的質(zhì)量抖動、確知的傳輸延時、對誤碼不是非常敏感但對錯誤重傳延時非常敏感等,而目前基于TCP/IP的數(shù)據(jù)傳輸網(wǎng)絡在本質(zhì)上是盡力而為的網(wǎng)絡,是為傳統(tǒng)數(shù)據(jù)業(yè)務提供傳輸服務的網(wǎng)絡,傳輸帶寬的波動是不可避免的,傳輸延時也是隨機的[5]。因此如何在TCP/IP網(wǎng)絡上公平地提供流媒體服務與傳統(tǒng)數(shù)據(jù)業(yè)務是網(wǎng)絡傳輸控制協(xié)議需要考慮的核心問題。
本文在分析實時視頻網(wǎng)絡傳輸系統(tǒng)的系統(tǒng)構(gòu)成和傳輸協(xié)議的基礎(chǔ)上,給出了實時視頻網(wǎng)絡傳輸系統(tǒng)的組成框圖。結(jié)合該框圖,分析了發(fā)送模塊的3個核心子模塊:視頻采集子模塊,主要功能在于完成模擬視頻到數(shù)字視頻的轉(zhuǎn)換;視頻編碼子模塊,對獲取的原始數(shù)字視頻進行編碼,生成符合一定標準的,適應網(wǎng)絡傳輸?shù)拿嫦蛲ㄐ诺囊曨l流;視頻網(wǎng)絡傳輸控制子模塊,提供編碼視頻的實時、穩(wěn)健的網(wǎng)絡應用。相應地用接收模塊是發(fā)送模塊的逆。最后與嵌入式系統(tǒng)開發(fā)相結(jié)合,搭建了一個完整的實時視頻傳輸系統(tǒng)用戶終端開發(fā)平臺。
二、實時視頻網(wǎng)絡傳輸系統(tǒng)實現(xiàn)框圖
一個完整的實時視頻網(wǎng)絡傳輸系統(tǒng)包括視頻采集、視頻編碼、傳輸控制協(xié)議處理、通信網(wǎng)絡、視頻解碼。其功能為:在具有隨機時延特性和丟包特性的基于TCP/IP的通信網(wǎng)絡上提供視頻應用服務。原理框圖如圖1所示。
在圖1所示的系統(tǒng)中,整個視頻流的處理、傳輸流程如下:在視頻發(fā)送端,對模擬視頻進行采樣,獲得數(shù)字視頻并進行視頻編碼,或者直接對輸入的數(shù)字視頻進行編碼,生成適應于網(wǎng)絡傳輸?shù)拿嫦蚓W(wǎng)絡通信的視頻碼流;根據(jù)反饋信息,估計網(wǎng)絡的可用傳輸帶寬,自適應地調(diào)整編碼器的編碼輸出速率(包括信源碼率的調(diào)整與信道碼率的調(diào)整),使得視頻碼流能夠滿足當前網(wǎng)絡傳輸可用帶寬的限制;在接收端,對接收的視頻流進行解碼、重構(gòu)視頻信號、計算當前網(wǎng)絡傳輸參數(shù)(如傳輸中的丟包率等)并發(fā)送反饋控制信息。
三、視頻采集模塊
視頻采集模塊主要由視頻A/D、視頻D/A、同步邏輯控制、視頻處理、數(shù)據(jù)存儲器構(gòu)成。視頻采集系統(tǒng)的基本構(gòu)成框圖如圖2所示。
A/D部分是將各種標準的模擬視頻信號轉(zhuǎn)換成數(shù)字視頻信號,作為視頻處理子單元的輸入數(shù)據(jù);邏輯產(chǎn)生單元通常選用FPGA或CPLD來完成各種同步邏輯控制,保證采集的實時性;對視頻數(shù)據(jù)進行分析和處理,是整個采集模塊的靈魂,但所需運算量常常較大,為了保證視頻處理的實時性,常采用視頻處理專用芯片、高速DSP、FPGA和DSP等來完成視頻處理。
視頻采樣芯片可選用TI公司的數(shù)字視頻解碼器TVP5145,它能將NTSC、PAL、SECAM制式的模擬視頻轉(zhuǎn)換為數(shù)字復合視頻。在本文所搭建的系統(tǒng)中,視頻A/D部分采用Philips公司的可編程視頻輸入處理芯片SAA7111,該器件采用CMOS工藝,包含四路模擬視頻輸入通道,通過I2C總線,主機可以方便地對該器件進行初始化。同時SAA7111內(nèi)部可以實現(xiàn)模擬通道選擇并可對輸入視頻進行抗混疊濾波,并包含兩個8位的A/D轉(zhuǎn)換器。芯片還實現(xiàn)了自動鉗位、自動增益控制(AGC)、時鐘產(chǎn)生、多制式解碼,另外對亮度、色度和飽和度也是在片內(nèi)進行控制的。芯片的最大特點在于僅需一個24.576 MHz的晶振就可滿足所有視頻標準的應用,且在片內(nèi)實現(xiàn)制式的自動檢測,因此使得視頻桌面系統(tǒng)、數(shù)字電視系統(tǒng)、視頻電話、圖像處理等的開發(fā)極為方便。
四、視頻編碼/解碼模塊
視頻編碼模塊將數(shù)字視頻信號壓縮為滿足一定視覺質(zhì)量要求并且符合一定標準的數(shù)據(jù)流。在視頻流的網(wǎng)絡通信應用中,特別強調(diào)編碼器所生成的視頻流應該對網(wǎng)絡傳輸帶寬的隨機波動具有自適應性。目前常采用可伸縮的視頻編碼器對視頻信號進行編碼??缮炜s的視頻編碼可以在時域、空域或正交變換域進行,基本思想是將碼流分成基本層和增強層。其中基本層碼流是必須傳輸?shù)?,包括提供最低質(zhì)量等級保證的視頻碼率和視頻序列的運動矢量;增加層是可選擇傳輸?shù)?,并且是可以根?jù)網(wǎng)絡的傳輸條件進行任意截斷的。在理想狀況下,視頻流的質(zhì)量將隨著接收增強層碼流的增加而改善。
以TCP/IP為基礎(chǔ)的計算機通信網(wǎng)絡是一個提供盡力而為(Best-effort)服務的網(wǎng)絡,無服務質(zhì)量(QoS)保證,并且數(shù)據(jù)包傳輸?shù)臅r延是隨機的,網(wǎng)絡丟包和網(wǎng)絡傳輸帶寬的波動是它固有的,因此為了能夠提供穩(wěn)定、平滑的流媒體服務,必須要在對網(wǎng)絡傳輸帶寬做出實時估計的前提下對視頻編碼器的編碼速率進行調(diào)整(包括信源碼流調(diào)整和信道碼率調(diào)整)和進行有選擇性的幀丟棄。適應于視頻網(wǎng)絡傳輸要求的編碼端數(shù)據(jù)流處理的原理框圖如圖3所示。
對照圖3,反饋控制模塊根據(jù)網(wǎng)絡的反饋信息,調(diào)整編碼器的編碼速率(信源碼率調(diào)整)和信道差錯控制(信道碼率調(diào)整)。調(diào)整的目標是在總輸出碼率受限的條件下(≤Rmax),使得信源碼率與信道碼率達到最佳分配,理論基礎(chǔ)是率失真函數(shù)(RD函數(shù))。非均勻糾錯保護就是對基本層采用具有最大糾刪能力的RS碼(該碼為極大最小距離可分碼,即MDS碼。用于糾刪時,能夠在n=k+r個數(shù)據(jù)包中任意接收到個數(shù)據(jù)包而恢復原始信息)或者具有很強信息保護能力的Turbo碼進行信道編碼,對增強層進行一般錯誤保護能力的編碼。并且為了降低信道突發(fā)誤碼對視頻碼流的影響,常對視頻數(shù)據(jù)包進行交織處理,以降低臨近數(shù)據(jù)包同時發(fā)生誤碼的概率,便于接收端的錯誤隱藏和恢復。
用戶終端解碼模塊的功能是編碼模塊的補。在視頻流的網(wǎng)絡傳輸中,丟包是不可避免的(特別是在無線網(wǎng)絡傳輸環(huán)境中)。為了保證完全正確的數(shù)據(jù)包傳輸,可以采用重傳的策略,但對于視頻流應用,因為對時延的敏感更勝于對丟包的敏感,所以在接收端,不需要強調(diào)完全正確的數(shù)據(jù)包傳輸。在正確接收的數(shù)據(jù)包基礎(chǔ)上如何提供最大滿意程度的視頻質(zhì)量則為接收端解碼模塊的中心問題。該問題等價于如何利用接收數(shù)據(jù)包的冗余信息,提供更為滿意的解碼視頻流輸出。解決的辦法就是在接收端的錯誤隱藏和誤差恢復[6]。
錯誤隱藏的主要方法有:①基于空間相關(guān)性的錯誤隱藏:利用錯誤塊在同一幀內(nèi)相鄰塊的正確數(shù)據(jù)作內(nèi)插來重構(gòu)錯誤塊的數(shù)據(jù),以此來達到錯誤隱藏的目的。這種方能夠?qū)ο嗨苹蛘吆芏嗉毠?jié)的區(qū)域進行很有效的恢復;②基于時間相關(guān)性的錯誤隱藏:這種方法是利用時間上相鄰的幀具有很強的相關(guān)性來進行錯誤隱藏。
在上面所述的傳統(tǒng)方法基礎(chǔ)上,錯誤隱藏的一個新的發(fā)展是采用自適應的方法進行改進,即根據(jù)圖像的特點和誤碼的類型來選擇相應的恢復方法或者是這幾種方法的結(jié)合。自適應的一種準則是恢復圖像的峰值信噪比(PSNR)最大化,結(jié)合的方式有線性加權(quán)合并、最大信噪比合并等。同時隨著MPEG-4基于對象編碼技術(shù)的完善,可以采用基于主元分析的錯誤隱藏。具體實現(xiàn)為:在基于模型的圖像編碼上對每一個對象找出其特征模型,然后在特征模型上進行投影,得到投影系數(shù);再由這些投影系數(shù)重建圖像,作為恢復的最終結(jié)果。投影過程可以是循環(huán)的。
在本文所構(gòu)建的傳輸用戶終端平臺上,編碼模塊采用Analog公司的實時視頻壓縮解壓芯片ADV611和DSP芯片ADSP2185,用以完成視頻的編碼。ADV611是AD公司基于小波變換的視頻編解碼芯片ADV6XX系列的一款,該系列芯片還包括ADV601、ADV601LC、ADV612等,它的最大特性就是具有質(zhì)量窗特性,可以使得每場視頻圖像中的一部分較其它的部分得到更高的圖像解壓效果。質(zhì)量窗的原理是:用戶定義一個任意尺度和位置的方框,在這個方框內(nèi)部圖像按照原來的壓縮比進行壓縮,對于方框外的圖像按照用戶設(shè)定的高壓縮比值C進行壓縮。如此則可以在解壓縮時使得方框內(nèi)的圖像得到更大的對比度(相對于方框外的圖像而言)。
圖4給出了ADV611的內(nèi)部功能框圖。
原始的數(shù)字視頻經(jīng)過I/O接口后,在質(zhì)量窗的控制下進行小波變換和幀抽取、量化、游程編碼、熵編碼,產(chǎn)生壓縮后的編碼視頻數(shù)據(jù)流,送入片內(nèi)的FIFO。在FIFO中的數(shù)據(jù)達到主機在寄存器中的設(shè)定值時,發(fā)出中斷請求,從主機接口發(fā)送數(shù)據(jù)流到主機。當ADV611用于解碼時,數(shù)據(jù)流的方向與此相反。
從上面可以看出在編碼或者解碼的過程中各種壓縮、解壓參數(shù)是要依賴主機從主機接口傳輸給ADV611的。也就是說需要主機給ADV611提供各種編碼參數(shù)。因此采用一片AD公司的ADSP2185完成對ADV611所需的各種參數(shù)的計算和傳輸,同時對ADV611編碼后的裸壓縮數(shù)據(jù)流進行網(wǎng)絡傳輸編碼,生成適應網(wǎng)絡傳輸?shù)囊曨l流。
五、傳輸控制、協(xié)議處理模塊
視頻流傳輸與傳統(tǒng)的TCP/IP網(wǎng)絡的數(shù)據(jù)傳輸有明顯的區(qū)別,主要表現(xiàn)在:傳統(tǒng)的數(shù)據(jù)傳輸對傳輸延時和傳輸抖動沒有嚴格的要求,但是有嚴格的差錯控制和錯誤重傳機制。而視頻流要求傳輸具有實時性,對同步要求較高,并且對傳輸延時和抖動非常敏感,但在一定的情況下可以允許分組丟失,即可以接受一定程度的傳輸誤碼。并且流媒體服務需要滿足廣播和多播應用,同時應具有根據(jù)網(wǎng)絡的實時可用傳輸帶寬自適應地調(diào)整視頻的傳輸質(zhì)量的能力。
基于上述顯著的不同網(wǎng)絡應用要求,若要在Internet上面提供流媒體數(shù)據(jù)服務,則需要使用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)絡傳輸中的流量控制和擁塞控制。
網(wǎng)絡擁塞控制是傳輸控制協(xié)議提供流媒體服務時需要處理的核心問題。解決的基本思路是:估計網(wǎng)絡的可用帶寬,然后根據(jù)網(wǎng)絡當前的吞吐量調(diào)整終端的數(shù)據(jù)輸出速率,使得終端的碼率能自適應地隨著網(wǎng)絡傳輸條件的變化而變化。估計網(wǎng)絡可用帶寬主要基于RTT(網(wǎng)絡傳輸往返時間)和丟包率進行估計[7];對速率的調(diào)整,常采用AIMD(Additive Incresae,Multiplication Decrease)算法(加法增,乘法減)[8]算法進行擁塞控制。
圖5給出了視頻網(wǎng)絡傳輸中所使用的傳輸控制協(xié)議。
其中,對應用程序生成流媒體數(shù)據(jù)進行打包處理,并進行RTP協(xié)議數(shù)據(jù)封裝;將RTP協(xié)議數(shù)據(jù)封裝在UDP的消息字段,然后進行IP數(shù)據(jù)封裝;經(jīng)過傳輸網(wǎng)絡完成數(shù)據(jù)包的發(fā)送。RTP協(xié)議數(shù)據(jù)包的包頭部分含有數(shù)據(jù)包的載荷類型(Payload Type)、序列號(Sequence Number)、時間戳(Timestamp)和同步標識符(Synchronization Source Identifier)等。利用RTP包頭的信息,采取適當緩存的工作方式,可以做到視頻流的正確解碼播放與回放。RTCP數(shù)據(jù)包對流媒體數(shù)據(jù)不進行封裝,它只封裝發(fā)送端或者接收端的發(fā)送、接收統(tǒng)計信息(比如傳輸延時、傳輸丟包率等)。利用RTCP的反饋信息,在發(fā)送端能夠估計出網(wǎng)絡的傳輸帶寬,實時地根據(jù)網(wǎng)絡的傳輸條件自適應地調(diào)整編碼器的編碼速率,使得在網(wǎng)絡傳輸帶寬波動的情況下可以提供穩(wěn)定的視頻流服務。
在需要提供流媒體的點對點或者一對多、多對多的通信業(yè)務時,還需要使用與具體的通信網(wǎng)絡環(huán)境相對應的傳輸控制協(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)絡傳輸平臺上面,傳輸控制、協(xié)議處理模塊的硬件平臺以MPC860為核心,結(jié)合嵌入式的LINUX系統(tǒng)開發(fā),在用戶程序平面設(shè)計基于RTP/RTCP的應用程序,通過操作系統(tǒng)提供的傳輸層UDP協(xié)議,利用LINUX的Socket網(wǎng)絡編程接口[9],實現(xiàn)實時視頻的網(wǎng)絡傳輸。
六、結(jié)論
隨著視頻編解碼器在速度和性能上的不斷提高,視頻處理終端的速度將更快,體積將更小。日益增強的用戶需要,使得視頻的實時傳輸和網(wǎng)絡服務不可避免。同時嵌入式系統(tǒng)基于計算機技術(shù),更加強調(diào)體積、功耗、成本、便攜化等等綜合因素。所以將兩者結(jié)合在一起而構(gòu)成的視頻傳輸系統(tǒng)用戶終端將具有不可比擬的優(yōu)越性。對于本文實現(xiàn)的系統(tǒng)而言,具體體現(xiàn)在:前端快速高效的圖像處理(可以自適應地處理各種標準視頻和高效的圖像壓縮)、靈活的編碼方式選擇(DSP中的編碼程序可以靈活地更改)、強大的網(wǎng)絡處理能力和系統(tǒng)控制能力(可以在MPC860上實現(xiàn)非常豐富的網(wǎng)絡功能,比如從簡單的點到點傳輸?shù)綇碗s的視頻會議,同時還可以方便靈活地擴展各種應用),因此完全有理由相信在嵌入式系統(tǒng)基礎(chǔ)上搭建的視頻傳輸系統(tǒng)平臺具有廣闊的市場前景。當然在以應用為主的開發(fā)過程中,同時也必然推動了對嵌入式操作系統(tǒng)本身的研究和視頻處理算法以及芯片的研究開發(fā)。
在本文所構(gòu)建的用戶終端傳輸平臺上,如何提供更為滿意的網(wǎng)絡流量控制和平滑的視頻流傳輸應用服務將是以后進一步研究的方向。
參考文獻
[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.
出處
評論