2)节目流(PS)
将具有共同时间基准的一个或多个PES组合(复合)而成的单一的数据流称为节目流(Program Stream)。PS包的结构如图3所示。
由图3可见,PS包由包头、系统头、PES包3部分构成。包头由PS包起始码、系统时钟基准(SCR-System Clock Reference)的基本部分、SCR的扩展部分和PS复用速率4部分组成。
PS包起始码用于识别数据包所属数据流的性质及序号。
SCR的基本部分是1个33 bit的数,由MPEG-1与MPEG-2兼容共用。SCR扩展部分是1个9 bit的数,由MPEG-2单独使用。SCR是为了解决压缩编码图像同步问题产生的。因为,I、B、P帧经过压缩编码后,各帧有不同的字节数;输入解码器的压缩编码图像的帧顺序I1P4B2B3P7B5B6I10B8B9 中的P4、I10帧,需要经过重新排序缓存器延迟后,才能重建编码输入图像的帧顺序I1B2B3P4B5B6P7B8B9I10;视频ES与音频ES是以前后不同的视频与音频的比例交错传送的。以上3条均不利于视音频同步。所以,为解决同步问题,提出在统一系统时钟(SSTC-Single System Time Clock)条件下,在PS包头插入时间标志SCR的方法。整个42 bit字宽的SCR,按照MPEG规定分布在宽为33 bit的1个基础字及宽为9 bit的1个扩展区中。由于MPEG-1采用了相当于33 bit字宽的90kHz的时间基准,考虑到兼容,对节目流中的SCR也只用33 bit。为了提高PAL或NTSC已编码节目再编码的精确性,MPEG-2将时间分解力由90kHz提高到27MHz光栅结构,使通过TS时标中的9 bit 扩展区后,精确性会更高。具体方法是将9 bit用作循环计数器,计数到300时,迅速向33 bit基本区转移,同时将扩展区计数器复原,以便由基本区向扩展区转移时重新计数。将42 bit作为时间标志插入PS包头的第5到第10个字节,表明SCR字段最后1个字节离开编码器的时间。在系统目标解码(STD-System Target Decoder)输入端,通过对27MHz的统一系统时钟(SSTC)取样后提取。显然,在编码端,STC不仅产生了表明视音频正确的显示时间PTS和解码时间DTS,而且也产生了表明STC本身瞬时值的时间标记SCR。在解码端,应相应地使SSTC再生,并正确应用时间标志,即通过锁相环路(PLL-Phase Lock Loop),用解码时本地用SCR相位与输入的瞬时SCR相位锁相比较,确定解码过程是否同步,若不同步,则用这个瞬时SCR调整27MHz时钟频率。每个SCR字段的大小各不相同,其值是由复用数据流的数据率和SSTC的27MHz时钟频率确定的。可见,采用时间标志PTS、DTS 和SCR,是解决视音频同步、帧的正确显示次序、STD缓存器上溢或下溢的好方法。
PS复用速率用于指示其速率大小。
![](http://info.broadcast.hc360.com/images/tech/04042604.jpg)
系统头由系统头起始码、系统头长度、速率界限范围、音频界限范围、各种标志指示、视频界限范围、数据流识别、STD缓存器界限标度、STD缓存器尺寸标度、(视频,音频,或数据)流识别等10个部分组成。各种标志部分由固定标志指示、约束系统参数数据流(CSPS-Constrained System Parameter Stream)指示、系统音频锁定标志指示、系统视频锁定标志指示4个部分组成。其中,CSPS是对图像尺寸、速率、运动矢量范围、数据率等系统参数的限定指示。
显然,PS的形成分两步完成:其一是将视频ES、音频ES、其他ES分别打包成视频PES包、音频PES包、其他PES包:使每个PES包内只能存在1种性质的ES;每个PES包的第一个AU的包头可包含PTS和DTS;每个PES包的包头都有用于区别不同性质ES的数据流识别码。这一切,使解复用和不同ES之间同步重放成为可能。其二是通过PS复用器将PES包复用成PS包,即将每个PES包再细分为更小的PS包。PS包头含有从数字存储媒介(DSM-Digital storage Medium)进入系统解码器各个字节的解码专用时标,即预定到达时间表,它是时钟调整和缓存器管理的参数。典型PS解码器如图4所示,图中示意了数字视频解码器输出的、符合ITU-R. 601标准的视频数据帧顺序I1B2B3P4B5B6P7B8B9I10,与数字视频编码器输出的数字视频编码ES帧顺序I1P4B2B3P7B5B6I10B8B9二者之间的关系。图中PS解复用器实际上是系统解复用器和拆包器的组合,即解复用器将MPEG-2 的PS分解成一个个PES包,拆包器将PES包拆成视频ES和音频ES,最后输入各自的解码器。系统头提供数据流的系统特定信息,包头与系统头共同构成一帧,用于将PES包数据流分割成时间上连续的PS包。可见,一个经过MPEG-2编码的节目源是由一个或多个视频ES和音频ES构成的,由于各个ES共用1个27MHz的时钟,可保证解码端视音频的同步播出。例如,一套电影经过MPEG-2编码,转换成1个视频ES和4个音频ES。显然,PS包长度比较长且可变,用于无误码环境,适合于节目信息的软件处理及交互多媒体应用。但是,PS包越长,同步越困难;在丢包时数据的重新组成,也越困难。显然,PS用于存储(磁盘、磁带等)、演播室CD-I、MPEG-1数据流。
![](http://info.broadcast.hc360.com/images/tech/04042605.jpg)
3) 传输流(TS)
将具有共同时间基准或具有独立时间基准的一个或多个PES组合而成的单一的数据流称为传输流(Transport Stream)。TS实际是面向数字化分配媒介(有线、卫星、地面网)的传输层接口。对具有共同时间基准的两个以上的PES先进行节目复用,然后再对相互可有独立时间基准的各个PS进行传输复用,即将每个PES再细分为更小的TS包,TS包结构如图5所示。
![](http://info.broadcast.hc360.com/images/tech/04042606.jpg)
由图5可见,TS包由包头、自适应区和包数据3部分组成。每个包长度为固定的188 B,包头长度占4 B,自适应区和包数据长度占184 B。184 B为有用信息空间,用于传送已编码的视音频数据流。当节目时钟基准(PCR-Program Clock Reference)存在时,包头还包括可变长度的自适应区,包头的长度就会大于4 B。考虑到与通信的关系,整个传输包固定长度应相当于4个ATM包。考虑到加密是按照8 B顺序加扰的,代表有用信息的自适应区和包数据的长度应该是8 B的整数倍,即自适应区和包数据为23×8 B =184 B。
TS包的包头由如图所示的同步字节、传输误码指示符、有效载荷单元起始指示符、传输优先、包识别(PID-Packet Identification)、传输加扰控制、自适应区控制和连续计数器8个部分组成。其中,可用同步字节位串的自动相关特性,检测数据流中的包限制,建立包同步;传输误码指示符,是指有不能消除误码时,采用误码校正解码器可表示1bit 的误码,但无法校正;有效载荷单元起始指示符,表示该数据包是否存在确定的起始信息;传输优先,是给TS包分配优先权;PID值是由用户确定的,解码器根据PID将TS上从不同ES来的TS包区别出来,以重建原来的ES;传输加扰控制,可指示数据包内容是否加扰,但包头和自适应区永远不加扰;自适应区控制,用2 bit表示有否自适应区,即(01)表示有有用信息无自适应区,(10)表示无有用信息有自适应区,(11)表示有有用信息有自适应区,(00)无定义;连续计数器可对PID包传送顺序计数,据计数器读数,接收端可判断是否有包丢失及包传送顺序错误。显然,包头对TS包具有同步、识别、检错及加密功能。
TS包自适应区由自适应区长、各种标志指示符、与插入标志有关的信息和填充数据4部分组成。其中标志部分由间断指示符、随机存取指示符、ES优化指示符、PCR标志、接点标志、传输专用数据标志、原始PCR标志、自适应区扩展标志8个部分组成。重要的是标志部分的PCR字段,可给编解码器的27MHz时钟提供同步资料,进行同步。其过程是,通过PLL,用解码时本地用PCR相位与输入的瞬时PCR相位锁相比较,确定解码过程是否同步,若不同步,则用这个瞬时PCR调整时钟频率。因为,数字图像采用了复杂而不同的压缩编码算法,造成每幅图像的数据各不相同,使直接从压缩编码图像数据的开始部分获取时钟信息成为不可能。为此,选择了某些(而非全部)TS包的自适应区来传送定时信息。于是,被选中的TS包的自适应区,可用于测定包信息的控制bit和重要的控制信息。自适应区无须伴随每个包都发送,发送多少主要由选中的TS包的传输专用时标参数决定。标志中的随机存取指示符和接点标志,在节目变动时,为随机进入I帧压缩的数据流提供随机进入点,也为插入当地节目提供方便。自适应区中的填充数据是由于PES包长不可能正好转为TS包的整数倍,最后的TS包保留一小部分有用容量,通过填充字节加以填补,这样可以防止缓存器下溢,保持总码率恒定不变。
4) 节目特定信息(PSI)
由上述可知,1个TS包由固定的188B组成,用于传送已编码视音频数据流的有用信息占用184B空间。但是,还需要传输节目随带信息及解释有关TS特定结构的信息(元数据),即节目特定信息(PSI-Program Specific Information)。用于说明:1个节目是由多少个ES组成的;1个节目是由哪些个ES组成的;在哪些个PID情况下,1个相应的解码器能找到TS中的各个数据包。这对于由不同的数据流复用成1个合成的TS是1个决定性的条件。为了重建原来的ES,就要追踪从不同ES来的TS包及其PID。因此,一些映射结构(Mapping Mechanism),如节目源结合表(PAT)和节目源映射表(PMT)两种映射结构,会以打包的形式存在于TS上,即借助于PSI传输一串描述了各种ES的表格来实现。MPEG认为,可用4个不同的表格作出区别:
● 节目源结合表(PAT-Program Association Table):在每个TS上都有一个PAT,用于定义节目源映射表。用MPEG指定的PID(00)标明,通常用PID=0表示 。
● 条件接收表(CAT-Conditional Access Table):用于准备解密数据组用的信息,如加密系统标识、存取权的分配、各个码序的发送等。用MPEG指定的PID(01)标明,通常用PID=1表示。
● 节目源映射表(PMT-Program Map Table):在TS上,每个节目源都有一个对应的PMT,是借助装入PAT中节目号推导出来的。用于定义每个在TS上的节目源(Program),即将TS上每个节目源的ES及其对应的PID信息、数据的性质、数据流之间关系列在一个表里。解码器要知道分配节目的ES的总数,因为MPEG总共允许256个不同的描述符,其中ISO占用64个,其余由用户使用。
● 网络信息表(NIT- Network Information Table):可传送网络数据和各种参数,如频带、转发信号、通道宽度等。MPEG尚未规定,仅在节目源结合表(PAT)中保留了1个既定节目号“0”(Program-0)。
有了PAT及 PMT这两种表,解码器就可以根据PID将TS上从不同的ES来的TS包分别出来。
节目特定信息(PSI)的结构,如图6所示。根据PID将TS上从不同的ES来的TS包分别出来可分两步进行:其一是从PID=0的PAT上找出带有PMT的那个节目源,如Program-1,或Program-2;其二是从所选择的PMT中找到组成该节目源的各个ES的PID,如从Program-1箭头所指的PMT-1中ES-2所对应的Audio-1的PID为48,或从Program-2箭头所指的PMT-2中ES-1所对应的Video的PID为16。同样,Program-1的MAP的PID为22,ES-1所对应的Video的PID为54;Program-2的PMT-2中ES-2所对应的Audio-1的PID为81,ES-1所对应的Video的PID为16,MAP的PID为33;PAT的PID为0;CAT授权管理信息(EMM-Entitlement Management Message)的PID为1。这样,就追踪到了TS上从不同的ES来的TS包及其PID,如图6所示的TS上不同ES的TS包的PID分别为48、16、22、21、54、0、16、33、1。显然,解码器根据PID将TS上从不同的ES来的TS包分别出来的过程,也可以从图7的TS双层解复用结构图中得到解释。要注意,MPEG-2的TS是经过节目复用和传输复用两层完成的:在节目复用时加入了PMT;在传输复用时加入PAT。所以,在节目解复用时,就可以得到PMT,如图7中的ES (MAP) (PMT-1)和ES (MAP) (PMT-2);在传输解复用时,就可以得到PAT,如图7中的PS-MAP。将图6与图7对照,就可以知道解码器是如何追踪到TS上从不同的ES来的TS包及其PID的。(未完待续)
![](http://info.broadcast.hc360.com/images/tech/04042709.jpg)
![](http://info.broadcast.hc360.com/images/tech/04042710.jpg)