图5.3 section 结构
Table_ID-- 表格识别。参见下表5.3
table_id 0x00 0x01 0x02 0x3A - 0x3F 0x40 0x41 0x42 0x46 0x4A 0x4E 0x4F 0x50 - 0x5F 0x60 - 0x6F 0x70 0x71 0x72 0x73 0x7E 0x7F 0x82 - 0x83 0x84 - 0x85 PAT CAT PMT DSM-CCSection NIT(自Network) NIT(他Network) SDT(自Stream) SDT(他StreamStream) BAT EIT(自Stream的現在和下一个番組) EIT(他Stream的現在和下一个番組) EIT(自Stream、Schedule) EIT(他Stream、Schedule) TDT RST ST TOT DIT SIT ECM EMM Table Section syntax indicator-- 长短段的区分。‘1’表示当前数据section为长段,‘0’则表示当前section为短段。一般的PSI/SI表格都为长段形式,TOT、TDT则使用短段形式。 Private indicator-- 未定义
Private section length-- 从该字段后到section结束的字节数。
Table id extension-- 由TID决定该字段的涵义,表示段的详细分类。如果该字段相同则称为子表。例如:在EIT中该字段为serviceID,在PMT中为Ts_ID,在NIT中为network_id。 Version number-- 表示子表的版本编号。
Current next indicator-- 将子表分为多section传送时,接收整张表格需要一定的时间。如果将下一版本的表格提前传送,在接收到该版本有效的第一个section时刻,就可以了立即利用新的版本的子表信息。 字段==‘1’表示子表版本号现在有效,==’0’则表示子表版本号现在无效,是提前传送的下一版本子表。
第 9 页 共 38 页
Section number-- 子表分为多section传送时,当前section的编号。范围:0-255 Last section number-- 传输子表的最后一个section的编号。 Private data-- 有效载荷
5.3.section、table与TS Packet的关系
①表是有相同的table id和table id extenstion数据结构。用段的section-number来表示连续编号,最多可以分割成256个段。
图5.4 table与section
②section比TS数据包大的场合,先对section进行分割然后配置到多个TS包中。section比TS包小的场合,允许在一个包中配置多个段。
图5.5 section填充到Packet的各种方式
5.4.PES结构
图5.6 PES结构
第 10 页 共 38 页
packet_start_code_prefix-- 同步标志域,固定为’0x000001’ stream id-- 识别流类别以及图像数据流的编号。如下表所示:
Type MPEG-2 Video MPEG-2 Audio AAC 字幕 字幕叠加
PES_packet_length-- 从本字段后到PES包结束的字节长度。可以为0,表示PES包长可以自由定义,超过4096的限制。
Optional PES header-- 包头扩展部,存在基于stream_id
PES_scrambling_control-- pes数据的加扰控制位 PES priority-- PES包的优先度
data_alignment_indicator-- 为‘1’表示PES包头后紧跟Data stream alignment descriptor。 Copyright-- 传输的PES包内数据受版权保护
original_or_copy-- PES包内数据是原始数据还是拷贝数据
7Flags-- optional field的7个字段的有无标志。对应为PTS_DTS_flags(2bits)、ESCR_flag、ES_rate_flag、DSM_trick_mode_flag、additional_copy_info_flag、PES_CRC_flag、PES_extension_flag PES_header_data_length-- 本字段后Optional field与stuff data bytes的字节长度
Stream id 1110 xxxx 0xFA 0xBD 0xBF
PTS-- 显示时间戳 DTS-- 视频解码时间戳 ESCR-- ES时钟参考值
ES_rate-- 指定接收端ES接收速度
trick_mode_control-- Video播放控制字段。
value '000' '001' '010' '011' '100' '101'-'111'
additional_copy_info-- 扩展版权情报 previous_PES_packet_CRC-- 前一PES包的CRC
5Falgs-- PES extension部optional field的5个字段的标志。对应为PES_private_data_flag、pack_header_field_flagPES_extension_flag_2。
这些字段与PS相关,具体涵义参见ISO13818-1。
、
program_packet_sequence_counter_flag
、
P-STD_buffer_flag
、
description fast forward slow motion freeze frame fast reverse slow reverse reserved 6.表格及描述符介绍
6.1通常使用Table
第 11 页 共 38 页
通常使用的Table种类如表6-1所显示。对各个表格字段的介绍参见TR_B14
表6-1 节目排列信息的Table的名称和功能
Table名 PAT (Program Association Table) CAT (Conditional Access Table) PMT (Program Map Table) 传送放送番组相关的PMT 传送包括付费放送相关信息在内的信息 传送构成放送番组的符号化的信号 指定传送TS packet的packet识别符及包括付费放送相关信息在内共通信息的TS packet的packet识别符 NIT(Network Information Table) SDT (Service Description Table) BAT (Bouquet Association Table) 传送调频等传输线的信息和放送番组相关联的信息 传送频道的名称、广播事业者的名称等有关频道的信息 bouquet的名称以及所包含频道等,指示有关bouquet(service的集合)的信息 EIT (Event Information Table) 番组的名称、放送日期、内容的説明等,指示一些与番组相关的信息 RST (Running Status Table) TDT (Time Data Table) TOT (Time Offset Table) 指示番组现在进行的状况 指示現在的日期和时间 指示現在日期和时间,以及指定实际的时间和人看到的显示时间的相差时间。包含夏令时校正功能 ST (Stuffing Table) 填充表格,空表 功能概要 BIT (Broadcaster Information Table) broadcaster的情报
6.1.1 PAT
◆PAT表主要内容为: 1. NIT的PID
2. TS内各个Service对应节目的PMT的PID
表6-2 PAT结构
Syntax program_association_section() { table_id section_syntax_indicator '0' reserved section_length transport_stream_id reserved version_number current_next_indicator section_number last_section_number for (i=0; i
相关推荐: