对视频数据流加密的方法和设备的制作方法

文档序号:7584551阅读:216来源:国知局
专利名称:对视频数据流加密的方法和设备的制作方法
技术领域
本发明涉及数据加密领域,更具体讲,涉及对随后在基于处理器的视频系统上再现的数据进行加密。
背景技术
随着对通过开放式网络如因特网和无线网进行多媒体通信普遍使用的前景日益提高,对机密的、隐私的以及受控的访问的需要将变得日益重要。对通过这些网络发送的数据加密已经成为选择的解决方案。
但是,随着宽带内容的增加,在内容或服务提供商端加密,尤其是在用户端解密时,由于处理器的负担很重,因此或者很慢(低性能处理器),或者很贵(高性能处理器)。最近的根据视频帧的加密方法有些帮助,但是,视频帧仍然需要对仅随宽带内容增加而增加的大量数据加密。

发明内容
本发明的第一方面是一种对视频数据流加密的方法,其中,根据包含在单元中的数据类型将视频数据流划分为单元,该方法包括为每个单元确定包含在该单元中的数据类型;并且根据包含在单元中的数据类型,对特定单元或特定单元的一部分加密。
本发明的第二方面是一种对视频数据流加密的方法,其中,视频数据流被划分为根据划分段形成的NAL单元,每个NAL单元包含头数据、内部数据或中间数据,该方法包括为每个NAL单元确定该NAL单元是否包含头数据、内部数据或中间数据;并且,根据特定NAL单元是否包含头数据、内部数据或中间数据,对特定NAL单元或特定NAL单元的一部分加密。
本发明的第三方面是一种对视频数据流加密的系统,其中,根据包含在单元中的数据类型将视频数据流划分为单元,该系统包括用于为每个单元确定包含在该单元中的数据类型的装置;以及用于根据包含在单元中的数据类型,对特定单元或特定单元的一部分加密的装置。
本发明的第四方面是一种对视频数据流加密的系统,其中,视频数据流被划分为根据划分段形成的NAL单元,每个NAL单元包含头数据、内部数据或中间数据中的一种数据,该系统包括用于为每个NAL单元确定该NAL单元是否包含头数据、内部数据或中间数据的装置;以及用于根据特定NAL单元是否包含头数据、内部数据或中间数据,对特定NAL单元或特定NAL单元的一部分加密的装置。


