1、TS流:可以将TS流理解为一种单一码流、混合码流:
2、TS包结构
TS包结构分析:TS包由包头、有效载荷区组成(有些包中还包括自适应区)。
截取某TS包的包头内容进行分析说明:
截取某TS包的包头内容进行分析说明:
对应二进制码:0100 0111 0100 0000 0100 0100 0011 0000 …….
某TS包部分数据:0X 47 40 44 30 ……..
※Header:
sync_byte(1B):0x47
transport_error_indicator (1b):0
payload_unit_start_indicator(1b):1 该字段置1表示携带的是PSI或PES第一个包
transport_priority(1b):0
PID(13b):0 0000 0100 0100(0x44),假设该ID携带的是节目1的视频PES
Transport_scrambling_control(2b):00,表明该TS包中有效数据未经加扰处理
Adaptation_field_control(2b):11,标识既有adaptation_field又有payload
Continuity_counter(4b):0000,表示该计数器为0,PID相同的包的计数应该是连续的
※ Adaptation_field:……..
※ PES:........
3、怎样实现解码端的系统时钟恢复和视音频播放同步?
MPEG-2同步及时间恢复在编码、传输和解码中占有重要的地位,它不仅直接影响视音频的解码质量,还是衡量整个传输网络优劣的重要指标。
MPEG-2规定的系统时钟频率为27MHz,传输流(TS)中的PCR,PTS/DTS等均为对该共同系统时钟的采样值。解码端捕获PCR,恢复出本地的STC,作为音视频同步控制的基准,并依据DTS、PTS时间标签来安排解码和显示时间表,使音视频分别同步于STC,以实现音视频之间的同步。标准规定在原始音频和视频流中,PTS的间隔不能超过0.7s,而出现在TS包头的PCR间隔不能超过0.1s(数字电视中是0.04秒)。
二、PSI/SI 表格信息
1、什么是PSI/SI表格,为什么使用这些表格? 简单来看,TS是一个传输层的协议栈,它可以承载各种内容的传输,比如MPEG,WMV,H264,甚至是IP,那么其中的传输规范是如何定义的呢? 这个即是PSI(节目特定信息)要做的事情。 PSI表格信息用来描述传送流的组成结构。 由上面的章节,我们知道解码端只要知道了某个TS包的PID,就知道这个包中到底携带的是什么数据。而解码端之所以有这种能力,是因为他先获得了PSI表格信息。
另外为了适应实际应用和业务发展的需求,又专门制定一个数字视频广播的业务信息标准—SI信息,来规范和服务于各业务提供商和设备生产厂家,以促进和保证数字视频广播业务在我国健康有序的发展。
2、PSI信息由什么组成,各包含哪些内容?
PSI信息由四种类型的表(table)组成。 1)节目关联表(PAT):针对复用的每一路业务,PAT提供了各个节目号及其相应的节目映射表(PMT)的PID,同时还提供网络信息表(NIT)的PID。
2)节目映射表(PMT):PMT表存放的是节目中包含的音频、视频、其他数据的PID信息。每一个节目的所有信息必须包含在一个PMT中,但在一个PMT中可以包含多个节目的信息。PMT本身的PID由PAT表格提供。
3)条件接收表(CAT):条件接收表提供了在复用流中条件接收系统的有关信息。当有EMM时,它还包括了EMM(授权管理信息)所在的PID(CA_PID)。
4)网络信息表(NIT):提供有关物理网络的信息,比如网络ID,网络中所包含的传输流ID,所在频点等信息。NIT表本身的PID由PAT表提供。
3、PSI表格信息详解(以解码端工作过程举例):
1)从TS流中解析出ID为0x00的PAT表格信息。
2)由PAT表提供的信息从TS流中解析出各个节目的PMT表格信息。
3)确定各节目中包含的视频数据、音频数据以及其他数据的PID。
4)根据PID从TS流中解析出各节目的视频、音频以及其它数据,分别存储。
5)之后再分别完成各节目的音视频同步解码与显示。
4、SI表格由几部分组成,都包含哪些内容?
业务信息(SI)由以下九个表构成。其中SDT表、EIT表和TDT表是必须包括的,其它表是可选的。
1)业务描述表(SDT):描述了包含在特定TS流中的全部业务的相关信息。业务描述表包含了描述系统中业务的数据,例如业务名称、业务提供者等。
2)事件信息表(EIT):描述了包含在特定业务中的所有事件的相关信息。事件信息表包含了与事件或节目相关的数据,例如事件名称、始时间、持续时间等。不同的描述符用于不同类型的事件信息的传输,例如不同的业务类型。
3)时间和日期表(TDT):时间和日期表给出了与当前的时间和日期相关的信息。由于这些信息频繁更新,所以需要使用一个单独的表。
4)业务群关联表(BAT)
5)运行状态表(RST)
6)时间偏移表(TOT)
7)填充表(ST)
8)选择信息表(SIT)
9)间断信息表(DIT)
这里就不再对SI信息进行详解,方式与前面的PSI原理是一样的。
5、PSI/SI 表格信息在TS流中如何传输?
PSI/SI 表格信息在TS流中以段的形式进行传输(也可以理解为对这些表格信息进行了打包)。基本思想是:先将一个表格信息以段的方式进行封装,最后将段插入到TS包中。因为TS包188字节,所以一般情况下,一个section要分成好几部分存放在连续的TS包中(如果表格信息过多,需要先进行分组,再分别封装成好几个段)。
6、PSI/SI表格的插入
在DVB标准中,规定PSI/SI表格信息需要每隔一段时间就插入到TS流中进行传输。这是因为,在接收终端,用户收看电视节目以及调换频道是发生在任意时刻的,如果PSI/SI表格信息不定期循环进行发送,解码端就会因为没有这些表格信息,无法对TS流中的多个节目的各种数据进行区分和解码,这样就会导致用户收看不到电视节目或者等待很长时间才收看到节目。
由于TS流承载了诸多信息,码流的及时监测对最终用户端收看到音视频的质量息息相关。在码流出现问题时及时加以处理,是监测TS流的目的。
对MPEG-2 TS流参数的测试,主要是依据“DVB系统测试指导“文件TR101-290”。
下面主要分析TR101-290文档中关于TS流的3级错误检测。
TR 101-290的第一优先级错误包括6种:
※同步丢失错误
※同步字节错误
※PAT错误
※连续计数错误
※PMT错误
※PID错误
1) 同步丢失错误(TS Sync Loss) :
同步错误是衡量传输流质量的最重要的指标,只有在获得了同步之后,才能监测其它的参数。
判断准则:连续检测到5个正常同步视为同步,连续检测到2个以上不正确同步则为同步丢失错误。传输流失去同步,标志着传输过程中会有一部分数据丢失,直接影响解码后的画面的质量。
2)同步字节错误(Sync Byte Error) :
同步字节的标准值为0x47,当同步字节的值为其他数值的时候,认为是同步字节错误。
同步字节错误表明在传输过程中部分数据出现错误,可能导致接收时出现马赛克,严重时导致解码器解不出信号。
3)节目关联表(PAT)错误:
PAT表在DVB标准中用于指示当前节目及其在数据流中的位置。标识节目关联表PAT的PID为0x0000,如果 PAT丢失或被加密,解码器将无法搜索到相应节目;如果PAT超时,解码器工作时间延长。
PAT错误包括:
1)标识PAT的PID没有至少0.5 s出现一次(要求PAT表格信息每500ms以内发送一次)。
2)PID为0x0000的table-id不为0x00(要求携带PAT表格的TS包中table-id 的值必须等译0x00)。
3)PID为0x0000的包头中的加扰控制段不为0(如果加扰的话,解码端将无法解析出PAT信息)。
4)节目映射表(PMT)错误:
PMT在DVB标准中用于指示每套节目视/音频数据在传输流中的位置。节目映射表PMT标识并指示了组成每路业务流的位置,以及每路业务的节目参考时钟(PCR)字段的位置。PMT错误包括:
1)标识PMT的PID没有达到至少0.5 s出现一次(PMT表格必须每500ms以内发送一次) ,如果PMT超时,影响解码器切换节目时间。
2) PMT表的加扰控制段不为0(如果加扰的话,解码端将无法解析出PMT信息)。
5)连续计数错误(Cont Count Error) :
TS包头中的连续计数是随着每个具有相同PID的TS包的增加而增加,为解码器确定正确的解码顺序。对于每一套节目的视/音频数据包而言,连续计数错误是一个很重要的指标。传输流连续计数不正确,表明当前传输流有丢包、错包、包重叠等现象,将导致解码器不能正确解码,图像出现马赛克等现象。
6)PID丢失错误(PID Missing) :
检测数据流中各套电视节目的图像/声音数据是否正确,即检查是否每一个PID都有码流。PID丢失,将导致该套节目无法正确解码。
根据规定,一般音视频的PID出现周期不能超过5秒。
TR101-290的第二优先级共6种错误:
※传输错误
※CRC错误
※PCR间隔错误
※PCR抖动错误
※PTS错误
※CAT错误
1)数据传输错误(Transport Error) :
TS包头中的传输包错误指示为“1”,表示在相关的传输包中至少有1个不可纠正的错误位,只有在错误被纠正之后,该位才能被重新置0。而一旦有传输包出错,就不再从错误包中得出其他错误指示。
2)循环冗余校验错误 (CRC) :
节目专用信息(PSI)和服务信息(SI)出现错误,可以由CRC计算出来,以指明该包是否可用。如果出错将不再从出现错误的表中得出其他错误信息。PAT、PMT出现连续错误,将影响解码器对某一节目的正确解码。
3)节目参考时钟间隔错误(PCR Discont) :
PCR用于恢复27MHz系统时钟,PCR间隔错误,将导致接收端的时钟抖动或漂移,影响画面显示时间。
PCR间隔指两个连续的PCR之间最大的间隔时间,通常要求同一节目里两个连续PCR的时间间隔不能超过100 ms。在数字电视广播应用中, PCR的时间间隔应不大于40 ms。
4)节目参考时钟抖动错误(PCR Jitter Error) :
PCR的错误范围是由允许偏离正确PCR值的最大值确定的,称为PCR精度, PCR的精度必须高于500 ns或PCR抖动量不得大于±500 ns ,PCR抖动过大,将影响接收端系统时钟的正确恢复,解码时会出现马赛克现象,严重时不能正常显示图像。
※5)播出时间标记错误 (PTS)
在DVB标准中规定PTS每700ms传输一次,PTS传输超时将影响图像正确显示。PTS只有在TS未加扰时方能接收。
6)CAT错误
CAT表指出了授权管理信息EMM包的PID并控制接收机的正确接收,如果CAT表不正确,就不能正确接收加密节目。
CAT错误包括:
1)在PID为0x0001上出现带有table-id不等于0x01的情形(即要求携带CAT表信息的TS包中的table-id 的值必须等于0x01) 。
2)PID为0x0001带有的加扰字段的不为0x00(即携带CAT表的TS包不能加扰,如果加扰,解码端将无法解析出CAT信息)。
第三级错误共有10种错误,包括:NIT错误、SI重复率错误、缓冲器错误、非指定PID错误、SDT错误、EIT错误、RST错误、TDT错误、空缓冲器错误及数据延迟错误。第三等级错误并非是TS传输流的致命错误,但会影响一些具体应用的正确实施。
,