<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于網(wǎng)絡(luò )的多通道超寬視頻系統的研究

基于網(wǎng)絡(luò )的多通道超寬視頻系統的研究

作者: 時(shí)間:2007-08-31 來(lái)源:網(wǎng)絡(luò ) 收藏
引言

  近年來(lái)隨著(zhù)數字壓縮技術(shù)、計算機及技術(shù)不斷成熟和發(fā)展,人們對視頻和有了更多的需求?,F在的數字視頻顯示畫(huà)面一般太小,無(wú)法適合眾多觀(guān)眾的觀(guān)看,而多就是一種從實(shí)時(shí)切割輸出、同步播放顯示的網(wǎng)絡(luò )的不同PC間同步播放多媒體文件的技術(shù)體系,是使用一組單的顯示系統橫向拼接起來(lái)的多比例的特殊顯示系統。它的拼接數目可以自由選擇。本系統的多通道播放控制軟件平臺是在XP操作系統下VC++.net的編譯環(huán)境中調試通過(guò)的。下面闡述其實(shí)現過(guò)程和方法。

系統方案

  本系統的控制方式采用了如圖1所示的星型總線(xiàn)拓撲結構,它不僅可以方便地進(jìn)行多臺PC的集中控制,而且還可方便地進(jìn)行數據的傳輸及通過(guò)局域網(wǎng)連接進(jìn)行控制,更好地實(shí)現了用戶(hù)的一些特殊要求,例如結合Windows的其他軟件實(shí)現對多臺客戶(hù)計算機的遠程控制。

網(wǎng)絡(luò
圖1 網(wǎng)絡(luò )集成管理方案示意圖

多媒體系統中的同步

  多媒體系統的同步是指兩個(gè)或多個(gè)多媒體事件按一定的時(shí)間順序關(guān)系播放,同時(shí)也是一種用于協(xié)調多個(gè)媒體事件在時(shí)間域中播放的機制或過(guò)程。同步操作可以協(xié)調和控制兩個(gè)或多個(gè)媒體事件在并行播放過(guò)程中由用戶(hù)指定的或由其內在本質(zhì)所決定的進(jìn)展和聯(lián)系。按時(shí)間關(guān)系,同步可分為3類(lèi):媒體對象之間的同步,媒體流之間的同步,媒體流內的同步。這3類(lèi)同步構成多媒體同步的3個(gè)層次,最高層是多媒體對象之間同步,最低層是媒體流內的同步。其中媒體流內的同步在一個(gè)時(shí)間相關(guān)媒體流內(主要是等時(shí)媒體流內)進(jìn)行,因此,與時(shí)間無(wú)關(guān)的媒體,如文字、圖像等不存在這種同步問(wèn)題。媒體對象之間同步要解決的是多媒體合成時(shí)的高層同步問(wèn)題。圖2給出了一個(gè)多媒體系統中各個(gè)媒體對象之間的時(shí)序關(guān)系。

媒體對象之間的時(shí)序關(guān)系

圖2 媒體對象之間的時(shí)序關(guān)系

  媒體流之間同步的主要任務(wù)是保證不同媒體流之間的時(shí)間關(guān)系,例如視頻和音頻之間的時(shí)態(tài)關(guān)系、音頻和文本之間的時(shí)態(tài)關(guān)系等。流間同步的復雜性與需要同步的媒體數目有關(guān)。媒體流內同步主要針對等時(shí)媒體(音頻和視頻)而言。本系統中的同步最重要的是對象間同步。

  因為多媒體系統引入了許多時(shí)間相關(guān)性數據類(lèi)型,而這些多媒體數據的時(shí)間相關(guān)性可能隱含在建立過(guò)程中(如活動(dòng)視頻圖像序列),也可能是由用戶(hù)定義的。時(shí)間相關(guān)性必須體現在多媒體系統中。另外在數據演示過(guò)程中。由于存儲、通信和計

算會(huì )導致系統延遲,所有這些特定要求,都需要引進(jìn)同步技術(shù)才能加以解決。傳統的幾種同步方法或模型有分層同步法、時(shí)間軸同步法和參考點(diǎn)同步法。本系統采用的是全局時(shí)間軸的同步方法。

  全局時(shí)間軸的同步是通過(guò)把相互獨立的對象依附到一個(gè)時(shí)間軸上來(lái)描述,丟掉或更改一個(gè)對象不影響其他對象的同步。這種描述要維持一個(gè)全局時(shí)間 (world time)軸。每個(gè)對象可將此全局時(shí)間映射到局部時(shí)間,并沿此局部時(shí)間前進(jìn)。當全局時(shí)間和局部時(shí)間誤差超出一個(gè)給定范圍時(shí),則要求與全局時(shí)間重新進(jìn)行同步。時(shí)間軸同步能較好地表達源于媒體對象內部結構的抽象定義。在這方面,它優(yōu)于分層同步法,它定義了一個(gè)與視頻流中某圖像相關(guān)的說(shuō)明文字的演示的起始位置,而不再要求有相關(guān)視頻幀的知識。由于同步僅能基于固定的時(shí)間點(diǎn)定義,若媒體對象無(wú)確定的演示時(shí)間,這種方法就能力有限了。

  在本系統中,由于我們采用時(shí)間軸同步法,所以需要在不同PC間通過(guò)網(wǎng)絡(luò )傳送播放時(shí)間的數據。我們采用了基于C/S(客戶(hù)機/服務(wù)器)模式,其功能模塊圖如圖3所示。

系統功能模塊框圖

圖3 系統功能模塊框圖

  服務(wù)端功能模塊主要有視頻處理模塊、服務(wù)器網(wǎng)絡(luò )功能模塊、用戶(hù)管理模塊等控制模塊,它們都通過(guò)服務(wù)器應用程序被統一管理調用??蛻?hù)端功能模塊主要有客戶(hù)機網(wǎng)絡(luò )功能模塊、視頻處理顯示模塊、用戶(hù)管理模塊等,它們都通過(guò)客戶(hù)機應用程序被統一管理調用。服務(wù)器和客戶(hù)機之間通過(guò)網(wǎng)絡(luò )進(jìn)行相互通信控制和數據傳輸。

  網(wǎng)絡(luò )功能模塊分為服務(wù)器網(wǎng)絡(luò )功能模塊和客戶(hù)機網(wǎng)絡(luò )功能模塊。服務(wù)器網(wǎng)絡(luò )功能模塊主要負責監控前端視頻播放時(shí)間數據的網(wǎng)上發(fā)送、對客戶(hù)機請求的偵聽(tīng)及響應和對客戶(hù)機控制信息的接收及處理等;客戶(hù)機網(wǎng)絡(luò )功能模塊主要負責對服務(wù)器傳來(lái)的視頻播放時(shí)間數據的接收、對服務(wù)器請求連接和控制信息的發(fā)送等。這些都由軟件實(shí)現,本軟件使用VC++.Net,采用Windows套節字(WinSock),利用TCP/IP協(xié)議實(shí)現網(wǎng)絡(luò )編程。在編程中,還利用了套節字的異步I/O模型及Windows多線(xiàn)程機制進(jìn)行循環(huán)內存隊列管理等方法。通過(guò)這些手段,較好地解決了實(shí)時(shí)視頻播放時(shí)間數據傳輸中的各種問(wèn)題。

