TS各个表 与 SECTION 的解析 CAS原理

转自:http://blog.sina.com.cn/s/blog_6b94d5680101r5l6.html

TS各个表 与 SECTION 的解析 CAS原理


  
TS流,通过一个个的TS包来传送;TS包可以是传送PSI SI等各表的数据包,也可以是传送节目音视频数据(携带的PES包:音视频基本流包)的包;TS携带 PSISI等表的数据时,各个表以各表对应的Section语法格式做为传输单元存放到TS包中 以便传输;
TS包,有一个TS包的PID,系统就是根据这个PID来找对应的TS包;对于包含音视频数据(PES包)的TS包,系统通过TS的PID找到对应TS数据包,提取其中的数据组合成节目的音视频;对于携带PSISI等数据的TS包,系统通过TS的PID找到对应TS数据包,提取各个PSI SI数据表格,用来指导系统;
      因此其中部分PID用来固定传输某些数据内容;如下
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
      有了TS的PID后, 如果TS包携带的是PSISI等表格的Section数据时,有时还不能确定该PID的TS包中携带的数据是什么,SDT BAT ST等表传送时,都用的是PID为0X0011的TS数据包,对于这种携带PSI SISection单元的TS包,对应的数据(表的Section语法中)还有一个TABLE_ID字段,用来可以确定是具体的什么表,如下图
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
每不同的表中,我们看表的SECTION语法,都会看到descriptor()字样,descriptor()表示的也是一个语法结构,他具体对应的语法结构,由他内部的descriptortag字段决定,各个表的具体的定义,可以参见13818对应的定义,其中这里面还可以有用户的自定义描述符,可见下表:
the descriptors declared or defined within the present document,giving the descriptors-tag values andthe  intendedplacement within the SI tables. This does not imply that their usein other tables is restricted. PSI SI表中包含什么descriptor,就用对应的语法去解!当然用户自定义的由用户自定义去解!!!
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

   



PSI(ProgramSpecific Information)
PAT (Program AssociationTable) 节目关联表
PMT(Program MapTable) 节目映射表
CAT(Conditional AccessTable) 条件接收表
SI(ServiceInformation) 
NIT(Network InformationTable) 网络信息表
SDT(Service Discription Table) 业务描述信息表
BAT(Bouquet AssociationTable) 业务群信息表
EIT(Event InformationTable) 节目事件信息表
TDT(Time and Data Table) 日期时间表
事件  event
    一组给定了起始时间和结束时间、属于同一业务的基本广播数据流。例如:一场足球比赛的半场、新闻快报或娱乐表演的第一部分
节目  programme
由广播者提供的一个或多个连续的事件。例如:新闻广播,娱乐广播。
网络  network
一个传输系统,可以传输一组 MPEG-2 传输流( TS )。例如:某个有线电视系统中的所有数字频道
业务  service
在广播者的控制下,可以按照时间表分步广播的一系列节目 , 我们也称之个频道,口语中也称之为节目  
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
节目关联表PAT
PAT 定义了一个 TS 流中所有的节目, PAT PID 0x0000 ,他是 PSI 信息的根节点。要查找节目播放信息必须从 PAT 开始。
PAT 中包含了 TS 中所有节目的完整列表,每个表项包括 ServiceID PMT( 用于播放 ) PID
PAT中ServiceID 为0的表项表示NIT。
节目映射表PMT
 PMT 提供了一个节目的 ServiceID 和用于播放的所有资源信息,例如音视频 PID PCR ,字幕 PID 等。
 简单的说, PMT 完整的描述了一路节目是由哪些 PES 组成,给播放提供相应的资源。
