??? 摘 要: 基于MPEG-2傳輸流" title="傳輸流">傳輸流,針對手機(jī)電視" title="手機(jī)電視">手機(jī)電視接收端" title="接收端">接收端系統(tǒng)層中節(jié)目特殊信息的作用及工作原理,、傳輸流解復(fù)用" title="復(fù)用">復(fù)用過程和視音頻" title="視音頻">視音頻信源同步實(shí)現(xiàn)等問題進(jìn)行了解析,,指出了MPEG-2系統(tǒng)同步機(jī)制的不足,提出了改進(jìn)意見,,并以韓國手機(jī)電視標(biāo)準(zhǔn)T-DMB為例,,實(shí)現(xiàn)了手機(jī)電視系統(tǒng)層。
??? 關(guān)鍵詞: 手機(jī)電視? MPEG-2? 復(fù)用? 同步
?
??? 手機(jī)電視在國內(nèi)外的標(biāo)準(zhǔn)眾多,,比較著名的國外標(biāo)準(zhǔn)有韓國移動多媒體標(biāo)準(zhǔn)T-DMB,、美國高通公司的手機(jī)電視標(biāo)準(zhǔn)MediaFLO、日本的ISTB-T標(biāo)準(zhǔn),,以及衍生于歐洲數(shù)字電視標(biāo)準(zhǔn)的DVB-H,;國內(nèi)標(biāo)準(zhǔn)有國家廣電總局頒布的手機(jī)電視行業(yè)標(biāo)準(zhǔn)CMMB和清華大學(xué)提出的DMB-TH標(biāo)準(zhǔn)。而MPEG-2傳輸流TS(Transport Stream)作為較普遍的系統(tǒng)層編碼標(biāo)準(zhǔn),,被大多數(shù)的手機(jī)電視標(biāo)準(zhǔn)支持和采用,。
??? 在MPEG-2系統(tǒng)層中,傳輸信道往往需要傳送多個節(jié)目信號的多個信源,,而每個信源的編碼,、傳輸和解碼都是獨(dú)立的。但是手機(jī)電視系統(tǒng)的傳輸信道往往只有一個,,不可能將這些信源在物理上分開傳輸,。發(fā)送端將信號復(fù)用成TS傳輸,所以在接收端如何區(qū)分這些TS包是必須面對的一個問題,。此外,,如何在接收端將視音頻信號在正確的時間播放顯示,也亟待解決,。本文在此基礎(chǔ)上,,以韓國的T-DMB標(biāo)準(zhǔn)為例,完成了手機(jī)電視接收端系統(tǒng)層的實(shí)現(xiàn),。
1 傳輸流解復(fù)用過程
??? 手機(jī)電視系統(tǒng)中傳輸?shù)腡S中包含了各種節(jié)目的視音頻信息,,如果不做區(qū)分,,就無法解碼視音頻信源,所以必須在接收端建立一個區(qū)分TS的機(jī)制,,將相關(guān)信息分門別類地進(jìn)行處理,。節(jié)目特殊信息PSI(Program Specific Information)建立了一個機(jī)制,其包括節(jié)目源結(jié)合表PAT(Program Association Table)和節(jié)目源映射表PMT(Program Map Table)等,。二者的建立為系統(tǒng)解復(fù)用器提供了傳輸流區(qū)分的依據(jù),。
??? PSI通過TS進(jìn)行傳輸,其中PAT的包識別號PID(Packet Identifier)被系統(tǒng)定義為0,,這樣就能直接找到PAT,。PAT的每一條記錄對應(yīng)一個節(jié)目的PMT及其PID,通過PAT就能找到需要的PMT,。PMT的每一條記錄對應(yīng)著一個節(jié)目的一個原始流ES(Elementary Stream),,而一個ES的PID是惟一的,所以通過PMT就能找到需要ES的TS包,。
??? TS由若干個定長為188B的TS包組成,,每一個TS包都有確定的PID。通過PSI的區(qū)分機(jī)制,,接收端將不同PID的TS包區(qū)分開,,分別放入不同的解復(fù)用通道中進(jìn)行處理,。通常,,一個接收端有若干個解復(fù)用通道,其中包括一個視頻解復(fù)用通道和若干個音頻解復(fù)用通道,。接收端的傳輸流解復(fù)用過程如圖1所示,。
???????????????????????????
??? 圖1中第一條解復(fù)用通道用來解復(fù)用視頻信源,其他解復(fù)用通道用來解復(fù)用音頻信源,。
??? 如果該TS包中攜帶原始流信息,,解復(fù)用器會把這些信息提取出來。系統(tǒng)對于視頻TS包和音頻TS包的處理過程有所不同,。視頻信源的TS包被去掉包頭后存到MBn緩存中,,稱為打包的原始流PES(Packetized Elementary Stream)。解復(fù)用器會進(jìn)一步將除PES包頭的剩余信息取出并存到原始流緩存EBn中等待解碼,。音頻信源TS包的PES沒有被系統(tǒng)緩存,,而是直接形成ES流,存放到Bn中等待解碼,。至此,,解復(fù)用器完成了從傳輸流到原始流的解復(fù)用過程。
2 同步問題的分析與解決
?手機(jī)電視系統(tǒng)中,,信源從發(fā)送端傳輸?shù)浇邮斩诵枰粋€過程,,而如何實(shí)現(xiàn)發(fā)送端和接收端同步是手機(jī)電視技術(shù)需要解決的問題,。另一方面,同一時間內(nèi),,解復(fù)用器并行執(zhí)行多條ES的解復(fù)用流程,,解復(fù)用所得到的多種原始流需要被并行解碼和播放,所以如何實(shí)現(xiàn)原始流之間的同步,,也是手機(jī)電視技術(shù)亟待解決的問題,。
2.1 視音頻同步模型的建立
??? MPEG-2給出了一個同步模型——常量延時模型,如圖2所示,。
????????????????????????????
??? 常量延時模型有兩個含義,。其一是指信源從發(fā)送端的復(fù)用器到接收端的解復(fù)用器的傳輸過程所需要的時間是一個常量。其二是指視音頻信號從進(jìn)入編碼器到從解碼器輸出過程所需要的時間是一個常量,。由于不同性質(zhì)的信源編碼和解碼所需要的時間不相同,,所以這個模型設(shè)計了信源所對應(yīng)的緩存,緩存中不同信源信號停留的時間不同,,從而保證視音頻信號從進(jìn)入編碼器到從解碼器輸出的過程所需時間是一個常量,。
2.2 系統(tǒng)時鐘頻率及節(jié)目時鐘參考的產(chǎn)生
??? 在常量延時模型的基礎(chǔ)上,MPEG-2系統(tǒng)在發(fā)送端和接收端都建立了系統(tǒng)時鐘頻率(頻率為27MHz左右),。發(fā)送端的系統(tǒng)時鐘頻率是從視頻輸入信號中提取的,,使用此頻率對發(fā)送端的一個計數(shù)器進(jìn)行計數(shù),該計數(shù)器的瞬間抽樣值即為節(jié)目時鐘參考PCR(Program Clock Reference),,被插入到TS的某一個精確的位置中,。而接收端的系統(tǒng)時鐘頻率是通過獲取攜帶在TS中的PCR信息,將PCR信息輸入一個鎖相環(huán)電路中進(jìn)行接收端時鐘頻率的恢復(fù)得到的,。
??? 通過以上說明可知,,MPEG-2系統(tǒng)中發(fā)送端和接收端已經(jīng)實(shí)現(xiàn)兩個時鐘頻率相同的計數(shù)器。在MPEG-2常量延時模型中,,因?yàn)閭鬏斶^程所需的時間恒定,,所以可以假設(shè)在PCR信息被傳送出發(fā)送端的那一瞬間,發(fā)送端的系統(tǒng)時鐘停止,,直到PCR被接收端接收的那一瞬間,,發(fā)送端的系統(tǒng)時鐘才恢復(fù)計數(shù),而這個恢復(fù)的系統(tǒng)時鐘其實(shí)就是接收端的系統(tǒng)時鐘,。這樣,,發(fā)送端和接收端便通過系統(tǒng)時鐘的概念實(shí)現(xiàn)了同步。
2.3 原始流之間同步的實(shí)現(xiàn)
??? 在接收端,,一個節(jié)目需要同時播放多個原始流,,所以視音頻信號之間的同步是手機(jī)電視技術(shù)亟待解決的問題。
??? 原始流的某些幀的數(shù)據(jù)在發(fā)送端被復(fù)用成PES時,會被貼上時間標(biāo)簽,,時間標(biāo)簽包括解碼時間標(biāo)簽DTS(Decoding Time Stamp)和顯示時間標(biāo)簽PTS(Presentation Time Stamp),。DTS和PTS攜帶在PES包頭中,分別用來通知解碼器和播放器在某個時間對該數(shù)據(jù)幀進(jìn)行解碼和播放,。由于有了接收端的節(jié)目時鐘參考,,在節(jié)目時鐘計數(shù)到DTS時刻,原始流解碼器對該數(shù)據(jù)幀進(jìn)行解碼,,在節(jié)目時鐘計數(shù)到PTS時刻時,,播放器對該數(shù)據(jù)幀進(jìn)行播放。對于音頻數(shù)據(jù)幀,,其幀編碼都是順序的,,所以它們的DTS和PTS幾乎相同,表現(xiàn)為只含有PTS而沒有DTS,。而對于視頻數(shù)據(jù)幀,,其被編碼后的順序會出現(xiàn)顛倒,所以它們的DTS和PTS并不相同,,表現(xiàn)為既含有PTS,,又含有DTS。
??? 如圖1所示,,當(dāng)視頻數(shù)據(jù)幀被解碼后,,因?yàn)轫樞蛘{(diào)換的關(guān)系,如果需要先播放后一幀,,則就會將前一幀先緩存在O1中,,等后一幀先播放之后再播放在O1中的數(shù)據(jù)幀,這樣就解決了由于編碼導(dǎo)致數(shù)據(jù)幀順序調(diào)換的問題,。至此,,視音頻之間的同步問題得到解決,。
2.4 對同步問題的改進(jìn)和提高
??? MPEG-2標(biāo)準(zhǔn)為解決同步問題建立了一個常量延時同步模型,,使用一個硬的基準(zhǔn)時間概念來對視音頻數(shù)據(jù)進(jìn)行同步。這種方法一般需要通過鎖相電路完成,。雖然用硬件完成這部分工作效率較高,,但是存在很多缺點(diǎn):(1)使用硬件完成不易移植,整個系統(tǒng)一般是固定的,,不能移植到其他平臺或系統(tǒng)中,。(2)MPEG-2要求每兩個PCR信息的時間間隔不能超過100ms,每兩個PTS信息的時間間隔不能超過700ms,,這樣就要求系統(tǒng)傳輸大量的同步信息,,從而導(dǎo)致傳輸效率降低。
??? 這種情況可以進(jìn)一步改進(jìn),用相對時間基準(zhǔn)替代硬時間基準(zhǔn),,就不再需要硬件計數(shù)的方式來確定同步信息了,。由于聲音信息的數(shù)據(jù)量和幀數(shù)在單位時間內(nèi)是一定的,視頻信源在單位時間內(nèi),,數(shù)據(jù)的幀數(shù)也是確定的,,所以可以在播放器內(nèi)建立一種機(jī)制,監(jiān)控視頻播放的幀數(shù),。如果在單位時間內(nèi),,視頻播放幀數(shù)過快,則視頻解碼器可以暫停解碼一小段時間,;反之,,視頻解碼器及播放器可以跳過幾幀視頻數(shù)據(jù),從而做到視音頻之間的同步,。
??? 這種同步模式遺棄了硬時間基準(zhǔn)概念,,進(jìn)而得到一個相對時間基準(zhǔn)概念。這樣,,就不需要重建發(fā)送端和接收端之間的同步關(guān)系,,只需要在發(fā)送端和接收端使視音頻數(shù)據(jù)幀按照一定的速率編解碼即可,在兩端同時需要建立一個監(jiān)控機(jī)制來監(jiān)控視音頻編解碼的速率,。
3 接收端系統(tǒng)層實(shí)現(xiàn)
??? 韓國手機(jī)電視標(biāo)準(zhǔn)T-DMB是目前中國手機(jī)電視的幾大主流標(biāo)準(zhǔn)之一,。下面以韓國的T-DMB標(biāo)準(zhǔn)為例介紹實(shí)現(xiàn)手機(jī)電視接收端的系統(tǒng)層。
??? 手機(jī)電視接收端分為手機(jī)電視信號接收轉(zhuǎn)換模塊,、TS解復(fù)用模塊,、PES解復(fù)用模塊、解碼模塊和播放模塊,,其中系統(tǒng)層實(shí)現(xiàn)TS解復(fù)用模塊,、PES解復(fù)用模塊。各模塊相互之間關(guān)系如圖3所示,。
??????????????????????????
??? 下層的手機(jī)電視信號接收轉(zhuǎn)換模塊為TS解復(fù)用模塊提供接收并轉(zhuǎn)換好的TS,;TS解復(fù)用模塊通過PSI區(qū)分并處理TS包,將所需TS包解復(fù)用成PES包提交給PES解模塊,;PES解復(fù)用模塊解復(fù)用PES包,,并向上層解碼器提交ES等待解碼。PES解復(fù)用模塊還需要向解碼器和播放器提供DTS和PTS,,指出解碼和播放的時間,。
??? 首先建立TS包區(qū)分機(jī)制PSI。PSI中PAT的數(shù)據(jù)機(jī)構(gòu)如下:
??? program_association_section() {
???????? 表編號及一些控制字段
???????? for (i=0,;i
??? reserved
???????? if(program_number==′0′) {
??????????? network_PID / * 網(wǎng)絡(luò)PID?鄢/
????? ??? }
??? else {
???????? program_map_PID/ * PMT的PID?鄢/
???????? }
???? }
???? CRC_32/*32位循環(huán)校驗(yàn)碼?鄢/
}
??? 其中:N表示該Section所含的記錄條數(shù),for循環(huán)中program_number表示節(jié)目編號,所對應(yīng)的program_map_
PID表示該節(jié)目PMT的PID,。
??? PSI中PMT的數(shù)據(jù)結(jié)構(gòu)如下:
????TS_program_map_section() {
?????? 表編號及一些控制字段
?????? PCR_PID/*含PCR的TS包的PID*/
?????? 一些控制字段和描述符
?????? for (i=0,;i
?????????? reserved
?????????? elementary_PID/*原始流的PID*/
?????????? reserved
?????????? ES_info_length/?鄢ES信息長度?鄢/
?????????? 描述符
?????? }
?????? CRC_32/?鄢32位循環(huán)校驗(yàn)碼?鄢/
??? 其中:PCR_PID指出了該節(jié)目的PCR所存在的TS包的PID,,因?yàn)椴⒉皇撬蠩S都包含PCR,。N表示該Section所含的記錄的條數(shù),for循環(huán)中stream_type描述該條記錄的ES類型,,該類型在MPEG-2中已被定義,,elementary_PID是該條記錄的ES的PID。
?建立PSI之后,,解復(fù)用模塊就可以用PSI來檢索區(qū)分TS包的歸屬,。TS包頭為定長4B,其中包括同步字節(jié)(sync_byte),、包識別號(PID)和一些控制信號字段,。TS包的數(shù)據(jù)結(jié)構(gòu)如下:
transport_packet(){
??? sync_byte/*同步字節(jié)*/
????一些控制字段
????PID/*包識別號?鄢/
????一些控制字段
????if(adaptation_field_control==′10′|| adaptation_field_control==′11′){
????????????? adaptation_field()/*自適應(yīng)區(qū)*/
????}
??? if(adaptation_field_control==′01′||adaptation_field_control== ′11′) {
??????????? for(i=0;i
????? ? }
??? }
??? 關(guān)于同步問題,,PCR字段使得發(fā)送端和接收端之間實(shí)現(xiàn)了同步,它被特定TS包的adaptation field攜帶,,而PMT中的PCR_PID字段已經(jīng)指出了該特定TS包的PID,。該TS包中的adaptation field存在PCR字段的部分定義如下:
??? adaptation_field() {
?????????? 一些控制字段
?????????? PCR_flag
????????? 一些控制標(biāo)記
????????? if(PCR_flag==′1′) {
????????? program_clock_reference_base
????????? reserved
????????? program_clock_reference_extension
????????? }
???????? 一些條件定義
??? }
??? DTS和PTS分別用來指出PES所攜帶的視音頻信源信息幀的解碼時間和顯示時間,從而實(shí)現(xiàn)了ES之間的同步,。DTS和PTS則被攜帶在PES包的包頭中,,定義DTS和PTS的數(shù)據(jù)結(jié)構(gòu)詳見MPEG-2標(biāo)準(zhǔn)第一部分[1]。
??? 當(dāng)PTS_DTS_flags==′10′,,只存在PTS而不存在DTS,,這種情況下的ES往往為音頻信源,此時PTS作為解碼器解碼該幀和播放器播放該幀的時間參數(shù),。當(dāng)PTS_DTS_flags==′11′,,PTS和DTS并存,這種情況下的ES往往為視頻信源,,此時PTS作為播放器播放該幀的時間參數(shù),,DTS作為解碼器解碼該幀的時間參數(shù),。
??? 手機(jī)電視系統(tǒng)的眾多標(biāo)準(zhǔn)較多采用MPEG-2傳輸流作為系統(tǒng)層編碼標(biāo)準(zhǔn),。本文基于MPEG-2對手機(jī)電視接收端進(jìn)行解析,包括TS流的解復(fù)用過程,、同步問題的解決和進(jìn)一步改進(jìn),,并以韓國手機(jī)電視標(biāo)準(zhǔn)T-DMB為例,實(shí)現(xiàn)了手機(jī)電視接收端的系統(tǒng)層。國內(nèi)某知名手機(jī)電視終端提供商已經(jīng)采用了該手機(jī)電視接收端的系統(tǒng)層,,效果良好,。
參考文獻(xiàn)
[1] Information techonlogy generic coding of moving pictures?and associated audio information:Systems.ISO/IEC,2000,,12.
[2] 梁志堅.基于Windows CE的MPEG2-TS流接收播放系統(tǒng)的研究與實(shí)現(xiàn).中國地質(zhì)大學(xué)碩士學(xué)位論文,,2006,5.
[3] 王保雄,,余松煜,,莊建敏.MPEG-2傳輸流中的時間信息與音頻同步.紅外與激光工程,2000,,(10).
[4] 吳軍.MPEG-2傳輸流的定時和同步.西部廣播電視,,2003,(10).