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中實現其它解碼器。這一實現在多媒體應用中具有廣泛的參考價值。

主站蜘蛛池模板: 免费国产在线精品一区| 色婷婷丁香| 国产99欧美精品久久精品久久| 91精品专区| 亚洲无码免费黄色网址| 国产精品观看视频免费完整版| 成人午夜亚洲影视在线观看| 欧美午夜在线播放| 四虎永久免费地址| 国产区网址| 99在线免费播放| 中国一级特黄大片在线观看| 女高中生自慰污污网站| 91探花在线观看国产最新| 国产精品熟女亚洲AV麻豆| 91小视频在线| 欧美成人二区| 最新日韩AV网址在线观看| 国产精品免费p区| 在线无码九区| 日本精品中文字幕在线不卡| 乱人伦99久久| 91精品专区国产盗摄| 国产AV毛片| 久久亚洲国产视频| 国产在线八区| 国内熟女少妇一线天| 国产午夜人做人免费视频中文| 国产人成网线在线播放va| 久久精品这里只有精99品| 久久免费精品琪琪| 国产精品黄色片| 久久久91人妻无码精品蜜桃HD| 天堂av综合网| 欧美不卡视频在线| 欧美不卡视频在线观看| 人妻一区二区三区无码精品一区| 不卡视频国产| 在线精品亚洲国产| 成人免费网站久久久| 欧美第九页| 91精选国产大片| 欧美一级高清免费a| 亚洲天堂啪啪| 国产在线观看人成激情视频| 中文成人在线视频| 日韩国产亚洲一区二区在线观看| 日本国产精品一区久久久| 国产另类视频| 国产在线精彩视频二区| 四虎影院国产| 91麻豆久久久| 国产成在线观看免费视频| 激情亚洲天堂| 国产精品高清国产三级囯产AV| 国产精品夜夜嗨视频免费视频| 欧美精品v欧洲精品| 国产精品丝袜视频| 丁香五月激情图片| 日韩精品一区二区三区大桥未久| 免费在线国产一区二区三区精品| 欧美成人午夜视频免看| 91在线播放国产| 国产成人亚洲毛片| 国产福利在线免费观看| 国产香蕉97碰碰视频VA碰碰看 | 91小视频在线观看| 国产在线日本| 国产手机在线ΑⅤ片无码观看| 狠狠色狠狠色综合久久第一次| 夜夜拍夜夜爽| 国产SUV精品一区二区| 91av国产在线| 亚洲成综合人影院在院播放| 国产精品乱偷免费视频| 在线观看免费AV网| 香蕉99国内自产自拍视频| 免费高清a毛片| 午夜视频免费试看| 精品久久久久久中文字幕女 | 欧美专区在线观看| 99re免费视频|