在所附权利要求中描述了本发明的特征。但是,通过结合附图参照以下对说明性实施例进行的详细描述,本发明本身将得到最佳理解,其中图1示出了划分之前的数据分组;图2示出了根据数据组形成的数据分区;图3A和3B示出了RTP/NAL(网络提取层)单元数据包;图4示出了NAL单元的域结构;图5为按照本发明的用于对国际电信联盟电信标准化组H.264视频数据流加密的系统的示意框图;并且图6为按照本发明的用于对视频数据加密的方法步骤的流程图。
具体实施例方式
提供图1到3A和图4,以便有助于理解本发明,并且这些图仅示出了ITU-TH.264标准数字数据流结构。图3B将本发明扩展到不是目前在ITU-TH.264中限定的情况。
图1示出了划分之前的数据分组。段被定义为整数个宏块,这些宏块按照光栅扫描命令连续排列在特定的段组中,在画面中,这些宏块可以是不连续的。在图1中,段包括段头域、头数据域、内部数据域和中间数据域等。下标“i”用于表示对应于段中第i个宏块的指定数据。头数据包括宏块类型(syntax=mb_type(i))。宏块类型包括I块、P块、B块、SI块和SP块等,每种块都有与本发明无关的子宏块类型。
I块被定义为根据在同一块中被解码的样本,被利用预测(估算正在被解码的值)编码的块。SI块被定义为交换I块。P块被定义为根据前面解码的参考画面,被利用预测编码的块。SP块被定义为交换P块。B块被定义为预测块。有五个用于B块的预测模式,分别是列表0、列表1、双预测、直接预测和内预测等。由于根据当前被解码的画面的解码样本进行预测,因此I和SI块是内预测块。由于根据非当前解码的画面的解码样本进行预测,因此P、SP和B块是中间预测块。注意,有关I、P、B、SI和SP块的定义可以应用于具有相同目的的宏块、帧、域和画面,但是,在宏块的情况下,应该将其理解为在单个画面的单个段中存在不同类型的宏块。此外,甚至宏块的子块可以是不同类型。
内部数据域包含经过编码的内部块(即,I和SI块)数据。中间数据域包含经过编码的中间块(即,P、SP和B块)数据。
图2示出了根据数据组形成的数据分区类型。分区被定义为将组(即图1的段的元素)分为副组(即图2的分区类型的元素),使得组中的每个元素都确切地在一个副组中。在图2中,图1中示出的段被划分为三个分区类型。分区类型A包括段头域(syntax=slice_header()),段ID域(syntax=slice_id),头数据域和结尾位域(syntax=tb)。分区类型A的段头域的内容是图1中示出的段的段头域的内容。段ID域为新域(相对于图1),它表示从哪个段得到的分区。分区类型A的头数据域的内容是图1中示出的段的数据头域的内容。结尾位域为新域(相对于图1),用于使分区类型A中的位数为8的偶数倍。
分区类型B包括上述的段ID域、内部数据域和结尾位域等。分区类型B的内部数据域的内容为图1所示的段的内部数据域的内容。结尾位域再次用于使分区类型B中的位数为8的偶数倍。
分区类型C包括上述的段ID域、中间数据域和结尾位域等。分区类型C的中间数据域的内容为图1所示的段的中间数据域的内容。结尾位域再次用于使分区类型C中的位数为8的偶数倍。
图3A和3B示出了RTP/NAL单元的数据包。ITU-T H.264标准将NAL单元规定为在数据包定向系统和位流系统中使用的通用格式。通过将原字节顺序负荷(RBSP)连接起来构成NAL单元。在划分数据的情况下,每个RBSP可以仅包含一个分区类型。按照本发明的目的,NAL单元被表示为已经被在典型传输层中用实时协议(RTP)编码。也可以使用其他协议如MPEG-2 Transport、MPEG-2节目流和H.233等。
在图3A中,RTP数据包流包括RTP头和单个NAL单元。RTP头(或者用于MPEG-2的打包基本码流(PES)的头部)传送关于加密方法的信息。NAL单元包括NAL头(见以下的定义)和RBSP负荷。NAL单元的RBSP数据包可以包含分区类型A数据、分区类型B数据和分区类型C数据。
在图3B中,RTP数据包流包括RTP头和多个NAL单元。第一NAL单元(NAL单元1)包含关于加密方法的信息。每个NAL单元包括NAL头(见下面的定义)和RBSP负荷。NAL单元1的RBSP数据包包含补充增强信息(SEI)信息(syntax=reserved_SEI_message)。reserved_SEI_message包括关于对NAL单元2到N加密的信息。发送方和接收方的reserved_SEI_message的格式必须一致,因此,接收方知道如何翻译SEI消息。NAL单元2的RBSP数据包包含分区类型A数据,NAL单元3的RBSP数据包包含分区类型B数据,NAL单元4的RBSP数据包包含分区类型C数据。任何NAL单元2到N都可以包含分区类型A的RBSP、分区类型B的RBSP和分区类型C的RBSP,但只能包含一种类型。
图4示出了NAL单元的域结构。在图4中,NAL单元包括NAL头和RBSP数据包,该RBSP数据包是分区类型A的RBSP数据包。NAL头被定义为包含forbidden_bit、nal_storage_idc和nal_unit_type等域的组。nal_unit_type表示单元是否包含分区类型A、B和C的数据。H.264定义了nal_unit_type的十六进制的值,nal_unit_type=0x2表示A分区类型,0x3表示B分区类型,0x3表示C分区类型,头中的其他域如图所示。RBSP数据包包含段头域(syntax=slice_header),段ID域(syntax=slice_id),段数据域(syntax=slice_data)和结尾位域(syntax=tb)。仅当NAL单元包含分区类型A的RBSP时,包括段头域。分区类型B和C的RBSP仅包含段ID域、段数据域和结尾位域。如上所述,段数据域包含头数据、内部数据或中间数据。
段头包括若干个域,与本发明最相关的是帧数域(syntax=frame_number),画面结构域(syntax=picture_structure)和段类型域(syntax=slice_type_idc)。画面结构域表示数据是域数据或帧数据。帧被定义为画面的所有行的经过采样和量化的亮度和色度数据。帧包括顶域和底域两个域。域被定义为帧的隔行组合。段类型域表示段是P、B、I、SP或SI段。
图5为按照本发明的,用于对ITU-T H.264视频数据流加密的系统的示意框图。在图5中,加密装置100包括H.264编码器105、分析器110、控制接口115、加密控制器120、开关125、加密器130A、130B和130C以及密钥生成器135A、135B和135C等。
H.264编码器105接收输入视频数据流140,并且生成压缩视频数据流145。压缩视频数据流145被格式化为NAL单元,每个NAL单元包括上述的如图3和4所示的A类型分区、B类型分区和C类型分区中的一个。分析器110通过读取NAL头,对压缩视频数据流145进行分析,以得到,例如,关于NAL单元包含的分区类型(A、B、C)或存储在参考画面缓冲器中的对应画面的编码信息。通过统计信号150将收集的信息传送到加密控制器120。加密控制器120将每个NAL单元上的统计信号与由控制接口115生成的一组选择和加密规则进行比较,通过发送到开关125的加密器控制信号155和发送到密钥生成器135A、135B和135C的密钥选择信号160,选择将对哪个NAL单元加密,以及如何对它们加密。
选择和加密规则可以是总体的(即,基于分区),其中,单元参数的NAL值nal_unit_type和nal_storage_idc定义了对什么分区类型加密,或者,选择和加密规则可以是局部的(即,基于分区以外的属性),局部选择和加密规则必须总有与它有关的总体选择和加密规则。局部选择规则允许仅对从总体选择的分区类型中的选择的NAL单元进行选择和加密。局部选择和加密规则可以基于与NAL单元中的域有关的任何非分区类型。例如,局部选择和加密规则可以基于段数据域(syntax=slice_data)中的位数。
控制接口115可以对加密控制器120实施一组固定的选择和加密规则或者一组可编程的选择和加密规则,以便应用从统计信号150得到的关于特定NAL单元的信息。可编程规则允许用户考虑视频数据流140以外的信息,动态地调节选择规则。
选择的加密器(加密器130A、130B或130C中的一个)对整个NAL单元或NAL单元的一部分加密。例如,可以对NAL头、NAL头中的一个或多个域、RBSP域或者RBSP域中的一个或多个子域(例如段数据域)、仅是用NAL单元选择的位组。当对NAL单元的头部加密时,不对对应的RBSP加密,由此节省加密时间。如果RBSP被加密,则对应的NAL单元的头部不加密,并且NAL单元的头部传送对RBSP解密所需要的信息。例如,发送方和接收方对用于特定分区类型的加密方法一致,并且在NAL头域nal_unit_type中描述分区类型。
相似地,加密信息可以包含在NAL头部或NAL头部中的一个或多个域中,或者包含在RBSP域或者RBSP域中的一个或多个子域中。在图3B中示出了并且以上描述了RBSP数据包的reserved_SEI_message域的例子。通过“错用”那些域,可以使用NAL单元的几乎任何其它域(例如,trailing_bits域)。
开关125的输出是经过有选择加密的视频数据信号165。
图5中示出了三个加密器130A、130B和130C。在第一个典型实施中,将每个加密器130A、130B和130C分别用于不同的分区类型,即A类型、B类型和C类型。在第二个典型实施中,按照一般检测和特殊检测,将每个加密器130A、130B和130C用于不同类型的加密方法。一般加密方法的例子包括可变密钥、固定密钥、单加密、双加密法等。在双加密的情况下,将在一个加密器130A、130B和130C中串联两个加密器。常见的特殊加密法的例子包括数据加密标准(DES)、三重DES(3DES)、高级加密标准(AES)和数字视频广播-通用加扰算法(DVB-CSA)等。
相似地,每个加密器130A、130B或130C可以配备其自己相应的密钥生成器135A、135B或135C,或者,每个密钥生成器可用于每个加密器。加密器可以多于或少于三个,密钥生成器可以多于或少于三个,加密器的数量和密钥生成器的数量可以不同。表1列出了加密策略、密钥NAL单元参数以及该策略的理论基础和优点。
表I

