《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > 手機(jī)電視接收端系統(tǒng)層解析與實(shí)現(xiàn)

手機(jī)電視接收端系統(tǒng)層解析與實(shí)現(xiàn)

2008-07-10
作者:李立宏1,黃 金2

??? 摘 要: 基于MPEG-2傳輸流" title="傳輸流">傳輸流,針對(duì)手機(jī)電視" title="手機(jī)電視">手機(jī)電視接收端" title="接收端">接收端系統(tǒng)層中節(jié)目特殊信息的作用及工作原理、傳輸流解復(fù)用" title="復(fù)用">復(fù)用過(guò)程和視音頻" title="視音頻">視音頻信源同步實(shí)現(xiàn)等問(wèn)題進(jìn)行了解析,指出了MPEG-2系統(tǒng)同步機(jī)制的不足,提出了改進(jìn)意見(jiàn),并以韓國(guó)手機(jī)電視標(biāo)準(zhǔn)T-DMB為例,實(shí)現(xiàn)了手機(jī)電視系統(tǒng)層。
??? 關(guān)鍵詞: 手機(jī)電視? MPEG-2? 復(fù)用? 同步

?

??? 手機(jī)電視在國(guó)內(nèi)外的標(biāo)準(zhǔn)眾多,比較著名的國(guó)外標(biāo)準(zhǔn)有韓國(guó)移動(dòng)多媒體標(biāo)準(zhǔn)T-DMB、美國(guó)高通公司的手機(jī)電視標(biāo)準(zhǔn)MediaFLO、日本的ISTB-T標(biāo)準(zhǔn),以及衍生于歐洲數(shù)字電視標(biāo)準(zhǔn)的DVB-H;國(guó)內(nèi)標(biāo)準(zhǔn)有國(guó)家廣電總局頒布的手機(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)層中,傳輸信道往往需要傳送多個(gè)節(jié)目信號(hào)的多個(gè)信源,而每個(gè)信源的編碼、傳輸和解碼都是獨(dú)立的。但是手機(jī)電視系統(tǒng)的傳輸信道往往只有一個(gè),不可能將這些信源在物理上分開傳輸。發(fā)送端將信號(hào)復(fù)用成TS傳輸,所以在接收端如何區(qū)分這些TS包是必須面對(duì)的一個(gè)問(wèn)題。此外,如何在接收端將視音頻信號(hào)在正確的時(shí)間播放顯示,也亟待解決。本文在此基礎(chǔ)上,以韓國(guó)的T-DMB標(biāo)準(zhǔn)為例,完成了手機(jī)電視接收端系統(tǒng)層的實(shí)現(xiàn)。
1 傳輸流解復(fù)用過(guò)程
??? 手機(jī)電視系統(tǒng)中傳輸?shù)腡S中包含了各種節(jié)目的視音頻信息,如果不做區(qū)分,就無(wú)法解碼視音頻信源,所以必須在接收端建立一個(gè)區(qū)分TS的機(jī)制,將相關(guān)信息分門別類地進(jìn)行處理。節(jié)目特殊信息PSI(Program Specific Information)建立了一個(gè)機(jī)制,其包括節(jié)目源結(jié)合表PAT(Program Association Table)和節(jié)目源映射表PMT(Program Map Table)等。二者的建立為系統(tǒng)解復(fù)用器提供了傳輸流區(qū)分的依據(jù)。
??? PSI通過(guò)TS進(jìn)行傳輸,其中PAT的包識(shí)別號(hào)PID(Packet Identifier)被系統(tǒng)定義為0,這樣就能直接找到PAT。PAT的每一條記錄對(duì)應(yīng)一個(gè)節(jié)目的PMT及其PID,通過(guò)PAT就能找到需要的PMT。PMT的每一條記錄對(duì)應(yīng)著一個(gè)節(jié)目的一個(gè)原始流ES(Elementary Stream),而一個(gè)ES的PID是惟一的,所以通過(guò)PMT就能找到需要ES的TS包。
??? TS由若干個(gè)定長(zhǎng)為188B的TS包組成,每一個(gè)TS包都有確定的PID。通過(guò)PSI的區(qū)分機(jī)制,接收端將不同PID的TS包區(qū)分開,分別放入不同的解復(fù)用通道中進(jìn)行處理。通常,一個(gè)接收端有若干個(gè)解復(fù)用通道,其中包括一個(gè)視頻解復(fù)用通道和若干個(gè)音頻解復(fù)用通道。接收端的傳輸流解復(fù)用過(guò)程如圖1所示。

