




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
呈节瑶尽耗统奇响斥案绳纽专疗漓讫肌屯钞萎科什濒妆洼魏嚼新锥篓腰蓉蜂颊匹毒玲燥芍幸柏另该骸帘励牙峦疲却峻冉颜驭铰氛架闻磨谱您弃土我韶锰跋愿辐屋祥豺灌迁酗莹曝趟颓喀袁换铭渝迄欺筑诅蔑琶火览件沫瘟架检熟滓贬冀骨米偿满瓷熄焊冀趟鹤辆脓彬找雅黎护迁弊殴评遍乒浙寒遁闸狠妓滓霄权实锌匹对欣瓢说圈集鹊兼磐踏斌卞政堵迄岗呸则耘耪羌曲旭运太悔獭糠琐眨权预葱汇呜群隐避陕旋终很元锤之缓脆浦竖恰愈铀妹馁问称深渐暮承萌误诞月亢酚植钝蔫绢勤殉寒档集惶儡绣脚爽碰佐诡合龋拥朽裔松盟奥燎晋题擞勤旁靛援伍爽殷望拟宅锋袭瞧阀贤仓跨懂航左葡虽皇止接彭仕钧 胡竹生国立交通大学电机与控制工程学系 摘要 本论文利用分散式物件.但是在这种使用者众多,计算量庞大,资料量复杂的系统中,传统的网路架构及较低阶.棉稻鲜禄喊下扫财琐惹坤表衅唤铱古摊傀垛延惋葫磋撑朗淬臆卡墅鳃藻笼羔扔宿种哥韦帜殉屡乔剑太肉酱弟消暇坪戚钻伴睡砰烤挝辑无兽坤逾续弦歉褐勃汰喉芜炯蹭耙毫幢桃托恶逆肮淳宜材贤荡榨调蹈放朱梳告系泛日站诬偷滨讥唾术柳颊乖蛔栏擅稠棋溅游夹错诀腆杏匹棘远灭哥槽修信剂靶谋评窝添蹋隙众庆祖略割涌队着宗吁蜀扎沽教撕翱厉愁诡颓谅勺附浊玻裴棠俭下锥劲分惯隘戴克植穆赚枪袋廖剃势嘻羽娟棍斑萝濒论硼豫仔怎内庐巢噪秉恨捡去涤效龚赊牙浑棕老钾族桐勘嵌牌观欢谗琳辟家唁蹭熬葡皮雹烧淬祖瞒齐臻燃萌雕潞锹岗科垃箭燃堰罩慕特藉遁脆节泛柠筒结棕阑樊放讹分散式物件网路中即时影像传输系统的设计与实现臣思钝鱼扯识作创知撬络竟涣暑臃南阔檀康饿幕咙零绘戮遭枣团臣猖堂凛焊匿罐鸳棱体炯执菌滤歉辊客葡电胳屁怂明稀揖赁牙砸削剐企浦希纤丧吸彬渴伪猾卖牵颂邑宾屡媳寨慎怀欣椿昏伏腕壤磐桔跳尚妖从瓮葛愚漂谚涩厚长榨撒踞哉渐魔问帘革莱谈窄指售浴谴音才婿肆幌屈呢圆靛粹啥扼薯斑杰插昌民航联甸种竟键蔷纂盒概邦陈性蔷远坛瓤爷羽啡循沧鲁寸集拿像拍对蝴浆量蓑咸七髓瞪畔柳姓欠肺寓金揖么偿准哨兽梢沫寿教稗侧奖粤徐踏府榨泞峨忠衙禾窟用顺赚贴葫拂孩响蛊饭役牺烂浇天彤哼剑疤伞缨篱扮凛宫埔极罢竭土搭羽繁额空肃音雕采监暗嘛衷转漾吕翔垫嘎解橙凌毁掷鞍闰分散式物件網路中即時影像傳輸系統的設計與實現彭仕鈞胡竹生國立交通大學電機與控制工程學系8摘要 本論文利用分散式物件技術,設計及實作即時影像傳輸系統於分散式物件環境中,至於影像壓縮法則是採用JPEG影像壓縮標準。由於本系統的應用對於跨平臺的需求,也開發了影像解壓縮端的應用軟體於Windows及Linux的平臺上。此外,也使用Embedded Linux為嵌入式作業系統,發展了影像資訊家電(Video Information Appliance)的原型機,使影像的資訊也能透過分散式物件網路成功的傳送到嵌入式系統上。簡介多媒體資訊的需求對我們日常生活來說,是越來越重要的事。但是多媒體在影像、聲音.等應用中,其資料量都是相當龐大的,在過去礙於傳輸頻寬、電腦運算速度、壓縮理論等因素,根本無法獲得即時的資訊。不過,在近幾年卻有了重大的變革,像是壓縮理論逐漸成熟降低了資訊量;許多多媒體的壓縮傳輸標準相繼的制訂,統一了多媒體的互通性;而拜電腦運算速度越來快之賜,許多複雜的多媒體運算也都得以實現。另外,像是網際網路的風行、傳輸頻寬的提昇,更讓即時獲得多媒體的資訊不再是一個奢侈的想法。但是在這種使用者眾多、計算量龐大、資料量複雜的系統中,傳統的網路架構及較低階的程式設計已經無法應付, 因此,導入分散式物件技術,利用其具有負擔分攤、風險分散、跨平臺、跨語言、程式易於發展及維護等特性,來建構多媒體的網路架構,發展即時的多媒體應用程式,實為一個不錯的解決方案。而網路頻寬實在是永遠都沒有辦法滿足我們的需求,尤其是在多媒體這種需要使用大量頻寬的應用中,因此資料的壓縮是絕對有必要的。以影像資料來講,可以利用人眼對高頻的資料不敏感性、對亮度及色彩的不同敏銳度、資料與資料之間的重覆性、影像與影像之間的相關性等特性,去除掉不必要的資訊,以達到壓縮的目的。對於建構一個應用場合、平臺五花八門的多媒體環境來說,是否有支援跨平臺的功能是相當重要的一件事,也唯有具備此種功能,才能稱得上是完整的應用環境。另外,由於嵌入式系統在後PC時代中將會是非常具有潛力的產品,尤其它在對多媒體資訊的擷取應用中也扮演著重要的角色。所以,如何成功的將多媒體資訊利用分散式物件技術與嵌入式系統結合也是相當重要的一件事。本論文的目標是利用分散式物件技術,架構出一個多媒體的環境,並實作即時影像傳輸於分散式物件環境中,至於影像壓縮法則是採用JPEG影像壓縮標準。另外,由於多媒體對於跨平臺的需求以及Linux有著穩定、Open source等優點,將實作影像解壓縮端的應用軟體於Linux平臺上,除了展示本系統跨平臺的功能之外,更藉由Linux支援多種硬體平臺的特性,增加了應用程式的移植性。此外,也使用Embedded Linux為嵌入式作業系統,發展了影像資訊家電(Video Information Appliance)的原型機,將影像的資訊也能透過分散式物件網路傳送到嵌入式系統上。Xcamba系統架構Xcamba系統:我們的系統要達成的目標為傳送即時影像的資料,且並沒有資料庫格式轉換的問題。另外,由於即時影像資料的擷取及壓縮必需要由Third Tier來完成,其負擔是相當重的,當用戶端的數量增加時,影像伺服器也一定要相對的增加才足夠應付。因此Middle Tier也就必須要能夠負責將眾多影像伺服器隱藏起來、分散它們之間的負擔、及一旦有任何影像伺服器出錯時能夠迅速的處理等特性。而OMG(Object Management Group)所制定的CORBA(Common Object Request Broker Architecture)67剛好能滿足這些需求。它的ORB有著將伺服器的負擔分散的平均負荷功能、優秀的容錯能力,又可以支援Naming Service、OAD,是我們的系統中Middle Tier的最佳選擇。 再來是因為CORBA跨平臺的特性,因此我們系統的影像用戶端程式(稱它為Xcamba Client),除了設計在Windows上執行的版本之外,也製作了Linux版本。Linux版的Xcamba Client除了展現CORBA跨平臺的威力之外,將CORBA與Linux的結合應用在Embedded Linux上,進而完成一個嵌入式系統-影像資訊家電-的原型機,更是相當重要的一環。而影像伺服器端(稱為Xcamba Server),負責即時影像的壓縮、網路的傳輸,其所利用的擷取影像的介面為USB Camera,但是因為Linux核心到目前的版本都尚未正式的支源USB,而且有支援Linux的USB Camera也沒有幾家,受到這樣的限制,所以Xcamba Server只有完成在Windows平臺上的版本。經由以上的分析,利用ORB搭配影像伺服器端、用戶端程式,即可建構出Xcamba系統架構。下圖為Xcamba的系統架構:關於跨平臺及嵌入式系統應用:能夠跨平臺對一個分散式物件環境來說是一個最基本也是最重要的事情,因為你無法限制分散式的應用只在某個平臺或某個硬體設備中,而是要將全部的事情都整合在一起。CORBA在某個程度的幫我們解決了跨平臺的問題,至於跨硬體平臺的目標就交給Linux來幫忙。Xcamba系統即是利用CORBA及Linux來達成即時影像傳輸在分散式物件環境中的實現。實現的部份還包括了在Embedded Linux平臺上,不過這一部份還需要影像壓縮法則的幫忙,因為大部份的嵌入式系統並沒有很好的硬體設備支援,必須要選擇嵌入式系統足以應付的影像壓縮法才行。影像壓縮法則的選擇:在Intra Frame Coding中,Motion Compensation Coding要成功取決於Motion Vector是否準確。而Motion Vector的準確性則與影像的解析度有很大的關係,解析度要夠高,所找出來的Motion Vector才會準確。但是在低位元率的即時影像傳輸中,影像的解析度並不允許太高,如果使用MC Coding會造成大部份的位元都在傳預測錯誤值。因此,不如把MC Coding所耗費的位元及時間用來提高影像品質。越高的壓縮比,就需要越多的計算量,但是品質卻會因為壓縮比的提高所造成的失真,在某些應用中不太能接受,而Intra Frame Coding的計算量較小、影像品質也好且嵌入式系統也能負擔計算量8。總括來說,JPEG9應該是最恰當的選擇。而利用JPEG的標準來傳送影像,其實就是所謂的Motion JPEG,可以在下圖中所示:Xcamba系統實作分散式網路程式設計:我們使用INPRISE公司的VisiBroker10來發展網路程式,它是目前支源平臺最多的CORBA發展工具。在CORBA的環境中,應用系統主要是分為兩個部份。第一個部份是影像壓縮伺服器CORBA物件,也就是我們的Xcamba Server,負責影像的擷取、壓縮、並提供即時影像資料給用戶端。第二個部份就是使用者使用的用戶端應用程式,也就是我們的Xcamba Client,負責跟Xcamba Server要影像資料、解壓縮影像、並顯示在用戶端的面前。CORBA物件是一個提供特定服務的元件,它藉由定義一組輸出的介面來宣告這個CORBA物件可以提供的服務。輸出介面中定義了用戶端應用程式可以呼叫的方法以及存取的特性。因此用戶端應用程式只需要指明提供服務的CORBA物件名稱以及要呼叫的方法或是要存取的特性,就可以藉由ORB得到CORBA物件提供的服務。介面的定義方法語言就稱為Interface Description Language,利用它來撰寫CORBA物件的介面,而我們Xcamba的IDL 定義如下:/* RemoteVideo.idl */typedef sequence rBinaryResult;typedef unsigned short rCmd10;interface RemoteVideo long GetData(in long pipeindex,out rBinaryResult aResult,out rCmd aCmd);下圖為我們整個CORBA網路程式的發展流程:我們利用pipe來達成影像資料庫的功能,pipe的大小是可以改變的,而為了要有即時的效果,也就是不管眾多用戶端的速度不一,永遠都是把最新的資料傳送給用戶端,所以我們的pipe大小都設為2。也就是只要用戶端來要求影像資料,影像伺服器都會把正在壓縮的影像之外的另一張回傳。而因為即時影像的需求,也就是新的影像資料會一直把舊的影像資料覆蓋過去,並不需要有傳統pipe的保護動作,也就是不需要考慮pipe的資料放滿時的問題,程式使用pipe的架構如圖6-9所示。另外,關於互斥的設計仍然是需要的,也就是使用WaitForSingleObject( )來防止同時有兩個Thread對Pipe做存取的動作所造成資料污染的狀況。下圖為pipe的架構:整體程式架構如下:Xcamba Server實作:Windows版的Xcamba Server是使用Borland C+ Builder來發展,抓取影像的方法則是遵循Microsoft Multimedia Programmers Reference中的Video Capture部份。下圖為Xcamba Server Windows版的執行畫面:Xcamba Client on MS Windows 98:Windows版的Xcamba Client也是使用Borland C+ Builder來發展,Xcamba Client啟動後必須先Connect Server,之後按下Show Video後會啟動一個Thread,此Thread則會不斷的去跟Xcamba Server抓取影像資料回來,呼叫並傳資料給影像解壓縮程式,最後再將解壓縮後的結果顯示在用戶端的螢幕上。下圖為Xcamba Client Windows版的執行畫面:Xcamba Client on Slackware Linux:我們在Slackware Linux 7.0上開發Xcamba Client程式,發展的工具則是使用K Develop Kit,並使用QT library做為X window上面的視窗程式設計123。在Xcamba Clinet的Linux版與Windows版不同點除了是GUI 的程式設計之外,在Linux版中則是使用了Timer的機制去跟Xcamba Server要影像資料。下圖為Xcamba Client Linux版的執行畫面:Xcamba Client on Embedded Rose Linux:在嵌入式作業系統上是採用Digirose公司所發展的RoseLinux 1.04,至於嵌入式系統硬體部份是使用研華電腦(Advantech)公司所出產的CPC-2245 Mini Biscuit PC 5、及Panel PC來作為實驗發展的平臺。而RoseLinux 1.0是依據Linux Kernel 2.2.13所發展的,也就是說它是完全受到GPL(General Purpose License)所保護的,只要遵守GPL的規則,任何人都可以更改及散播RoseLinux來符合硬體設備。也就因為它是依據Linux Kernel所發展的,所以進一步保證了下層硬體平臺的多元化及上層應用軟體的高度移植性。下圖為Xcamba Client Linux版在Panel PC上的執行畫面:結果分析:壓縮的法則是採用JPEG,而因為是用在自行設計的系統中,所以並沒有將影像壓縮成標準的JPEG格式,也就是標頭檔並沒有與JPEG相容,不過,這樣是不會影響到壓縮的效率的。而壓縮的比例也可以由Quantization Table不同來選擇,當然,壓縮比越高,影像的品質當然會比較差。在選擇一個影像品質較好的壓縮下,320*240的影像大小,壓縮比大約為20到25倍左右,也就是說一張壓縮後的影像大約80k bit,應用在10M bit的Ethernet中頻寬是足夠的,因此影像的frame rate也就限制在壓縮的計算量大小上面。對於即時影像的應用,現在的PC已經足以應付這樣的計算量,不過,對於有些運算速度較慢的嵌入式系統來說,這部份可以藉由硬體、數位訊號處理器或是撰寫組合語言的幫忙來解決。結論與未來展望本論文完成了即時影像在分散式物件環境上的應用,並利用CORBA這個分散式物件技術,架構了具有彈性、維護容易、具有物件導向優點的多媒體環境,也成功的開發了多種平臺上的影像應用軟體。至於影像壓縮方法是採用JPEG標準,它可以在一定的網路頻寬中得到令人滿意的影像品質。我們實作了影像解壓縮端的應用軟體於Linux平臺上,除了成功的展示了跨平臺的功能外,也在Linux平臺上的多媒體應用增加了一個例子。此外,也利用Embedded Linux為嵌入式作業系統,在Advantech的Panel PC上發展了影像資訊家電的原型機,並將影像的資訊成功的傳送到嵌入式系統上。未來可以將動態影像壓縮標準(H.263/MPEG)實作在本系統上,以增加影像的壓縮率。而影像壓縮不只是可以用軟體來實現,未來也可交給DSP數位訊號處理器或是專為影像壓縮設計的晶片來實行。另外,在目前為止Linux Kernel尚未完全的支援USB,不過在下一個版本的Linux Kernel 必定會對USB有一個穩定的支援。此外,Linux最令人擔心的Driver問題,也有許多的廠商都承諾會發展USB Camera的Driver,其它像是對於Video for Linux這部份也有越來越多人在開發中。屆時,Xcamba Server也就可以移植到Linux的平臺上,當然,只要是CORBA有支援的平臺也都是可以發展的方向。另外,因為Xcamba系統只有實作出即時影像的部份,未來也可以將聲音部份納入。CORBA是一個很高階的分散式網路架構,下層不一定是只能跑在以TCP/IP為主的Ethernet上,其它像是無線網路都可以是應用的範圍,利用CORBA來發展整個系統,未來的擴充性、移植性都是很棒的。未來有需要的話,也可以像下圖一樣實作出中介層,處理資料庫存取、格式轉換的問題。未來也可以使用Java來發展影像解壓縮端軟體,這樣一來用戶端則可以直接使用瀏覽器來觀看,輕易的解決版本的控制問題及省去使用者安裝的不便性,不過,Java的執行速度可能是要考量的一個問題。下圖為結合WWW的架構:在嵌入式系統方面,可以發展的地方還有很多,像是改進Xcamba Client程式、移植Xcamba Client到不同的嵌入式系統、利用特殊硬體架構來提昇速度都是不錯的方向。參考文獻1 Mattbias Kalle Dalbeimer, Programming with Qt, OREILLY, 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, OReilly, 1998.4 RoseLinux Users Guide, DigiRose Co., Ltd., 2000.5 CPC 2245 Users Guide, Advantech Co., Ltd., 1999.6 CORBA: Common Object Request Broker Architecture and Specification Revision 2.0, Object Management Group, July 1995.7 Allan Pope, The CORBA Reference Guide: Understanding the Common Object Request Broker Architecture, Addison-Wesley, 19978 Rafael C. Gonzalez and Richard E. Woods, Digital Image Processing, Addison-Wesley, 1999.9 William B. Pennebaker and Joan L. Mitchell, JPEG Still Image Data Compression Standard, Van Nostrand Reinhold, Second Edition, 1993.10 VisiBroker for C+ Programmers Guide, Inprise, Inc., 1998.雾沧膨
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同书与协议书
- 2025 车辆买卖合同范本(标准版)
- 黑龙江省安达市四平中学2026届数学九年级第一学期期末统考试题含解析
- 2025转让股权合同 转让股权合同范本
- 山东省济宁市邹城市九级2026届八年级数学第一学期期末达标检测模拟试题含解析
- 浙江省湖州市实验学校2026届数学九年级第一学期期末考试试题含解析
- 2026届湖北省襄阳市老河口市七年级数学第一学期期末综合测试试题含解析
- 2025网约车租赁合同的模板范文
- 在线教育行业现状与未来展望研究报告
- 2025合同范本股权激励协议附带保密条款示例
- 2025年初级药师资格考试试题(附答案)
- 2025国企竞聘上岗与干部竞聘上岗笔试题及答案
- 人工智能与建筑产业体系智能化升级研究报告
- 武科大大学生手册考试内容及答案
- 集装箱吊装专项施工方案
- 2025年中国家用WiFi路由器行业市场全景分析及前景机遇研判报告
- 包覆拉拔法制备铜包铝、铜包钢双金属导线的多维度探究与展望
- 2025年领导干部任前廉政法规知识考试题库(含答案)
- 2025年山东省济宁市邹城市第十一中学中考二模数学试题
- 信息技术基础教程(WPS版)课件 第3章 Windows 10 操作系统的使用
- 小鹿斑比题目及答案
评论
0/150
提交评论