新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 實時視頻網絡傳輸系統實現技術

        實時視頻網絡傳輸系統實現技術

        ——
        作者:楊志偉,馮宗哲,郭寶龍 時間:2006-07-05 來源:《電訊技術》雜志/中國測控網 收藏

         摘 要:實時視頻傳輸技術的研究對開展視頻應用具有重大意義。本文給出了一個實時視頻傳輸系統的實現框圖,并結合該原理框圖,分析了實時視頻傳輸系統的關鍵技術:視頻采集、視頻編碼/解碼和網絡傳輸控制協議。其中特別強調了發送端的面向通信的視頻編碼、接收端的錯誤隱藏和差錯恢復和提供視頻應用服務質量保護(QoS)的網絡傳輸控制協議,同時給出具體的實現方式。最后與嵌入式系統開發相結合,搭建了一個用戶終端開發平臺。
          關鍵詞:視頻采集;視頻通信;視頻編碼;嵌入式操作系統 
        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) 
          Abstract:Research 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. 
          Keywords:Video capturing;Video communication;Video encoding;Embedded operating system 
        一、引言
          視頻技術和網絡通信技術的發展使得視頻流媒體應用日益廣泛。在提供流媒體服務的系統中需要考慮兩個主要問題:如何獲取數字視頻信息?怎樣對獲取的視頻信息進行有效、可靠傳輸?針對信息的獲取,隨著各種高性能視頻采集芯片的出現,如SAA7111、SAA7114、TVP5145等,使得視頻采集系統的性能越來越穩定、可靠且能夠提供更為滿意的視頻采集質量;對于后者的關鍵性發展,則體現為各種視頻編碼標準的制訂(如H.26X[1,2]系列、JPEGE[3]和MPEG[4]系列)和網絡傳輸技術的發展(包括網絡交換技術和網絡傳輸控制協議的發展)。 
          流媒體應用潛在地需要確定的收發同步、較寬的傳輸帶寬、低的質量抖動、確知的傳輸延時、對誤碼不是非常敏感但對錯誤重傳延時非常敏感等,而目前基于TCP/IP的數據傳輸網絡在本質上是盡力而為的網絡,是為傳統數據業務提供傳輸服務的網絡,傳輸帶寬的波動是不可避免的,傳輸延時也是隨機的[5]。因此如何在TCP/IP網絡上公平地提供流媒體服務與傳統數據業務是網絡傳輸控制協議需要考慮的核心問題。
          本文在分析實時視頻網絡傳輸系統的系統構成和傳輸協議的基礎上,給出了實時視頻網絡傳輸系統的組成框圖。結合該框圖,分析了發送模塊的3個核心子模塊:視頻采集子模塊,主要功能在于完成模擬視頻到數字視頻的轉換;視頻編碼子模塊,對獲取的原始數字視頻進行編碼,生成符合一定標準的,適應網絡傳輸的面向通信的視頻流;視頻網絡傳輸控制子模塊,提供編碼視頻的實時、穩健的網絡應用。相應地用接收模塊是發送模塊的逆。最后與嵌入式系統開發相結合,搭建了一個完整的系統用戶終端開發平臺。 
        二、實時視頻網絡傳輸系統實現框圖
          一個完整的實時視頻網絡傳輸系統包括視頻采集、視頻編碼、傳輸控制協議處理、通信網絡、視頻解碼。其功能為:在具有隨機時延特性和丟包特性的基于TCP/IP的通信網絡上提供視頻應用服務。原理框圖如圖1所示。

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 建平县| 武邑县| 咸宁市| 浙江省| 南和县| 三台县| 定西市| 中牟县| 宾川县| 蓝田县| 南皮县| 定兴县| 承德市| 集安市| 呼伦贝尔市| 鞍山市| 平泉县| 沙河市| 白朗县| 志丹县| 利川市| 樟树市| 九台市| 定日县| 光山县| 新乐市| 荣昌县| 原平市| 揭东县| 星座| 凤凰县| 陈巴尔虎旗| 杭锦旗| 贺兰县| 定襄县| 庄河市| 蚌埠市| 鹤峰县| 长沙市| 宜都市| 青川县|