當前位置:首頁 > 消費電子 > 消費電子
[導讀]首先對MPEG-2系統(tǒng)層協(xié)議進行剖析,然后介紹了DirectShow的應用領(lǐng)域和技術(shù)要點,最后提出了一種基于DirectShow的多路視音頻播放技術(shù),并給出了主要模塊的設計方案

摘要:首先對MPEG-2系統(tǒng)層協(xié)議進行剖析,然后介紹了DirectShow的應用領(lǐng)域和技術(shù)要點,最后提出了一種基于DirectShow的多路視音頻播放技術(shù),并給出了主要模塊的設計方案,以及DirectShow鏈路死鎖問題的解決方法。這種方法應用于多路電視節(jié)目的實時播放和節(jié)目素材的收集與整理之中,較傳統(tǒng)的單路節(jié)目播放和采集節(jié)約了硬件成本提高了工作效率。
關(guān)鍵字:DVB-S,DirectShow,MPEG-2,解復用

引言

DVB(數(shù)字視頻廣播,Digital Video Broadcasting)是歐洲標準組織提出的電視廣播體系。目前我國已經(jīng)上星的多家省級電視臺均采用了其中的DVB-S(DVB衛(wèi)星傳播)標準。DVB-S的信號傳輸屬于典型的多路單載波(MCPC)模型,每個載波可以承載多路各不相同的電視節(jié)目。傳統(tǒng)采用數(shù)字衛(wèi)星接收系統(tǒng),只能對DVB-S信號中的某一路節(jié)目進行播放和采集。本文提出了一種在通用接收機條件下基于DirectShow技術(shù)的對DVB-S傳輸流進行解復用,提取并播放其中的多路視頻節(jié)目的設計方案,實現(xiàn)了單監(jiān)視器條件下對多路電視節(jié)目的播放。同時本文所討論的技術(shù)對節(jié)目素材收集、網(wǎng)絡視頻點播以及硬盤錄像機等多媒體應用具有重要的借鑒意義。無線SOC開發(fā)平臺499元 S3C44B0 ARM7開發(fā)板378元 S3C2410 ARM9開MPEG-2系統(tǒng)層協(xié)議剖析

DVB-S采用MPEG-2作為復用傳輸和視頻編碼協(xié)議。MPEG-2標準(ISO/IEC 13818)是運動圖像專家組MPEG(Moving Picture Experts Group)于1994年推出的編碼標準。運用MPEG-2壓縮技術(shù)既可以獲得比較好的壓縮效果,又能夠保持高清晰度的活動圖像,因此MPEG-2廣泛應用于數(shù)字視頻廣播和數(shù)字多媒體領(lǐng)域。

MPEG-2協(xié)議主要分為系統(tǒng)、視頻和音頻三個部分。MPEG-2的系統(tǒng)層協(xié)議描述了多路數(shù)據(jù)的復用方式,并規(guī)定了數(shù)據(jù)傳輸?shù)母袷健?/P>

2.1  傳輸流結(jié)構(gòu)

MPEG-2系統(tǒng)層定義了兩種數(shù)據(jù)傳輸方式:傳輸流(TS,Transport Stream)和節(jié)目流(PS,Program Stream)。前者是針對那些容易發(fā)生錯誤的環(huán)境而設計,例如通過衛(wèi)星信道進行傳輸?shù)腄VB-S,后者則是針對錯誤較少的環(huán)境而設計,例如DVD光盤等。傳輸流是一種面向分組的多路復用流:基本數(shù)據(jù)流(ES)進行打包成為PES,再經(jīng)系統(tǒng)復用生成TS數(shù)據(jù),最后打包成固定幀長(188字節(jié))的TS包進行傳輸。每一個TS包只包含一種ES(壓縮視頻、音頻,或IP數(shù)據(jù)等)。系統(tǒng)層使用一個13比特值作為每個包的標識符,稱為PID。在一道傳輸流中PID與ES是一一對映的關(guān)系。TS包的幀結(jié)構(gòu)如圖1所示。

圖1

2.2       PSI信息和PID映射關(guān)系

PSI(節(jié)目詳細信息,Program Specific Information)包含了多路節(jié)目的復用信息,它是解復用操作的依據(jù)。PSI包括節(jié)目關(guān)聯(lián)表(PAT)、節(jié)目映射表(PMT)、網(wǎng)絡信息表(NIT)以及條件訪問表(CAT)等。

PAT的PID固定的為0x0000,它定義了傳輸流中特定序號的節(jié)目與相關(guān)的傳輸流分組的對應關(guān)系。PMT提供了節(jié)目號碼與組成節(jié)目的ES PID的映射關(guān)系。NIT屬于私有分段,通常包括用戶選擇的服務、通道頻率等映射以及該路節(jié)目的供應商和節(jié)目名稱等信息。NIT的PID系統(tǒng)層未作限定,因此理論上任何有效的PID值都可能作為NIT的PID。CAT的PID固定為0x0001,它出現(xiàn)在傳輸流中有加密數(shù)據(jù)的情況下。CAT描述了條件訪問系統(tǒng)的類型,和其它用戶私有信息。

