手机电视接收端系统层解析与实现

  1.南昌大学 软件学院,江西 南昌330029;2.哈尔滨工业大学 软件学院,黑龙江 哈尔滨150001
2008-07-10

    摘 要: 基于MPEG-2传输流,针对手机电视接收端系统层中节目特殊信息的作用及工作原理、传输流解复用过程和视音频信源同步实现等问题进行了解析,指出了MPEG-2系统同步机制的不足,提出了改进意见,并以韩国手机电视标准T-DMB为例,实现了手机电视系统层。
    关键词: 手机电视  MPEG-2  复用  同步

 

    手机电视在国内外的标准众多,比较著名的国外标准有韩国移动多媒体标准T-DMB、美国高通公司的手机电视标准MediaFLO、日本的ISTB-T标准,以及衍生于欧洲数字电视标准的DVB-H;国内标准有国家广电总局颁布的手机电视行业标准CMMB和清华大学提出的DMB-TH标准。而MPEG-2传输流TS(Transport Stream)作为较普遍的系统层编码标准,被大多数的手机电视标准支持和采用。
    在MPEG-2系统层中,传输信道往往需要传送多个节目信号的多个信源,而每个信源的编码、传输和解码都是独立的。但是手机电视系统的传输信道往往只有一个,不可能将这些信源在物理上分开传输。发送端将信号复用成TS传输,所以在接收端如何区分这些TS包是必须面对的一个问题。此外,如何在接收端将视音频信号在正确的时间播放显示,也亟待解决。本文在此基础上,以韩国的T-DMB标准为例,完成了手机电视接收端系统层的实现。
1 传输流解复用过程
    手机电视系统中传输的TS中包含了各种节目的视音频信息,如果不做区分,就无法解码视音频信源,所以必须在接收端建立一个区分TS的机制,将相关信息分门别类地进行处理。节目特殊信息PSI(Program Specific Information)建立了一个机制,其包括节目源结合表PAT(Program Association Table)和节目源映射表PMT(Program Map Table)等。二者的建立为系统解复用器提供了传输流区分的依据。
    PSI通过TS进行传输,其中PAT的包识别号PID(Packet Identifier)被系统定义为0,这样就能直接找到PAT。PAT的每一条记录对应一个节目的PMT及其PID,通过PAT就能找到需要的PMT。PMT的每一条记录对应着一个节目的一个原始流ES(Elementary Stream),而一个ES的PID是惟一的,所以通过PMT就能找到需要ES的TS包。
    TS由若干个定长为188B的TS包组成,每一个TS包都有确定的PID。通过PSI的区分机制,接收端将不同PID的TS包区分开,分别放入不同的解复用通道中进行处理。通常,一个接收端有若干个解复用通道,其中包括一个视频解复用通道和若干个音频解复用通道。接收端的传输流解复用过程如图1所示。

                           
    图1中第一条解复用通道用来解复用视频信源,其他解复用通道用来解复用音频信源。
    如果该TS包中携带原始流信息,解复用器会把这些信息提取出来。系统对于视频TS包和音频TS包的处理过程有所不同。视频信源的TS包被去掉包头后存到MBn缓存中,称为打包的原始流PES(Packetized Elementary Stream)。解复用器会进一步将除PES包头的剩余信息取出并存到原始流缓存EBn中等待解码。音频信源TS包的PES没有被系统缓存,而是直接形成ES流,存放到Bn中等待解码。至此,解复用器完成了从传输流到原始流的解复用过程。
2 同步问题的分析与解决
 手机电视系统中,信源从发送端传输到接收端需要一个过程,而如何实现发送端和接收端同步是手机电视技术需要解决的问题。另一方面,同一时间内,解复用器并行执行多条ES的解复用流程,解复用所得到的多种原始流需要被并行解码和播放,所以如何实现原始流之间的同步,也是手机电视技术亟待解决的问题。
2.1 视音频同步模型的建立
    MPEG-2给出了一个同步模型——常量延时模型,如图2所示。

                            
    常量延时模型有两个含义。其一是指信源从发送端的复用器到接收端的解复用器的传输过程所需要的时间是一个常量。其二是指视音频信号从进入编码器到从解码器输出过程所需要的时间是一个常量。由于不同性质的信源编码和解码所需要的时间不相同,所以这个模型设计了信源所对应的缓存,缓存中不同信源信号停留的时间不同,从而保证视音频信号从进入编码器到从解码器输出的过程所需时间是一个常量。
