999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MPEG-2視頻解碼器在DirectShow中的實現

2007-01-01 00:00:00侯春明趙英男
計算技術與自動化 2007年4期

摘 要:MPEG-2是目前應用最為廣泛的數字音視頻編碼國際標準,大部分數字音視頻節目是以MPEG-2的形式存在。DirectShow是目前windows操作系統上的優秀的多媒體開發編程接口。提出一個MPEG-2視頻解碼器在DirectShow中的實現方案。這一實現在多媒體應用中具有廣泛的參考價值。

關鍵詞:DirectShow;filter;MPEG-2;解碼器

中圖分類號:TP316.5 文獻標識碼:A

1 引言

微軟公司提供的DirectX是用于創建PC游戲和多媒體應用程序的優秀工具。DirectX是一個用于開發游戲以及其它各類多媒體應用程序的底層API函數集,可以用來在windows操作平臺上開發高性能圖形、聲音、輸入、輸出和網絡游戲;它是一種基于COM的系統,既不屬于驅動程序層,也不屬于應用程序層。DirectX的主要設計目標是在提供某種設備獨立性的同時獲取高速度。作為Di-rectX的一個COM組成元素,DirectShow應用程序編程接口是一個windows平臺上的流媒體架構,提供各種格式的高品質多媒體流的捕獲、處理、傳送和回放,如AVI,ASF,MPEG,MP3,MOV等。DirectShow集成了DirectX其他組件中的先進技術,能做到自動檢測、使用視頻和音頻硬件加速設備;它不僅支持基于WDM驅動程序的硬件設備,也向上兼容Video for WindOWS(VFW)驅動程序的硬件設備。

MPEG-2是MPEG專家組于1994年公布的視、音頻壓縮和傳送標準。該標準分成9個部分,分別是系統、視頻、音頻、一致性測試、參考軟件、數字存儲媒介命令和控制(DSM-CC:DigitalStoraRe Media Command and Contr01)、高級音頻編碼(ACC:Advanced Audio Coding)、實時接口(RTI:Real-Time Interface)和DSM-CC的一致性測試。其中系統部分規定了如何把壓縮的視頻、音頻及其它數據流復用成一個統一的數據流,以便于傳送。視頻部分和音頻部分分別規定了壓縮的視頻、音頻數據流格式及其解碼含義,即標準的解碼器。MPEG-2沒有規定標準的解碼器,只是規定了編碼器產生的數據流格式。這樣做的目的是在保證互連的同時,允許開發者有一定的開發自由度,以鼓勵競爭。微軟公司推出的DirectShow僅提供了MPEG-2 Splitter,用于將MPEG流的音頻、視頻分離,但是沒有提供MPEG-2的視頻解碼器,用于解碼MPEG-2格式的壓縮視頻。由于目前MPEG-2壓縮標準在多媒體領域得到了廣泛的應用,大部分數字音視頻節目是以MPEG-2的形式存在。因此,本文研究如何在Direct-Show環境中實現MPEG-2視頻解碼器。

2 DirectShow Filter組件技術

DirectShow在系統中所處的層次及其內部數據處理流程如圖1所示。圖中央即是DirectShow系統,下半部分是Ring 0特權級別的硬件設備,上半部分是Ring 3特權級別的應用層。DirectShow系統位于應用層中。它使用Filter Graph來管理整個數據流的處理過程;參與數據處理的各個功能模塊叫做過濾器(Filter);各個Filter在Filter Graph中按一定的順序連接成一條流水線協同工作。

過濾器(Filter)是參與數據處理的各個功能模塊,并配置在過濾器圖表中,過濾器圖表管理器組件負責檢查這些過濾器的連接和控制過濾器間的數據流動。從功能上來看,Filter分為3類:SourceFilters、Transform Filters和Rendering Filters。Source Filters主要負責獲取數據,數據源可以是文件、因特網、計算機中的采集卡(WDM驅動或VFW驅動)和攝像頭、數字攝像機等,然后將數據往下傳輸;Transform Filters主要負責數據的格式轉換,例如數據流分離/合成,編碼/解碼等,然后將數據繼續往下傳輸;Rendering Filters主要負責數據的最終去向一將數據送給顯卡、聲卡進行多媒體的顯示,或者輸出到文件進行存儲等。

3 MPEG-2視頻解碼器的設計

在DirectShow環境中播放一個MPEG-2格式的文件,需要一個MPEG-2 Splitter將MPEG流的音視頻分離;一個MPEG2的視頻解碼器,用于解碼MPEG-2格式的壓縮視頻;一個相關的音頻解碼器如ffdshow audio Decoder,用于解碼音頻。在DirectShow提供了MPEG-2 Splitter,而MPEG-2視頻解碼器需要自行開發。

為了實現MPEG-2視頻解碼器,可設計一個名為MPEG2 Decoder的Transform Filter,包含一個輸入pin、一個輸出pin,用于接收MPEG-2的視頻流輸入,解碼后輸出YUY2格式的圖像幀序列。在微軟提供的Filter測試工具GraphEdit中使用MPEG-2視頻解碼器構建的Filter Graph如圖2所示:

圖中xyys.vob文件為一個MPEG-2壓縮的文件,其輸出的數據流被MPEG-2 Splitter接收,并實現音視頻分離;視頻流由MPEG2 Decoder實現MPEG-2的視頻解碼,并送顯示,音頻流由ffdshow audio Decoder實現解碼并送播放。

4 MPEG一2視頻解碼器的實現

4.1 filter的設計

設計一個MPEG-2視頻解碼器實際上就是在DirectShow中設計出一個能實現MPEG-2視頻解碼功能的filter,即圖2中的MPEG2 Decoderfilter。

從Filter Graph的設計和功能定義上分析,MPEG2 Decoder filter是一個Transform filter。有一個輸入pin(input)和一個輸出pin(output)。由于Transform Filter是DirectShow中的一個應用框架,實現“輸入->內部處理->輸出”的功能;其中應用邏輯,即MPEG-2的視頻解碼部分可以與應用框架分離,以設計一個結構清晰、擴展性良好的Filter項目。

Filter框架是完成Filter功能的一個操作函數集,以完成輸入和輸出pin上的媒體類型檢查,決定Sample內存大小的相關功能。數據的輸入和處理完成后的輸出由Filter框架實現,而實現MPEG一2的解壓縮由應用邏輯實現。

4.2 filter的編碼實現

4.2.1 Filter框架的實現

從DirectShow的基類CSource類繼承得到filter,以實現一個獨立的線程專門用于MPEG2的解碼輸出。同時可設計輸入pin類(CMpeg2InputPin)和輸出pin類(CMpeg20utPin)。在輸入pin上需要實現媒體類型檢查(CheekMediaType)、媒體數據的接收(Re-ceive)等相關功能。以媒體類型的檢查為例:

4.2.2 MPEG-2解碼的實現

MPEG-2源代碼可以從開源網站下載(如:MPEG的官方網站,www.mpeg.org),下載后得到的MPEG2解碼內核是C代碼,而Filter的開發采用C++,為了高效實現C與C++的混合編程,可設計一個C++風格的應用程序控制類CM-pegDecode,將解碼內核上可能被調用的C函數在這個類中封裝。Filter框架就只需調用這個控制類,從而保持較為清晰的結構。

5 結論

MPEG壓縮一直是多媒體應用領域中的熱點研究問題,微軟公司推出的DirectShow應用程序編程接口是一個基于windows平臺的優秀流媒體架構。本文設計了一個實現MPEG-2解壓縮的Transform filter,并在GraphEdit中得到了實現。同理還可以在DirectShow中實現其它解碼器。這一實現在多媒體應用中具有廣泛的參考價值。

主站蜘蛛池模板: 中文字幕免费视频| 亚洲中文字幕无码爆乳| 波多野结衣无码中文字幕在线观看一区二区| 亚洲天堂啪啪| 无码'专区第一页| 18禁高潮出水呻吟娇喘蜜芽| 久久精品人人做人人综合试看| 强乱中文字幕在线播放不卡| 婷婷午夜影院| a级毛片免费在线观看| 国产成人精品一区二区| 韩国自拍偷自拍亚洲精品| 看国产一级毛片| 99精品热视频这里只有精品7| 国产成人精品免费视频大全五级 | 久久狠狠色噜噜狠狠狠狠97视色 | 91精品人妻一区二区| 欧美一区二区三区不卡免费| 99久久精品久久久久久婷婷| 色国产视频| 国产制服丝袜无码视频| 毛片网站在线播放| 欧美综合一区二区三区| 国产地址二永久伊甸园| 99国产在线视频| 欧美日本不卡| 亚洲人成在线精品| 国产理论一区| 中文成人在线| 亚洲欧美日韩动漫| 久久精品人人做人人爽97| 成人福利在线免费观看| 无码精油按摩潮喷在线播放| 精品久久人人爽人人玩人人妻| 亚洲第七页| 2048国产精品原创综合在线| 中文字幕 91| 日韩成人在线一区二区| 亚洲视频一区| 久久久噜噜噜久久中文字幕色伊伊 | 免费无码网站| 精品无码国产一区二区三区AV| 午夜在线不卡| 人妻无码AⅤ中文字| 久草青青在线视频| 在线欧美日韩国产| 日韩视频福利| 欧美一道本| 国产美女无遮挡免费视频网站 | 日韩区欧美国产区在线观看| 日日拍夜夜操| 高潮毛片免费观看| 91在线精品麻豆欧美在线| 亚洲无线观看| 欧美激情首页| 青青青视频免费一区二区| 国产剧情国内精品原创| 国产成人精品一区二区三在线观看| 九九热在线视频| 欧美精品在线观看视频| 久久精品女人天堂aaa| 久久精品国产精品青草app| 欧美天堂在线| 在线日本国产成人免费的| 国产美女免费网站| 亚洲av片在线免费观看| 亚洲天堂网视频| 亚洲福利片无码最新在线播放 | 精品国产91爱| 青青青视频91在线 | 国产精品成人观看视频国产| 青青操视频在线| 亚洲网综合| 亚洲中文精品人人永久免费| 国产特级毛片aaaaaaa高清| 国产精品播放| 午夜福利网址| 片在线无码观看| 亚洲精品无码不卡在线播放| 久久国产V一级毛多内射| 婷婷午夜天| 毛片最新网址|