发明内容
为了解决该问题,能够把MPEG-4 IPMP扩展映射到具有一些修改的MPEG-2。
需要把IPMP控制信息放在内容之中以描述需要什么IPMP工具来播放该内容和它们怎么保护该内容。它包括IPMP工具列表和IPMP工具箱。
该IPMP工具列表支持单独的或者可选择的工具的指示。对于在IPMP工具列表中的每个工具,提供以下的信息:
1.IPMP工具标识符:特定的IPMP工具通过它的IPMP工具标识符被标识为其它的实体,和可选择的参数描述;
2.对于特定的工具的可能替代;和
3.可选择的工具列表特征(signature)。
IPMP工具箱携带它在内容中的自己的二进制工具。特定工具的一个实现被作为一个IPMP工具箱的有效负荷承载,在该箱中同时指定了它的表示格式、封装信息和IPMP工具标识符。
IPMP控制图描述了在应该运行IPMP工具的控制点的不同程序下的不同的基本流和不同的IPMP工具之间的关联。
IPMP工具管理器是在特定的IPMP终端中的概念性的实体。当接收到工具列表时,终端应该把该工具列表路由到IPMP工具管理器以进行分析和取回工具。工具管理器同时处理参数描述、解析可选择的工具并且接收到达在内容中的二进制工具。
通过终端路由所有的IPMP工具消息。为了表示该功能,在该体系结构中定义了被称为消息路由器(MR)的实体。该MR与被支持的IPMP工具连接并且通信。因而它从想与它通信的任何其它IPMP工具中提取一个IPMP工具的物理接口。消息路由被认为是即时的。
在内容提供方,使用诸如MPEG-2或者MPEG-4的存在的编码技术对媒体内容进行编码并且使用诸如DES或者AES的存在的IPMP工具加密媒体内容。在编码前可以使用水印工具(举例来说)AAA把水印嵌入于内容。然后使用MPEG2系统多路复用该媒体内容。
同时,需要创建包括IPMP工具列表和可选择的工具箱的IPMP控制信息。把IPMP控制信息放在MPEG-2传输流的PSI中和MPEG-2的程序流的特别的PES分组中。
同时基于在保护内容中使用的IPMP工具产生IPMP工具列表。IPMP工具列表包括指定唯一的工具的IPMP工具标识符。同时它可以包括可选择的参数描述以允许终端选择实现同样功能(例如DES)的他们自己更喜欢的工具,并且它还可以包括一组可选择的工具以致于终端可以在实现相同的任务的一组已知的工具中作选择。
在内容产生期间同时建立IPMP控制图。例如,如果在编码后使用DES工具加密视频基本流0x01,则在控制图中,需要存在使用DES工具来保护基本流0x01并且应该在哪个控制点调用它(解码前)的指示。如果编码前使用水印工具AAA把水印插入音频基本流0x02,则,在控制图,需要有要在哪个控制点在基本流0x02上调用水印工具AAA(解码后)的指示。
在终端方,把IPMP工具表传送到位于MPEG-2终端内的IPMP工具管理模块。该工具管理模块检查是否需要消费内容的所有工具都存在于终端中,如果有一个丢失,终端遵循专有的方式依据IPMP工具ID或者参数描述来找回丢失的IPMP工具。现在已获得的IPMP工具可以在终端得到,它们被存储在IPMP终端中以准备与预定义的消息发送接口一起使用。
终端同时分析IPMP控制图,以致于终端知道在哪个控制点在哪个基本流上激活哪个IPMP工具。
然后该内容流继续通过内容解码器,调用所需的IPMP工具,并且能够解码该内容并且重新播放到终端。
本发明解决由不同类型的终端重新播放相同的受保护的MPEG-2内容的问题,以及通过引入MPEG-2 IPMP结构来使用不同销售商的IPMP系统保护相同的MPEG-2内容。
在用于MPEG-2的传输流的PSI中或者在用于MPEG-2程序流的PES分组中携带IPMP控制信息。该IPMP控制信息携带IPMP工具列表或者5个新描述符形式的IPMP工具箱。
IPMP工具列表识别并且允许处理内容所需要的IPMP工具的选择。IPMP控制图指示在IPMP工具和他们的保护范围(控制点)之间的管理。工具箱在内容流中携带二进制工具。
IPMP流是在MPEG-2系统内的基本流,以携带IPMP消息到每个单独的IPMP工具实例。
可以把IPMP工具管理器和消息路由器从MPEG-4 IPMP扩展映射到MPEG-2 IPMP系统。
具体实施方式
在MPEG-2中存在的CA系统不对内容拥有者和终端销售商都提供可互用且灵活的内容保护机制。
图1显示目前典型的CA系统的现有技术。
在单元1.0中的内容拥有者通过在单元1.1、1.4和1.7中的不同的内容提供商X、Y和Z提供内容。如单元1.2、1.5、1.8所示使用不同的CA系统来保护不同的内容提供商的内容。
因此如单元1.3、1.6和1.9所示内容解码或者内容消费终端还相互不同。
显而易见在支持CA系统B的终端上不能够播放出由CA系统A保护的MPEG-2内容,同时不存在关于来自不同的销售商的不同的CA系统将怎样保护相同的内容并且终端将怎样知道该保护的完整的规范。
在本发明中,我们定义了MPEG-2 IPMP系统,
1)携带流中包括工具列表和工具箱的IPMP控制信息以指示内容提供商和内容分配商使用哪些IPMP工具和应该怎样在内容中携带二进制工具。
2)在MPEG-2系统中定义5个新的描述符以容纳工具表、IPMP控制图、IPMP工具箱。
3)定义两个新的流。IPMP流携带将要被发送到每个单独的工具实例的IPMP信息,并且IPMP控制信息流携带传输流中的IPMP控制信息。
4)从MPEG-4 IPMP扩展把工具管理器和消息路由器的概念映射到MPEG-2终端中。
在图2中显示用于我们已提出的遵照MPEG-2 IPMP系统的总体图。
在模块2.1中显示了服务器,该服务器作为内容提供商和内容分配商或者用于不同的应用场景的前两个功能来工作。
在模块2.3显示用于在遵照MPEG-2IPMP终端和服务器之间的、包括内容流从服务器向终端传输的通信的网络层。
首先,在模块2.4中的权利鉴定开始与服务器相互作用,获取内容存取和消费权以及详细的使用规则。如果在模块2.4中授予内容存取权,服务器将通过网络层向终端发送所请求的内容流。
在模块2.2中,与包括工具列表和工具箱的IPMP控制信息和IPMP流一起携带内容流。稍后将解释IPMP控制信息和IPMP流的细节。
在模块2.5中所示的IPMP工具管理器将分析/解释IPMP控制信息。它分析工具列表并且找出哪些是需要处理内容的IPMP工具。如果存在任何丢失的工具,工具管理器或者从工具箱中重新获取工具或者它通过专有的方式从别的一些地方重新获取工具。工具管理器还负责从可替代的选择的列表中选择工具,或者解释参数描述和选择它自己喜欢的工具。
IPMP工具管理器还分析IPMP控制图以找出在哪个控制点于哪个基本流上使用哪个工具。稍后将解释这些细节。
如模块2.6为了进一步的处理在终端的存储器中存储许可证/密钥和使用规则。如模块2.7在终端的存储器中存储具有它们对应的工具标识符的二进制IPMP工具。遵循一般的和标准化的接口创建工具中的每一个并且为了匹配平台使用编译器预编译该工具。例如可以基于一般的和指定的接口创建数据加密和解密工具。可以把该工具预编译为用于所有具有Java虚拟机的平台/终端的Java字节码(JBC),并且还可以把它预编译为用于基于Windows平台/终端的窗口的动态链接库(DLL)。
模块2.8显示需要为随后的IPMP工具提供者和终端提供者预定义的IPMP工具的消息发送接口。
在这里详细的解释被分为四个部分来表示每个已发明的项。(1.IPMP控制信息)
IPMP控制信息需要携带在内容流中。IPMP控制信息包括诸如工具列表和工具箱的必需的信息。IPMP工具列表识别需要处理内容的IPMP工具并且允许对这些工具的选择。工具箱允许在内容流中携带二进制工具。
简而言之,IPMP控制信息描述哪些是播放该内容所需要的IPMP工具并且它们如何保护该内容。在传输流中,它以IPMP控制信息表的形式存在。在程序流中,当streamid是IPMP控制信息流标识符时它以PES分组的形式存在。(1.1在传输流中的IPMP控制信息表)
在PSI(特定的程序信息)中应该包括额外的表格“IPMP控制信息表”。使用该表来容纳稍后将定义的包括工具箱和IPMP工具列表的IPMP控制信息。如下说明了PID的分配。
表1——特定的程序信息
结构名称 |
流类型 |
保留的PID# |
描述 |
程序联合表 |
ITU-T Rec.H.2202.0|ISO/IEC13818-1 |
0x00 |
联合程序号和程序映射表PID |
程序映射表 |
ITU-T Rec.H.2202.0|ISO/IEC13818-1 |
在PAT中分配 |
为一个或者多个程序的组件指定PID值 |
网络信息表 |
专有的 |
在PAT中分配 |
物理网络参数例如FDM频率、转发器号等 |
IPMP控制信息表 |
ITU-T Rec.H.2202.0|ISO/IEC13818-1 |
0x03 |
包括描述IPMP工具和它们怎样保护内容的IPMP工具列表 |
条件存取表 |
ITU-T Rec.H.2202.0|ISO/IEC13818-1 |
0x01 |
使一个或者多个(专有的)EMM流的每一个与唯一的PID值相关联 |
(1.1.1IPMP控制信息表映射为部分)
在插入传输流分组之前可以把IPMP控制信息表分割为具有以下的语法的一个或者多个部分。
表2-1PMP控制信息表部分
表2
语法 记忆位的编号 |
IPMP_Control_Info_section(){table_id 8 uimsbfsection_syntax_indicator 1 bslbf′0′ 1 bslbfreserved 2 bslbfsection_length 12 uimsbfreserved 2 bslbfipmp_control_info_version 5 uimsbfcurrent_next_indicator 1 bslbfsection_number 8 uimsbflast_section_number 8 uimsbfdescriptor_length 24 uimsbffor(i=0;i<N;i++){descriptor()}isSigned 1 bslbfreserved 7 bslbfif(isSigned)Signature 8 ByteArrayNunCerts 8 uimsbffor(i=0;i<numCerts;i++){CertType 8 uimsbfCertificate 8 ByteArray}Verifying_Tool_ID 128 uimsbf}CRC_32 32 rpchof} |
(在IPMP控制信息表部分中的字段的语法定义)
table_id-这是8位的字段,如以上的表格1中所示将总是把它设置为0x02。
section-syntax-indicator-该Section-syntax-indicator是将被设置为‘1’的一位的字段。
Section_length-这是20位的字段。它指定紧接着section_length字段开始并且包括CRC的部分的字节的数量。在该字段的值不超过1048573。因为以下的指示符可以包括稍后将描述的Tool_Container_Descriptor,把该长度设置为较大的值。
ipmp_comtrol_info_version-该5位的字段是整个IPMP控制信息表的版本号。当在ipmp控制信息表内携带的信息发生改变时,将以32为模把该版本号增加1。当把current_next_indicator设置为‘1’时,则version_number将是当前可应用的IPMP控制信息表的版本号。当把current_next_indicator设置为‘0’时,则version_number将是下一个可应用的IPMP控制信息表的版本号。
current_next_indicator-一位的指示符,当被设置为1时,它表示所发送的IPMP控制信息表是目前可应用的。当把该位设置为‘0’时,它表示所发送的IPMP控制信息表还是不可应用的并且将是下一个IPMP控制信息表变得有效。
section_number-这8位的字段指定该部分的数量。在IPMP控制信息表中的第一部分的section_number将是0x00。对于在IPMP控制信息表中的每一个额外的部分它将以256为模增加1。
last_section_number-该8位的字段指定IPMP控制信息表的最后部分(即,具有最高的section_number的部分)的数量。
descriptor_length-该16位的字段指定紧跟在该字段后的描述符的总长度。ToolList_Descriptor应该跟随在该字段之后。在部分3中给出该描述符的细节。
isSigned-该1位的字段表示在IPMP控制信息表中特征的存在。
Signature-完整的IPMP控制信息的特征包括工具列表描述符和工具箱的描述符。
CertType-正在使用的鉴定机制的类型。
NumCerts-包括的证书的数量。
Certificate-证书的阵列。
Verifying_Tool_Id-检验证书所需要的工具的标识符。这可以是终端的标识符。
CRC_32-这是32位的字段,该字段包括在处理了完整的IPMP部分之后给出在[1]的附录B中定义的解码器中的寄存器的0输出的CRC值。(1.2在程序流中的IPMP控制信息)
IPMP控制信息提供在程序流中的包括工具列表指示符的全面的IPMP信息。当stream_id值是已指定的值时,它作为PES分组出现。
表3-IPMP控制信息
表3
语法 记忆位的编号 |
IPMP_control_info(){packet_start_code_prefix 24 bslbfmap_stream_id 8 uimsbfipmp_control_info_length 19 uimsbfcurrent_next_indicator 1 bslbfipmp_oontrol_info_version 5 uimsbfreserved 7 bslbfmarker_bit 16 bslbfdescriptor_length 16 uimsbffor(i=0;i<N;i++) {descriptor()}isSigned 1 bslbfreserved 7 bslbf |
if(isSigned) |
Signature 8 ByteArray |
NumCerts 8 uimsbf |
for(i=0;i<numCerts;i++){ |
CertType 8 uimsbf |
Certificate 8 ByteArray |
} |
Verifying_Tool_ID 128 uimsbf |
} |
CRC_32 32 rpchof} |
(在IPMP控制信息中的字段的语义的定义)
packet_star_code_prefix-该packet_start_code_prefix是24位代码。它与随后的map_stream_id一起构成识别分组的开始的分组开始码。该packet_start_code_prefix是位串‘0000 0000 0000 0000 0000 0001’(以16进制为0x000001)
map_stream_id-这是8位的字段,该字段的值在16进制中总是0x??。ipmp_control_info_version-这5位的字段是整个IPMP控制信息的版本号。当在ipmp控制信息内携带的信息发生变化时,该版本号将以32为模增加1。当把current_next_indicaor设置为‘1’时,则版本号将是目前可应用的IPMP控制信息的版本号。当current_next_indicaor设置为‘0’时,则版本号将是下一个可应用的IPMP控制信息的版本号。
ipmp_control_info_length-该ipmp_control_info_length是指示在紧跟在该字段的ipmp_control_info中的字节的总的数量的19位的字段。该字段的最大值是524288(字节)。
current_next_indicator-1位的字段,当被设置为‘1’时它表示所发送的IPMP控制信息是目前可应用的。当把该位设置为‘0’时,它表示所发送的IPMP控制信息还是不可应用的并且将是下一个控制信息变得有效。
ipmp_control_info_version-该5位的字段是整个IPMP控制信息的版本号。无论何时IPMP控制信息的定义变化时该版本号将以32为模增加1。当把current_next_indicator设置为‘1’时,则ipmp_control_info_version将是目前可应用的IPMP控制信息的版本号。当把current_next_indicator设置为‘0’时,则ipmp_control_info_version将是下一个可应用的IPMP控制信息的版本号。
descriptor_length--该descriptor_length是指示紧跟在该字段之后的描述符的总长度的16位的字段。ToolList_Descriptor应该正跟随在该字段之后。在部分3给出了该描述符的细节。
marker_bit--marker_bit是具有值‘1’的1位的字段。
IsSigned-该1位的字段表示在IPMP控制信息表中特征的存在。随后在if括号中的字段具有与最后部分中相同的语义。(2.新的描述符)
程序和程序元素描述符是可以用来扩展程序和程序元素的定义的结构。所有的描述符具有以8位的标记值开始的格式。该标记值的后面是8位的描述符长度和数据字段。本发明定义了新的IPMP工具列表描述符来容纳IPMP工具列表、IPMP控制图描述符来表示全面的IPMP结构和IPMP工具箱描述符来在内容中携带二进制的IPMP工具。
以下的语义应用于在本发明中定义的描述符以及在MPEG-2中存在的描述符。
descriptor_tag--该descriptor_tag是识别每个描述符的8位的字段。在以下的表格中给出了它的含义。在TS或者PS列的‘x’分别表示对于传输流或者对于程序流的描述符的适应性。在本发明中引入了5个新的描述符。
表4--程序和程序元素描述符
表4
descriptor_tag |
TS |
PS |
识别 |
01234…192021222324-6364-255 |
n/an/aXXX..XXXXXn/an/a |
n/an/aXXX..XXXXXn/an/a |
备用备用video_stream_descriptoraudio_stream_descriptorhierarchy_descriptor…IPMP工具列表描述符IPMP工具信息描述符IPMP参数描述符IPMP工具箱描述符IPMP描述符ITU-T Rec.H.222.0 | ISO/IEC13818-1备用用户专有 |
dcscriptor_length--该descriptor_length是指定紧跟在descreptor_length字段后的描述符的字节的数量的8位的字段。(2.1IPMP工具列表描述符)
IPMP工具列表描述符包括IPMP工具的列表。使用该描述符来指定为了重新播放内容应该使用的所有的IPMP工具。
表5-IPMP工具列表描述符
表5
语法 记忆位的编号 |
IPMPToolList_descriptor(){descriptor_tag 8 uimsbfdescriptor_length 16 uimsbfnmuTools 8 uimsbffor(i=0;i<numTools;i++){IpmpTool_Descriptor()}} |
在以下的部分定义IpmpTool_Descriptor()。(2.2IPMP工具描述符)
IPMP_Tool_Descriptor包括终端所需要的逻辑IPMP工具的信息。逻辑工具可以是下列的其中之一:
1.IPMP_ToolID指定的特定销售商的IPMP工具,
2.交替的IPMP工具列表中的一个,
3.由参数描述指定的IPMP工具
表6-IPMP工具信息描述符
表6
语法 记忆位的编号 |
IPMPTool_descriptor(){descriptor_tag 8 uimsbfdescriptor_length 16 uimsbfisAltGroup 1 uimsbfisParametric 1 uimsbfReserved(0b111111) 6 uimsbfIPMP_Tool_ID 128 uimsbfif(isAltGroup){numAlternatives 8 uimsbffor(i=0;i<numAlternatives;i++){Alt_IPMP_Tool_ID 128 uimsbf}}else if(isParametric){parametricDescription ByteArray}} |
(在IPMP工具描述符中的字段的语义定义)
在交替的工具的列表的情况下,终端将从交替的IPMP工具的列表中选择IPMP工具。在IPMP工具的参数描述的情况下,终端将选择满足在参数描述中指定的标准的IPMP工具。
IPMP_ToolId-终端需要的逻辑IPMP_ToolId的标识符。
IsAltGroup-IPMP_Tool包括交替的IPMP工具的列表。在此情况下,IPMP_ToolID是用于交替的IPMP工具的列表的标识符,并且终端将把在位流中为IPMP_ToolID指定的信息路由到由终端实例化的特定的IPMP工具。
numAlternates-在IPMP_Tool[]中指定交替的IPMP工具的数量。
Alt_IPMP_ToolIDs-可以允许消费内容的交替的IPMP工具的标识符的阵列。
IsParametric-IPMP_Tool包括IPMP工具的参数描述。在这样的情况下,IPMP_ToolID是用于以参数描述的IPMP工具的标识符,并且终端将把在位流中为IPMP_ToolID指定的信息路由到由终端实例化的特定的IPMP工具。(2.3IPMP工具箱描述符)
在许多情况下由内容自身携带二进制IPMP工具(轻负荷)。终端可以从内容中重新获取IPMP工具、装载它,使之实例化并且立即使用它以重新播放该内容。
在MPEG-4 IPMP扩展中,在工具ES中携带二进制IPMP工具。然而,在MPEG-2的语境下,在新定义的IPMP工具箱描述符内能够更容易地携带二进制IPMP工具。给定工具的一个实现被携带为一个IPMP工具箱的有效负荷、表示格式、打包信息和在箱中同时指定的IPMP工具标识符。
表7-IPMP工具箱描述符
表7
语法 记忆位的编号 |
IPMPToolContainer_descriptor(){descriptor_tag 8 uimsbfdescriptor_length 16 uimsbfIPMP_Tool_ID 128 uimsbfTool_Format_ID 32 uimsbfTool_Package_ID 16 uimsbfsizeofTool 16 uimsbffor(i=0;i<sizeofTool;i++){Toolbody 8 uimsbf}} |
(在IPMP工具箱描述符中的字段的语义定义)
IPMP_Tool_ID-在该流中携带工具的标识符。
Tool_Format_ID-对于结构化描述的工具这被定义为0x0001。否则,该Tool_Format_ID表示该工具的二进制表示并且由登记授权分配。
注意:结构化描述的工具暗示依据可以被组合以提供内容消费所需要的一些或者所有的IPMP功能的原始的网络的IPMP工具的描述。例如,DES解密算法可以被描述为把密码文本作为输入接收并且把纯文本作为输出提供的一连串的操作码调用。
Tool_Package_Id表示工具分组的细节-实例是CAB或者自安装可执行的Winzip。值由登记授权来分配。(2.4IPMP控制图形描述符)
IPMP控制图形描述符包括整个IPMP保护方案的描述。它把IPMP工具与在它的保护下的单独的流联系起来。
表8-IPMP控制图形描述符
表8
语法 记忆位的编号 |
IPMPControlGraph_descriptor(){descriptor_tag 8 uimsbfdescriptor_length 8 uimsbfnumProtectedPrograms 8 uimsbfif(numProtectedPrograms>0){program_number 16 uimsbfnumProtectedStreams 8 uimsbffor(i=0;i<numStreams;i++){stream_type 8 uimsbfreserved 3 uimsbfelementary_PID 13 uimsbfipmp_length 16 uimsbffor(i=0;i<N;i++){IPMP_Descriptor}}}else if (numProtectedPrograms=0){numProtectedStreams 8 uimsbffor(i=0;i<numProtectedStreams;i++){stream_type 8 uimsbfelementary_stream_id 8 uimsbfipmp_length 16 uimsbffor(i=0;i<N;i++){IPMP_Descriptor}}}} |
(在IPMP控制图形描述符中的字段的语义定义)
numProtectedPrograms-这8位的字段表示多少程序在IPMP保护范围之下。如果数量是0,意味着它是程序流。如果它大于0,意味着它是传输流,并且for循环接着追踪到每个程序。传输流的情况(numProtectedPrograms>0)
program_number--program_number是16位的字段。它指定在IPMP保护下的程序。该字段将不采用在IPMP控制信息的一个版本内多于一次的任何单一值。
ipmp_length-这是16位的字段。它指示紧跟在ipmp_length字段后的IPMP描述符的字节的数量。
NumProtectedStreams-指定在IPMP保护下的基本流(属于以上的程序)的数量。
stream_type-这是指定具有其值由elementary_PID指定的PID的分组内携带的程序元素的类型的8位字段。在稍后描述的表格11中指定了stream_type的值。
elementary_PID-这是指定携带相关的程序元素的传输流分组的PID的13位字段。如果存在紧跟在该elementary PID之后的IPMP描述符,则意味着该特定的元素流在该IPMP描述符所定义的保护范围之下。程序流的情况(numProtectedPrograms=0):
elementary_stream_id-该elementary_stream_id是表示存储了该基本流的PES分组的PES分组报头中的stream_id字段的值的8位字段。
以下进一步定义了IPMP描述符。(2.5IPMP描述符)
IPMP描述符指定在特定的范围中的IPMP保护。包括指定控制点、排序、IPMP工具标识符等。
表9-IPMP描述符
表9
语法 记忆位的编号 |
IPMP_descriptor(){descriptor_tag 8 uimsbfdescriptor_length 8 uimsbfIPMP_DescriptorID 8 uimsbfIPMP_ToolID 128 uimsbfnumControlPoints 8 uimsbffor(i=0;i<numControlPoints;i++){controlPoint 8 uimsbfreserved 6 uimsbfsequenceCode 2 uimsbfif(sequenceCode=0x1){IPMP_DescriptorID 8 uimsbfcontrolPoint 8 uimsbf}if(sequenceCode=0x2){IPMP_DescriptorID 8 uimsbfcontrolPoint 8 uimsbf}OpaqueData ByteArray} |
(在IPMP描述符中的字段的语义定义)
IPMP_DescriptorID-该IPMP描述符的唯一的ID。可以使用它来指示该特定的描述符(保护范围)。
IPMP_ToolID-在该范围正在受保护的IPMP工具的唯一的ID。
NumControlPoints-IPMP工具被激活的控制点的数量。
ControlPoint-指定IPMP工具所驻留的IPMP控制点的值,并且值是下列的值之一:
控制点 |
描述 |
0x00 |
没有控制点 |
0x01 |
控制点在解码缓冲器和解码器之间 |
0x02 |
控制点在解码器和合成缓冲器之间 |
0x03 |
控制点在合成缓冲器和合成器之间 |
sequenceCode-指定IPMP工具与驻留在相同的控制点的IPMP工具关系的值,并且值是下列之一。如果sequenceCode是0x01或者0x02,IPMP描述符ID与控制点一起紧跟在后以指定哪个工具(实例)是在前或在后的目前的IPMP工具。
序列码 |
描述 |
0x00 |
没有排序的IPMP工具 |
0x01 |
IPMP工具在另一个工具之前 |
0x02 |
IPMP工具在另一个工具之后 |
0x03 |
0x01和0x02的逻辑“或” |
不透明的数据--不透明的数据控制IPMP工具(3新的流)
Stream_id指定了如下表所定义的基本流的类型和数量。在本实施例中把Stream_id1111 1001分配给IPMP流。
表10--Stream_id分配
stream_id |
流编码 |
1011 11001011 11011011 11101011 1111110x xxxx1110 xxxx1111 00001111 00011111 1001……1111 1100…111111101111 1111 |
program_stream_mapprivate_stream_1padding_streamprivate_stream_2ISO/IEC 13818-3 or ISO/IEC 11172-3 音频流号 x xxxxITU-T Rec.H.262 | ISO/IEC 13818-2 or ISO/IEC 11172-2 视频流号 xxxxECM_streamEMM_streamancillary stream(IPMP流)……保留的数据流program_stream_directory |
表11--流类型分配
值 |
描 述 |
0x00 |
ITU-T | ISO/IEC Reserved |
0x01 |
ISO/IEC 11172 视频 |
0x02 |
ITU-T Rec.H.262 | ISO/IEC 13818-2 视频 或 ISO/IEC 11172-2受约束的参数视频流 |
0x03 |
ISO/IEC 11172 音频 |
0X04 |
ISO/IEC 13818-3音频 |
… |
… |
0x0F |
IPMP 流 |
0x11-0x7F |
ITU-T Rec. H.222.0 | ISO/IEC13818-1 备用 |
0x80-0xFF |
用户专有 |
(3.1IPMP流)
该IPMP流将是携带IPMP信息的新的基本流。与其中可以在一个内容中存在许多IPMP基本流且每个IPMP ES与一个IPMP系统相关的MPEG-4IPMP扩展不一样,在MPEG-2中,在单个的IPMP流中携带位于所有控制点上的所有IPMP工具的所有IPMP信息。
因此,需要在IPMP流的IPMP信息的每一个中表示清楚的目的地。
在本发明定义IPMP流应该是一连串的IPMP信息消息,定义的语法如下:
表12-IPMP信息消息
表12
语法 记忆位的编号 |
IPMP_info_message(){ipmp_descriptor_id 8 uimsbfcontrol_point 8 uimsbflength_of_message 16 uimsbffor(i=0;i<N; i++){message 8 uimsbf}} |
ipmp_descriptor_id和control_point一起清楚地定义了该IPMP_info_message的目的地。应该由消息路由器把该消息路由到位于指定的控制点上的对应的ipmp描述符中定义的IPMP工具。(4MPEG-2IPMP终端)
可以把IPMP工具管理器和消息路由器从MEPG-4IPMP扩展终端直接映射到MPE-2的IPMP终端。
图3显示MPEG-2IPMP终端的体系结构。(4.1IPMP工具管理器)
IPMP工具管理器是在给定IPMP终端中的概念性的实体。当接收到工具列表时,为了分析和重新取回工具该终端应该把相同的列表路由到IPMP工具管理器。工具管理器同时处理参数描述、解析可选择的工具、并且接收在内容中到达的二进制工具。
以下的步骤细化了在MPEG-2终端中分析和重新获取工具的过程。
1.IPMP工具列表描述符到达在PSI中的IPMP控制信息表并且被路由到工具管理器。
2.IPMP工具管理器按照在语句2.2.2.1中的语法分析用于IPMP工具的信息。
3.工具管理器检查所需要的工具是否可以得到。对于每个不可得到的工具,进行获得工具的尝试。怎样获得丢失的工具是实现问题。
4.IPMP工具管理器同时负责分析IPMP工具箱描述符并且重新获取在PSI中携带的二进制IPMP工具。
5.IPMP工具管理器还负责解析参数描述。(4.2 IPMP消息路由器)
通过终端路由所有的IPMP工具消息。为了表示本功能,在体系结构中定义了被称为消息路由器的实体。MR与所支持的IPMP工具连接并且通信。因而它从任何其它想要与它通信的其它IPMP工具中提取一个IPMP工具的物理接口。消息路由被认为是即时的。在MR错误的情况下,由MR返回合适的错误状态。在其它所有的情况下,在不改变语义的含义的情况下需要MR路由接收到的信息和响应。
可以无修改地从MPEG-4 IPMP扩展映射消息接口。然而,不需要在MPEG-2下为工具实例定义语境ID。IPMP描述符ID和控制点一起应该清楚地定义在保护特定的基本流的特定的控制点运行的特定的工具实例。(4.3相互鉴定)
必须与另一个工具或者终端通信的工具必须这样做以满足工具或者终端的安全需要。工具必须与终端或者可能与另一个工具建立信任以保证安全的通信。可以通过使用安全的、被可信地鉴定过的信道来实现对反映工具间信任的特性的通信信道的建立的支持。
可以把支持相互鉴定的消息从MPEG-4IPMP扩展直接映射到MPEG一2的结构中。
虽然已结合指定的实施例描述了本发明,然而许多另外的修改、修正和应用对于本领域的技术人员是显而易见的。因此,本发明不受这里所提供的公开的限制且不仅限于所附的权利要求的范围。