2.2 系统时钟频率及节目时钟参考的产生
    在常量延时模型的基础上,MPEG-2系统在发送端和接收端都建立了系统时钟频率(频率为27MHz左右)。发送端的系统时钟频率是从视频输入信号中提取的,使用此频率对发送端的一个计数器进行计数,该计数器的瞬间抽样值即为节目时钟参考PCR(Program Clock Reference),被插入到TS的某一个精确的位置中。而接收端的系统时钟频率是通过获取携带在TS中的PCR信息,将PCR信息输入一个锁相环电路中进行接收端时钟频率的恢复得到的。
    通过以上说明可知,MPEG-2系统中发送端和接收端已经实现两个时钟频率相同的计数器。在MPEG-2常量延时模型中,因为传输过程所需的时间恒定,所以可以假设在PCR信息被传送出发送端的那一瞬间,发送端的系统时钟停止,直到PCR被接收端接收的那一瞬间,发送端的系统时钟才恢复计数,而这个恢复的系统时钟其实就是接收端的系统时钟。这样,发送端和接收端便通过系统时钟的概念实现了同步。
2.3 原始流之间同步的实现
    在接收端,一个节目需要同时播放多个原始流,所以视音频信号之间的同步是手机电视技术亟待解决的问题。
    原始流的某些帧的数据在发送端被复用成PES时,会被贴上时间标签,时间标签包括解码时间标签DTS(Decoding Time Stamp)和显示时间标签PTS(Presentation Time Stamp)。DTS和PTS携带在PES包头中,分别用来通知解码器和播放器在某个时间对该数据帧进行解码和播放。由于有了接收端的节目时钟参考,在节目时钟计数到DTS时刻,原始流解码器对该数据帧进行解码,在节目时钟计数到PTS时刻时,播放器对该数据帧进行播放。对于音频数据帧,其帧编码都是顺序的,所以它们的DTS和PTS几乎相同,表现为只含有PTS而没有DTS。而对于视频数据帧,其被编码后的顺序会出现颠倒,所以它们的DTS和PTS并不相同,表现为既含有PTS,又含有DTS。
    如图1所示,当视频数据帧被解码后,因为顺序调换的关系,如果需要先播放后一帧,则就会将前一帧先缓存在O1中,等后一帧先播放之后再播放在O1中的数据帧,这样就解决了由于编码导致数据帧顺序调换的问题。至此,视音频之间的同步问题得到解决。
2.4 对同步问题的改进和提高
    MPEG-2标准为解决同步问题建立了一个常量延时同步模型,使用一个硬的基准时间概念来对视音频数据进行同步。这种方法一般需要通过锁相电路完成。虽然用硬件完成这部分工作效率较高,但是存在很多缺点:(1)使用硬件完成不易移植,整个系统一般是固定的,不能移植到其他平台或系统中。(2)MPEG-2要求每两个PCR信息的时间间隔不能超过100ms,每两个PTS信息的时间间隔不能超过700ms,这样就要求系统传输大量的同步信息,从而导致传输效率降低。
    这种情况可以进一步改进,用相对时间基准替代硬时间基准,就不再需要硬件计数的方式来确定同步信息了。由于声音信息的数据量和帧数在单位时间内是一定的,视频信源在单位时间内,数据的帧数也是确定的,所以可以在播放器内建立一种机制,监控视频播放的帧数。如果在单位时间内,视频播放帧数过快,则视频解码器可以暂停解码一小段时间;反之,视频解码器及播放器可以跳过几帧视频数据,从而做到视音频之间的同步。
    这种同步模式遗弃了硬时间基准概念,进而得到一个相对时间基准概念。这样,就不需要重建发送端和接收端之间的同步关系,只需要在发送端和接收端使视音频数据帧按照一定的速率编解码即可,在两端同时需要建立一个监控机制来监控视音频编解码的速率。