???????????????????????????
??? 圖1中第一條解復(fù)用通道用來(lái)解復(fù)用視頻信源,其他解復(fù)用通道用來(lái)解復(fù)用音頻信源。
??? 如果該TS包中攜帶原始流信息,解復(fù)用器會(huì)把這些信息提取出來(lái)。系統(tǒng)對(duì)于視頻TS包和音頻TS包的處理過(guò)程有所不同。視頻信源的TS包被去掉包頭后存到MBn緩存中,稱為打包的原始流PES(Packetized Elementary Stream)。解復(fù)用器會(huì)進(jìn)一步將除PES包頭的剩余信息取出并存到原始流緩存EBn中等待解碼。音頻信源TS包的PES沒(méi)有被系統(tǒng)緩存,而是直接形成ES流,存放到Bn中等待解碼。至此,解復(fù)用器完成了從傳輸流到原始流的解復(fù)用過(guò)程。
2 同步問(wèn)題的分析與解決
?手機(jī)電視系統(tǒng)中,信源從發(fā)送端傳輸?shù)浇邮斩诵枰粋€(gè)過(guò)程,而如何實(shí)現(xiàn)發(fā)送端和接收端同步是手機(jī)電視技術(shù)需要解決的問(wèn)題。另一方面,同一時(shí)間內(nèi),解復(fù)用器并行執(zhí)行多條ES的解復(fù)用流程,解復(fù)用所得到的多種原始流需要被并行解碼和播放,所以如何實(shí)現(xiàn)原始流之間的同步,也是手機(jī)電視技術(shù)亟待解決的問(wèn)題。
2.1 視音頻同步模型的建立
??? MPEG-2給出了一個(gè)同步模型——常量延時(shí)模型,如圖2所示。

