摘 要:給出了一種無線視頻傳輸系統(tǒng)的設(shè)計(jì)方法。發(fā)送部分的設(shè)計(jì)是基于TI開放式多媒體應(yīng)用平臺(tái)(OMAP),接收部分由普通PC控制。將采集到的圖像數(shù)據(jù)按MPEG[CD*2]4或MJPEG標(biāo)準(zhǔn)進(jìn)行編碼,得到的碼流通過藍(lán)牙進(jìn)行傳輸。對(duì)于MPEG[CD*2]4碼流,幀率可以達(dá)到30 f/s,傳輸距離可以達(dá)到100 m。對(duì)于MJPEG碼流,可以得到高質(zhì)量的圖片。當(dāng)接收部分只接收數(shù)據(jù)而不進(jìn)行解碼時(shí),80 m內(nèi)的穩(wěn)定的傳輸速率可達(dá)到11 Mb/s。
關(guān)鍵詞:藍(lán)牙;無線傳輸;MPEG-4;MJPEG
中圖分類號(hào):TN9198 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004373X(2008)0101803
Design of Wireless Video Transmission System
WANG Yingli,ZHUANG Yiqi,TANG Hualian,LI Cong
(School of Microelectronics,Xidian University,Xi′an,710071,China)
Abstract:This paper presents the design of a wireless video transmission system.The transmitting part is designed on the basis of TI′s Open Multimedia Application Platform(OMAP).The receiving part is controlled by common PC.The video data we collected is encoded by the MPEG[CD*2]4 or MJPEG standard,and the encoded bitstream is transferred by Bluetooth.For the MPEG[CD*2]4 bitstream,the frame rate can reach 30 f/s and the transmission distance can reach 100 meters.For the MJPEG bitstream,the picture with high quality is received.When the receiving part receives data only and doesn′t decode the data,the stable transmission speed can reach 1.1Mb/s in 80 meters.
Keywords:bluetooth;wireless transmission;MPEG[CD*2]4;MJPEG
1 引 言
隨著無線通信技術(shù)和視頻壓縮技術(shù)的迅速發(fā)展,使得無線視頻傳輸成為人們研究的熱點(diǎn)。目前的短距離無線通訊技術(shù)有藍(lán)牙、紅外、IEEE 802.11無線局域網(wǎng)技術(shù)、HomeRF家用無線局域網(wǎng)技術(shù)、Zigbee技術(shù)和UWB技術(shù)等。與其他技術(shù)相比,藍(lán)牙具有成本低、功耗低、體積小和應(yīng)用范圍廣泛等特點(diǎn)[1],但其帶寬有限,而視頻信息的數(shù)據(jù)量十分驚人,要實(shí)現(xiàn)無線視頻傳輸,必須對(duì)視頻信息進(jìn)行壓縮編碼?,F(xiàn)有的視頻壓縮標(biāo)準(zhǔn)如MPEG[CD*2]4,H.263和H.264等都可以滿足無線實(shí)時(shí)視頻傳輸系統(tǒng)的要求。
基于以上考慮,本文設(shè)計(jì)了一個(gè)無線視頻傳輸系統(tǒng),說明了該系統(tǒng)的硬件架構(gòu)和軟件設(shè)計(jì),并進(jìn)行了實(shí)驗(yàn)測試和數(shù)據(jù)分析。
2 硬件架構(gòu)
系統(tǒng)硬件的實(shí)現(xiàn)方案為:發(fā)送端由攝像機(jī),專用視頻編碼芯片、OMAP5910和藍(lán)牙模塊CLASS1(BC04)等部分組成。該藍(lán)牙模塊,發(fā)射功率約為100 mW(20 dBm),支持藍(lán)牙2.0+EDR協(xié)議,最高傳輸速率為3 Mb/s,傳輸距離可達(dá)100 m,天線是普通的微帶天線。
視頻編碼部分使用專用視頻編碼芯片。該芯片通過USB口供電和傳輸數(shù)據(jù),輸出的視頻碼流可以是MPEG[CD*2]1,MPEG[CD*2]2,MPEG[CD*2]4,MJPG或者H.263格式,輸出圖像的分辨率范圍為64×64~720×576,而且可以根據(jù)具體需要修改相應(yīng)寄存器和編碼參數(shù)的設(shè)置。
對(duì)于TI OMAP5910 SoC,其主要作用是運(yùn)行嵌入式Linux操作系統(tǒng),配置專用視頻編碼芯片上的控制寄存器,初始化藍(lán)牙模塊,運(yùn)行和藍(lán)牙協(xié)議棧相關(guān)的應(yīng)用程序。該SoC有32 MB的SDRAM以及4 MB的FLASH。SDRAM用來運(yùn)行操作系統(tǒng),應(yīng)用程序以及文件系統(tǒng),F(xiàn)LASH用來存儲(chǔ)內(nèi)核鏡像文件和文件系統(tǒng)。OMAP5910 SoC中的ARM925MPU可滿足控制和接口方面的處理需要[2]。
接收端由藍(lán)牙模塊CLASS1(BC04),PC主機(jī)和顯示器組成,系統(tǒng)構(gòu)架如圖1所示。
工作過程為攝像機(jī)將外界圖像轉(zhuǎn)換為視頻信號(hào),將視頻信號(hào)傳遞給專用視頻編碼芯片得到標(biāo)準(zhǔn)的MPEG[CD*2]4,MJPEG等格式的碼流,然后再將編碼后的碼流存儲(chǔ)到OMAP5910的SDRAM中,最后通過藍(lán)牙模塊CLASS1(BC04)發(fā)送出去。接收過程為發(fā)送的逆過程,通過藍(lán)牙模塊CLASS1(BC04)接收到碼流數(shù)據(jù),PC主機(jī)部分再進(jìn)行存儲(chǔ)、解碼等處理,最終將解碼后的圖像送到顯示器進(jìn)行顯示。
3 軟件設(shè)計(jì)
3.1 藍(lán)牙協(xié)議的軟件實(shí)現(xiàn)
和許多通信系統(tǒng)一樣,藍(lán)牙的通信協(xié)議也采用層次式結(jié)構(gòu)。藍(lán)牙協(xié)議可以分為4層[3],即核心協(xié)議層、電纜替代協(xié)議層、電話控制協(xié)議層和可選協(xié)議層。藍(lán)牙的核心協(xié)議包括基帶協(xié)議(Baseband)、鏈路管理協(xié)議(LMP)、邏輯鏈路控制與適應(yīng)協(xié)議(L2CAP)以及業(yè)務(wù)搜尋協(xié)議(SDP)四部分;電纜替代協(xié)議層包括基于TS 07.10的RFCOMM協(xié)議;電話控制協(xié)議層包括TCS二進(jìn)制、AT命令集;可選協(xié)議根據(jù)不同的應(yīng)用可以包括很多,例如PPP,UDP/TCP/IP,OBEX,WAP,vCard,vCal,IrMC以及WAE等。
除上述協(xié)議層外,規(guī)范還定義了主機(jī)控制器接口HCI(HostControl Interface),他為基帶控制器、鏈路管理器、硬件狀態(tài)和控制寄存器提供命令接口。以HCI作為分界線,將藍(lán)牙協(xié)議分為底層和應(yīng)用層。通過HCI來實(shí)現(xiàn)底層和應(yīng)用層的連接。
藍(lán)牙通信的具體實(shí)現(xiàn)方案有多種,既可以全部由硬件芯片來實(shí)現(xiàn),也可以采用硬件和軟件結(jié)合的方法。本系統(tǒng)采用硬件和軟件相結(jié)合的方法,其中基帶和鏈路管理由藍(lán)牙模塊CLASS1(BC04)實(shí)現(xiàn),并通過HCI交互;L2CAP和SDP等采用軟件實(shí)現(xiàn)。藍(lán)牙軟件協(xié)議棧在系統(tǒng)中的實(shí)現(xiàn)如圖2所示。藍(lán)牙視頻碼流的發(fā)送是當(dāng)發(fā)送端和接收端建立ACL鏈接后,通過SPP(Serial Port Profile)層應(yīng)用框架進(jìn)行傳輸。
3.2 發(fā)送端的軟件設(shè)計(jì)
發(fā)送端的軟件包括嵌入式Linux操作系統(tǒng),藍(lán)牙軟件和其他應(yīng)用程序。根據(jù)發(fā)送端的硬件架構(gòu)和數(shù)據(jù)流動(dòng)方向設(shè)計(jì)的軟件流程圖如圖3所示。發(fā)送端首先將FLASH中的內(nèi)核鏡像文件解壓到SDRAM中,并運(yùn)行操作系統(tǒng),然后初始化藍(lán)牙模塊和配置專用編碼芯片,當(dāng)和接收端建立好ACL鏈路后,發(fā)送端分為兩個(gè)進(jìn)程,一個(gè)用于采集數(shù)據(jù)和編碼,另一個(gè)用于碼流的轉(zhuǎn)存和發(fā)送,整個(gè)系統(tǒng)開始工作。應(yīng)用程序主要是配置專用視頻編碼芯片來實(shí)現(xiàn)不同的視頻編碼模式,參數(shù)的設(shè)置必須和藍(lán)牙的傳輸速率匹配,圖像傳輸?shù)膶?shí)時(shí)性才能得到保證。
3.3 接收端的軟件設(shè)計(jì)
接收端的軟件包括MPEG[CD*2]4解碼程序,MJPEG(運(yùn)動(dòng)的JPEG圖像,即一張張的JPEG圖像的連續(xù)播放)解碼程序和藍(lán)牙協(xié)議棧等相關(guān)程序。接收端的簡易流程圖如圖4所示。接收端首先初始化藍(lán)牙模塊,根據(jù)發(fā)送端藍(lán)牙模塊的地址與發(fā)送端建立ACL鏈路,然后向發(fā)送端發(fā)送消息,接收碼流數(shù)據(jù),并解碼和顯示,整個(gè)通信系統(tǒng)建立起來。
通過多線程技術(shù)實(shí)現(xiàn)了藍(lán)牙接收數(shù)據(jù)和視頻解碼的同步運(yùn)行,主程序包括藍(lán)牙接收數(shù)據(jù)線程和解碼(包括視頻顯示)線程。由于在Linux系統(tǒng)中一個(gè)進(jìn)程中的線程之間可以共享一些全局變量,這樣通過設(shè)計(jì)全局的緩存就可以實(shí)現(xiàn)解碼線程和藍(lán)牙數(shù)據(jù)接收線程之間數(shù)據(jù)的交換。由于解碼器的速度大于藍(lán)牙接收數(shù)據(jù)的速度,可以在解碼函數(shù)中增加一些必要的等待語句(主要是等待碼流數(shù)據(jù)),來實(shí)現(xiàn)兩個(gè)線程之間的同步。接收端的線程如圖5所示,在創(chuàng)建解碼線程前,先進(jìn)行視頻模式的選擇,根據(jù)不同的視頻模式,創(chuàng)建解碼線程時(shí)調(diào)用不同的解碼函數(shù)。
4 實(shí)驗(yàn)結(jié)果和分析
系統(tǒng)傳輸速率的測試,當(dāng)發(fā)送端不停地發(fā)送數(shù)據(jù),而接收端只進(jìn)行數(shù)據(jù)的接收、速率統(tǒng)計(jì),而不進(jìn)行解碼時(shí),特定位置上的傳輸速率如表1所示,整個(gè)測試過程是在空曠地進(jìn)行的,取多次數(shù)據(jù)的平均值,通信距離可以達(dá)到110 m,增大藍(lán)牙模塊的發(fā)射功率和天線的增益可以進(jìn)一步提高藍(lán)牙的傳輸距離。
通過表1可以看到,80 m范圍內(nèi)傳輸速率都比較穩(wěn)定,在11 Mb/s左右。隨著距離的增加,傳輸速率在80 m后下降比較快。在距離100 m時(shí)傳輸速率也能達(dá)到803 kb/s。但是藍(lán)牙模塊CLASS1(BC04)理論上能達(dá)到3 Mb/s的傳輸速率,實(shí)際上在80 m內(nèi)的最高傳輸速率為12 Mb/s左右。在傳輸速率方面,研究發(fā)現(xiàn)藍(lán)牙傳輸?shù)拿恳话臄?shù)據(jù)量的大小對(duì)速率影響比較大。當(dāng)每一包的數(shù)據(jù)量的大小為1 510×8 b時(shí)傳輸速率不到1 Mb/s。當(dāng)每一包的數(shù)據(jù)量的大小為3 040×8 b時(shí),傳輸速率最高可以達(dá)到12 Mb/s左右。
最終通過配置專用視頻編碼芯片實(shí)現(xiàn)了三種模式的實(shí)時(shí)視頻傳輸:模式1:采用MPEG[CD*2]4編碼,圖像分辨率為352×288,傳輸?shù)乃俾蕿?12 kb/s,幀率為30 f/s;模式2:采用MPEG[CD*2]4編碼,圖像分辨率為496×384,傳輸?shù)乃俾蕿?68 kb/s,幀率為30 f/s;模式3:采用MJPEG編碼,圖像分辨率為640×480,幀率為2 f/s,此種模式的傳輸速率主要受信道影響,不用配置。在發(fā)送端與接收端距離為20 m時(shí)進(jìn)行測試,主觀圖像質(zhì)量非常好,三種視頻模式下的實(shí)驗(yàn)結(jié)果如表2所示。
對(duì)于模式1和模式2,延遲時(shí)間都在100 ms以內(nèi),基本上滿足實(shí)時(shí)性的要求。模式3的傳輸數(shù)據(jù)量比較大,圖像質(zhì)量比較高,但幀率比較低,延遲較大。
當(dāng)發(fā)送端與接收端距離為100 m時(shí),進(jìn)行測試,得到的實(shí)驗(yàn)數(shù)據(jù)如表3所示。此時(shí)模式1和模式2圖像質(zhì)量也比較好,實(shí)時(shí)性也很好。但模式3丟包嚴(yán)重,圖像質(zhì)量比較差,與其傳輸?shù)臄?shù)據(jù)量太大有關(guān)。
關(guān)于圖像質(zhì)量方面,由于無線信道是一種時(shí)變信道,存在多徑衰落,位差錯(cuò)率很高;壓縮后的視頻流是可變速率的,在網(wǎng)絡(luò)擁塞或數(shù)據(jù)突發(fā)時(shí),丟包嚴(yán)重;當(dāng)前廣泛應(yīng)用
的低碼率視頻應(yīng)用中的視頻壓縮標(biāo)準(zhǔn),如H.263/H.26L/H.264、MPEG[CD*2]2/4等,使用預(yù)測編碼和可變長度編碼去減少幀間的時(shí)間和統(tǒng)計(jì)冗余,這些措施可增大壓縮率,但會(huì)造成視頻信號(hào)受傳輸錯(cuò)誤的影響[4]。
對(duì)于模式1和模式2,碼流格式為MPEG[CD*2]4,由I幀(intra[CD*2]frame)和P幀(inter[CD*2]frame)構(gòu)成。I幀是獨(dú)立編碼的,沒有采用任何參考幀,可獨(dú)立解碼,每隔一定時(shí)間出現(xiàn)一次;P幀是當(dāng)前幀和前面的P幀或I幀的差值編碼構(gòu)成的。如果編碼時(shí)全是I幀,很少會(huì)出現(xiàn)圖像花的情況,但由于I幀的數(shù)據(jù)量比P幀的數(shù)據(jù)量大,傳輸?shù)膸什粫?huì)太高,但P幀數(shù)量如果太多,盡管幀率可以提高,但P幀使用預(yù)測編碼,一旦出現(xiàn)丟包現(xiàn)象,圖像質(zhì)量會(huì)嚴(yán)重變壞,直到I幀才可以恢復(fù)。經(jīng)過測試兩個(gè)I幀之間有5個(gè)P幀可以得到最佳的圖像質(zhì)量和很高的幀率。對(duì)于模式3,碼流格式為MJPEG格式,可以認(rèn)為每一幀都為I幀,傳輸?shù)臄?shù)據(jù)量較大,但圖像質(zhì)量比較高。
5 結(jié) 語
本文對(duì)無線視頻傳輸系統(tǒng)的硬件架構(gòu)和軟件設(shè)計(jì)都進(jìn)行了詳細(xì)地說明,實(shí)現(xiàn)了三種視頻模式,前兩種模式使用MPEG[CD*2]4編碼,延遲只有100 ms,實(shí)時(shí)性達(dá)到了要求,傳輸距離可以達(dá)到100 m,幀率能達(dá)到30 f/s。模式3使用MJPEG編碼,圖像質(zhì)量比較高,幀率可以進(jìn)一步提高。本文還探討了影響圖像質(zhì)量和傳輸速率等因素,當(dāng)接收端不進(jìn)行解碼時(shí)的最高傳輸速率為12 Mb/s。本系統(tǒng)成本低、圖像質(zhì)量高,可以應(yīng)用到視頻監(jiān)控,多媒體娛樂等許多領(lǐng)域。
參 考 文 獻(xiàn)
[1]馬建倉,羅亞軍,趙玉亭.藍(lán)牙核心技術(shù)及應(yīng)用[M].北京:科學(xué)技術(shù)出版社,2003.
[2]OMAP1510 Multimedia Process Technical Reference Manual[EB/OL].2002.
[3]Bluetooth Special Interest Group.Bluetooth Specification Version 2.0+EDR[S].November,2004.
[4]陳敏.網(wǎng)絡(luò)實(shí)時(shí)視頻傳輸研究[D].廣州:華南理工大學(xué),2004.
[5]劉嘉,莊奕琪,湯華蓮.藍(lán)牙視頻傳輸系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2006,29(17):18-20.
[6]鮑立,莊奕琪.基于藍(lán)牙的MPEG[CD*2]4無線視頻傳輸研究[J].電子科技,2003(23):36-38,40.
[7][美]Jerry D G.多媒體數(shù)字壓縮原理和標(biāo)準(zhǔn)[M].李煜暉,朱山風(fēng),段上為,等譯.北京:電子工業(yè)出版社,2000.
[8]沈蘭蓀,田棟.無線視頻傳輸技術(shù)的發(fā)展[J].電子技術(shù)應(yīng)用,2001,27(1):6[CD*2]9.
[9]李建,別紅霞.H.263無線視頻傳輸?shù)年P(guān)鍵技術(shù)改進(jìn)[J].計(jì)算機(jī)工程與應(yīng)用,2006,42(3):152-154,160.
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文?!?/p>