3 接收端系统层实现
    韩国手机电视标准T-DMB是目前中国手机电视的几大主流标准之一。下面以韩国的T-DMB标准为例介绍实现手机电视接收端的系统层。
    手机电视接收端分为手机电视信号接收转换模块、TS解复用模块、PES解复用模块、解码模块和播放模块,其中系统层实现TS解复用模块、PES解复用模块。各模块相互之间关系如图3所示。

                          
    下层的手机电视信号接收转换模块为TS解复用模块提供接收并转换好的TS;TS解复用模块通过PSI区分并处理TS包,将所需TS包解复用成PES包提交给PES解模块;PES解复用模块解复用PES包,并向上层解码器提交ES等待解码。PES解复用模块还需要向解码器和播放器提供DTS和PTS,指出解码和播放的时间。
    首先建立TS包区分机制PSI。PSI中PAT的数据机构如下:
    program_association_section() {
         表编号及一些控制字段
         for (i=0;i<N;i++) {
         program_number / * 节目编号?鄢/
    reserved
         if(program_number==′0′) {
            network_PID / * 网络PID?鄢/
          }
    else {
         program_map_PID/ * PMT的PID?鄢/
         }
     }
     CRC_32/*32位循环校验码?鄢/
}
    其中:N表示该Section所含的记录条数,for循环中program_number表示节目编号,所对应的program_map_
PID表示该节目PMT的PID。
    PSI中PMT的数据结构如下:
    TS_program_map_section() {
       表编号及一些控制字段
       PCR_PID/*含PCR的TS包的PID*/
       一些控制字段和描述符
       for (i=0;i<N1;i++) {
           stream_type/*原始流类型*/
           reserved
           elementary_PID/*原始流的PID*/
           reserved
           ES_info_length/?鄢ES信息长度?鄢/
           描述符
       }
       CRC_32/?鄢32位循环校验码?鄢/
    }
    其中:PCR_PID指出了该节目的PCR所存在的TS包的PID,因为并不是所有ES都包含PCR。N表示该Section所含的记录的条数,for循环中stream_type描述该条记录的ES类型,该类型在MPEG-2中已被定义,elementary_PID是该条记录的ES的PID。
 建立PSI之后,解复用模块就可以用PSI来检索区分TS包的归属。TS包头为定长4B,其中包括同步字节(sync_byte)、包识别号(PID)和一些控制信号字段。TS包的数据结构如下:
transport_packet(){
    sync_byte/*同步字节*/
    一些控制字段
    PID/*包识别号?鄢/
    一些控制字段
    if(adaptation_field_control==′10′|| adaptation_field_control==′11′){
              adaptation_field()/*自适应区*/
    }
    if(adaptation_field_control==′01′||adaptation_field_control== ′11′) {
            for(i=0;i<N;i++){
            data_byte }/*携带ES的内容*/
        }
    }
    关于同步问题,PCR字段使得发送端和接收端之间实现了同步,它被特定TS包的adaptation field携带,而PMT中的PCR_PID字段已经指出了该特定TS包的PID。该TS包中的adaptation field存在PCR字段的部分定义如下:
    adaptation_field() {
           一些控制字段
           PCR_flag
          一些控制标记
          if(PCR_flag==′1′) {
          program_clock_reference_base
          reserved
          program_clock_reference_extension
          }
         一些条件定义
    }
    DTS和PTS分别用来指出PES所携带的视音频信源信息帧的解码时间和显示时间,从而实现了ES之间的同步。DTS和PTS则被携带在PES包的包头中,定义DTS和PTS的数据结构详见MPEG-2标准第一部分[1]
    当PTS_DTS_flags==′10′,只存在PTS而不存在DTS,这种情况下的ES往往为音频信源,此时PTS作为解码器解码该帧和播放器播放该帧的时间参数。当PTS_DTS_flags==′11′,PTS和DTS并存,这种情况下的ES往往为视频信源,此时PTS作为播放器播放该帧的时间参数,DTS作为解码器解码该帧的时间参数。
    手机电视系统的众多标准较多采用MPEG-2传输流作为系统层编码标准。本文基于MPEG-2对手机电视接收端进行解析,包括TS流的解复用过程、同步问题的解决和进一步改进,并以韩国手机电视标准T-DMB为例,实现了手机电视接收端的系统层。国内某知名手机电视终端提供商已经采用了该手机电视接收端的系统层,效果良好。
参考文献
[1] Information techonlogy generic coding of moving pictures and associated audio information:Systems.ISO/IEC,2000,12.
[2] 梁志坚.基于Windows CE的MPEG2-TS流接收播放系统的研究与实现.中国地质大学硕士学位论文,2006,5.
[3] 王保雄,余松煜,庄建敏.MPEG-2传输流中的时间信息与音频同步.红外与激光工程,2000,(10).
[4] 吴军.MPEG-2传输流的定时和同步.西部广播电视,2003,(10).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值