当使用数据分区时,数据包中的重要的低级数据被集中在某个分区中,而不是与其它数据混合在一起并且分散在整个数据包中。因此,通过选择对数据包中的某个分区加密并且通过相应的加密法,可以得到一定的保护水平。例如,对高级信息(例如,分区类型A)加密将使整个数据包实际上不能解码,而对低级信息(例如,分区类型B和C)加密,数据包可以被解码,但质量较低。
可以想象用于实施这个原理的不同策略。这些策略可以根据应用,考虑分区的规模和含义。例如,当在试图将视频分布在有限带宽中或者在易错环境如因特网或ad-hoc无线网中的情况下对视频加密时,可以谨慎地将较多数量的内部宏块用于减少风险或错误传播。(如以上所定义的,可以独立地对内部宏块解码,并且内部宏块不用于对中间宏块解码。)在这种情况下,对包含内部数据,即I帧和SI帧,的分区(例如,分区类型B)加密是有用的,即使这样的分区会包含比其它分区更多的位。另一个例子是对将中间数据包括在中间编码帧,即P、B和SP帧,的分区(例如,分区类型C)加密。
图6为按照本发明的,用于对视频数据加密的方法步骤的流程图。在步骤170中,视频数据被分组为如图1所示的如上所述的段。在步骤175中,分组的视频数据被划分为如图2所示的如上所述的A型分区、B型分区和C型分区。在步骤180中,按照图3和4所示的如上所述的ITU-T H.264标准对分区的数据编码。在步骤185中,根据在所有NAL单元的NAL头部中的参数nal_unit_type,或者根据参数nal_unit_type和在包含分区类型A的RBSP的NAL单元的段头域中找到的参数slice_type_idc,选择NAL单元并且确定其分区类型(A、B或C)。在步骤190中,确定是否根据以上参照图5讨论的选择和加密规则,对特定的NAL单元加密。如果不对NAL单元加密,则方法返回到步骤185并且选择数据流中的下一个NAL单元。如果对NAL单元加密,则方法进行到步骤195。在步骤195中,选择加密法和加密密钥,并且在步骤200中,对该NAL单元或该NAL单元的一部分加密。然后,方法返回到步骤185,选择下一个NAL单元。
为了理解本发明,以上对本发明的实施例进行了描述。应该理解,本发明不限于这里描述的特定实施例,本领域技术人员应该清楚,在不脱离本发明的范围的情况下,可以进行各种修改、重新整理和替换。因此,意思是随后的权利要求将所有这样的修改和改变覆盖为属于本发明的真实精神和范围。
权利要求
1.一种对视频数据流加密的方法,根据包含在单元中的数据类型,将所述视频数据流划分为单元,所述方法包括为每个单元确定包含在所述单元中的数据的类型;并且根据包含在所述单元中的数据的类型,对特定单元或所述特定单元的一部分加密。
2.如权利要求1所述的方法,其中,所述数据类型是从包括头数据、内部数据和中间数据的组中选择的数据。
3.如权利要求2所述的方法,其中,从包括I块数据和SI块数据的组中选择所述内部数据,从包括P块数据、B块数据和SP块数据的组中选择所述中间数据。
4.如权利要求1所述的方法,还包括根据包含在特定单元中的数据类型,不对所述特定单元加密。
5.如权利要求1所述的方法,其中,总是对包含相同类型数据的每个单元加密。
6.如权利要求1所述的方法,其中,对包含相同类型数据的每个单元进行相同的加密。
7.如权利要求1所述的方法,其中,利用不同的加密方法、不同的加密密钥、或者不同的加密方法和不同的加密密钥,对包含不同类型数据的单元加密。
8.一种对视频数据流加密的方法,所述视频数据流被划分为由划分的段构成的网络提取层单元,每个网络提取层单元包含头数据、内部数据或中间数据中的一种数据,所述方法包括为每个网络提取层单元确定该网络提取层单元是否包含头数据、内部数据或中间数据;并且根据特定网络提取层单元是否包含头数据、内部数据或中间数据,对所述特定网络提取层单元或所述特定网络提取层单元的一部分加密。
9.如权利要求8所述的方法,其中,从包括I块数据和SI块数据的组中选择所述内部数据,从包括P块数据、B块数据和SP块数据的组中选择所述中间数据。
10.如权利要求8所述的方法,还包括根据包含在特定单元中的数据类型,不对所述特定单元加密。
11.如权利要求8所述的方法,其中,不对每个包含头数据的网络提取层单元进行加密或者进行相同的加密,不对每个包含内部数据的网络提取层单元进行加密或者进行相同的加密,不对每个包含中间数据的网络提取层单元进行加密或者进行相同的加密。
12.如权利要求8所述的方法,其中,从由包含头数据的网络提取层单元、包含内部数据的网络提取层单元和包含中间数据的网络提取层单元组成的网络提取层单元类型组中选择至少两种类型的网络提取层单元,利用对每个单元类型来说不同的加密方法、不同的加密密钥或者不同加密方法和不同的加密密钥,对这两种类型的网络提取层单元加密。
13.如权利要求8所述的方法,其中,从由网络提取层头部、所述网络提取层头部中的一个或多个域、RBSP域、所述RBSP域中的一个或多个子域以及在所述网络提取层单元中选择的位组组成的组中选择所述特定网络提取层单元的所述要被加密的部分。
14.如权利要求8所述的方法,还包括在网络提取层头部中、在所述网络提取层头部中的一个或多个域中、在RBSP域中、在RBSP域中的一个或多个子域中以及在所述网络提取层单元中选择的位组中嵌入解密信息。
15.一种用于对视频数据流加密的系统,根据包含在单元中的数据类型,将所述视频数据流划分为单元,所述系统包括用于为每个单元确定包含在所述单元中的数据的类型的装置;以及用于根据包含在所述单元中的数据的类型,对特定单元或所述特定单元的一部分加密的装置。
16.如权利要求15所述的系统,其中,所述数据类型是从包括头数据、内部数据和中间数据的组中选择的数据。
17.如权利要求16所述的系统,其中,从包括I块数据和SI块数据的组中选择所述内部数据,从包括P块数据、B块数据和SP块数据的组中选择所述中间数据。
18.如权利要求15所述的系统,其中,还包括用于根据包含在所述单元中的数据类型,不对特定单元加密的装置。
19.如权利要求15所述的系统,其中,所述用于加密的装置适合于总对包含相同类型数据的单元加密。
20.如权利要求15所述的系统,其中,所述用于加密的装置适合于对所有包含相同类型数据的单元进行相同的加密。
21.如权利要求15所述的系统,其中,所述用于加密的装置适合于利用不同加密方法、不同加密密钥、或者不同加密方法和不同加密密钥,对包含不同类型数据的单元加密。
22.一种对视频数据流加密的系统,所述视频数据流被划分为由划分的段构成的网络提取层单元,每个网络提取层单元包含头数据、内部数据或中间数据中的一种数据,所述系统包括用于为每个网络提取层单元确定该网络提取层单元是否包含头数据、内部数据或中间数据的装置;以及用于根据特定单元是否包含头数据、内部数据或中间数据,对所述特定网络提取层单元或所述特定网络提取层单元的一部分加密的装置。
23.如权利要求22所述的系统,其中,从包括I块数据和SI块数据的组中选择所述内部数据,从包括P块数据、B块数据和SP块数据的组中选择所述中间数据。
24.如权利要求22所述的系统,其中,所述用于加密的装置适合于根据包含在特定单元中的数据类型,不对所述特定单元加密。
25.如权利要求22所述的系统,其中,所述用于加密的装置适合于不对每个包含头数据的网络提取层单元进行加密或者进行相同的加密,不对每个包含内部数据的网络提取层单元进行加密或者进行相同的加密,不对每个包含中间数据的网络提取层单元进行加密或者进行相同的加密。
26.如权利要求22所述的系统,其中,所述用于加密的装置适合于从由包含头部数据的网络提取层单元、包含内部数据的网络提取层单元和包含中间数据的网络提取层单元组成的网络提取层单元类型组中选择至少两个网络提取层单元类型,利用对每个单元类型来说不同的加密方法、不同的加密密钥或者不同的加密方法和不同的加密密钥,对这两种类型的网络提取层单元加密。
全文摘要
一种对视频数据流加密的方法和系统,根据包含在单元中的数据的类型,将视频数据流划分为单元。该方法包括为每个单元确定包含在该单元中的数据的类型;并且根据包含在单元中的数据的类型,对特定单元或特定单元的一部分加密。
文档编号H04N7/167GK1726713SQ200380106160
公开日2006年1月25日 申请日期2003年12月12日 优先权日2002年12月16日
发明者D·布拉泽罗维, A·M·A·里卡尔特 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1