TS头详解

Transport Stream是由一连串的TS packets所构成,每个TS packet的长度固定是188 bytes,总共有几个TS packet则由需传输的数据量决定。

TS packet主要可以分成二个部分:packet header和payload。Payload中放置的可能是video PES packets、audio PES packets或其他数据。TS packet header则又可分成二个部分:固定为4 bytes的prefix和可变长度的adaptation field。Prefix中最重要的功能是,标示其后有没有adaptation field,有没有payload。Prefix中最重要的字段是”PID”(Packet IDentifier),PID的功能类似邮件包裹上的标签,指出包裹内容是什么资料。Adaptation中最重要的是包含PCR字段(Program Clock Reference),PCR是一种time stamp,decoder依此推算出时序。

Prefix的字段说明:

sync_byte:
此字段共有8 bits,其值为’0x47’,用来当作packet同步的信息。

transport_error_indicator:
是一个1 bit flag,辨别packet是否有错。若设为’1’表示此TS packet至少1 bit发生错误,直到更正后才重设为’0’。

payload_unit_start_indicator:
是一个1 bit flag。根据这个TS packet究竟是包含PES packet或包含PSI data,而分成二种情形:

若此TS packet的payload包含的是PES packet,设为’1’表示payload的开头是某个PES packet的第一个byte(注意!只能有一个PES packet开始于此TS packet的payload);设为’0’则代表没有PES packet开始于此TS packet的payload。

若此TS packet的payload包含的是PSI data,设为’1’表示此TS packet带有PSI section的第一个byte,而payload的第一个byte将是point_field,用来指出PSI section第一个byte的位置;’0’则表示payload中没有point_field。

另外,若此TS packet为null packet,此flag设为’0’。

transport_priority:
是一个1 bit indicator。设为’1’的packet比其他相同PID的packets有较高的priority。

PID:
共有13 bits。指出payload中资料的种类,如表1-1:
表1-1
value Description
0x0000 Program Association Table
0x0001 Conditional Access Table
0x0002~0x000F Reserved
0x0010~0x1FFE may be assigned network_PID,Program_map_PID,elementary_PID,or for other purposes
0x1FFF 

transport_scrambling_control:
共有2 bits。指出payload的scrambling mode,但TS packet header(包括prefix和adaptation_field)不可scramble。如表1-2:
表1-2
value description
00 not scrambled
01 user defined
10 user defined
11 user defined
adaptation_field_control:
共有2 bits。指出此TS packet header之后是否跟着adaptation field或payload。如下表1-3:
表1-3
value Description
00 reserved for future use by ISO/IEC
01 no adaptation_field, payload only
10 adaptation_field only, no payload
11 adaptation_field followed by payload

continuity_counter:
共有4 bits。随每个相同PID的TS packet而增加其值,到达最大值后从0重新计数,但若此packet的adaptation_field为’00’或’10’,此域值不会增加。若有连续两个相同PID的TS packet,它们的continuity_counter值相同,而adaptation_field设为’01’或’11’,表示它们是duplicate packets。当discontinuity_indicator设为’1’,则continuity_counter值发生discontinuity。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值