MPEG-2信道解復(fù)用器的DSP+FPGA設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞:MPEG-2標(biāo)準(zhǔn); 傳輸流; 碼流分析 ??
數(shù)字高清晰度電視(High Definition Television)簡(jiǎn)稱HDTV,是繼黑白電視和彩色電視之后的第三代電視系統(tǒng)。其圖像細(xì)膩逼真,質(zhì)量與35 mm電影相當(dāng),再配以環(huán)繞音響,使收視效果大幅度提高。它將成為21世紀(jì)的主要電視產(chǎn)品,具有潛在的巨大經(jīng)濟(jì)效益。因此,日、歐、美等發(fā)達(dá)國(guó)家都相繼投入了大量人力、物力來(lái)開(kāi)發(fā)HDTV系統(tǒng)。我國(guó)從1996年啟動(dòng)國(guó)家重大產(chǎn)業(yè)工程項(xiàng)目HDTV功能樣機(jī)系統(tǒng)研究開(kāi)發(fā)工程。
1 MPEG-2標(biāo)準(zhǔn)簡(jiǎ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ù)字視頻編碼方式和解碼過(guò)程。?
音頻壓縮層(Audio,ISO13818-3)描述數(shù)字音頻編碼方式和解碼過(guò)程。?
一致性(Conformance,ISO13818-4)說(shuō)明測(cè)試編碼碼流的過(guò)程,檢驗(yàn)是否符合前3個(gè)文件的規(guī)定。?
MPEG-2運(yùn)動(dòng)圖像及其伴音通用國(guó)際標(biāo)準(zhǔn)在數(shù)字音/視頻領(lǐng)域得到了廣泛的應(yīng)用。在MPEG-2中,定義了兩種形式的碼流,即傳輸流(TS)和節(jié)目流(PS)。節(jié)目流一般用于相對(duì)無(wú)錯(cuò)的環(huán)境中,如交互式多媒體業(yè)務(wù),其長(zhǎng)度是可變的。傳輸流則用于有錯(cuò)誤的環(huán)境中,如數(shù)字電視的地面廣播傳輸,其分組長(zhǎng)度固定為188 b。傳輸流和節(jié)目流都是編碼后的基本數(shù)據(jù)流(ES)按照一定的格式打包后形成PES包,再加上一些系統(tǒng)級(jí)信息而構(gòu)成。碼流的形成過(guò)程可以用圖1來(lái)表示。其中,采樣得到的視頻數(shù)據(jù)流和音頻數(shù)據(jù)流經(jīng)過(guò)編碼器后,成為MPEG-2 基本流(ES),再通過(guò)打包,成為包化ES流(PES),再經(jīng)過(guò)傳輸復(fù)用器,將音頻PES,視頻PES,以及其他的數(shù)據(jù)和控制信息,轉(zhuǎn)換成MPEG2傳輸流(TS).TS流經(jīng)過(guò)信道編碼和調(diào)制之后,發(fā)送到信道中。在接收端,正好相反,經(jīng)過(guò)解調(diào),信道解碼和前向糾錯(cuò)之后,再通過(guò)傳輸解復(fù)用器,分別輸出視頻PES流,音頻PES流,以及數(shù)據(jù)和控制信息,再通過(guò)視頻解碼器和音頻解碼器后,分別送入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包的長(zhǎng)度是不定的。每個(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包長(zhǎng)固定為188 b,所以在打包時(shí),PES包長(zhǎng)若大于188 b,則對(duì)其進(jìn)行分段處理,因?yàn)镻ES是放在TS包的有效載荷區(qū)進(jìn)行傳送的,所以分段后每段大小為184 b,不足184 b的加上適應(yīng)字段構(gòu)成184 b,有沒(méi)有適應(yīng)字段則由包頭中的適應(yīng)字段控制來(lái)指示。每段加上TS包頭就形成一個(gè)TS包。
TS包包頭中各字段含義如下:?
同步字節(jié)指示一個(gè)TS包的開(kāi)始。
傳輸錯(cuò)誤指示表示該傳輸包在傳輸過(guò)程中有無(wú)錯(cuò)誤。?
有效傳輸開(kāi)始指示若有效載荷區(qū)傳輸?shù)氖莵?lái)自PES包的數(shù)據(jù),則有效傳輸開(kāi)始指示表示有效載荷區(qū)的第一字節(jié)是否為被分段的PES包的起首字節(jié)。若有效載荷區(qū)傳輸?shù)氖莵?lái)自節(jié)目特殊信息的數(shù)據(jù),則有效傳輸開(kāi)始指示表示載荷區(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來(lái)恢復(fù)系統(tǒng)時(shí)鐘的。?
PSI信息使用4個(gè)表來(lái)定義碼流的結(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ù)留的:?
①空包,用來(lái)作碼流填充,PID是8191。?
②CAT包,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分析和重新生成模塊及用戶接口等部分。
碼流輸入接口支持ASI(異步串行接口)和SPI(同步并行接口)兩種輸入格式。輸入信號(hào)經(jīng)過(guò)接口電平轉(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過(guò)濾和PCR延時(shí)補(bǔ)償,另外1片負(fù)責(zé)用戶接口。而DSP則負(fù)責(zé)分析TS流,根據(jù)用戶設(shè)定分路,并生成新的PAT及PMT數(shù)據(jù)包。CLOCK1和CLOCK2來(lái)自后端信道調(diào)制器的時(shí)鐘,輸入的單路多節(jié)目TS流的內(nèi)容將根據(jù)用戶的設(shè)定被分別分配到TS1和TS2,輸出碼率分別決定于CLOCK1和CLOCK2。DSP前端和后端的FIFO消除了輸入輸出碼率不同所帶來(lái)的數(shù)據(jù)丟失現(xiàn)象。27 MHz的本地時(shí)鐘用來(lái)補(bǔ)償輸入TS流的PCR在系統(tǒng)中所產(chǎn)生的延時(shí)。用戶接口通過(guò)一雙口RAM與系統(tǒng)交換相關(guān)的設(shè)定信息。下面對(duì)系統(tǒng)的幾個(gè)重要部分說(shuō)明如下:?????????
3.1 碼流分析?
信道解復(fù)用器系統(tǒng)進(jìn)入正常狀態(tài)工作前要完成用戶參數(shù)設(shè)定,用戶最關(guān)心的參數(shù)是輸入TS流中所含節(jié)目類(lèi)型、PID號(hào)、碼率等信息。系統(tǒng)首先會(huì)對(duì)輸入的TS進(jìn)行分析,從中提取出所有的節(jié)目信息,并且計(jì)算出不同類(lèi)型數(shù)據(jù)包的碼率。用戶根據(jù)這些分析結(jié)果可以了解到目前輸入TS流的所有基本信息。
3.2 用戶設(shè)定 ?
根據(jù)用戶的實(shí)際需要,輸入TS流的節(jié)目?jī)?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è)定來(lái)分別為輸出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)過(guò)濾。?
3.3 PCR補(bǔ)償?
PCR是TS流的重要部分,它的精度決定了解碼端恢復(fù)時(shí)鐘的精度,直接關(guān)系到解碼器是否能正常的工作。輸入TS流中各節(jié)目的數(shù)據(jù)包從進(jìn)來(lái)到出去會(huì)在信道解復(fù)用器的FIFO內(nèi)產(chǎn)生一定的延時(shí),如果不對(duì)其PCR做相應(yīng)的延時(shí)補(bǔ)償,其輸出TS流的PCR誤差將有可能遠(yuǎn)大于協(xié)議所規(guī)定的±500 ns的誤差范圍,從而導(dǎo)致解碼不正常。假定某個(gè)PCR在T1時(shí)刻進(jìn)入信道解復(fù)用器,在T2時(shí)刻從解復(fù)用器輸出,則該時(shí)刻的PCR值將被替換為PCR′。
PCR′ = PCR +(T2-T1)??
延時(shí)補(bǔ)償運(yùn)算中所用到的時(shí)間標(biāo)記T1、T2是由本地27 MHz時(shí)鐘計(jì)數(shù)所得,由于碼流在解復(fù)用器內(nèi)的停留時(shí)間并不會(huì)太大,所以用本地27MHz記錄延時(shí)帶來(lái)的累積誤差很小。
3.4 用戶接口?
對(duì)于解復(fù)用器后端的信道調(diào)制器來(lái)說(shuō),最關(guān)心的是如何從信道解復(fù)用器中得到節(jié)目信息,以及如何將所選節(jié)目分配到TS1和TS2上。這些信息是通過(guò)用戶接口進(jìn)行交換的。?
考慮到本系統(tǒng)需交換的信息較多,這里采用一容量較大的16位地址的雙端口RAM(DPRAM),作為信道調(diào)制器和解復(fù)用器交換信息的平臺(tái)。信道解復(fù)用器在對(duì)輸入TS流進(jìn)行分析后,將所提取的各種節(jié)目信息放在雙口RAM的相應(yīng)地址中,以供信道調(diào)制器讀取和修改。解復(fù)用器根據(jù)調(diào)制器送入的讀寫(xiě)信號(hào)及相關(guān)數(shù)據(jù)和地址信息,由FPGA電路實(shí)現(xiàn)取指和譯碼,將調(diào)制器所需信息從DPRAM的相應(yīng)地址中取出并送給信道調(diào)制器,或?qū)?strong>信道調(diào)制器修改后的信息從DPRAM的相應(yīng)地址中取出。