DirectShow簡介

DirectShow是微軟公司DirectX框架的一部分。DirectShow的實現(xiàn)是基于COM(組件對象模型)的,因此具有良好的可開發(fā)性和可復用性。

DirectShow側(cè)重于多媒體數(shù)據(jù)的處理。多媒體數(shù)據(jù)具有數(shù)據(jù)量大、音像同步要求苛刻、媒體格式眾多等特點。DirectShow框架提供了對顯卡和聲卡等硬件的完整封裝,開發(fā)者可以不必考慮硬件的工作原理以及驅(qū)動編程的具體實現(xiàn)細節(jié)。另一方面,DirectShow組件之間的相對獨立性使開發(fā)者可以專注于處理算法的實現(xiàn)而無需過多考慮組件之間的數(shù)據(jù)傳輸問題,因此開發(fā)者通過編寫相對簡潔的代碼便可高效地完成較為復雜的多媒體處理。

3.1 Filter鏈路


Filter是DirectShow中最基本的組成部分,它是完成某個特定功能的COM組件。Filter依次連接起來,構(gòu)成了Filter鏈路。DirectShow通過一個稱為Filter Graph Manager(鏈路圖管理器)的COM對象管理整個Filter鏈路。應用程序通過Filter Graph Manager來對鏈路的狀態(tài)進行控制,如播放、暫?;蛲V沟?。按照功能,F(xiàn)ilter可以分為Source Filter、Transform Filter、Rendering Filter三種類型。

Source Filter用于獲取數(shù)據(jù)。數(shù)據(jù)可以來自文件也可以是實時的數(shù)據(jù)源如網(wǎng)絡、數(shù)據(jù)采集卡等。

Transform Filter接收Source Filter傳送來的數(shù)據(jù),對其進行處理,比如解復用操作、音像數(shù)據(jù)的分離或編碼/解碼等。

Rendering Filter的主要功能是將數(shù)據(jù)送往顯卡、聲卡進行多媒體演示或者輸出到文件進行存儲。

3.2       工作模式

DirectShow框架定義了兩種工作模式:推模式(Push Mode)和拉模式(Pull Mode)。

推模式下,數(shù)據(jù)被Source Filter主動推向與其相連的Transform Filter,后者再將處理過的數(shù)據(jù)推向下行Filter。推模式通常使用在實時數(shù)據(jù)情況下。對于實時數(shù)據(jù)源,數(shù)據(jù)傳輸速率可能不是恒定的(例如網(wǎng)絡媒體傳輸、視頻采集卡等),因此采用推模式Source Filter可以根據(jù)數(shù)據(jù)源的實際狀況決定如何將數(shù)據(jù)傳給下行Filter。

拉模式下Source Filter被動的提供數(shù)據(jù),與其相連的Transform Filter創(chuàng)建一個數(shù)據(jù)線程主動的向Source Filter索取數(shù)據(jù),有一個“拉”的過程。工作在拉模式的Filter一般采用異步讀取數(shù)據(jù)的方式。拉模式通常應用于本地文件播放以及媒體編輯等。

4          設計方案

4.1       原理及流程

衛(wèi)星信號經(jīng)天線接收、放大、變頻后以中頻信號的形式送入通用接收機。通用接收機對信號進行解調(diào)和信道編碼的解碼。輸出的傳輸流數(shù)據(jù)流,首先經(jīng)過PSI分析得到完整的PID映射關(guān)系,然后根據(jù)節(jié)目關(guān)聯(lián)表信息將其中的視音頻數(shù)據(jù)分離送往解碼器,最終在顯示終端上播放。工作流程如圖2所示。


圖2

從數(shù)據(jù)采集、分離到顯示,可以在一條Filter鏈路上實現(xiàn):Source Filter獲得接收機輸出的傳輸流數(shù)據(jù);解復用Filter實現(xiàn)分析PSI、解復用功能,并將視頻和音頻數(shù)據(jù)送往解碼器Filter。

完整的Filter鏈路圖如圖3所示。

 

圖3

圖中每一個方框表示一個Filter。Source Filter沒有輸入并且只有一個輸出。與之相連的是解復用Filter,它有一個輸入和多個視頻、音頻輸出。視頻數(shù)據(jù)被送往MPEG-2解碼器Filter,音頻數(shù)據(jù)送往音頻解碼器Filter。解碼器的輸出連接到了Render Filter。

4.2       Filter工作模式的選擇

處理微機通過高速數(shù)據(jù)采集卡獲得通用接收機的輸出,因此對于Filter鏈路來說,數(shù)據(jù)源是一種實時源。所以選擇推模式作為整個Filter鏈路的工作模式。

