MPEG-2的系统,不只是使用mpeg-2的视频编码标准,也适用于其他的压缩标准,所以要区分系统和视频的关系。
这里主要记录以下系统部分。
MPEG-2系统是将视频、音频及其它数据基本流组合成一个或多个适宜于存储或传输的数据流的规范。主要来说就是把编码好的音视频数据,按照包的格式的传输,同时解决传输中的同步问题,加解密问题,数据流合并分离问题等。
所以以数据包形式来存储和传输是本系统的特点。主要涉及三种数据包PS, TS, PES以及两种数据流PS,TS。
首先贴一个系统框图
从这个框图中可以比较清楚地看到数据包的形成过程,大体上看就是ES->PES->PS/TS,当然过程中要加入一些时间信息和控制信息。
首先MPEG-2压缩编码得到的数据流ES基本流,这个数据流是很大的,并且只是IPB的这些帧信息,然后加入一些同步信息,打包成长度可变得数据包PES,原来是流的格式,现在成了数据包的分割形式了。同时要注意的是,ES是只包含一种内容的数据流,如只含视频,或只含音频等,打包之后的pes也是只含一种性质的es,如只含视频ES的PES,只含音频ES的PES等。
再说PES,它由包头+包数据格式形成。包头含包长,标示PTS/DTS等,包数据最长为65535Byte.
加入了PTS/DTS, 可以有效解决音视频同步问题,和缓冲器溢出问题。
各种不同的PES,进入复用器,就可以产生两种不同的数据流,节目流和传输流PS/TS。
PS:
将具有共同时间基准的一个或多个PES组合(复合)而成的单一的数据流称为节目流(Program Stream),所以无论怎么复用,这都是一个节目的信息,不会有多个节目。
PS利用系统基准时钟SCR来传递同步信息。
PS的形成分两步完成:其一是将视频ES、音频ES、其他ES分别打包成视频PES包、音频PES包、其他PES包:使每个PES包内只能存在1种性质的ES;每个PES包的第一个AU的包头可包含PTS和DTS;每个PES包的包头都有用于区别不同性质ES的数据流识别码。
TS:将具有共同时间基准或具有独立时间基准的一个或多个PES组合而成的单一的数据流称为传输流(Transport Stream).可见ts可以是不同节目的复用。
贴一张系统复用的结构图:这表明了TS的多节目复用过程
对于节目特定信息PSI
主要包括
PAT(PID=0)
CAT(PID=1)
PMT
NIT
有了PAT及 PMT这两种表,解码器就可以根据PID将TS上从不同的ES来的TS包分别出来