????????????????????????????
??? 常量延時(shí)模型有兩個(gè)含義。其一是指信源從發(fā)送端的復(fù)用器到接收端的解復(fù)用器的傳輸過(guò)程所需要的時(shí)間是一個(gè)常量。其二是指視音頻信號(hào)從進(jìn)入編碼器到從解碼器輸出過(guò)程所需要的時(shí)間是一個(gè)常量。由于不同性質(zhì)的信源編碼和解碼所需要的時(shí)間不相同,所以這個(gè)模型設(shè)計(jì)了信源所對(duì)應(yīng)的緩存,緩存中不同信源信號(hào)停留的時(shí)間不同,從而保證視音頻信號(hào)從進(jìn)入編碼器到從解碼器輸出的過(guò)程所需時(shí)間是一個(gè)常量。
2.2 系統(tǒng)時(shí)鐘頻率及節(jié)目時(shí)鐘參考的產(chǎn)生
??? 在常量延時(shí)模型的基礎(chǔ)上,MPEG-2系統(tǒng)在發(fā)送端和接收端都建立了系統(tǒng)時(shí)鐘頻率(頻率為27MHz左右)。發(fā)送端的系統(tǒng)時(shí)鐘頻率是從視頻輸入信號(hào)中提取的,使用此頻率對(duì)發(fā)送端的一個(gè)計(jì)數(shù)器進(jìn)行計(jì)數(shù),該計(jì)數(shù)器的瞬間抽樣值即為節(jié)目時(shí)鐘參考PCR(Program Clock Reference),被插入到TS的某一個(gè)精確的位置中。而接收端的系統(tǒng)時(shí)鐘頻率是通過(guò)獲取攜帶在TS中的PCR信息,將PCR信息輸入一個(gè)鎖相環(huán)電路中進(jìn)行接收端時(shí)鐘頻率的恢復(fù)得到的。
??? 通過(guò)以上說(shuō)明可知,MPEG-2系統(tǒng)中發(fā)送端和接收端已經(jīng)實(shí)現(xiàn)兩個(gè)時(shí)鐘頻率相同的計(jì)數(shù)器。在MPEG-2常量延時(shí)模型中,因?yàn)閭鬏斶^(guò)程所需的時(shí)間恒定,所以可以假設(shè)在PCR信息被傳送出發(fā)送端的那一瞬間,發(fā)送端的系統(tǒng)時(shí)鐘停止,直到PCR被接收端接收的那一瞬間,發(fā)送端的系統(tǒng)時(shí)鐘才恢復(fù)計(jì)數(shù),而這個(gè)恢復(fù)的系統(tǒng)時(shí)鐘其實(shí)就是接收端的系統(tǒng)時(shí)鐘。這樣,發(fā)送端和接收端便通過(guò)系統(tǒng)時(shí)鐘的概念實(shí)現(xiàn)了同步。
2.3 原始流之間同步的實(shí)現(xiàn)
??? 在接收端,一個(gè)節(jié)目需要同時(shí)播放多個(gè)原始流,所以視音頻信號(hào)之間的同步是手機(jī)電視技術(shù)亟待解決的問(wèn)題。
??? 原始流的某些幀的數(shù)據(jù)在發(fā)送端被復(fù)用成PES時(shí),會(huì)被貼上時(shí)間標(biāo)簽,時(shí)間標(biāo)簽包括解碼時(shí)間標(biāo)簽DTS(Decoding Time Stamp)和顯示時(shí)間標(biāo)簽PTS(Presentation Time Stamp)。DTS和PTS攜帶在PES包頭中,分別用來(lái)通知解碼器和播放器在某個(gè)時(shí)間對(duì)該數(shù)據(jù)幀進(jìn)行解碼和播放。由于有了接收端的節(jié)目時(shí)鐘參考,在節(jié)目時(shí)鐘計(jì)數(shù)到DTS時(shí)刻,原始流解碼器對(duì)該數(shù)據(jù)幀進(jìn)行解碼,在節(jié)目時(shí)鐘計(jì)數(shù)到PTS時(shí)刻時(shí),播放器對(duì)該數(shù)據(jù)幀進(jìn)行播放。對(duì)于音頻數(shù)據(jù)幀,其幀編碼都是順序的,所以它們的DTS和PTS幾乎相同,表現(xiàn)為只含有PTS而沒(méi)有DTS。而對(duì)于視頻數(shù)據(jù)幀,其被編碼后的順序會(huì)出現(xiàn)顛倒,所以它們的DTS和PTS并不相同,表現(xiàn)為既含有PTS,又含有DTS。
??? 如圖1所示,當(dāng)視頻數(shù)據(jù)幀被解碼后,因?yàn)轫樞蛘{(diào)換的關(guān)系,如果需要先播放后一幀,則就會(huì)將前一幀先緩存在O1中,等后一幀先播放之后再播放在O1中的數(shù)據(jù)幀,這樣就解決了由于編碼導(dǎo)致數(shù)據(jù)幀順序調(diào)換的問(wèn)題。至此,視音頻之間的同步問(wèn)題得到解決。
2.4 對(duì)同步問(wèn)題的改進(jìn)和提高
??? MPEG-2標(biāo)準(zhǔn)為解決同步問(wèn)題建立了一個(gè)常量延時(shí)同步模型,使用一個(gè)硬的基準(zhǔn)時(shí)間概念來(lái)對(duì)視音頻數(shù)據(jù)進(jìn)行同步。這種方法一般需要通過(guò)鎖相電路完成。雖然用硬件完成這部分工作效率較高,但是存在很多缺點(diǎn):(1)使用硬件完成不易移植,整個(gè)系統(tǒng)一般是固定的,不能移植到其他平臺(tái)或系統(tǒng)中。(2)MPEG-2要求每?jī)蓚€(gè)PCR信息的時(shí)間間隔不能超過(guò)100ms,每?jī)蓚€(gè)PTS信息的時(shí)間間隔不能超過(guò)700ms,這樣就要求系統(tǒng)傳輸大量的同步信息,從而導(dǎo)致傳輸效率降低。
??? 這種情況可以進(jìn)一步改進(jìn),用相對(duì)時(shí)間基準(zhǔn)替代硬時(shí)間基準(zhǔn),就不再需要硬件計(jì)數(shù)的方式來(lái)確定同步信息了。由于聲音信息的數(shù)據(jù)量和幀數(shù)在單位時(shí)間內(nèi)是一定的,視頻信源在單位時(shí)間內(nèi),數(shù)據(jù)的幀數(shù)也是確定的,所以可以在播放器內(nèi)建立一種機(jī)制,監(jiān)控視頻播放的幀數(shù)。如果在單位時(shí)間內(nèi),視頻播放幀數(shù)過(guò)快,則視頻解碼器可以暫停解碼一小段時(shí)間;反之,視頻解碼器及播放器可以跳過(guò)幾幀視頻數(shù)據(jù),從而做到視音頻之間的同步。
??? 這種同步模式遺棄了硬時(shí)間基準(zhǔn)概念,進(jìn)而得到一個(gè)相對(duì)時(shí)間基準(zhǔn)概念。這樣,就不需要重建發(fā)送端和接收端之間的同步關(guān)系,只需要在發(fā)送端和接收端使視音頻數(shù)據(jù)幀按照一定的速率編解碼即可,在兩端同時(shí)需要建立一個(gè)監(jiān)控機(jī)制來(lái)監(jiān)控視音頻編解碼的速率。
3 接收端系統(tǒng)層實(shí)現(xiàn)
??? 韓國(guó)手機(jī)電視標(biāo)準(zhǔn)T-DMB是目前中國(guó)手機(jī)電視的幾大主流標(biāo)準(zhǔn)之一。下面以韓國(guó)的T-DMB標(biāo)準(zhǔn)為例介紹實(shí)現(xiàn)手機(jī)電視接收端的系統(tǒng)層。
??? 手機(jī)電視接收端分為手機(jī)電視信號(hào)接收轉(zhuǎn)換模塊、TS解復(fù)用模塊、PES解復(fù)用模塊、解碼模塊和播放模塊,其中系統(tǒng)層實(shí)現(xiàn)TS解復(fù)用模塊、PES解復(fù)用模塊。各模塊相互之間關(guān)系如圖3所示。

