




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、分散式物件網(wǎng)路中即時影像傳輸系統(tǒng)的設(shè)計與實現(xiàn)彭仕鈞胡竹生國立交通大學(xué)電機與控制工程學(xué)系摘要 本論文利用分散式物件技術(shù),設(shè)計及實作即時影像傳輸系統(tǒng)於分散式物件環(huán)境中,至於影像壓縮法則是採用JPEG影像壓縮標準。由於本系統(tǒng)的應(yīng)用對於跨平臺的需求,也開發(fā)了影像解壓縮端的應(yīng)用軟體於Windows及Linux的平臺上。此外,也使用Embedded Linux為嵌入式作業(yè)系統(tǒng),發(fā)展了影像資訊家電(Video Information Appliance)的原型機,使影像的資訊也能透過分散式物件網(wǎng)路成功的傳送到嵌入式系統(tǒng)上。簡介多媒體資訊的需求對我們?nèi)粘I顏碚f,是越來越重要的事。但是多媒體在影像、聲音.等應(yīng)
2、用中,其資料量都是相當龐大的,在過去礙於傳輸頻寬、電腦運算速度、壓縮理論等因素,根本無法獲得即時的資訊。不過,在近幾年卻有了重大的變革,像是壓縮理論逐漸成熟降低了資訊量;許多多媒體的壓縮傳輸標準相繼的制訂,統(tǒng)一了多媒體的互通性;而拜電腦運算速度越來快之賜,許多複雜的多媒體運算也都得以實現(xiàn)。另外,像是網(wǎng)際網(wǎng)路的風行、傳輸頻寬的提昇,更讓即時獲得多媒體的資訊不再是一個奢侈的想法。但是在這種使用者眾多、計算量龐大、資料量複雜的系統(tǒng)中,傳統(tǒng)的網(wǎng)路架構(gòu)及較低階的程式設(shè)計已經(jīng)無法應(yīng)付, 因此,導(dǎo)入分散式物件技術(shù),利用其具有負擔分攤、風險分散、跨平臺、跨語言、程式易於發(fā)展及維護等特性,來建構(gòu)多媒體的網(wǎng)路架構(gòu)
3、,發(fā)展即時的多媒體應(yīng)用程式,實為一個不錯的解決方案。而網(wǎng)路頻寬實在是永遠都沒有辦法滿足我們的需求,尤其是在多媒體這種需要使用大量頻寬的應(yīng)用中,因此資料的壓縮是絕對有必要的。以影像資料來講,可以利用人眼對高頻的資料不敏感性、對亮度及色彩的不同敏銳度、資料與資料之間的重覆性、影像與影像之間的相關(guān)性等特性,去除掉不必要的資訊,以達到壓縮的目的。對於建構(gòu)一個應(yīng)用場合、平臺五花八門的多媒體環(huán)境來說,是否有支援跨平臺的功能是相當重要的一件事,也唯有具備此種功能,才能稱得上是完整的應(yīng)用環(huán)境。另外,由於嵌入式系統(tǒng)在後PC時代中將會是非常具有潛力的產(chǎn)品,尤其它在對多媒體資訊的擷取應(yīng)用中也扮演著重要的角色。所以,
4、如何成功的將多媒體資訊利用分散式物件技術(shù)與嵌入式系統(tǒng)結(jié)合也是相當重要的一件事。本論文的目標是利用分散式物件技術(shù),架構(gòu)出一個多媒體的環(huán)境,並實作即時影像傳輸於分散式物件環(huán)境中,至於影像壓縮法則是採用JPEG影像壓縮標準。另外,由於多媒體對於跨平臺的需求以及Linux有著穩(wěn)定、Open source等優(yōu)點,將實作影像解壓縮端的應(yīng)用軟體於Linux平臺上,除了展示本系統(tǒng)跨平臺的功能之外,更藉由Linux支援多種硬體平臺的特性,增加了應(yīng)用程式的移植性。此外,也使用Embedded Linux為嵌入式作業(yè)系統(tǒng),發(fā)展了影像資訊家電(Video Information Appliance)的原型機,將影像的
5、資訊也能透過分散式物件網(wǎng)路傳送到嵌入式系統(tǒng)上。Xcamba系統(tǒng)架構(gòu)Xcamba系統(tǒng):我們的系統(tǒng)要達成的目標為傳送即時影像的資料,且並沒有資料庫格式轉(zhuǎn)換的問題。另外,由於即時影像資料的擷取及壓縮必需要由Third Tier來完成,其負擔是相當重的,當用戶端的數(shù)量增加時,影像伺服器也一定要相對的增加才足夠應(yīng)付。因此Middle Tier也就必須要能夠負責將眾多影像伺服器隱藏起來、分散它們之間的負擔、及一旦有任何影像伺服器出錯時能夠迅速的處理等特性。而OMG(Object Management Group)所制定的CORBA(Common Object Request Broker Architec
6、ture)67剛好能滿足這些需求。它的ORB有著將伺服器的負擔分散的平均負荷功能、優(yōu)秀的容錯能力,又可以支援Naming Service、OAD,是我們的系統(tǒng)中Middle Tier的最佳選擇。 再來是因為CORBA跨平臺的特性,因此我們系統(tǒng)的影像用戶端程式(稱它為Xcamba Client),除了設(shè)計在Windows上執(zhí)行的版本之外,也製作了Linux版本。Linux版的Xcamba Client除了展現(xiàn)CORBA跨平臺的威力之外,將CORBA與Linux的結(jié)合應(yīng)用在Embedded Linux上,進而完成一個嵌入式系統(tǒng)-影像資訊家電-的原型機,更是相當重要的一環(huán)。而影像伺服器端(稱為Xca
7、mba Server),負責即時影像的壓縮、網(wǎng)路的傳輸,其所利用的擷取影像的介面為USB Camera,但是因為Linux核心到目前的版本都尚未正式的支源USB,而且有支援Linux的USB Camera也沒有幾家,受到這樣的限制,所以Xcamba Server只有完成在Windows平臺上的版本。經(jīng)由以上的分析,利用ORB搭配影像伺服器端、用戶端程式,即可建構(gòu)出Xcamba系統(tǒng)架構(gòu)。下圖為Xcamba的系統(tǒng)架構(gòu):關(guān)於跨平臺及嵌入式系統(tǒng)應(yīng)用:能夠跨平臺對一個分散式物件環(huán)境來說是一個最基本也是最重要的事情,因為你無法限制分散式的應(yīng)用只在某個平臺或某個硬體設(shè)備中,而是要將全部的事情都整合在一起。C
8、ORBA在某個程度的幫我們解決了跨平臺的問題,至於跨硬體平臺的目標就交給Linux來幫忙。Xcamba系統(tǒng)即是利用CORBA及Linux來達成即時影像傳輸在分散式物件環(huán)境中的實現(xiàn)。實現(xiàn)的部份還包括了在Embedded Linux平臺上,不過這一部份還需要影像壓縮法則的幫忙,因為大部份的嵌入式系統(tǒng)並沒有很好的硬體設(shè)備支援,必須要選擇嵌入式系統(tǒng)足以應(yīng)付的影像壓縮法才行。影像壓縮法則的選擇:在Intra Frame Coding中,Motion Compensation Coding要成功取決於Motion Vector是否準確。而Motion Vector的準確性則與影像的解析度有很大的關(guān)係,解析
9、度要夠高,所找出來的Motion Vector才會準確。但是在低位元率的即時影像傳輸中,影像的解析度並不允許太高,如果使用MC Coding會造成大部份的位元都在傳預(yù)測錯誤值。因此,不如把MC Coding所耗費的位元及時間用來提高影像品質(zhì)。越高的壓縮比,就需要越多的計算量,但是品質(zhì)卻會因為壓縮比的提高所造成的失真,在某些應(yīng)用中不太能接受,而Intra Frame Coding的計算量較小、影像品質(zhì)也好且嵌入式系統(tǒng)也能負擔計算量8??偫▉碚f,JPEG9應(yīng)該是最恰當?shù)倪x擇。而利用JPEG的標準來傳送影像,其實就是所謂的Motion JPEG,可以在下圖中所示:Xcamba系統(tǒng)實作分散式網(wǎng)路程式設(shè)
10、計:我們使用INPRISE公司的VisiBroker10來發(fā)展網(wǎng)路程式,它是目前支源平臺最多的CORBA發(fā)展工具。在CORBA的環(huán)境中,應(yīng)用系統(tǒng)主要是分為兩個部份。第一個部份是影像壓縮伺服器CORBA物件,也就是我們的Xcamba Server,負責影像的擷取、壓縮、並提供即時影像資料給用戶端。第二個部份就是使用者使用的用戶端應(yīng)用程式,也就是我們的Xcamba Client,負責跟Xcamba Server要影像資料、解壓縮影像、並顯示在用戶端的面前。CORBA物件是一個提供特定服務(wù)的元件,它藉由定義一組輸出的介面來宣告這個CORBA物件可以提供的服務(wù)。輸出介面中定義了用戶端應(yīng)用程式可以呼叫的
11、方法以及存取的特性。因此用戶端應(yīng)用程式只需要指明提供服務(wù)的CORBA物件名稱以及要呼叫的方法或是要存取的特性,就可以藉由ORB得到CORBA物件提供的服務(wù)。介面的定義方法語言就稱為Interface Description Language,利用它來撰寫CORBA物件的介面,而我們Xcamba的IDL 定義如下:/* RemoteVideo.idl */typedef sequence <unsigned short> rBinaryResult;typedef unsigned short rCmd10;interface RemoteVideo long GetData(in
12、long pipeindex,out rBinaryResult aResult,out rCmd aCmd);下圖為我們整個CORBA網(wǎng)路程式的發(fā)展流程:我們利用pipe來達成影像資料庫的功能,pipe的大小是可以改變的,而為了要有即時的效果,也就是不管眾多用戶端的速度不一,永遠都是把最新的資料傳送給用戶端,所以我們的pipe大小都設(shè)為2。也就是只要用戶端來要求影像資料,影像伺服器都會把正在壓縮的影像之外的另一張回傳。而因為即時影像的需求,也就是新的影像資料會一直把舊的影像資料覆蓋過去,並不需要有傳統(tǒng)pipe的保護動作,也就是不需要考慮pipe的資料放滿時的問題,程式使用pipe的架構(gòu)如圖6
13、-9所示。另外,關(guān)於互斥的設(shè)計仍然是需要的,也就是使用WaitForSingleObject( )來防止同時有兩個Thread對Pipe做存取的動作所造成資料污染的狀況。下圖為pipe的架構(gòu):整體程式架構(gòu)如下:Xcamba Server實作:Windows版的Xcamba Server是使用Borland C+ Builder來發(fā)展,抓取影像的方法則是遵循Microsoft Multimedia Programmer's Reference中的Video Capture部份。下圖為Xcamba Server Windows版的執(zhí)行畫面:Xcamba Client on MS Windo
14、ws 98:Windows版的Xcamba Client也是使用Borland C+ Builder來發(fā)展,Xcamba Client啟動後必須先Connect Server,之後按下Show Video後會啟動一個Thread,此Thread則會不斷的去跟Xcamba Server抓取影像資料回來,呼叫並傳資料給影像解壓縮程式,最後再將解壓縮後的結(jié)果顯示在用戶端的螢?zāi)簧?。下圖為Xcamba Client Windows版的執(zhí)行畫面:Xcamba Client on Slackware Linux:我們在Slackware Linux 7.0上開發(fā)Xcamba Client程式,發(fā)展的工具則是
15、使用K Develop Kit,並使用QT library做為X window上面的視窗程式設(shè)計123。在Xcamba Clinet的Linux版與Windows版不同點除了是GUI 的程式設(shè)計之外,在Linux版中則是使用了Timer的機制去跟Xcamba Server要影像資料。下圖為Xcamba Client Linux版的執(zhí)行畫面:Xcamba Client on Embedded Rose Linux:在嵌入式作業(yè)系統(tǒng)上是採用Digirose公司所發(fā)展的RoseLinux 1.04,至於嵌入式系統(tǒng)硬體部份是使用研華電腦(Advantech)公司所出產(chǎn)的CPC-2245 Mini Bi
16、scuit PC 5下圖為Xcamba Client Linux版在Panel PC上的執(zhí)行畫面:結(jié)果分析:壓縮的法則是採用JPEG,而因為是用在自行設(shè)計的系統(tǒng)中,所以並沒有將影像壓縮成標準的JPEG格式,也就是標頭檔並沒有與JPEG相容,不過,這樣是不會影響到壓縮的效率的。而壓縮的比例也可以由Quantization Table不同來選擇,當然,壓縮比越高,影像的品質(zhì)當然會比較差。在選擇一個影像品質(zhì)較好的壓縮下,320*240的影像大小,壓縮比大約為20到25倍左右,也就是說一張壓縮後的影像大約80k bit,應(yīng)用在10M bit的Ethernet中頻寬是足夠的,因此影像的frame rat
17、e也就限制在壓縮的計算量大小上面。對於即時影像的應(yīng)用,現(xiàn)在的PC已經(jīng)足以應(yīng)付這樣的計算量,不過,對於有些運算速度較慢的嵌入式系統(tǒng)來說,這部份可以藉由硬體、數(shù)位訊號處理器或是撰寫組合語言的幫忙來解決。結(jié)論與未來展望本論文完成了即時影像在分散式物件環(huán)境上的應(yīng)用,並利用CORBA這個分散式物件技術(shù),架構(gòu)了具有彈性、維護容易、具有物件導(dǎo)向優(yōu)點的多媒體環(huán)境,也成功的開發(fā)了多種平臺上的影像應(yīng)用軟體。至於影像壓縮方法是採用JPEG標準,它可以在一定的網(wǎng)路頻寬中得到令人滿意的影像品質(zhì)。我們實作了影像解壓縮端的應(yīng)用軟體於Linux平臺上,除了成功的展示了跨平臺的功能外,也在Linux平臺上的多媒體應(yīng)用增加了一個
18、例子。此外,也利用Embedded Linux為嵌入式作業(yè)系統(tǒng),在Advantech的Panel PC上發(fā)展了影像資訊家電的原型機,並將影像的資訊成功的傳送到嵌入式系統(tǒng)上。未來可以將動態(tài)影像壓縮標準(H.263/MPEG)實作在本系統(tǒng)上,以增加影像的壓縮率。而影像壓縮不只是可以用軟體來實現(xiàn),未來也可交給DSP數(shù)位訊號處理器或是專為影像壓縮設(shè)計的晶片來實行。另外,在目前為止Linux Kernel尚未完全的支援USB,不過在下一個版本的Linux Kernel 必定會對USB有一個穩(wěn)定的支援。此外,Linux最令人擔心的Driver問題,也有許多的廠商都承諾會發(fā)展USB Camera的Drive
19、r,其它像是對於Video for Linux這部份也有越來越多人在開發(fā)中。屆時,Xcamba Server也就可以移植到Linux的平臺上,當然,只要是CORBA有支援的平臺也都是可以發(fā)展的方向。另外,因為Xcamba系統(tǒng)只有實作出即時影像的部份,未來也可以將聲音部份納入。CORBA是一個很高階的分散式網(wǎng)路架構(gòu),下層不一定是只能跑在以TCP/IP為主的Ethernet上,其它像是無線網(wǎng)路都可以是應(yīng)用的範圍,利用CORBA來發(fā)展整個系統(tǒng),未來的擴充性、移植性都是很棒的。未來有需要的話,也可以像下圖一樣實作出中介層,處理資料庫存取、格式轉(zhuǎn)換的問題。未來也可以使用Java來發(fā)展影像解壓縮端軟體,這
20、樣一來用戶端則可以直接使用瀏覽器來觀看,輕易的解決版本的控制問題及省去使用者安裝的不便性,不過,Java的執(zhí)行速度可能是要考量的一個問題。下圖為結(jié)合WWW的架構(gòu):在嵌入式系統(tǒng)方面,可以發(fā)展的地方還有很多,像是改進Xcamba Client程式、移植Xcamba Client到不同的嵌入式系統(tǒng)、利用特殊硬體架構(gòu)來提昇速度都是不錯的方向。參考文獻1 Mattbias Kalle Dalbeimer, "Programming with Qt," O'REILLY, 1999.2 Michael K. Johnson and Erik W. Troan, "Linux Application Development," Addison-Wesley, 1999.3 Mike Loukides and Andy Oram, "Programming with GNU Software," O'Reilly, 1998.4 "RoseLinux User's Guide,&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寵物購銷合同范本
- 二零二五年度廠區(qū)綠色植被養(yǎng)護管理合同
- 2025年度網(wǎng)絡(luò)游戲銷售折扣及虛擬物品交易合同
- 2025年度智慧園區(qū)規(guī)劃與設(shè)計合同
- 二零二五年度在線教育平臺反擔保質(zhì)押協(xié)議
- 2025年度購房合同因中介誤導(dǎo)引發(fā)的合同解除與后續(xù)保障服務(wù)合同
- 2025年度水產(chǎn)品電商平臺入駐及廣告合作合同
- 工程投標的合同范本
- 二零二五年度三方合作協(xié)議違約流程及法律風險防范措施
- 二零二五年度專業(yè)家政保姆聘用服務(wù)協(xié)議
- 【申報書】高職院校高水平專業(yè)群建設(shè)項目申報書
- 《美特斯邦威公司財務(wù)現(xiàn)狀及其盈利能力問題探析(10000字論文)》
- 餐飲服務(wù)電子教案 學(xué)習任務(wù)4 擺臺技能(4)-西餐宴會餐臺擺臺
- 河南省公安基礎(chǔ)知識真題匯編1
- 內(nèi)陸常規(guī)貨物物流運輸代理協(xié)議三篇
- 2024年江蘇常州市教育基本建設(shè)與裝備管理中心招聘3人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 《護理交接班規(guī)范》課件
- 2022年新高考I卷讀后續(xù)寫David's run公開課課件-高三英語一輪復(fù)習
- 《語感與語言習得一:積累與探索》教案- 2023-2024學(xué)年高教版(2023)中職語文基礎(chǔ)模塊上冊
- 糧油食材配送投標方案(大米食用油食材配送服務(wù)投標方案)(技術(shù)方案)
- 祭掃烈士實施方案
評論
0/150
提交評論