•   PAT PMT 关系
条件访问表CAT
CAT 提供了在一个或多个 CA 系统及其授权管理信息,用于节目的解扰工作。
如果在一个 TS 中任何原始流进行了加密处理,那么在 TS 中一定要插入 CAT
CAT 中,最重要的字段就是 CA_descriptor () 段。下面将简单讲述一下该描述段
CA_descriptor 用来表示含有 ECM 或者是 EMM 信息的 TS PID ,即 CA_PID
CA_descriptor 出现在 PMT 中时, CA_PID 指向含有与访问控制信息( ECM )相关的节目包。
CA_descriptor 出现在 CAT 中时, CA_PID 指向含有与授权管理信息( EMM )相关的节目包。
CA_descriptor 中几个重要的字段如下:
CA_system_ID :该字段表示适用于相关 ECM / EMM 流的 CA 系统类型。其值是用户定义的。
CA_PID :该字段表示传送流包的 PID ,此包中含有由相应的 CA_system_ID 指明的 CA 系统的 ECM EMM 信息,由 CA_PID 指明的包的内容( ECM EMM )所在的上下文决定,既由 TS 中的 PMT CAT 或节目流中的 stream_id 字段决定。
NIT
NIT 描述了一个 DVB 传输通道的所有物理参数,包括下列信息:
传输路径(卫星、电缆、地面)
接收频率
调制类型
误码保护
传输参数
机顶盒在扫描或变换信道时,可以存储一个物理信道的所有参数,便于以后很快跳回该信道。
信道中也可以传送相邻或其他信道的传输参数,使得信道转换灵活快捷。
如果 NIT 中的传输参数与实际不符,会对许多接收设备,如机顶盒,产生不可预知的影响。
如果 NIT 中的传输频率与实际接收频率不同,许多接收设备在没有任何原因提示的情况下,不产生任何图像和声音。
SDT
SDT 包含对 TS 流中节目(服务)的更多详细描述:
节目名称,如 CNN,CBS,Eurosport,ARD,ZDF,BBC,ACB,SBS 等等
在提供节目 PID 的同时, SDT 对用户提供了文本信息。
通过提供文本列表,使得接收设备操作灵活。
BAT ,与 SDT 密切相关:
BAT SDT PID 相同,只是 tableID 不同。
SDT 描述一个物理信道的节目结构。
BAT 描述几个或大量物理信道的节目结构。
BAT
BAT 表是由 DVB 定义的,是一个 SI 表,因此它是一个全局表,一个数字电视系统只对应一个 BAT 表,其 table_id =0X4A
一个节目类别对应一个段。为了让受众能更方便地在众多的节目中寻找出自己喜欢的节目,往往需要提供一种把众多的节目频道进行分类的方法(一个类相当一个节目组)。
例如把电影频道归为“家庭影院”的类别,把电视连续剧归为“电视剧场”的类别等等, BAT 表就提供了这一功能,每一个类别都用一个 bouquet_id 来标识。它包括了节目业务名称(类别)及节目组所包含的节目清单(节目列表)。 BAT 表在 SI 信息中属于可选表  
EIT
EIT(eventinformation table)
DVB 中的 EPG(electronicprogram guide)
包含一天或一周内所有广播的计划开始和结束时间。
结构非常灵活,允许传送大量附加信息
不是所有机顶盒都支持这一特性
事件信息表 EIT 按时间顺序提供每一个业务所包含的事件的信息。按照不同 table_id 有四类 EIT
1 ) 现行传输流,当前 / 后续事件信息 = table_id ="0x4E"
2 ) 其它传输流,当前 / 后续事件信息 = table_id ="0x4F"
3 ) 现行传输流,事件时间表信息 = table_id ="0x50" "0x5F"
4 ) 其它传输流,事件时间表信息 = table_id ="0x60" "0x6F"
现行传输流的所有 EIT 子表都有相同的 transport_stream_id original_network_id
TDT/TOT
机顶盒操作还需要传输当前时钟和当前日期,分两步:
TDT( time&date table)
传送 GMT UTC
即零度子午线的当前时刻
TOT(timeoffset table)
传送不同时区各自适当的时间偏移量
TDT TOT 中的信息如何计算以及计算到什么程度,取决于机顶盒的软件
对广播时间信息的完全支持还需要机顶盒得到当前的位置信息:
对拥有多个时区的国家,如澳大利亚和美国,这个问题尤其重要。
其它表
运行状态表 (RST)
运行状态表给出了事件的状态(运行 / 非运行)。运行状态表更新这些信息,允许自动适时切换事件。
填充表 (ST)
填充表用于使现有的段无效,例如在一个传输系统的边界。
选择信息表 (SIT)
选择信息表仅用于码流片段(例如,记录的一段码流)中,它包含了描述该码流片段的业务信息的概要数据。
间断信息表 (DIT)
间断信息表仅用于码流片段(例如,记录的一段码流)中,它将插入到码流片段业务信息间断的地方。

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
================================
TS流的形成:前段音视频数据经过音视频编码器后音视频数据流ES,ES经过分组器(打包器)形成一个个的分组,即PES(音视频数据流ES的分组包,PacketES,PES最长一般为188个字节);音视频PES再经过复合器,从而形成传输流TS,传输流以传输流分组(TS Packet);TSPacket中的有效数据既可以是PES(音视频ES分组包),也可以是PSI等信息数据,这个由TSPacket中的PID来指定负荷数据的类型;SI各表格是以SECTION为单位放到TSPacket中,因此不同的表格就要按标准遵循对应SECTION的语法;比如PMT表,PMT可能包含多个节目的描述,因此它可能会被划分为多个SECTION放到TSPacket中,遵循的语法就是TS_program_map_section() ;
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理


TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
【通过码流分析工具的查看,800来个 PID为0X191的401节目的PMT SECTION TS包都是一样的】
根据TS Packet 的语法,可以简要分析下上面的数据包:
同步字节段:0X47(8bit)
传输错误指示字符段:0(1bit)
有效负载数据单元起始指示符字段:1(1bit)
传输优先级字段:0(1bit)
PID:0x191(13bit)(PAT表中指定该PID的TS包为包含PMT SECTION数据的TS包)
传输加扰控制字段:(0x0)(2bit)
调整字段控制字段:0x01(无调整字段,只有有效负载)(2bit)
连续性计数器字段:(4bit)
数据字节字段:这些数据 有可能是PES包,有可能是PSISECTION (由PID决定),如果没有调整字段,从这开始就是负载数据了;
    若是PES数据,则这些负载数据通过PES分组语法来解析;
    若是PSISECTION数据,则通过SECTION语法来解释,可通过第一个table_id来确定是哪一个表的SECTION;如下表:【要知道PMT表须先知道PAT表】
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

Programassociation Table
The Program Association Table provides the correspondencebetween a program_number and the PID valueof the Transport Stream packets which carry the programdefinition. The program_number is the numeric label associated witha program. 
The overall table is contained in oneor more sections with the following syntax. It may be segmented to occupy multiplesections 
Programassociation section[PAT section syntax]
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

table_id :
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

CAS原理:
    条件接收(CA)系统(CAS)是数字电视广播(DVB)实行收费所必须采用的系统,也是数字电视平台不可缺少的部分,CAS负责完成用户授权控制与管理信息的获取、生成、加密、发送以及节目调度控制等工作,保证只有已被授权的用户才能收看节目,从而保护节目制作商和广播运营商的利益。
    在DVB前端,CAS将通过加扰器节目级复用器复用后的节目内容,即MPEG-2/DVB视频、音频和辅助数据传输流(TS), 与一个加扰伪随机序列做XOR运算,这个 伪随机加扰序列就是控制字发生器提供的 控制字CW
    CW被业务密钥( SK加密处理后授权控制信息(ECM)数据流中传送SK被用户个人分配密钥( PDK加密处理后,在 授权管理信息EMM数据流中传送, PDK存放在用户智能卡(Smard Card)中
    已加扰的MPEG-2/DVB视频、音频和辅助数据传输流(TS)、ECM、EMM数据流、节目说明信息(PSI)和业务信息(SI)等数据流,经复用后,从发送端经传输信道传送给接收端机顶盒(STB)。
    对于已经缴费的用户,其智能卡会被授权,STB从接收到的已加扰传输流中, 解复用出ECM和EMM数据流后送给智能卡, 智能卡首先读取PDK,用 PDK对EMM解密得到SK,再用 SK对ECM解密得到CW,利用 CW由解扰器对已加扰传输流(TS)进行解扰后,再进行节目级解复用
      TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理

TS各个表 <wbr>与 <wbr>SECTION <wbr>的解析 <wbr>CAS原理
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值