<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MPEG-2信道解復(fù)用器的DSP+FPGA設(shè)計(jì)

          MPEG-2信道解復(fù)用器的DSP+FPGA設(shè)計(jì)

          ——
          作者:張蔚麗 時(shí)間:2007-07-03 來源:現(xiàn)代電子技術(shù) 收藏
          數(shù)字高清晰度電視(High Definition Television)簡稱HDTV,是繼黑白電視和彩色電視之后的第三代電視系統(tǒng)。其圖像細(xì)膩逼真,質(zhì)量與35 mm電影相當(dāng),再配以環(huán)繞音響,使收視效果大幅度提高。它將成為21世紀(jì)的主要電視產(chǎn)品,具有潛在的巨大經(jīng)濟(jì)效益。因此,日、歐、美等發(fā)達(dá)國家都相繼投入了大量人力、物力來開發(fā)HDTV系統(tǒng)。我國從1996年啟動(dòng)國家重大產(chǎn)業(yè)工程項(xiàng)目HDTV功能樣機(jī)系統(tǒng)研究開發(fā)工程。

            1  MPEG-2標(biāo)準(zhǔn)簡介以及數(shù)字電視功能分析

            MPEG(Motion pictures expert group)譯為運(yùn)動(dòng)圖像專家組,他是在ISO的召集下,為數(shù)字視頻和音頻制定壓縮標(biāo)準(zhǔn)的專家組。該組織于1994年推出MPEG-2標(biāo)準(zhǔn)。此標(biāo)準(zhǔn)分為4個(gè)文件,分別是:

            系統(tǒng)層(System,ISO13818-1)描述視頻,音頻的數(shù)據(jù)復(fù)用方式和視頻,音頻同步方式。

            視頻壓縮層(Video,ISO13818-2)描述數(shù)字視頻編碼方式和解碼過程。

            音頻壓縮層(Audio,ISO13818-3)描述數(shù)字音頻編碼方式和解碼過程。

            一致

           
          性(Conformance,ISO13818-4)說明測(cè)試編碼碼流的過程,檢驗(yàn)是否符合前3個(gè)文件的規(guī)定。

            MPEG-2運(yùn)動(dòng)圖像及其伴音通用國際標(biāo)準(zhǔn)在數(shù)字音/視頻領(lǐng)域得到了廣泛的應(yīng)用。在MPEG-2中,定義了兩種形式的碼流,即傳輸流(TS)和節(jié)目流(PS)。節(jié)目流一般用于相對(duì)無錯(cuò)的環(huán)境中,如交互式多媒體業(yè)務(wù),其長度是可變的。傳輸流則用于有錯(cuò)誤的環(huán)境中,如數(shù)字電視的地面廣播傳輸,其分組長度固定為188 b。傳輸流和節(jié)目流都是編碼后的基本數(shù)據(jù)流(ES)按照一定的格式打包后形成PES包,再加上一些系統(tǒng)級(jí)信息而構(gòu)成。碼流的形成過程可以用圖1來表示。其中,采樣得到的視頻數(shù)據(jù)流和音頻數(shù)據(jù)流經(jīng)過編碼器后,成為MPEG-2 基本流(ES),再通過打包,成為包化ES流(PES),再經(jīng)過傳輸復(fù)用器,將音頻PES,視頻PES,以及其他的數(shù)據(jù)和控制信息,轉(zhuǎn)換成MPEG2傳輸流(TS).TS流經(jīng)過信道編碼和調(diào)制之后,發(fā)送到信道中。在接收端,正好相反,經(jīng)過解調(diào),信道解碼和前向糾錯(cuò)之后,再通過傳輸解復(fù)用器,分別輸出視頻PES流,音頻PES流,以及數(shù)據(jù)和控制信息,再通過視頻解碼器和音頻解碼器后,分別送入DTV顯示系統(tǒng)和音頻播放系統(tǒng)。

          碼流的形成過程

            2  關(guān)于傳輸流以及傳輸流中幾個(gè)重要概念

            傳輸流TS包的結(jié)構(gòu)如圖2所示。

          傳輸流TS包的結(jié)構(gòu)

            傳輸流由一道或多道節(jié)目組成,每道節(jié)目由一個(gè)或多個(gè)原始流和一些其他流復(fù)合在一起,包括視頻流,音頻流,節(jié)目特殊信息流和其他數(shù)據(jù)包。

            首先介紹視頻和音頻PES流是如何轉(zhuǎn)換成TS流的。PES流是由視頻或音頻基本流分別打包處理后形成的PES包系列,PES包的長度是不定的。每個(gè)PES包的包頭攜帶了:

            流標(biāo)識(shí)(SID)由同一個(gè)ES經(jīng)打包處理后得到的PES,其流標(biāo)識(shí)相同。

            顯示時(shí)間戳(PTS)用于視頻和音頻之間的同步控制,它指示對(duì)解碼后視頻和音頻播放的適當(dāng)時(shí)刻。

            解碼時(shí)間戳(DTS)用于視頻基本流解碼器和音頻基本流解碼器的同步控制,它指示對(duì)視頻和音頻基本流解碼的適當(dāng)時(shí)刻基本流的速率控制信息。

            由于TS包長固定為188 b,所以在打包時(shí),PES包長若大于188 b,則對(duì)其進(jìn)行分段處理,因?yàn)镻ES是放在TS包的有效載荷區(qū)進(jìn)行傳送的,所以分段后每段大小為184 b,不足184 b的加上適應(yīng)字段構(gòu)成184 b,有沒有適應(yīng)字段則由包頭中的適應(yīng)字段控制來指示。每段加上TS包頭就形成一個(gè)TS包。

            TS包包頭中各字段含義如下:

            同步字節(jié)指示一個(gè)TS包的開始。

            傳輸錯(cuò)誤指示表示該傳輸包在傳輸過程中有無錯(cuò)誤。

            有效傳輸開始指示若有效載荷區(qū)傳輸?shù)氖莵碜訮ES包的數(shù)據(jù),則有效傳輸開始指示表示有效載荷區(qū)的第一字節(jié)是否為被分段的PES包的起首字節(jié)。若有效載荷區(qū)傳輸?shù)氖莵碜怨?jié)目特殊信息的數(shù)據(jù),則有效傳輸開始指示表示載荷區(qū)第一字節(jié)是否是PSI數(shù)據(jù)起首字節(jié)的位置指針。

            傳輸優(yōu)先指示表示的是具有相同的PID的傳輸包的優(yōu)先級(jí)。

            連續(xù)計(jì)數(shù)器PID相同的傳輸包的計(jì)數(shù)。

            此外,在TS包包頭的調(diào)整字段中,有一個(gè)重要的域PCR,即節(jié)目時(shí)鐘基準(zhǔn)。它以固定的頻率插入包頭。在解碼端,正是根據(jù)PCR來恢復(fù)系統(tǒng)時(shí)鐘的。

          PSI信息使用4個(gè)表來定義碼流的結(jié)構(gòu),分別為節(jié)目關(guān)聯(lián)表(PAT)、節(jié)目映射表(PMT)、條件接收表(CAT)和網(wǎng)絡(luò)信息表(NIT)。其中,最重要的表信息是PAT和PMT。PAT是PSI信息的根,其PID是0,表中列出了傳送碼流中所有節(jié)目的節(jié)目映射表的PID,PMT表中列出與該節(jié)目有關(guān)的所有基本碼流,如視頻、音頻和PCR及有關(guān)信息的PID。除PAT表包的PID永遠(yuǎn)是0外,還有兩種包的PID是預(yù)留的:

           ?、倏瞻?,用來作碼流填充,PID是8191。

           ?、贑AT包,PID值是1。所有PSI信息必須以一定的頻率發(fā)送,每秒鐘至少要發(fā)送20次。

            3  信道解復(fù)用器的原理

            信道解復(fù)用器位于信道調(diào)制前端,它對(duì)輸入TS流進(jìn)行處理以適應(yīng)該信道要求,基于MPEG-2的實(shí)時(shí)TS流信道解復(fù)用器的原理框圖如圖3所示。系統(tǒng)包括碼流輸入接口、PCR校正模塊、PSI分析和重新生成模塊及用戶接口等部分。

          基于MPEG-2的實(shí)時(shí)TS流信道解復(fù)用器的原理框圖

            碼流輸入接口支持ASI(異步串行接口)和SPI(同步并行接口)兩種輸入格式。輸入信號(hào)經(jīng)過接口電平轉(zhuǎn)換,變?yōu)椴⑿蠺TL電平信號(hào)。輸入TS流的最大數(shù)據(jù)率可達(dá)120 Mb/s,該系統(tǒng)實(shí)現(xiàn)兩路獨(dú)立的TS流輸出,它們各自的數(shù)據(jù)率分別由CLOCK1和CLOCK2時(shí)鐘決定。其取值范圍從1.5 Mb/s到120 Mb/s。

            系統(tǒng)中核心部分為2片F(xiàn)PGA和1片DSP,其中1片F(xiàn)PGA主要完成PID過濾和PCR延時(shí)補(bǔ)償,另外1片負(fù)責(zé)用戶接口。而DSP則負(fù)責(zé)分析TS流,根據(jù)用 戶設(shè)定分路,并生成新的PAT及PMT數(shù)據(jù)包。CLOCK1和CLOCK2來自后端信道調(diào)制器的時(shí)鐘,輸入的單路多節(jié)目TS流的內(nèi)容將根據(jù)用戶的設(shè)定被分別分配到TS1和TS2,輸出碼率分別決定于CLOCK1和CLOCK2。DSP前端和后端的FIFO消除了輸入輸出碼率不同所帶來的數(shù)據(jù)丟失現(xiàn)象。27 MHz的本地時(shí)鐘用來補(bǔ)償輸入TS流的PCR在系統(tǒng)中所產(chǎn)生的延時(shí)。用戶接口通過一雙口RAM與系統(tǒng)交換相關(guān)的設(shè)定信息。下面對(duì)系統(tǒng)的幾個(gè)重要部分說明如下:

          3.1  碼流分析

            信道解復(fù)用器系統(tǒng)進(jìn)入正常狀態(tài)工作前要完成用戶參數(shù)設(shè)定,用戶最關(guān)心的參數(shù)是輸入TS流中所含節(jié)目類型、PID號(hào)、碼率等信息。系統(tǒng)首先會(huì)對(duì)輸入的TS進(jìn)行分析,從中提取出所有的節(jié)目信息,并且計(jì)算出不同類型數(shù)據(jù)包的碼率。用戶根據(jù)這些分析結(jié)果可以了解到目前輸入TS流的所有基本信息。

            3.2  用戶設(shè)定  

            根據(jù)用戶的實(shí)際需要,輸入TS流的節(jié)目內(nèi)容可以分別被指定分配到兩個(gè)輸出通道,并且允許同一個(gè)節(jié)目同時(shí)被分配到兩個(gè)通道,用戶也被允許修改PID號(hào)。比如:輸入為一個(gè)22 Mb/s的TS流,包含3個(gè)節(jié)目,每個(gè)節(jié)目又包含多個(gè)視頻、音頻等數(shù)據(jù)流。假如目前用戶有兩個(gè)輸出信道,一個(gè)為829 Mb/s,另一個(gè)為2356 Mb/s,并且用戶打算將輸入碼流中的節(jié)目1分配到信道1,節(jié)目2和3分配到信道2。用戶則可根據(jù)需要做相應(yīng)的設(shè)定,解復(fù)用器系統(tǒng)將根據(jù)用戶的設(shè)定來分別為輸出TS1和TS2生成新的PAT和PMT并且將相應(yīng)的視頻、音頻等數(shù)據(jù)包分配到相應(yīng)的通道。用戶選擇節(jié)目時(shí)也可以只選擇該節(jié)目中的部分?jǐn)?shù)據(jù)流。比如某個(gè)節(jié)目包含4個(gè)視頻流,而用戶只對(duì)其中的兩個(gè)視頻流感興趣,那么用戶在設(shè)定時(shí)可以只選擇需要的視頻流,在系統(tǒng)進(jìn)入正常工作時(shí),未被選中的數(shù)據(jù)流將被自動(dòng)過濾。

            3.3  PCR補(bǔ)償

            PCR是TS流的重要部分,它的精度決定了解碼端恢復(fù)時(shí)鐘的精度,直接關(guān)系到解碼器是否能正常的工作。輸入TS流中各節(jié)目的數(shù)據(jù)包從進(jìn)來到出去會(huì)在信道解復(fù)用器的FIFO內(nèi)產(chǎn)生一定的延時(shí),如果不對(duì)其PCR做相應(yīng)的延時(shí)補(bǔ)償,其輸出TS流的PCR誤差將有可能遠(yuǎn)大于協(xié)議所規(guī)定的



          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();