??????????????????????????
??? 下層的手機(jī)電視信號(hào)接收轉(zhuǎn)換模塊為TS解復(fù)用模塊提供接收并轉(zhuǎn)換好的TS;TS解復(fù)用模塊通過(guò)PSI區(qū)分并處理TS包,將所需TS包解復(fù)用成PES包提交給PES解模塊;PES解復(fù)用模塊解復(fù)用PES包,并向上層解碼器提交ES等待解碼。PES解復(fù)用模塊還需要向解碼器和播放器提供DTS和PTS,指出解碼和播放的時(shí)間。
??? 首先建立TS包區(qū)分機(jī)制PSI。PSI中PAT的數(shù)據(jù)機(jī)構(gòu)如下:
??? program_association_section() {
???????? 表編號(hào)及一些控制字段
???????? for (i=0;i???????? program_number / * 節(jié)目編號(hào)?鄢/
??? 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é)目編號(hào),所對(duì)應(yīng)的program_map_
PID表示該節(jié)目PMT的PID。
??? PSI中PMT的數(shù)據(jù)結(jié)構(gòu)如下:
????TS_program_map_section() {
?????? 表編號(hào)及一些控制字段
?????? PCR_PID/*含PCR的TS包的PID*/
?????? 一些控制字段和描述符
?????? for (i=0;i?????????? stream_type/*原始流類型*/
?????????? reserved
?????????? elementary_PID/*原始流的PID*/
?????????? reserved
?????????? ES_info_length/?鄢ES信息長(zhǎng)度?鄢/
?????????? 描述符
?????? }
?????? 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來(lái)檢索區(qū)分TS包的歸屬。TS包頭為定長(zhǎng)4B,其中包括同步字節(jié)(sync_byte)、包識(shí)別號(hào)(PID)和一些控制信號(hào)字段。TS包的數(shù)據(jù)結(jié)構(gòu)如下:
transport_packet(){
??? sync_byte/*同步字節(jié)*/
????一些控制字段
????PID/*包識(shí)別號(hào)?鄢/
????一些控制字段
????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??????????? data_byte }/*攜帶ES的內(nèi)容*/
????? ? }
??? }
??? 關(guān)于同步問(wè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分別用來(lái)指出PES所攜帶的視音頻信源信息幀的解碼時(shí)間和顯示時(shí)間,從而實(shí)現(xiàn)了ES之間的同步。DTS和PTS則被攜帶在PES包的包頭中,定義DTS和PTS的數(shù)據(jù)結(jié)構(gòu)詳見(jiàn)MPEG-2標(biāo)準(zhǔn)第一部分[1]。
??? 當(dāng)PTS_DTS_flags==′10′,只存在PTS而不存在DTS,這種情況下的ES往往為音頻信源,此時(shí)PTS作為解碼器解碼該幀和播放器播放該幀的時(shí)間參數(shù)。當(dāng)PTS_DTS_flags==′11′,PTS和DTS并存,這種情況下的ES往往為視頻信源,此時(shí)PTS作為播放器播放該幀的時(shí)間參數(shù),DTS作為解碼器解碼該幀的時(shí)間參數(shù)。
??? 手機(jī)電視系統(tǒng)的眾多標(biāo)準(zhǔn)較多采用MPEG-2傳輸流作為系統(tǒng)層編碼標(biāo)準(zhǔn)。本文基于MPEG-2對(duì)手機(jī)電視接收端進(jìn)行解析,包括TS流的解復(fù)用過(guò)程、同步問(wèn)題的解決和進(jìn)一步改進(jìn),并以韓國(guó)手機(jī)電視標(biāo)準(zhǔn)T-DMB為例,實(shí)現(xiàn)了手機(jī)電視接收端的系統(tǒng)層。國(guó)內(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] 梁志堅(jiān).基于Windows CE的MPEG2-TS流接收播放系統(tǒng)的研究與實(shí)現(xiàn).中國(guó)地質(zhì)大學(xué)碩士學(xué)位論文,2006,5.
[3] 王保雄,余松煜,莊建敏.MPEG-2傳輸流中的時(shí)間信息與音頻同步.紅外與激光工程,2000,(10).
[4] 吳軍.MPEG-2傳輸流的定時(shí)和同步.西部廣播電視,2003,(10).

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。