實(shí)時(shí)視頻處理

  無(wú)論在服務(wù)器還是客戶(hù)機應用程序中都有視頻處理模塊,其主要的功能是使多媒體系統能實(shí)時(shí)進(jìn)行視頻圖像切割并顯示出來(lái)。其實(shí)現方法如下:

  在Windows系統中我們將使用微軟提供的一些方法和類(lèi)來(lái)實(shí)現實(shí)時(shí)視頻圖像切割播放的算法。首先將使用設備環(huán)境作為幀讀取的緩沖區。設備環(huán)境是一個(gè)由圖形設備接口管理的包含有設備信息的數據結構,所有對繪圖函數的調用都要通過(guò)使用設備環(huán)境對象來(lái)完成。它封裝了Windows的繪畫(huà)函數,并允許在視窗中以設備的獨立性來(lái)繪制圖形。支持設備獨立性的軟件包括兩個(gè)動(dòng)態(tài)鏈接庫:圖形設備接口Gdi.dll和設備驅動(dòng)程序。系統要將圖像輸出到對話(huà)框,就要得到對話(huà)框的設備環(huán)境,方法大體有兩種:①在對話(huà)框類(lèi)的函數中,用函數GetDC()得到一個(gè)對話(huà)框設備的指針;②以對話(huà)框的指針為參數生成一個(gè)設備環(huán)境對象,如CDChdc(this)。微軟還提供了一些播放視頻的函數(如DrawDibDraw函數),實(shí)現了將文件中讀出的視頻圖像數據輸出到顯示緩沖區的某個(gè)區域,利用此函數可以將每幀圖像切割,顯示我們所要顯示的畫(huà)面(原來(lái)視頻畫(huà)面的一部分);而顯示的圖像數據可以以CBitmap的形式從顯示器的設備環(huán)境中獲得,其中CBitmap是微軟提供的一個(gè)位圖類(lèi),它封裝了視窗的圖形設備接口,并且提供了操縱位圖的成員函數。

  系統是在CPU為P4117GHz、VideoCard為NVIDIAQua

dro2MXR/EX的情況下,在Windows系統中用VC++.net實(shí)現了AVI視頻無(wú)停頓實(shí)時(shí)切割播放。

  其具體程序如下:

CDC hdc;
LONG 1 Frame;
BYTE abFormat[1024];
LPBITMAPINFOHEADER 1pbi;
1pbi=(LPBITMAPINFOHEADER)abFormat;
1Frame=AVIStream Time To Sample(m_Pstream,1Time);
//從當前媒體流中得到當前時(shí)間為1Time的樣本
1pbi=(LPBITMAPINFOHEADER)AVIStreamGetFrame
(m_PAviStream,1Frame);
//得到當前幀的地址
If (1pbi)
{
xwidth=lpbi->biWidth/total;
//得到客戶(hù)機上顯示的視頻畫(huà)面的寬度
ywidth=1pbi->biHeight;
xSrc=x_n*xwidth;
//得到源顯示畫(huà)面開(kāi)始顯示點(diǎn)的x坐標
//利用DrawDibDraw函數將視頻切割顯示
DrawDibDraw(m_hDrawDib,hdc,
rcFrame left,rcFrame.top,
rcFrame right-rcFrame.left,
rcFrame bottom-rcFrame.top,
1pbi,NULL,xSrc,0,xwidth,ywidth,
DDF_SAME_DRAW);

結束語(yǔ)

  本系統采用多媒體同步技術(shù),實(shí)現了基于網(wǎng)絡(luò )通信的不同PC間進(jìn)行同步通信播放影像文件和實(shí)時(shí)視頻圖像切割處理的功能,是一種性?xún)r(jià)比較高的解決方案。該系統對于網(wǎng)絡(luò )視頻、視頻切割的提供了有意義的經(jīng)驗和借鑒。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>