5          主要模塊的設計和實現(xiàn)難點

5.1       Source Filter

Source Filter封裝了采集卡的接口函數(shù),采用雙緩沖工作方式,通過輪詢察看緩沖區(qū)是否已滿。當緩沖區(qū)滿時將數(shù)據(jù)送往與之相連的解復用Filter。

5.2       解復用Filter

解復用Filter是整個Filter鏈路的核心部分。它的功能是分析傳輸流的PSI,建立完整的PDI映射關(guān)系;然后從傳輸流中分離出每路節(jié)目的視頻和音頻數(shù)據(jù),將它們送往相應的視頻和音頻解碼器,同時接收應用程序的控制信息。解復用Filter對每一個傳輸流包的處理過程如圖4所示。

圖4

5.3 解決鏈路死鎖問題


Filter鏈路通常需要一個傳輸線程。在推模式下,傳輸線程通常由Source Filter創(chuàng)建,數(shù)據(jù)被線程推向解復用Filter,經(jīng)處理生成的視頻和音頻數(shù)據(jù)被送往解碼器,最后在終端上播放出來。整個過程都在單線程內(nèi)完成。

在多路輸出情況下,一般的推模式單線程模型將會導致鏈路死鎖。解決死鎖問題的關(guān)鍵是為每一路視頻或音頻輸出創(chuàng)建專門的傳輸線程,并且線程的創(chuàng)建應該在解復用Filter內(nèi)完成而不是在Source Filter內(nèi)(因為Source Filter只有一個傳輸流輸出)。

在DirectShow SDK中,可以通過使用COutputQueue對象來實現(xiàn)多線程傳輸,最終解決死鎖問題。方法是在解復用Filter中聲明一個COutputQueue對象,在每次啟動傳輸時調(diào)用COutputQueue的Receive(IMediaSample* pSample)函數(shù)。此時對象會自動生成一個傳輸線程,并將其加入到自身的線程隊列中,當線程完成時將其從隊列中清除。

5.3       Video Mixing Renderer9

Video Mixing Renderer9(VMR9)是DirectX9新添加的組件。它使用了Direct3D9技術(shù),充分利用了顯卡專有的圖形處理能力,并且在做視頻的合成和顯示時不占用系統(tǒng)CPU資源。使用VMR9可以高效的完成多路視頻的播放。如果使用傳統(tǒng)的Video Render Filter,在多視頻顯示條件下,必須為鏈路添加多個Render Filter。而VMR9最多接收十六個視頻輸入,在多路播放時可以將每一路視頻設置在窗口的不同區(qū)域來顯示,還能夠?qū)崿F(xiàn)多個視頻或圖片的疊加,例如在節(jié)目中加入動態(tài)字幕或臺標。

6          實驗結(jié)果

PC機配置

l         操作系統(tǒng):Windows2000 Professional

l         CPU:P4 2.4GHz

l         內(nèi)存1G Byte

l         顯卡:主板集成,顯存128M Byte

信號參數(shù):

l         衛(wèi)星參數(shù):泛美8號,166°E

l         極化方式:垂直

l         下行頻率:3836MHz

l         符碼率:22000波特

l         節(jié)目提供商:TVBS

l         頻道數(shù)目:9(加密頻道數(shù)目6,非加密頻道數(shù)目3)

圖5是顯示界面,圖中正在播放三路非加密節(jié)目。

圖5

7          結(jié)束語

本文作者的創(chuàng)新點:使用DirectShow技術(shù),結(jié)合通用接收機,解決了數(shù)字衛(wèi)星接收單監(jiān)視器系統(tǒng)無法播放多路節(jié)目的問題,降低了硬件成本,對于非專業(yè)條件下的多媒體節(jié)目的播放(監(jiān)控)和素材的收集具有實用價值。另一方面,使用DirectShow還可以實現(xiàn)其它的功能,例如使用DES(DirectShow Editing Services)可以實現(xiàn)對多媒體文件的非線性編輯等。理論上還可以將本文的設計應用在網(wǎng)絡環(huán)境中:網(wǎng)絡客戶端可以通過PSI信息,選擇播放或錄制感興趣的電視節(jié)目從而實現(xiàn)網(wǎng)絡視頻點播功能。

參考文獻

1、    ISO/IEC 13818-1(MPEG-2 System),ISO/IEC 13818-2(MPEG-2 Video),ISO/IEC 13818-3(MPEG-2 Audio)
2、    Microsoft, DirectX 9.0 Programmer's Reference,2002。
3、    陸其明,DirectShow開發(fā)指南,清華大學出版社,2003
4、    史京玲,劉旺開,白濤.VC環(huán)境下監(jiān)控軟件流程圖界面的開發(fā).微計算機信息,2004年20卷第4期

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