MPEG-2信道解復(fù)用器的DSP+FPGA設(shè)計(jì)
1 MPEG-2標(biāo)準(zhǔn)簡介以及數(shù)字電視功能分析
MPEG(Motion pictures expert group)譯為運(yùn)動圖像專家組,他是在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ù)字音頻編碼方式和解碼過程。
一致
MPEG-2運(yùn)動圖像及其伴音通用國際標(biāo)準(zhǔn)在數(shù)字音/視頻領(lǐng)域得到了廣泛的應(yīng)用。在MPEG-2中,定義了兩種形式的碼流,即傳輸流(TS)和節(jié)目流(PS)。節(jié)目流一般用于相對無錯(cuò)的環(huán)境中,如交互式多媒體業(yè)務(wù),其長度是可變的。傳輸流則用于有錯(cuò)誤的環(huán)境中,如數(shù)字電視的地面廣播傳輸,其分組長度固定為188 b。傳輸流和節(jié)目流都是編碼后的基本數(shù)據(jù)流(ES)按照一定的格式打包后形成PES包,再加上一些系統(tǒng)級信息而構(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所示。
傳輸流由一道或多道節(jié)目組成,每道節(jié)目由一個(gè)或多個(gè)原始流和一些其他流復(fù)合在一起,包括視頻流,音頻流,節(jié)目特殊信息流和其他數(shù)據(jù)包。
首先介紹視頻和音頻PES流是如何轉(zhuǎn)換成TS流的。PES流是由視頻或音頻基本流分別打包處理后形成的PES包系列,PES包的長度是不定的。每個(gè)PES包的包頭攜帶了:
流標(biāo)識(SID)由同一個(gè)ES經(jīng)打包處理后得到的PES,其流標(biāo)識相同。
顯示時(shí)間戳(PTS)用于視頻和音頻之間的同步控制,它指示對解碼后視頻和音頻播放的適當(dāng)時(shí)刻。
解碼時(shí)間戳(DTS)用于視頻基本流解碼器和音頻基本流解碼器的同步控制,它指示對視頻和音頻基本流解碼的適當(dāng)時(shí)刻基本流的速率控制信息。
由于TS包長固定為188 b,所以在打包時(shí),PES包長若大于188 b,則對其進(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)先級。
連續(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)制前端,它對輸入TS流進(jìn)行處理以適應(yīng)該信道要求,基于MPEG-2的實(shí)時(shí)TS流信道解復(fù)用器的原理框圖如圖3所示。系統(tǒng)包括碼流輸入接口、PCR校正模塊、PSI分析和重新生成模塊及用戶接口等部分。
碼流輸入接口支持ASI(異步串行接口)和SPI(同步并行接口)兩種輸入格式。輸入信號經(jīng)過接口電平轉(zhuǎn)換,變?yōu)椴⑿蠺TL電平信號。輸入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è)定信息。下面對系統(tǒng)的幾個(gè)重要部分說明如下:
3.1 碼流分析
信道解復(fù)用器系統(tǒng)進(jìn)入正常狀態(tài)工作前要完成用戶參數(shù)設(shè)定,用戶最關(guān)心的參數(shù)是輸入TS流中所含節(jié)目類型、PID號、碼率等信息。系統(tǒng)首先會對輸入的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號。比如:輸入為一個(gè)22 Mb/s的TS流,包含3個(gè)節(jié)目,每個(gè)節(jié)目又包含多個(gè)視頻、音頻等數(shù)據(jù)流。假如目前用戶有兩個(gè)輸出信道,一個(gè)為829 Mb/s,另一個(gè)為2356 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è)視頻流,而用戶只對其中的兩個(gè)視頻流感興趣,那么用戶在設(shè)定時(shí)可以只選擇需要的視頻流,在系統(tǒng)進(jìn)入正常工作時(shí),未被選中的數(shù)據(jù)流將被自動過濾。
3.3 PCR補(bǔ)償
PCR是TS流的重要部分,它的精度決定了解碼端恢復(fù)時(shí)鐘的精度,直接關(guān)系到解碼器是否能正常的工作。輸入TS流中各節(jié)目的數(shù)據(jù)包從進(jìn)來到出去會在信道解復(fù)用器的FIFO內(nèi)產(chǎn)生一定的延時(shí),如果不對其PCR做相應(yīng)的延時(shí)補(bǔ)償,其輸出TS流的PCR誤差將有可能遠(yuǎn)大于協(xié)議所規(guī)定的
評論