媒体数据编码设备的制作方法

文档序号:7634691阅读:119来源:国知局
专利名称:媒体数据编码设备的制作方法
技术领域
本发明的实施例涉及编码设备。更具体地说,本发明的实施例涉及使其它设备(如代码转换器或解码器)能够操作编码数据而不需要知道其编码方案的编码设备。
背景技术
数据传输系统对系统设计者提出了很多挑战。例如,客户机可能有不同的显示器、电源、通信和计算能力。另外,系统中的通信链路可能有不同的最大带宽、质量等级以及随时间变化的特性。成功的数据传输系统应该能够在特性随时间变化的不同种类的网络上将数据流传输到大量不同的客户机。
提供适当的安全性以保护内容不被窃取是数据传输系统设计中另一个重要的考虑。通常,为了提供安全性,以加密形式传输数据。
可以用系统中的中间结点完成流自适应或代码转换,以便为不同的下游客户机能力和网络条件伸缩变换(scale)数据流。代码转换器以压缩数据流或编码数据流作为输入,随后处理它以产生另一编码数据流作为输出。代码转换操作的例子有位速率降低、速率调整、空间向下采样以及帧速率降低。代码转换能够提高系统可扩展性和效率,如通过改变图像的空间分辨率以适应特定客户机的显示能力或动态地调整数据流的位速率以匹配网络信道随时间变化的特性。
中间结点能够收集并更新有关本地和下游网络条件以及下游客户机能力的信息,然后根据这些信息伸缩变换数据。这可能比在数据源伸缩变换数据更有效,因为对数据源来说更难以收集与网络内部状况有关的最新的详细信息,尤其是在网络中距数据源相对较远的地方的信息。并且,数据源只在传输路径的起点上提供一个控制点,而中间的代码转换结点在沿着传输路径的更关键的位置上提供了很多额外的控制点。
虽然网络代码转换促进了数据传输系统中的可扩展性,它还带来了一些挑战。代码转换的过程会在代码转换结点上带来实际的计算负担。尽管已经开发出了计算高效的代码转换算法,但它们可能不适合处理中间网络结点上的成百上千个数据流。
此外,代码转换也对传输系统的安全性带来了威胁,因为传统的代码转换操作通常需要在代码转换之前对加密的数据流解密。代码转换后的结果被重新加密,在下一个代码转换器再被解密。因而每个代码转换器都可能对系统的安全性带来破坏。当需要端到端的安全性时这是不能接受的。
压缩或编码技术用于减少数据中的冗余信息,由此方便数据的存储和分发,事实上也降低了数据的质量。JPEG(联合摄影专家组,JointPhotographic Experts Group)标准描述了一种用于编码图像数据的一种流行的现代方案。尽管JPEG在很多方面都令人满意,但在满足目前的需要上有其局限性。正在开发一种更新的标准JPEG2000标准来满足那些需要。但是,即使采用JPEG2000标准,代码转换也需要对加密数据进行解密,并且代码转换过程仍然是计算密集的。此外,像JPEG2000这样的新标准的引入意味着需要更新大量的网络结点以及客户端设备中的每一个以适应JPEG2000标准。
因此,能够以安全且计算高效的方式对数据做伸缩变换(代码转换)的方法和/或系统是有益的。能够在传统设备上实现那些目标的系统和/或方法将更有益。本发明提供了这些以及其它优点。

发明内容
本发明的实施例是关于接收媒体数据、根据该媒体数据生成可伸缩媒体(scalable media)、接收可伸缩的属性标准、至少部分根据该可伸缩媒体和该可伸缩属性标准生成可伸缩简档数据并输出该可伸缩简档数据的设备。


被引入本说明书并且构成其一部分的附图示出了本发明的实施例,所述实施例和说明一起阐明本发明的原理。
图1示出了依照本发明的一种实施例的包括数据的位流的实例。
图2示出了依照本发明一种实施例的位流中的数据段的实例。
图3是示出了依照本发明一种实施例的简化的数据传输系统中的功能元件的框图。
图4A示出了流入和流出依照本发明一种实施例的编码器的信息。
图4B示出了流入和流出根据本发明的第二种实施例的编码器的信息。
图5A示出了流入和流出依照本发明的一种实施例的数据伸缩变换器的信息。
图5B示出了流入和流出根据本发明的第二种实施例的数据伸缩变换器的信息。
图6是依照本发明的一种实施例对数据实施伸缩变换(即,代码转换)的过程的流程图。
图7是依照本发明的一种实施例对数据编码的过程的流程图。
图8是依照本发明的一种实施例对数据解码的过程的流程图。
图9A示出了依照本发明的一种实施例将数据和可伸缩媒体耦合在一起的系统。
图9B示出了依照本发明的一种实施例将数据和可伸缩媒体耦合在一起的系统。
图10示出了流入和流出根据本发明的第二实施例的数据伸缩变换器的信息。
图11示出了在依照本发明的一种实施例将数据和可伸缩媒体的部分关联起来的方法中执行的步骤。
图12是依照本发明的一种实施例对加密的可伸缩媒体进行伸缩变换的方法中执行的步骤的流程图。
图13是依照本发明的一种实施例对可伸缩媒体解码的方法中执行的步骤的流程图。
图14示出了依照本发明的一种实施例对渐次加密(progressivelyencrypted)的可伸缩数据序列进行编码的方法。
图15A示出了依照本发明的一种实施例通过截短渐次加密的可伸缩数据序列而进行的代码转换。
图15B示出了根据本发明的一种替代实施例通过截短渐次加密的可伸缩数据序列而进行的代码转换。
图16A示出了依照本发明的一种实施例通过截短渐次加密的可伸缩数据序列而进行的代码转换。
图16B示出了依照本发明的一种实施例通过截短渐次加密的可伸缩数据序列而进行的代码转换。
图17是依照本发明的一种实施例对渐次加密的可伸缩数据序列进行编码的方法中执行的步骤的流程图。
图18是依照本发明的一种实施例对渐次加密的可伸缩数据序列进行代码转换的方法中执行的步骤的流程图。
图19是依照本发明的一种实施例对渐次加密的可伸缩数据序列进行解码的方法中执行的步骤的流程图。
图20、21和22是依照本发明的实施例的编码器的框图。
图23、24和25是依照本发明的实施例的解码器的框图。
图26、27、28、29、30、31和32是依照本发明的实施例的代码转换器的框图。
除非特别注明,否则本说明书中所引用的图不应该理解为按比例绘制的。
具体实施例方式
现在将详细参考本发明的不同实施例,附图中示出了这些实施例的实例。尽管将结合这些实施例说明本发明,但应理解这并非是为了将本发明限制于这些实施例。相反,本发明要覆盖由所附权利要求定义的本发明的精神和范围所包括的替代、更改和等效物。此外,在下面对本发明的说明中,阐述了大量的具体细节以便提供对本发明的彻底理解。另外,没有详细说明众所周知的方法、过程、组件和电路以避免不必要地模糊本发明的特征。
概述主要在数字图像数据的环境中,尤其是静止图像的环境中论述本发明的实施例。例如,数字图像数据可以来自使用数码相机的“现实世界”捕捉。数字图像数据还可以由计算机生成,例如通过使用绘画程序、屏幕捕捉或图形到位像的转换。但是,本发明不限于数字图像数据。相反,本发明的实施例很适合用于基于语音的数据、基于音频的数据、基于视频的数据、基于网页的数据、图形数据、基于文本的数据(例如,电子文档),等等。
此外,依照本发明的实施例是针对用符合或基本符合JPEG2000标准的编码方案进行了可伸缩编码的数据说明的。但是,本发明并不仅限于此。通常,依照本发明的实施例可用于能够被可伸缩编码的任意数据,特别是组合了可伸缩编码和渐进加密的任意数据。
为本申请起见,可伸缩编码被定义为以原始数据作为输入并生成可伸缩编码数据作为输出的过程,其中可伸缩编码数据的特征是它的各个部分可用来重新构造出不同质量等级、不同分辨率等的原始数据。特别地,可伸缩编码数据通常被看作是嵌入式位流。位流的一部分可用来解码原始数据的基准-质量重构,而不需要任何来自该位流的其它部分的信息。位流渐次更大的部分可以用来解码原始数据的改进重构。JPEG2000是可伸缩编码方案的一个例子。依照本发明的实施例可以使用的其它可伸缩编码方案包括(但不限于)3D次能带编码和MPEG-4FGS(运动图像专家组-4小粒度可伸缩性,MovingPictureExpertsGroup-4FineGranularityScalability)。
为本申请起见,渐进加密被定义为以原始数据(明文)作为输入并产生渐次加密的数据(密文)作为输出的过程,其中渐次加密的数据的特征是加密数据的第一部分可以被单独解密,不需要来自原始数据其余部分的信息。可以用这个属性对越来越大的部分解密,其中解密可能需要来自位流的前面部分而非后面部分的数据。依照本发明可以使用的渐次编码技术包括(但不限于)数据加密标准(DES)、三重-DES(3DES)和高级加密标准(AES)等流行的加密原语。
对JPEG2000编码的一般讨论一般而言,符合JPEG2000标准的编码过程由若干阶段构成。这里将这些阶段称作1)预处理;2)离散子波转换;3)量化;4)嵌入块编码;5)速率控制;和6)位流组织。本发明的实施例不限于这些阶段,也不限于下面说明的JPEG2000标准的特例。事实上,将会看到,本发明的实施例引入了超越JPEG2000标准的语法的特性,产生了计算更高效的伸缩变换(即代码转换)过程,并且能够由不知道JPEG2000标准的设备完成伸缩变换。
JPEG2000容许无损的及有损的压缩;这里的焦点在有损压缩上。在预处理期间,可以选择进行“盖瓦”(tiling)以将原始图像分割成小片(tlle)。并且在预处理期间,可以调节输入数据以使该数据具有以零值为中心的标称动态范围。最后在预处理期间,可以将颜色数据转换成Y,Cr和Cb颜色分量。
在离散子波转换中,图像小片可以被分解成高和低次能带。小片也可以被分割成代码-块(例如,64*64或32*32样本)。更具体地说,每个次能带被分割成称为“范围”的矩形块,并且每个范围被进一步分割成称作代码-块的不重叠的矩形。
在量化阶段将子波系数量化。在嵌入块编码阶段,对每个代码-块分别编码。速率控制是调节编码位流以实现目标位速率的过程。可以检查每个编码的代码-块以确定它能够被截短(truncate)的级别以便实现目标位速率。
在位流组织中,编码后的数据被分割成JPEG2000标准所称的“分组”(JPEG2000标准说明了JPEG2000分组的内容)。所述分组随后被以有序方式一起多路传输成一个位流。注意术语“分组”根据JPEG2000的使用一般不同于该术语更传统的使用。也就是说,JPEG2000分组被多路传输成一个位流,该位流随后被分组成在网络上传输的数据分组。
根据JPEG2000,位流中数据(即JPEG2000分组)的顺序称作“级数”(progression)。有若干不同的方式来对分组排序,例如范围-分量-分辨率-质量或分辨率-质量-分量-范围。根据JPEG2000,“质量”也可以称作“层”。这些术语对熟悉JPEG2000标准的人都是已知的。
位流中数据的顺序可以在位流的整个长度上延续。或者,位流中数据的顺序可以在位流中的某个点上改为不同顺序。位流中任何特定点上数据的顺序对这里的讨论都不重要,重要的是该数据是按编码方案(在这个例子中是符合或基本符合JPEG2000的编码方案)所规定的特定顺序。
图1是依照本发明的一个实施例的JPEG2000位流10的一个实例,包括报头11和编码数据12。报头11包括代码流起始标志符SOC,图像和小片大小标志符SIZ,编码风格缺省标志符COD,量化缺省标志符QCD,小片部分起始标志符SOT,数据起始标志符SOD。位流10还包括代码流结束标志符EOC。熟悉JPEG2000的人理解这些标志符的每一个完成的功能。
在图1的示例中,编码数据12被按照范围-分量-分辨率级数排序;但是,如上所述,可以使用不同的级数。在图1的实例中,有n个范围(P0,P1,...,Pn)、三个分量(C0,C1,C2)和三个分辨率(R0,R1和R2)。(为简化说明起见,级数中没有包括质量)。编码数据12按照从最重要的到最不重要的排序。在图1的实例中,首先按范围、其次按分量、最后按分辨率对编码数据12排序。
为了对编码数据的位流解码,采用了其实与上述编码器过程相反的一个过程。根据,例如,显示设备的能力和其它实际考虑,以及观看者的特定兴趣(例如,用低分辨率图像可以满足一个用户,但另一个希望高分辨率的图像),可以用多种方式对编码位流解码。按照JPEG2000,可以为期望的图像产品定位、提取和解码所需的数据,而不必对整个位流解码。但是,能够常规提取的位受限于JPEG2000的语法。并且,为了提取那些位,还需要知道用来对数据编码的方案(例如,符合JPEG2000的方案)。例如,为了找到要提取的位,设备需要知道JPEG2000以便读取位流10。将会看到,本发明的实施例允许要提取的位超出JPEG2000的语法之外并且不需要知道编码方案。
伸缩变换编码数据而不需知道编码方案在图1的实例中,编码数据12包括一系列N个位,标为0到N。依照本发明的实施例,在该N位的序列中标识了不同的位段。这些段在图1中被标为数据段13、14和15。如图1所示,所述数据段可以部分或全部相互重叠。并且,可以有不重叠任何其它数据段的数据段。例如,段13和14重叠,而段15不重叠段13或14。
重要的是,段13、14和15不受JPEG2000的语法限制。也就是说,数据段的起始和结束点独立于JPEG2000所规定的位流10的格式。因而,例如,段13从位流10的包括C0的部分延伸至包括C1的部分中。并且,段13从P0-C0-R1部分中间的一个点开始并在P0-C1-R2部分的中间结束。此外,将会看到,不必读位流10(包括报头11中的信息)就能确定位流10中的数据段13、14和15的位置。
通常,依照本发明的数据段(例如,数据段13、14和15)可以在位流10中的任何地方开始和结束,并且数据段能够相互重叠。可以标识任意数量的这种数据段,并且在编码数据12中一个数据段可以有任意长度。因而,特定位或位序列可以是不止一个数据段的成员。数据段不必包括编码数据12的全部长度。也就是说,编码数据12可以有一个或多个部分没有被包括在依照本发明定义的数据段中。
此外,根据本发明定义的数据段有这些量要特征它们可以独立解码;可以独立加密和解密;可以独立检查。也就是说,可以独立于任何其它段对每个数据段进行解码。同样,可以独立于任何其它段对每个数据段进行加密和解密。并且,可以独立于任何其它段为每个数据段应用校验和。
图2示出了依照本发明的一种实施例的位流中的数据段的实例。如前所述,编码数据12包括根据编码方案被排序和格式化的N个位。依照本发明的实施例,在编码数据12中标识了若干数据段。
在图2的实例中,编码数据12包括标为b1,b2和b3的位以及标为r1,r2和r3的其它位(这些位都在编码数据12中;但为清晰起见分别示出)。因而,例如可以定义一个段从位0延续到位b1,可以定义另一段从位b1到位b2,等等。段也可以被标识为从某一位编号开始并有某一长度(以位来计)。例如,可以定义一个数据段从位b0开始长度为b1个位,可以定义另一段从位b1开始,长度为(b2-b1)个位,等等。此外,一个段可以从位b1到位b3,或从位b1到N,等等。也就是说,如上所述,段可以有任意长度,从任意位开始并在任何其它位结束,并且两个或更多段可以重叠。例如,由位r2到r3定义的数据段重叠了由位b2到b3定义的数据段。段可以有不同长度。
重要的是,图2例示根据本发明定义的数据段的起始点和结束点独立于由编码数据12的编码方案规定的格式。将会看到,根据本发明定义的数据段允许从位流10提取或解析数据,尤其是编码数据,而不需要知道用来编码该数据的编码方案。此外,如果数据是加密的,可以不必对其解密就能从位流10(图1)提取数据。
将会看到,可以将以这种方式提取/解析数据的能力有利地应用到数据伸缩变换(例如,代码转换)和解码(解压缩)。例如,为了实现位速率的降低,可以从位流10提取出从位0到b1和从b2到b3的两个数据段作为代码转换操作的一部分。接着,可以将那两个数据段组合到编码数据的伸缩变换后版本中并在数据传输系统上发送。为了实现帧速率的降低,同样选择一个或更多数据段(例如,从r1到r2的数据段)。因而,可以将从位0到N的单一数据集12组织成允许对多个不同的可伸缩属性(例如,位速率,帧速率等)进行伸缩变换的数据段。例如,可以将单一数据集12组织成适合位速率下降的第一组数据段、适合帧速率下降的另一组数据段,等等。为位速率下降选择的那组数据段可以包括或不包括为帧速率下降选择的那组数据段的一些部分,反之亦反。
重要的是,在上面的例子中,在编码期间智能地选择了为位速率下降、帧速率下降等选择的段以实现期望的伸缩变换结果同时将对图像产品的影响降至实用水平。同样重要的是注意能够实现比图2所示粒度小得多的数据段长度。因此,可以在更细密的程度上进行伸缩变换操作。
图3是示出依照本发明一种实施例的简化数据传输系统30中的功能元件的框图。在图3的例子中,系统30包括编码器32、代码转换器34、第一解码器36和第二解码器38。系统30可以是包括类似功能元件以及其它类型功能元件(例如,存储元件、分组器、流化元件等)的更大的系统或网络的一部分。在本实施例中,编码器32对数据进行编码(压缩),代码转换器34对编码数据进行代码转换(例如,伸缩变换),解码器36和38对数据进行解码(解压缩)。这些功能可以在单个设备中完成,或者分布在可以连接在某一类型的网络中的一个或更多设备之间。
并且,元件32、34、36和38可以完成刚才说明过的那些功能以外的功能。例如,编码器32还可以对数据加密并计算用于校验数据的校验和或密码校验和,编码器32还可以在发送编码数据到另一模块之前伸缩变换编码数据,解码器38可以在对编码数据解码之前对其进行伸缩变换。在一种实施例中,编码器32使用基于JPEG2000标准的编码方案。
另外,代码转换器34可以转而将编码数据的伸缩变换后版本发送到另一代码转换器,该另一代码转换器接着对伸缩变换后的数据进行伸缩变换并将它发送到另一代码转换器,等等。并且,即使解码器36从代码转换器34接收到伸缩变换后的数据,解码器36也可以进一步对该伸缩变换后的数据进行伸缩变换。此外,解码器36和38可以不是终端用户设备。例如,解码器36和38可以对编码数据进行解码,并将解码后的数据发送到例如呈现和显示图像产品的移动电话。
此外,数据伸缩变换功能可以由存储设备或驱动器完成。例如,存储设备(例如,光盘驱动器或DVD播放器)可以对编码数据进行伸缩变换,只将合适的数据段传递到实际的解码器。采用这种方式,不会浪费资源或时间发送不必要的信息。这样还能简化解码器,因为解码器不需要完成这个处理。
图4A示出了流入和流出依照本发明一种实施例的编码器32的信息。在本实施例中,编码器32接收输入数据(例如将要被编码的图像数据)。编码器32还接收可伸缩属性的值。
为本申请起见,可伸缩属性被定义为其值域规定随后如何伸缩变换编码数据的属性。对于图像数据,可伸缩属性可以是,例如,位速率、帧速率、分辨率、颜色或黑白、兴趣区域、小片、质量、图像目标或前景与背景。
可伸缩属性值是为可伸缩属性规定的值。例如,位速率的可伸缩属性值可以包括完全位速率(B)、半位速率(B/2)或四分之一位速率(B/4),等等。
同样可以为其它类型的数据(例如音频数据、图形数据等)定义可伸缩属性和值。例如,音频数据的可伸缩属性值可以表示音频轨迹是立体声或单声道。电子文档或基于文本的数据也可以通过描述文档或基于文本的数据的内容(例如,章、节、图像、图形、索引、附录、相关软件、附加的视听材料等)的可伸缩属性来组织。有利的是能够适应性选择内容以及内容的大小以满足终端-用户的偏好或设备限制,例如可用存储空间。另外,出于机密性或商业原因(例如,付费才可阅读)可以对这些文档的特定部分加密,而这些文档的其它部分是明文。
在本实施例中,编码器32用编码方案(如基于JPEG2000的编码方案)对输入数据进行编码。如上所述,编码器32能够提供其它功能。作为编码过程的结果,生成了一个如图1的位流10所示范的位流或者包含这种位流的文件。该文件或位流被按照编码方案组织;也就是说,位按照由该编码方案建立的特定顺序排列。编码器32的输出包括这里所称的可伸缩数据,因为编码数据随后可由代码转换器或译码器进行伸缩变换。
编码器32的另一输出包括这里所称的可伸缩简档数据。实际上,可伸缩简档数据包括对可伸缩编码数据中可伸缩属性值和对应数据段的交叉引用。例如,可伸缩简档数据可以是交叉引用了数据段和可伸缩属性值的索引或查找表的形式,如下面的表1(还参考了图2)所示范表1--示范性可伸缩简档数据

应理解表1的格式只是示范,可伸缩简档数据几乎可以用任何计算机-可读格式存储。在表1中,用位编号来标识位,但也可使用其它寻址机制。并且,除了用数据段的位范围标识数据段,还可以用其它机制标识数据段。通常,可伸缩简档数据包括足够的信息将可伸缩属性的值与图1的位流10中的一个或更多数据段关联在一起。
此外,表1只列出了位速率(B)、分辨率(R)和质量(Q),但实际上这张表可以包括用户选择作为编码器32(图3)的输入的任何可伸缩属性和可伸缩属性值。另外,可伸缩简档数据可以对每个可伸缩属性值包括数据段的多个选择。这能够为下游的代码转换器或解码器提供更大的灵活性。例如,在一种应用中,可以在分辨率级别2(R2)和质量级别2(Q2)或者分辨率级别1(R1)和质量级别3(Q3)上实现位速率减半。R1可能好于R2,Q2可能好于Q3,这样可以实现相同的位速率但在分辨率和质量上有折衷。因而,通过在可伸缩简档数据中为每个可伸缩属性值包括数据段的多个选择,下游节点(例如代码转换器或解码器)的用户能够选择适合他或她的需要的伸缩变换类型和级别。
在一种实施例中,可伸缩简档数据还包括与失真有关的信息,该信息是根据哪些段将被提取以及哪些段从而将被丢弃而产生的。可以按照传统均方误差(MSE)或感性失真(perceptual distortion)来度量失真。伸缩变换器(例如,代码转换器)可以使用与失真有关的信息确定哪些段最重要并且应该被保留(例如,被提取),以及哪些段不太重要并可以被丢弃。对每个数据段、或每组数据段或每个可伸缩的属性值(例如图像分辨率、质量级别、位速率等)可以有一个单独的失真参数。因此,可以通过将以下因素与相关联的失真结合考虑,做出提取哪些段丢弃哪些段的决策,所述因素包括适合终端用户需要的伸缩变换类型和级别以及根据网络性能特征、下游设备能力和其它因素选择的伸缩变换类型和级别。
与每个数据段、数据段组或可伸缩属性相关联的失真可以是测量的失真或估计的失真。例如,与丢弃一个特定数据段相关联的测量的失真,实际上可以通过从位流去除该数据段并计算在解码剩余的数据分组时将产生的失真来计算。可以在对媒体编码时或预先编码数据时进行这个测量。对于预编码的数据,可以从编码(压缩)位流去除一个数据段,对数据的剩余部分解码,能够计算出引起的失真。作为测量的失真的替代方案,可以实行估计的失真,例如通过从编码位流提取指示信息,所述信息提供了如果特定的数据段被丢弃可能引起的失真。测量的失真比估计的失真更精确;但是,计算测量的失真也更复杂。
注意预测的失真可以是对应于预期失真的单个数字,或者是预期失真的一种分布,或是它们之间的某种形式(例如,预期失真具有对应于例如一个标准偏差的容差带)。或者,可以确定失真的某种形式的累积分布函数。
在图4A的实施例中,可伸缩数据和可伸缩简档数据存储在一起。例如,可伸缩简档数据可以被附加到包含可伸缩数据的位流或文件之后。对有大量可伸缩数据的情况,可伸缩简档数据的各部分可以按一定间隔分散在该位流或文件中。
或者,可以独立于可伸缩数据单独存储和处理可伸缩简档数据,如图4B所示。在图4B的实施例中,可伸缩简档数据甚至不必与可伸缩数据一起传播。例如,参考图2,可伸缩简档数据可以经由不同于可伸缩数据的传播路径传播到代码转换器34、解码器36或解码器38。或者,可伸缩简档数据和可伸缩数据可以存储在分离的位置,然后由代码转换器34、解码器36或解码器38在必要时访问并使之相关联。
在运行中,图4A和4B的编码器32如下工作。在一种实施例中,可伸缩属性的值由用户输入。或者,可以根据编码器32所知道的与网络性能、下游设备的能力等有关的信息而自动选择可伸缩属性的值。可以监测网络性能特征并将之提供给编码器32,如可用带宽。并且,下游设备(包括终端用户设备)可以直接和编码器32通信。
编码器32随即用它正在采用的编码方案(例如,JPEG2000编码方案)以传统方式对输入的数据编码。另外,编码器32为编码位流(可伸缩数据)生成可伸缩简档数据。也就是说,在一个实施例中,编码器32为可伸缩属性的每一个输入值指定编码数据中对应的数据段。
重要的是,依照本发明的实施例,由编码器32输出的可伸缩(编码)数据可以在不要求知道编码器32使用的编码方案的情况下被伸缩变换。不管数据是使用JPEG2000方案或某种其它编码方案进行的编码,代码转换器或解码器都只需指定要进行的伸缩变换类型(例如,将位速率降低1/4),以便从位流10(图1)提取/解析与该类型的伸缩变换相关联的数据段。
在一种实施例中,编码器32能够标识与可伸缩属性的特定值对应的数据段的若干选择或组合。例如,为了实现位速率减半(B/2),编码器32可以标识符合要求的若干不同数据段组合。对于图像数据,一种组合会导致对图像产品的所有部分应用降低的位速率。另一组合会导致向图像产品中的兴趣区域应用完全位速率(B),向该图像产品的其它区域应用下降更多的位速率(例如B/4),使得平均位速率为B/2。
在编码阶段,编码器32能够应用智能(编程的智能或基于用户输入的智能)来决定在可伸缩简档数据中包括哪个或哪些数据段组合。或者,可以包括所有组合;代码转换器或解码器随后能够根据用户输入或其它考虑(诸如网络性能特征或终端用户设备能力等)决定使用哪个数据段组合。
注意编码器32在编码位流或文件中最终包括的数据可以取决于可伸缩属性的输入值。例如,假定不需要可伸缩数据包括与完全位速率情况对应的数据。相反,只考虑B/2和B/4的情况。编码器32标识出与B/2和B/4对应的数据段,但这些数据段不包括所有的编码数据。也就是说,编码数据的某些部分在可伸缩简档数据中并未被加入B/2或B/4的索引。如果那些部分的数据也不与其它可伸缩属性相关联,编码器32可以决定不在编码位流或文件中包括该数据。
在另一种实施例中,可以提前定义与可伸缩属性的不同值相关联的数据段。实际上,表1所示范的可伸缩简档数据是在数据编码之前建立的。在这个实施例中,数据被编码然后被按照由可伸缩简档数据规定的顺序放在位流中。例如,参考图2,可伸缩简档数据可以提前规定保留位0-b2用于位速率减半(B/2)。相应地,编码器32将以必要的量压缩数据以使与B/2相关联的数据适应放入位0-b2,并将把该数据放在位流10的那些位置中。
在又一实施例中,按照编码方案组织的编码文件被根据想要的目标以及对可伸缩属性的了解重新组织,并随后(例如)存储或流化。例如,通过使用可伸缩简档数据(例如,数据段和可伸缩属性的交叉引用)在编码文件中定位相关数据段,可有助于获取先按颜色分量然后按分辨率组织的编码文件并重新组织该文件,以便它被先以分辨率后以颜色分量排序。通过利用可伸缩简档数据,不需要知道编码格式的细节就能够完成所述重新组织。
图5A示出了流入和流出依照本发明的一种实施例的数据伸缩变换器54的信息。数据伸缩变换器54可以是代码转换器,如图3的代码转换器34,或者是完成伸缩变换或解析功能的解码器(例如,图3的解码器38)。
作为输入,图5A的数据伸缩变换器54接收可伸缩数据和可伸缩简档数据。如上面结合图4A和图4B所述,可伸缩数据和可伸缩简档数据可以一起(例如,在相同的位流或文件中)或分散传播。输入可以(例如从编码器32)流动到数据伸缩变换器54,或者由数据伸缩变换器54从某一类型的存储元件获取到。
通过使用可伸缩简档数据,伸缩变换器54能够解析可伸缩数据并创建编码数据的伸缩变换后版本。例如,如果伸缩变换器54想要将位速率降低1/4,它能够从可伸缩简档数据确定可以选择编码数据中的哪些位以实现想要的位速率降低(例如,见表1)。伸缩变换器54随后可以通过丢弃不需要的位或提取识别的数据段并将它们组合到新的位流或文件中,而使用识别的数据段创建编码数据的伸缩变换后版本。
如上所述,提供给伸缩变换器54的可伸缩简档数据可以为每个可伸缩属性值(见结合表1所作的说明)包括多个数据段选择。可以通过考虑适合终端用户需要的伸缩变换类型和级别、根据网络性能特征和/或下游设备能力选择的伸缩变换类型和级别、可伸缩简档数据中包括的失真信息、或其它因素以及它们的组合决定提取或丢弃哪些段。例如,如果伸缩变换器54要将位速率减半,但面临着多种实现位速率下降的方式,伸缩变换器54可以考虑终端用户设备的特征和/或与每个可能的选择相关联的失真量而做出选择。也许终端用户设备是具有能够进行彩色显示的较小显示屏的移动电话,这种情况下伸缩变换器54可以提取以较低分辨率实现位速率降低同时保留颜色分量的数据段,或者提取实现期望的位速率下降同时将失真量降至最低的数据段。
重要的是,伸缩变换器54不需要知道用来对数据进行编码的编码方案就能够完成它的功能。并且,如果数据被加密,伸缩变换器54不需要对编码数据解密就能完成这些功能。为了解析可伸缩数据,伸缩变换器54简单地识别出要提取哪些位(数据段),在位流或文件中定位那些位(数据段),并提取那些位(数据段)。伸缩变换器54不需要读所述数据段中的位,也不需要读报头11(图1)中的信息以定位那些位(数据段)。这样,不需要过度消耗计算资源就能够有效地完成伸缩变换操作。此外,因为伸缩变换器54不需要读取那些数据段中的位,伸缩变换器54也不需要知道编码方案。因此,甚至能够在编码方案相对较新并且伸缩变换器54对其未知时在传统设备上完成伸缩变换。特别地,伸缩变换器54为了对编码数据进行伸缩变换不需要了解JPEG2000。
此外,数据伸缩变换功能可由存储设备或驱动器完成而不必知道编码语法。例如,存储设备(例如,光盘驱动器或DVD播放器)可以对编码数据进行伸缩变换,只将适当的数据段传递给实际的解码器。采用这种方式,不用浪费资源或时间发送不必要的信息。这样还能够简化解码器,因为解码器不需要完成这个处理。
为了定位和提取由可伸缩简档数据指示的数据段,伸缩变换器54可以配备以各种方式读取可伸缩简档数据的能力。例如,可以在伸缩变换器54上预装一个驱动器或者这样的驱动器可以配备有可伸缩简档数据。或者,可伸缩简档数据可以基于可扩展标记语言(XML),伸缩变换器54可以读取和操作XML。
作为伸缩变换操作的结果,可能需要更改由伸缩变换器54接收到的可伸缩简档数据。例如,在对编码数据进行了伸缩变换之后,可伸缩简档数据中引用的一些数据段可能已经不在编码数据中了,或者某些伸缩变换操作已经不再可能。此外,一些伸缩变换操作可能需要关于它们的相关联数据段被重新定义,因为在伸缩变换之后那些数据段可能由不同的位编号标识。更改可伸缩简档数据可能还有其它原因。
图5B示出了流入和流出依照本发明的第二实施例的数据伸缩变换器54的信息,其中伸缩变换器54生成更改后的可伸缩简档数据。伸缩变换器54能够以与编码器32生成可伸缩简档数据的方式基本相同的方式更改可伸缩简档数据。在本实施例中,更改过的可伸缩简档数据随即被和如上所述的编码数据的伸缩变换后版本一起或单独从伸缩变换器54输出。
图6是依照本发明的一个实施例对数据进行伸缩变换(例如,代码转换)的过程的流程图60。图7是依照本发明的一个实施例对数据进行编码的过程的流程图70。图8是依照本发明的一个实施例对数据进行解码的过程的流程图80。尽管在流程图60、70和80中公开了具体的步骤,但这些步骤只是示范性的。也就是说,本发明的实施例同样适合执行各种其它步骤或流程图60、70和80中所示步骤的变体。应理解,流程图60、70和80中所示步骤可以不同于所示出的顺序执行,也可以只执行流程图60、70和80中所示的部分步骤。可用驻留在例如计算机系统的计算机可用介质中的计算机可读和计算机可执行指令来实现流程图60、70和80中说明的方法的全部或一部分。
通常,流程图60由图5A和5B的伸缩变换器54(例如,图3的代码转换器34或解码器38)实现;流程图70由图3、4A和4B的编码器32实现;流程图80由图3的解码器36实现。但是,如上所述,不同的功能模块可以完成不同的功能,一个设备可以完成多个功能,或者一个或多个功能可以分布在多个设备上。
首先参考图6,在步骤61中,访问一编码数据序列(例如,在一个位流或文件中)。编码数据按照用来编码该数据的编码方案组织。在一种实施例中,编码方案基于JPEG2000标准。还可以对编码数据的一些或全部加密。
在步骤62,确定可伸缩属性的值。可伸缩属性标识怎样对编码数据进行伸缩变换。可伸缩属性可以是,例如,位速率(B),可伸缩属性的值可以是B/4。
在一种实施例中,从与伸缩变换设备通信的另一设备接收到可伸缩属性的值。在一种这样的实施例中,当所述其它设备是编码数据的伸缩变换后版本的接收者时,将根据该设备的特征对编码数据进行伸缩变换。为了确定这些特征,伸缩变换设备可以访问提供了所述其它设备特征的简档信息,并且根据该简档信息选择可伸缩属性的值。或者,伸缩变换设备能够从其它设备接收简档信息,并相应地选择可伸缩属性的值。
在步骤63,访问包括与所述可伸缩属性相关联的编码数据段的引用的信息(例如,可伸缩简档数据)。重要的是,该引用在编码方案的语法之外。
在一种实施例中,该引用信息(例如,可伸缩简档数据)和该编码数据序列存储在一起。在另一实施例中,该引用数据与该编码数据序列被分别存储。
在步骤64,利用可伸缩简档数据定位编码数据中的段。重要的是,伸缩变换设备不需知道编码方案就能找到那些段。
在步骤65,用那些段生成编码数据的伸缩变换后版本。并且,不必对加密数据解密就生成了编码数据的伸缩变换后版本。
在步骤66,在一种实施例中,编码数据的伸缩变换后版本被转发到下游设备。
在步骤67,在一种实施例中,根据编码数据的伸缩变换后版本生成更改后的引用信息(例如,更改后的可伸缩简档数据)。伸缩变换后版本中的段与所选择的可伸缩属性值相关联,独立于编码方案,由此别的设备能够在伸缩变换后版本中定位那些段并且不必知道编码方案就能对伸缩变换后版本进行伸缩变换。更改后的引用信息可以和编码数据的伸缩变换后版本存储在一起或单独存储。
现在参考图7,在步骤71,用编码方案对数据进行编码并存储在文件中。在一种实施例中,该编码方案基本符合JPEG2000标准。
在步骤72,标识出该文件中数据段的位置。
在步骤73,为所述数据段和所选择的可伸缩属性值做索引。可伸缩属性指定了在以后的伸缩变换操作中如何对编码数据进行伸缩变换。索引独立于编码方案,并且让设备不必知道编码方案就能定位那些段并对编码数据进行伸缩变换。在一种实施例中,将所选择的可伸缩属性值输入编码设备。
在步骤74,存储包括了数据段和为所选择的可伸缩属性值的索引的引用信息。在一种实施例中,该索引被加到编码数据的文件。在另一实施例中,该索引被独立于文件存储。
在步骤75,在一种实施例中,对至少部分编码数据进行加密。在一种这样的实施例中,对编码数据的每个数据段渐进加密。
现在参考图8,在步骤81,访问一编码数据序列。根据用来对该数据编码的编码方案对该编码数据排序。在一种实施例中,该编码方案基本上符合JPEG2000标准。
在步骤82,解码设备确定为了解码如何对编码数据进行伸缩变换。
在步骤83,访问标识编码数据特定段的信息(例如,可伸缩简档数据)。这个信息在编码方案的语法之外。根据为了解码如何对编码数据进行伸缩变换来识别出那些数据段。
更具体地说,在一种实施例中,确定可伸缩属性的值。该值可以是用户输入或根据解码设备的特征和能力而获得。可伸缩属性的值标识了如何对编码数据进行伸缩变换。可伸缩简档数据包括从可伸缩属性值到编码数据中的特定数据段的引用。
在步骤84,使用来自步骤83的信息,在编码数据中找到那些数据段。重要的是,解码设备不必知道编码方案就能定位那些数据段。
在步骤85,对步骤84中找到的数据段中包括的编码数据进行解码。如果该编码数据被加密,还可对那些数据段中的数据进行解密。
总之,本发明的实施例能够以安全的且计算高效的方式对编码数据进行伸缩变换(例如,代码转换)。不必知道用于对数据编码的方案就能完成伸缩变换,因此,甚至能够在编码方案相对较新并且伸缩变换设备对其未知时在传统设备上完成伸缩变换。
保护简档数据生成系统和方法图9A示出了依照本发明的一种实施例将数据和可伸缩媒体耦合在一起的系统。图9A示出了流入和流出依照本发明的一种实施例的编码器32的信息。在图9A的实施例中,将可伸缩媒体和标识可伸缩媒体的一些部分的数据关联在一起,所述数据标识的部分可以组合生成拥有想要的可伸缩属性的伸缩变换后的媒体。其后,对可伸缩媒体加密。另外,将标识用来加密可伸缩媒体的各个部分的加密方案的保护属性的数据与可伸缩媒体的各个部分关联在一起。
在本实施例中,编码器32接收输入数据(例如,要编码的图像数据)。编码器32还接收详述用来加密输入数据的加密方案的属性的数据。
为本申请起见,保护属性被定义为具有规定了如何保护加密数据的范围参数和相关值的属性。保护属性可以包括但不限于加密原语、加密模式、CCS以及密码机到可伸缩媒体段的映射。
保护属性值是为保护属性指定的值。例如,加密原语的保护属性值可以包括DES、3-DES、AEC等。同样可以为其它类型的数据(例如音频数据,图形数据等)定义保护属性和值。例如,音频数据的保护属性值可以表示音频轨迹是否被用MAC或键控哈希作为密码机-图形校验和加以保护。
如前所述,编码器32用编码方案(如基于JPEG2000的编码方案)对输入数据进行编码。如上所述,编码器32能够提供其它功能。作为编码过程的结果,生成了如图1的位流10所示范的位流或包含这种位流的文件。编码器32的输出包括这里所称的可伸缩数据,因为编码数据实际上可以由代码转换器或解码器进行伸缩变换。
再来参考图9A,编码器32的另一输出包括这里所称的保护简档数据。实际上,保护简档数据包括对保护属性值和可伸缩数据中的相应数据段的交叉引用。例如,保护简档数据可以被配置为交叉引用数据段和保护属性值的索引或查找表,如下面的表2所示(还参考了图2)。
表2--示例性保护简档数据

应理解表2的格式仅是示范的,几乎可以用任何计算机可读格式存储保护简档数据。在表2中,字节由它们的字节编码标识,但也可使用其它寻址方式。并且,除了用数据段的字节范围或位范围或块(例如,8字节)范围标识数据段,还可使用其它方式标识数据段。通常,保护简档数据包括足够的信息将保护属性的值和图1的位流10中的一个或多个数据段关联在一起。
应该理解表2可以包括任何保护属性和用户选择作为编码器32(图3)的输入的保护属性值。另外,向其应用特定保护属性的数据段列表可以为每个保护属性值包括多个数据段的选择。这可以在编码器上提供大范围的数据保护灵活性。因而,示范实施例的允许为保护简档数据中的每个保护属性值包括多个数据段选择的选择灵活性让用户(例如,提供输入给编码器)能够选择适合他或她的需要的保护类型和级别。
应该注意到不必知道编码器32采用的编码方案或加密方案就能够对编码器32输出的可伸缩数据(编码并加密的)进行伸缩变换。不管是用JPEG2000方案或某一其它编码方案对数据进行编码,代码转换器或解码器只需指定要进行的伸缩变换的类型(例如,将位速率降低1/4)以从位流10(图1)提取/解析与该类型的伸缩变换相关联的数据段。
在图9A的实施例中,可伸缩数据和保护简档数据被存储在一起。例如,保护简档数据可以被附加到包含可伸缩数据的位流或文件。对于有大量可伸缩数据的情况,保护简档数据的各部分可以被按间隔分散在位流或文件中。
或者,可以独立于可伸缩数据存储和处理保护简档数据,如图9B所示。在图9B的实施例中,保护简档数据甚至不必与可伸缩数据一起传播。例如,参考图3,保护简档数据可以沿着不同于可伸缩数据所经过的路径传播到代码转换器34、解码器36和解码器38。或者,保护简档数据和可伸缩数据可以被存储在不同位置中,随后由代码转换器34、解码器36和解码器38在必要时访问和关联在一起。
在运行中,图9A和9B的编码器32如下工作。在一种实施例中,保护属性的值由用户输入,用户可以包括内容创建者、内容分发者或内容使用者。或者,可以根据编码器32所知道的与网络性能、下游设备能力、数字权限管理(DRM)策略、安全考虑或脆弱性等有关的信息自动选择保护属性的值。可以监测网络性能特征并将该信息提供给编码器32,例如可用带宽。并且,下游设备(包括终端用户设备)可以直接和编码器32通信。
编码器32随即用它正在采用的编码方案(例如,JPEG2000编码方案)以传统方式对输入数据进行编码。另外,编码器32为编码的位流(可伸缩数据)生成保护简档数据。也就是说,在一种实施例中,对保护属性的每个输入值,编码器32标识编码数据中该保护属性可以关联的相应数据段。
在一种实施例中,编码器32可以标识与保护属性的特定值相关联的数据段的若干选择或组合。例如,在图像产品环境中,对特定的加密原语,编码器32可以标识用该加密原语加密的数据段的若干不同组合。根据一种实施例,一种组合会导致对图像产品的所有部分应用相同的加密原语。另一组合会导致对图像产品中的一个兴趣区域应用一种加密原语,而对其它兴趣区域应用另一加密原语。
在编码阶段,编码器32能够应用智能(编程的智能或根据用户输入的智能)来决定将哪个或哪些数据段组合与保护简档数据相关联。或者,所有组合都可以与保护简档数据相关联;编码器能够根据用户输入或其它考虑(例如网络性能特征、终端用户设备能力、数字权限管理策略(DRM)或安全脆弱性等)决定将数据段的哪些组合(例如,一些或全部)与特定的保护属性相关联。
在另一实施例中,可以提前定义与保护属性的不同值相关联的数据段。实际上,表2所示范的保护简档数据是在数据编码之前建立的。在这个实施例中,数据被以与保护简档数据所定义的方式对应的方式编码和加密。例如,参考图2,保护简档数据可以提前定义将用保护属性值为AES的加密原语对字节0-b2加密。编码器将相应地对这些字节进行加密。
图10示出了流入和流出依照本发明第二实施例的数据伸缩变换器54的信息,其中伸缩变换器54生成了更改过的保护简档数据。伸缩变换器54能够以和编码器32创建保护简档数据基本相同的方式更改保护简档数据。在本实施例中,更改过的保护简档数据随即被和如上所述的编码数据的伸缩变换后版本一起或单独从伸缩变换器54输出。
在本实施例中,与可伸缩媒体的各个部分相关联的保护简档数据标识保护属性,保护属性可以包括但不限于表2中所示的加密原语、加密模式、密码校验和以及密码机到可伸缩媒体的映射。此外,保护简档数据被用在对用来给可伸缩媒体的各个部分加密的加密方案中使用的加密算法以及密码技术的解密中。
在本实施例中,可伸缩媒体的各个部分可以有用来解密可伸缩媒体的各个部分的不同的密钥,可以使用不同的加密算法,并且可以使用不同的CCS。应该理解可能需要各个级别的密钥对各个级别的可伸缩媒体进行解密。例如,可能需要第一个密钥以获得对具有第一分辨率的媒体的文件的访问,而需要第二个密钥以获得对具有第二分辨率的媒体的文件的访问。
依照一种实施例,保护简档数据的参数可以随时间而变化。应该理解可以重新映射保护简档数据以反映它所关联的数据序列进行的变化。
图11示出了依照本发明的一种实施例对可伸缩媒体的部分进行伸缩变换的方法中执行的步骤。在步骤1101,将标识可伸缩媒体的一些部分的数据和可伸缩媒体关联在一起,所述数据标识的部分可以组合生成伸缩变换后拥有期望的可伸缩属性的媒体。在本实施例中,与可伸缩媒体的各个部分相关联的可伸缩简档数据可以被耦合到可伸缩媒体或被远程信号通知。在步骤1103,对步骤1101中标识的可伸缩媒体的部分进行加密。根据一种实施例,如这里所述,可以用相同或不同的方案对构成可伸缩媒体的可伸缩媒体各部分进行加密。
在步骤1105,将可伸缩媒体的被标识部分与标识用来对可伸缩媒体的被标识部分加密的加密方案的保护属性的数据关联在一起。在本实施例中,与可伸缩媒体的各个部分相关联的保护简档数据可以被耦合到可伸缩媒体或被远程信号通知。
图12是依照本发明的一种实施例对加密的可伸缩媒体进行伸缩变换而不必解码的方法中执行的步骤的流程图。在步骤1201,访问与加密的可伸缩媒体相关联的数据,该数据标识可以组合生成的伸缩变换后媒体拥有期望的可伸缩属性的加密可伸缩媒体部分。在步骤1203,加密可伸缩媒体的一个或多个部分以及相关联的加密校验和被组合成可传输的数据序列。在步骤1205,重新映射与可伸缩媒体相关联并且标识一些可伸缩媒体部分的数据,所述标识的可伸缩媒体部分组合生成的伸缩变换后媒体拥有期望的可伸缩属性。
在步骤1207,重新映射与可伸缩媒体的部分相关联并标识用来加密可伸缩媒体部分的加密系统的保护属性的数据。应该理解加密可伸缩媒体的一个或多个部分以及相关联的加密校验和能够构成加密可伸缩媒体的伸缩变换后版本。
图13是依照本发明的一种实施例对可伸缩媒体进行解码的一种方法中执行的步骤的流程图。在步骤1301,访问与可伸缩媒体的部分相关联并标识用来加密可伸缩媒体的部分的加密系统的保护属性的数据。在步骤1303,访问与可伸缩媒体相关联并标识可伸缩媒体的一些部分的数据,所述标识的可伸缩媒体的部分可以组合生成拥有期望的可伸缩属性的伸缩变换后媒体。
在步骤1305,根据与可伸缩媒体的部分相关联并标识用来加密它们的加密系统的保护属性的数据,对所述可伸缩媒体的部分进行解密。在步骤1307,根据与可伸缩媒体相关联并标识可伸缩媒体的一些部分的数据对所述可伸缩媒体的部分进行解码,该数据标识的可伸缩媒体的部分可组合生成伸缩变换后包含期望的可伸缩属性的媒体。
总之,公开了将数据与可伸缩媒体的部分相关联的方法。将标识可伸缩媒体一些部分的数据与可伸缩媒体相关联,所述部分可组合生成伸缩变换后包含期望的可伸缩属性的媒体。对可伸缩媒体的部分进行加密。将可伸缩媒体的一些部分与标识用以加密它们的加密方案的保护属性的数据相关联。
伸缩变换渐次加密的数据而不必知道编码方案图14示出了依照本发明的一种实施例对渐次加密的可伸缩数据序列进行编码的方法。在图1 4的实施例中,将标识可伸缩数据序列的可组合部分(组合生成渐次加密的数据序列的伸缩变换后版本的可组合部分)的数据(例如,参考图4A和4B讨论的可伸缩简档数据)与该可伸缩数据序列关联在一起。在本实施例中,不需要知道该渐次加密的可伸缩数据序列的编码方案就可以伸缩变换该渐次加密的可伸缩数据序列的伸缩变换后版本。此外,可以计算加密校验和(CCS)并将之与该渐次加密的可伸缩数据序列的至少一个可组合部分相关联。图14示出了渐次加密的媒体内容序列301,它在312被划分为段304、305、306和307(例如,可组合部分)。
应该理解每段(例如,可组合部分)可以包括至少一个可独立解码片断。在图14的实施例中,可独立解码片断被标为A、B、C和D,每段只包括一个可独立解码片断。在替代实施例中,一段中可以包括不止一个可独立解码片断。
依照一种实施例,可以为每个段304、305、306和307计算加密校验和。在图14的实施例中,在313,在加密校验和的计算之后,将每个标识出的段304、305、306和307与相应的加密校验和314、315、316和317相关联。将标识的段(例如,可组合部分)和它们的相关联加密校验和组合成媒体段321、322、323和324。
应该理解在本发明的实施例中,选择每段的长度以使它的长度加上它的相关联CCS的长度小于网络允许的最大媒体段有效载荷大小或者最大可传输单元(MTU)。如这里所述,一个媒体段可包括一个或多个可截去单元。还要注意,尽管图14中示出了四个媒体段,但可以使用任意数量的媒体段。
应该理解术语“可独立解码片断”和“可截去单元”在这里对本发明的实施例所做的说明中可以有不同的含义。媒体段的可独立解码片断是该媒体段的有效载荷中不必解码其它部分就可对其解码的一个部分。另外,如果被加密,不必解密有效载荷的其余部分就能对可独立解码片断进行解密。可截去单元是媒体段有效载荷中可截去的一部分,可以解密或不解密,而不会损害媒体段的其余部分。应该理解尽管在某种程度上可以交换使用这两个术语,在这里所做的论述中它们保持各自不同的含义。
图15A示出了依照本发明的一种实施例通过截短渐次加密的可伸缩媒体内容序列而进行的代码转换。在图15A所示的实施例中,媒体内容411在412被分成段,每段包括一个或多个可独立解码片断(A、B,等)。如上参考图14所述,一个媒体段的有效载荷可以包括一个或更多可独立解码片断。另外,依照一些实施例,可独立解码片断可以进一步包括可独立截去的单元。
在图15A的实施例中,按照优先级顺序为媒体段413的每个可独立解码片断或每个可截去单元计算加密校验和并且为前面全部的分组有效载荷计算加密校验和。首先,为第一个可截去单元A(例如,403)计算加密校验和415,生成CCS(A)415。接着,为前面所有的媒体段有效载荷(包括可独立解码片断A(如403)、加密校验和CCS(A)(如415)和可独立解码片断B(如404))计算加密校验和416。生成的校验和在图4A中示为CCS(A,CCS(A),B),416。应该理解,如果包括了第三个可独立解码片断,则下一个加密校验和可以表示为CCS(A,CCS(A),B,CCS(A,CCS(A),B),C)。
在本实施例中,代码转换器可读报头414可以与媒体段413相关联。依照示范实施例,代码转换器可读报头可以包含可伸缩媒体段(如媒体段413)中截断点位置、可伸缩简档数据等信息,所述可伸缩简档数据标识可伸缩媒体段数据中可被提取用以生成伸缩变换后包含期望的可伸缩属性的媒体的段(例如,媒体段)。在替代实施例中,可伸缩简档数据可以位于可伸缩媒体段的中间、结尾或不同位置。
在本实施例中,当进行代码转换会话时(如417),代码转换器可以截去所选择的可截去单元以便实现期望的伸缩变换结果。依照示范实施例,如果进行代码转换的媒体段是加密的,完成这种形式的代码转换不需要解密。在图14A所示的例子中,截去了可截去单元B和它的相关联加密校验和416。随后将未截去且未解密的媒体段的剩余部分418和必要的加密校验和CCS(A)415、可独立解码片断A403以及报头414一起原样转发。
在图15A所示的本发明的实施例中,必要时可以从媒体段截去任何数量的可截去单元和它们的相关联加密校验和以满足代码转换需求(如得到期望的可伸缩属性)。在所有情况下,还截去了可截去单元、它的相关联加密校验和以及后续可截去单元,所述后续可截去单元的加密校验和包括了所述截去的单元的计算。
图15B示出了依照本发明的一种替代实施例通过截短渐次加密的可伸缩媒体内容序列而进行的代码转换。在图15B的实施例中,媒体内容421在422被分成段,如上所述,每个段可以包括任意数量的可独立解码片断,示为A、B、C、D等。注意,在这个例子中,因为每个片断的大小不同(见图15B),一些段比其它段包括更多的可独立解码片断。在图15B的实施例中,根据媒体段的最大长度预测对可独立解码片断的数量的选择。例如,可独立解码片断A(如433)、B(如434)和C(如435)被组合成一个段,而可独立解码片断D(436)自己就构成了同样大小的一个段。
在图15B所示实施例中,为每个可独立解码片断计算其加密校验和。依照这个实施例,独立于其它可独立解码片断进行该加密校验和的计算。媒体段423是组合了可独立解码片断A(如433)和CCS(A)(如425)、可独立解码片断B(如434)和CCS(B)(如426)和可独立解码片断C(如435)及CCS(C)(如427)而形成的。
在图15B所示实施例中,媒体段423的代码转换428随后涉及截去所选择的可独立解码片断、或可截去单元以及它们的相关联加密校验和。在图15B所示实例中,截去了可截去单元C(如435)和CCS(C)(如427)。在这个实施例中,代码转换器可读报头424维持不变并且保留了关于截断点的信息。因此,随后通过截去可截去单元B(如434)和CCS(B)(如426)或可截去单元A(如433)和CCS(A)(如425),截短的媒体段429可以进行代码转换。
这样,代码转换可以发生在网络中的任何期望点上,而不必对任何媒体段进行解密和重新加密就能实现期望的代码转换结果。在每次截断后,未解密的媒体段剩余部分保留它必要的加密校验和,并且数据的安全性保持不变。
应该理解,在一些实施例中,通过从媒体内容删除整个媒体段可以完成代码转换。也注意到加密校验和还可用在未加密的媒体流中,例如用于媒体段验证。
图16A示出了依照本发明的一种实施例对渐次加密的可伸缩媒体内容序列进行的代码转换。在图16A的实施例中,媒体内容500(由可伸缩数据部分A、B和C等构成)被分成(如501)了可截去单元(如502)。对安全媒体流中的每个媒体段有效载荷进行加密(如503)并为其附加独立的加密校验和(CCS)。参考图16A,加密校验和标识为CCS(A)(如506)、CCS(B)(如507)和CCS(C)(如508)。依照示范实施例,组合加密的可截去单元以及它们的相关联加密校验和以形成适当长度的可传输媒体段(见图16A)。
注意这里加密校验和可以是很多不同类型。公共校验和可以涉及众所周知的散列函数,其提供了加密媒体段中包含的数据指纹并且确保接收到的数据的可靠性以及解密的数据的有效性。可用来提供加密校验和能力的校验和函数的其它例子有消息验证码(MAC,MessageAuthentication Code)、键控散列如MD4&MD5(消息摘要算法)、SHA(安全散列算法)、RIPEMD(RACE完整性原语评估消息摘要)和HMAC(消息验证的键控散列)。另外,在一些实现中,还可使用数字签名方案。
在本发明的另一实施例中,将数据段分割成可截去单元的操作被称为安全可伸缩流式化(SSS)。可以通过在媒体段中包括的报头中定义的合适截断点处截去媒体段而对每个媒体段进行代码转换。例如,在代码转换期间,通过从媒体段截去或删去一个或更多可截去单元实现了位速率下降、帧速率下降等目标。
在图16A的实施例中,写代码转换器可读报头505并将其耦合到可传输媒体段。如上参考图16A所述,代码转换器可读报头(如可伸缩简档数据,保护简档数据,等)包括伴随着媒体段的涉及媒体段有效载荷的信息,但不公开媒体段的有效载荷的内容。通过读取代码转换器可读报头,代码转换器能够删除一些部分(如509)或“向下伸缩变换”可传输媒体段,而不必对媒体段的删除的部分或剩余部分进行解密,如图16A的510所示。在所示实例中,删除可独立解码片断B以及它相关联的加密校验和,对可独立解码片断A或C以及它们相关联的加密校验和没有任何影响。因此,维持了流化的媒体数据的端到端安全性并且流化媒体的接收器能够验证代码转换过的数据的完整性。
在图16A和16B所示的实施例中,在完成了代码转换后,可以写一个新的代码转换器可读报头511以反映新构成的媒体段510的内容。和以前的代码转换器可读报头中一样,可以包括与所包含的媒体段有效载荷的起止点及其优先级有关的信息,但不公开有效载体的内容。另外,因为新的代码转换器可读报头可以由没有解密媒体段有效载荷或评估CCS所需密钥的代码转换器写入,所以新的代码转换器可读报头不能公开媒体段有效载荷内容。
在其它下游位置,可以用新的代码转换器可读报头进行可能的进一步的代码转换和伸缩变换。除了媒体段有效载荷长度和位置以外,在代码转换器可读报头中还可包括媒体段有效载荷优先级。例如,可以包括优先级信息,如标识网页所有者考虑可丢弃的网页的组成部分的信息。在到显示能力弱于大的桌面计算机的手持设备的传输中,复杂网页中的很多信息会丢失。通过使得在前期代码转换中较低优先级信息可去除,在向这种较小设备传输数据时可以为其它应用保留宝贵的带宽。
本发明的实施例能够处理没有流化的媒体段。图16B以框图格式示出了另一实施例的过程。这里,操纵所存储的数据而不破坏其加密校验和。从存储介质521取出包括段A、B和C的大媒体段514。在图16B的例子中,实际上对数据进行了压缩以减少存储空间。这是通过用代码转换519去除一段数据,在这个例子中是段B,及其相关联的CCS 517而实现的。这种代码转换的结果是更小的媒体段522。注意这种方式的代码转换保持了段A和C完整无缺并且重要的是没有破坏CCS(A)516和CCS(C)518。如果后面的操作需要,可以用新的代码转换器可读报头511替换代码转换器可读报头515。
注意本发明的实施例所提供的代码转换方案并不限于流化的数据,还可用于存储的数据。另外,代码转换技术可用于未加密的数据以及加密的数据。任何一种情况下,代码转换都可以不破坏加密校验和而且不必读编码数据。
在本实施例中,媒体段可以是能让一个或多个段以及它们相关联的加密校验和适合传递媒体段的任何适当的划分。适当分割的可独立解码片断的一个例子是可以用由联合图像专家组(JPEG)开发的压缩标准(如JPEG-2000)传输的高度复杂的压缩图像的片断。
应该理解在很多例子中,所传输的第一个数据包含足以生成很粗糙的图像的数据。后传输的数据陆续改进图像细节。这种图像在大显示器上的显示能够利用改进的细节。但是,在手持计算机上的显示可能展现不出第一次改进后和最后一次也是高度细节的改进之后的图像之间的任何区别。因此,如果接收器不能利用这些细节,逻辑代码转换可以从流中去除高度细节的数据。在传输的数据的一些例子中,单个分组可以包含包括了多级细节的数据。但是,一些较大的图像可能需要若干媒体段来携带所有必需数据。
图17-19是不知道编码方案而对渐次加密的数据进行伸缩变换的方法中执行的步骤的流程图。尽管流程图中公开了具体的步骤,但这些步骤只是示范。也就是说,本发明的实施例同样适于执行各种其它步骤或流程图中所示步骤的变体。应理解可以按不同于所示顺序的顺序执行流程图中的步骤,并且可以不必执行流程图中的全部步骤。可以用驻留在例如计算机系统的计算机可用介质中的计算机可读和计算机可执行指令实现流程图中所说明的方法的全部或部分。
图17是依照本发明的一种实施例对渐次加密的可伸缩数据序列进行编码的方法中完成的步骤的流程图。在步骤1701,将标识渐次加密的可伸缩数据序列的可组合部分的数据与该渐次加密的可伸缩数据序列相关联,所述可组合部分可被组合以生成该渐次加密的可伸缩数据序列的拥有期望的可伸缩属性的伸缩变换后版本。依照一种实施例,对所述渐次加密的可伸缩数据序列的伸缩变换后版本进行伸缩变换而无需解码。在步骤1703,为该渐次加密的可伸缩数据序列的至少一个部分计算加密校验和。在步骤1705,将加密校验和与该渐次加密的可伸缩数据序列的该至少一个部分相关联。
图18是依照一种实施例对渐次加密的可伸缩数据序列进行代码转换的方法中执行的步骤的流程图。在步骤1801,访问与该渐次加密的可伸缩数据序列相关联并标识该渐次加密的可伸缩数据序列的可组合部分的数据,所述可组合部分可被组合以生成该渐次加密的可伸缩数据序列的包含期望的可伸缩属性的伸缩变换后版本。依照一种实施例,对所述渐次加密的可伸缩数据序列的伸缩变换后版本进行伸缩变换而无需解码。在步骤1803,将该渐次加密的可伸缩数据序列的一个或多个可组合部分以及它们相关联的加密校验和组合成可传输的数据序列。
图19是依照本发明的一种实施例对渐次加密的可伸缩数据序列进行解码的方法中执行的步骤的流程图。在步骤1901,访问编码并渐次加密的可伸缩数据序列。在步骤1903,访问与编码并渐次加密的可伸缩数据序列相关联并标识怎样伸缩变换它的可组合部分以实现期望的可伸缩属性的数据。在本实施例中,对该渐次加密的可伸缩数据序列进行伸缩变换而无需解码。
在步骤1905,使用加密校验和以便验证该渐次加密的可伸缩数据序列的至少一个可组合部分的内容。在步骤1907,根据与该编码并渐次加密的可伸缩数据序列相关联并标识如何对其可组合部分进行伸缩变换以实现期望的可伸缩属性的数据,解码该被编码并渐次加密的可伸缩数据序列。
依照一种实施例,该渐次加密的可伸缩数据序列的至少一个可组合部分和加密校验和可以被加密。在示范实施例中,该渐次加密的可伸缩数据序列的至少一个可组合部分能够独立于构成该渐次加密的可伸缩数据序列的其它可组合部分进行解密。此外,可以为该渐次加密的可伸缩数据序列的每个可组合部分计算加密校验和。
依照一种实施例,能够独立于构成该渐次加密的可伸缩数据序列的其它部分对至少一个可组合部分进行解密。在本实施例中,该渐次加密的可伸缩数据序列包括多个可组合部分。另外,可以为所述渐次加密的可伸缩数据序列的第一个可组合部分计算第一个加密校验和,并为所述渐次加密的可伸缩数据序列的第二个可组合部分、该渐次加密的可伸缩数据序列的第一个可组合部分以及第一个加密校验和的组合计算第二个加密校验和。
依照一种实施例,可以用散列函数计算加密校验和。另外,与所述编码并渐次加密的可伸缩数据序列相关联的数据可以包括与该渐次加密的可伸缩数据序列的可组合部分以及加密校验和有关的信息。应该理解与该编码并渐次加密的可伸缩数据序列相关联的数据使得能够实现对该渐次加密的可伸缩数据序列的代码转换。
依照一种实施例,可以独立于代码转换器可读报头对所述渐次加密的可伸缩数据序列的可组合部分以及加密校验和进行加密。另外,可以独立于与该渐次加密的可伸缩数据序列相关联的所述数据对渐次加密的可伸缩数据序列的可组合部分以及加密校验和进行解密。另外,可以独立于该渐次加密的可伸缩数据序列的可组合部分以及加密校验和读取与该渐次加密的可伸缩数据序列相关联的所述数据。
依照一种实施例,可以根据该渐次加密的可伸缩数据序列的可组合部分之一计算加密校验和。还可以根据多个可组合部分和相关联校验和计算加密校验和。另外,可以用散列函数计算加密校验和。在一种替代实施例中,可以用消息摘要函数(message digest function)计算加密校验和。
依照一种实施例,可以用消息验证码函数计算加密校验和。在另一实施例中,可以用消息验证的键控散列函数计算加密校验和。在又一实施例中,可以用数字签名函数计算加密校验和。
依照一种实施例,可以独立于该渐次加密的可伸缩数据序列的可组合部分和加密校验和写所述与该渐次加密的可伸缩数据序列相关联的数据。应该理解该渐次加密的可伸缩数据序列的每个可组合部分可以独立于可传输分组中该渐次加密的可伸缩数据序列的其它可组合部分从分组中提取出来。
在本实施例中,与该渐次加密的可伸缩数据序列相关联的数据包括与该渐次加密的可伸缩数据序列的可组合部分及加密校验和有关的信息。依照一种实施例,所述与该渐次加密的可伸缩数据序列相关联的数据使得能够实现对数据分组的代码转换。
应该理解可以独立于代码转换器可读报头对该渐次加密的可伸缩数据序列的可组合部分以及加密校验和进行加密。在一种实施例中,可以独立于所述与该编码并渐次加密的可伸缩数据序列相关联的数据对该渐次加密的可伸缩数据序列的可组合部分以及加密校验和进行解密。另外,所述与该渐次加密的可伸缩数据序列相关联的数据可以独立于该渐次加密的可伸缩数据序列的可组合部分以及加密校验和读取。
总之,本发明的方法提供了对渐次加密的可伸缩数据序列进行伸缩变换的方法。为了对渐次加密的可伸缩数据序列进行代码伸缩变换,不需要知道其加密方案。该方法包括将标识渐次加密的可伸缩数据序列中可组合生成其伸缩变换后版本的可组合部分的数据与该渐次加密的可伸缩数据序列相关联。该渐次加密的可伸缩数据序列的伸缩变换后版本被伸缩变换以拥有期望的可伸缩属性。另外,该渐次加密的可伸缩数据序列的伸缩变换后版本被伸缩变换时无需解码。为该渐次加密的可伸缩数据序列的至少一个可组合部分计算加密校验和,将校验和与该渐次加密的可伸缩数据序列的该至少一个可组合部分相关联。
编码器图20是描述依照本发明的一种实施例的可伸缩媒体编码器的框图。
依照一种实施例,可伸缩媒体编码器2020是能够编码任意类型的可伸缩媒体(如JPEG2000或MPEG)的任意设备,如便携通信设备、固定计算设备或数字图像捕捉设备。便携通信设备的例子包括(但不限于)小型个人计算机、膝上型电脑、数码相机、摄像机和蜂窝电话。固定计算设备的例子包括(但不限于)个人计算机、电视机和服务器。服务器可以是ASIC服务器。数字图像捕捉设备的例子包括(但不限于)数码相机和摄像机。
依照一种实施例,可伸缩媒体编码器2020接收媒体数据2012、可伸缩属性标准2014和保护属性标准2016。可伸缩属性标准2014可以列出可伸缩媒体编码器2020可以用于生成可伸缩媒体2052的段的可伸缩属性,如本文所述,可伸缩媒体2052的段可由另一设备提取。如本文所述,可伸缩属性的例子有(但不限于)分辨率、位速率、颜色。可以提取段的设备的例子有(但不限于)代码转换器和解码器。
在又一种实施例中,如图20所示,可伸缩媒体编码器2020包括用来接收媒体数据2012的媒体数据接收器2022。依照一种实施例,媒体数据2012可以是可伸缩数据(如JPEG2000格式的图像)或不可伸缩图像(如图片的扫描图像)。
如图20所示,依照一种实施例,可伸缩媒体编码器2020还包括与媒体数据接收器2022耦合的可伸缩媒体发生器2024。例如,在一种实施例中,在媒体数据2012是不可伸缩图像的情况下可伸缩媒体发生器2024可以生成可伸缩媒体2052。
仍然参考图20,在一种实施例中,可伸缩媒体编码器2020还包括可伸缩媒体输出器2026,其与可伸缩媒体发生器2024相耦合并适用于输出可伸缩媒体2052。
如图20所示,依照一种实施例,可伸缩媒体编码器2020还包括用来接收可伸缩属性标准2014的可伸缩属性标准接收器2032。在又一种实施例中,可伸缩属性标准接收器2032与可伸缩简档数据发生器2034相耦合,可伸缩简档数据发生器2034适用于生成可伸缩简档数据2054,如本文所述,可伸缩简档数据2054可以包括另一设备(如代码转换器或解码器)可以从可伸缩媒体2052提取的段,所述段用以实现一个或多个可伸缩属性的期望结果。在又一实施例中,可伸缩简档数据发生器2034与适用于输出可伸缩简档数据2054的可伸缩简档数据输出器2036相耦合。
仍然参考图20,依照一种实施例,可伸缩媒体编码器2020还包括用来接收如前所述的保护属性标准2016的保护属性标准接收器2042。依照又一实施例,保护属性标准接收器2042与保护简档数据发生器2044相耦合,保护简档数据发生器2044适用于至少部分根据依照这里所述的实施例可伸缩媒体编码器2020接收到的保护属性标准2016生成保护简档数据2056。依照另一实施例,保护简档数据发生器2044与保护简档数据输出器2046相耦合,保护简档数据输出器2046适用于输出保护简档数据2056。在又一实施例中,可以依照本文已经说明的实施例使用保护简档数据2056对可伸缩媒体2052加密。在又一实施例中,可伸缩媒体2052可以是未加密的。有多种保护机制可以应用。例如,可以应用用于完整性检查的加密校验和,可以应用用于验证的数字签名,等等。
依照一种实施例,可伸缩属性标准接收器2032和/或保护属性标准接收器2042可以是通用用户界面(GUI)。例如,用户可以使用GUI输入属性(如分辨率、位速率等)以指示可伸缩媒体发生器2024如何根据本文已经论述的实施例生成那些属性的可伸缩简档数据2054。同样,用户可以用GUI输入属性(如数据加密标准DES、加密模式如电子代码本ECB等)以指示保护简档数据发生器2044如何根据本文中已经论述的实施例生成保护简档数据2056,保护简档数据2056指示可伸缩媒体2052的各部分应该怎样用那些属性加以保护。
依照一种实施例,由可伸缩媒体编码器2020完成的处理可以简单或复杂。例如,可伸缩媒体编码器2020的可伸缩媒体发生器2024可以生成(如本文已经说明过的)能够用很多可选方式或只用少量可选方式对其进行伸缩变换的可伸缩媒体2052。
依照一种实施例,可以用网络将媒体数据2012、可伸缩属性标准2014和/或保护属性标准2016传送到可伸缩媒体编码器2020。在另一实施例中,媒体数据2012、可伸缩属性标准2014和/或保护属性标准2016可以由可伸缩媒体编码器2020从存储设备获取,如压缩盘(CD)、数字视频光盘(DVD)或直接访问存储设备(DASD)。
如图20所示,依照一种实施例,可以用网络将可伸缩媒体2052、可伸缩简档数据2054和/或保护简档数据2056传输到另一设备,如代码转换器或解码器。依照另一实施例,可以通过存储设备,如压缩盘(CD)、数字视频光盘(DVD)或直接访问存储设备(DASD),将可伸缩媒体2052、可伸缩简档数据2054和/或保护简档数据2056传输到另一设备,如代码转换器或解码器。
在又一实施例中,可以组合两个或更多输出器(2026、2036和2046)。例如,可以将可伸缩媒体输出器2026和可伸缩简档数据输出器2036组合成一个输出器。同样,可以将可伸缩媒体输出器2026和保护简档数据输出器2046组合成一个输出器。或者,可以将所有三个输出器(2026、2036和2046)组合成一个输出器。
依照一种实施例,可伸缩媒体2052、可伸缩简档数据2054和保护简档数据2056可以是单独的文件或者以任意组合被组合在单个文件中。例如,可伸缩媒体2052、可伸缩简档数据2054和保护简档数据2056可以一起在单个文件中。第二个例子,可伸缩媒体2052和可伸缩简档数据2054可以一起在一个文件中,而保护简档数据2056在一个单独的文件中。第三个例子,可伸缩媒体2052和保护简档数据2056可以一起在单个文件中,而可伸缩简档数据2054在单独的文件中。
图21是示出了依照本发明的另一实施例的可伸缩媒体编码器的框图。图21示出的可伸缩媒体编码器2120与图20中所示的可伸缩媒体编码器2020相似,区别在于可伸缩媒体编码器2120不包括接收保护属性标准2016的保护属性标准接收器2042、保护简档数据发生器2044和输出保护简档数据2056的保护简档数据输出器2046。
在一种实施例中,可以用网页完成加密可伸缩媒体2052的过程。例如,因为可伸缩媒体编码器2120不包括保护属性标准接收器2042、保护简档数据发生器2044和保护简档数据输出器2046,可以用保护简档数据2056在可伸缩媒体编码器2120以外的某处(如网页)对可伸缩媒体2052加密。
图22是描绘依照本发明的另一实施例的可伸缩媒体编码器的框图。图22示出了与图20中所示可伸缩媒体编码器2020相似的可伸缩媒体编码器2220,区别在于可伸缩媒体编码器2220不包括接收可伸缩属性标准2014的可伸缩属性标准接收器2032、可伸缩简档数据发生器2034和输出可伸缩简档数据2054的可伸缩简档数据输出器2036。
解码器图23是描绘依照本发明的一种实施例的解码器的框图。依照一种实施例,解码器2320是可解码任意类型的可伸缩媒体(如JPEG2000或MPEG)的任意设备,如便携通信设备、固定计算设备或数字图像捕捉设备。
通常,用户与客户端设备(如电视、PDA、DVD播放器或计算机监视器)进行交互以请求在该客户端设备上显示一个或更多图像。解码器2320可以和客户端设备2380通信或是其一部分。作为向客户端设备2380提供图像供用户观看的一部分,解码器2320和客户机2380可以就客户端设备2380显示图像的能力和/或用户想要如何观看图像进行通信。作为这个通信的一部分,解码器2320可以请求期望的可伸缩性属性2372。例如,期望的可伸缩性属性2372可以指示客户机2380能够处理的带宽或者用户想以黑白或是彩色观看图像。客户机2380可以将期望的可伸缩属性2374返回解码器2320。客户端设备的其它例子有(但不限于)便携通信设备、固定计算设备和数字图像捕捉设备。
有很多传统解码器不能解码和/或解密可伸缩媒体(如JPEG2000和MPEG文件)。依照一种实施例,解码器2320是传统设备。通过在传统解码器2320上安装诸如可伸缩媒体接收器2330、可伸缩简档数据接收器2340、保护简档数据接收器2350和渲染器2362等软件或组件,传统解码器2320可以变得能够依照已经说明的实施例解码和/或解密可伸缩媒体2052。例如,渲染器(renderer)2362可以解码和/或解密可伸缩媒体2052以提供渲染后的媒体数据2376以供在客户机2380上观看。
如图23所示,可伸缩媒体接收器2330用来接收可伸缩媒体2052、可伸缩简档数据2054和保护简档数据2056。依照一种实施例,可伸缩媒体接收器2330包括分别用来接收可伸缩媒体2052、可伸缩简档数据2054和保护简档数据2056的接收器2330、2340和2350。依照另一实施例,接收器2330、2340和2350与渲染器2362耦合。依照这里已经说明的实施例,渲染器2362通过根据可伸缩简档数据2054提取可伸缩媒体2052的部分而用可伸缩简档数据2054解码可伸缩媒体2052和/或用保护简档数据2056解密可伸缩媒体2052。
在又一实施例中,两个或更多接收器(2330、2340和2350)可以组合在一起。例如,可伸缩媒体接收器2330和可伸缩简档数据接收器2340可以组合成一个接收器。同样,可伸缩媒体接收器2330和保护简档数据接收器2350可以组合成一个接收器。或者,所有三个接收器(2330、2340和2350)可以组合成一个接收器。
依照一种实施例,可伸缩媒体2052、可伸缩简档数据2054和保护简档数据2056可以是单独的文件或者以任意组合被组合在单个文件中。例如,可伸缩媒体2052、可伸缩简档数据2054和保护简档数据2056可以一起在单个文件中。第二个例子,可伸缩媒体2052和可伸缩简档数据2054可以一起在一个文件中,而保护简档数据2056在一个单独的文件中。第三个例子,可伸缩媒体2052和保护简档数据2056可以一起在单个文件中,而可伸缩简档数据2054在单独的文件中。
图24是示出了依照本发明的另一实施例的解码器的框图。图24示出了与图23中所示解码器2320相似的解码器2420,区别是解码器2420不包括接收保护简档数据2056的保护简档数据接收器2350。因此,依照一种实施例,与图23中所示渲染器2362不同,图24中的渲染器2462不用保护简档数据2056对可伸缩媒体2052解密。但是,在又一实施例中,渲染器2462可以用别的技术解密可伸缩媒体2052。
图25是示出了依照本发明的又一实施例的解码器的框图。图25示出的解码器2520不包括接收可伸缩简档数据2054的可伸缩简档数据接收器。因此,依照一种实施例,图25中的渲染器2562可以包括不用可伸缩简档数据2054解析可伸缩媒体2052的逻辑。例如,假定可伸缩媒体2052是一个JPEG2000文件,渲染器2562能够读取可伸缩媒体2052的内容表,以确定可伸缩媒体2052的哪些段与保护简档数据2056的相关加密映射中涉及的段对应,从而解密可伸缩媒体2052。但是,在又一实施例中,渲染器2562可以用别的技术解密可伸缩媒体2052。在又一实施例中,渲染器2562可以不完全知道与可伸缩媒体2052相关联的内容表,而是,可以只有最小量的逻辑用于解析内容表的特定方面。
依照一种实施例,可以在网络上将可伸缩媒体2052、可伸缩简档数据2054和/或保护简档数据2056中的任一个传递到解码器2320、2420、2520。依照另一实施例,可以由解码器2320、2420、2520从存储设备获取可伸缩媒体2052、可伸缩简档数据2054和/或保护简档数据2056中的任一个。该存储设备可以是解码器2320、2420、2520的一部分。
依照一种实施例,解码器2320、2420、2520可以在网络上将渲染后的媒体数据2376传输到客户机2380。在又一实施例中,可以将渲染后的媒体数据2376存储在存储设备上,由客户机2380随后获取。该存储设备可以是解码器2320、2420、2520的一部分。
这一节中对解码器2320、2420、2520的讨论已经假定解码器2320、2420、2520位于在将图像传递给客户机2380之前包括编码器、代码转换器和可能的其它解码器的设备链的末端。依照一种实施例,渲染器2362、2462、2562可以有逻辑用于解析与可伸缩媒体2052相关联的内容表的足够内容,以便解压缩该可伸缩媒体2052并提供图像给客户机2380。
代码转换器有不能对可伸缩数据(如JPEG2000文件或MPEG文件)进行代码转换的传统设备。在这一节中,将讨论用各种软件、硬件和/或微代码组件升级传统设备使传统设备能够对可伸缩数据进行代码转换的多种方式。
图26是示出了依照本发明的一种实施例的代码转换单元的框图。代码转换单元2620可以是能对任何类型的可伸缩数据(如JPEG2000或MPEG)进行代码转换的任意设备,如便携通信设备、固定计算设备或数字图像捕捉设备。如前所述的解码器,依照一种实施例,代码转换单元2620可以从设备2670请求期望的可伸缩属性2372。在这种情况下,设备2670可以提供期望的可伸缩属性2374。依照一种实施例,设备2670可以是另一代码转换单元、解码器或客户端设备等。
如图26所示,依照一种实施例,代码转换单元2620接收可伸缩媒体2052、可伸缩简档数据2054和保护简档数据2056。依照另一种实施例,代码转换单元2620在可伸缩媒体2052、可伸缩简档数据2054和保护简档数据2056上进行操作以生成新的可伸缩媒体2662、新的可伸缩简档数据2664和新的保护简档数据2666。此外,依照另一实施例,代码转换单元2620包括代码转换器2630,代码转换器2630依照这里所说明的实施例根据可伸缩简档数据2054从可伸缩媒体2052提取段并将那些段组合生成代码转换过的媒体2640,代码转换过的媒体2640被传递到编码器2650。
依照一种实施例,编码器2650接收代码转换后的媒体2640,它可以是可伸缩媒体或不可伸缩数据,如位图。依照一种实施例,编码器2650可以是能够采用不可伸缩的位图生成新的可伸缩媒体2662的可伸缩媒体编码器,如JPEG2000或MPEG编码器。在另一实施例中,编码器2650可以只有足够的逻辑为特定属性生成可伸缩媒体2662。
此外,如图26所示,依照一种实施例,编码器2650包括生成新的可伸缩简档数据2664的可伸缩简档数据发生器2654和生成新的保护简档数据2666的保护简档数据发生器2656。在一种实施例中,编码器2650通过分析代码转换后的媒体2640生成可伸缩简档数据2664和保护简档数据2666。在另一实施例中,编码器2650可以接收输入,例如前面说明过的可伸缩属性标准2014和/或保护属性标准2016,以生成可伸缩简档数据2664和保护简档数据2666。
在又一实施例中,编码器2650通过更改与可伸缩简档数据2054中指示的段相关联的位移而生成新的可伸缩简档数据2664,以反映已经依照本文已经说明的实施例从可伸缩媒体2052中提取出了特定的段。在又一实施例中,编码器2650通过标记已经完成了哪些代码转换操作(例如,依照本文已经说明过的实施例已经提取了哪些段)而生成新的可伸缩简档数据2664。
同样,依照另一实施例,编码器2650可以通过更改与保护简档数据2056相关联的加密映射而生成新的保护简档数据2666。在一种实施例中,可以通过更改与依照本文中已经说明过的实施例根据可伸缩简档数据2054从可伸缩媒体2052提取的段相关联的位移而更改加密映射。在另一实施例中,可以通过标记依照本文中已经说明过的实施例已经在可伸缩媒体2052上进行了哪些代码转换操作而更改加密映射。
图27是示出了依照本发明的另一实施例的代码转换单元的框图。代码转换单元2720可以是能够对任意类型的可伸缩数据(如JPEG2000或MPEG)进行代码转换的任意类型的设备,如便携通信设备、固定计算设备或数字图像捕捉设备。
图27所示的代码转换单元2720不包括接收可伸缩简档数据2054的可伸缩简档数据接收器。因此,依照一种实施例,图27中的代码转换器2730可以包括不用可伸缩简档数据2054而解析可伸缩媒体2052的逻辑。例如,假定可伸缩媒体2052是JPEG2000文件,代码转换器2730可能能够读取可伸缩媒体2052的内容表,以确定可伸缩媒体2052的哪些段对应于与保护简档数据2056相关联的加密映射中涉及的那些段,从而对可伸缩媒体2052进行代码转换并产生代码转换后的媒体2640。代码转换器2730可以只有最小量的逻辑用于解析该内容表的特定方面。
依照一种实施例,代码转换单元2720还包括接收代码转换后媒体2640的编码器2750,媒体2640可以是可伸缩媒体或不可伸缩媒体,如位图。依照一种实施例,编码器2750可以是能够用不可伸缩的位图生成新的可伸缩媒体2662的可伸缩媒体编码器,如JPEG2000或MPEG编码器。在另一实施例中,编码器2750可以只有足以为特定属性生成可伸缩媒体2662的逻辑。
如图27所示,依照一种实施例,编码器2750包括生成新的保护简档数据2666的保护简档数据发生器2656。在一种实施例中,保护简档数据发生器2656通过分析代码转换后的媒体2640生成保护简档数据2666。在另一实施例中,保护简档数据发生器2656可以接收输入,如本文已经说明的保护属性标准2016,以生成保护简档数据2666。
图28是示出依照本发明的另一实施例的代码转换单元的框图。代码转换单元2820可以是能够对任意类型的可伸缩媒体(如JPEG2000或MPEG)进行代码转换的任意类型的设备,如便携通信设备、固定计算设备或数字图像捕捉设备。
依照一种实施例,代码转换单元不需要保护简档数据2656,因为通常代码转换单元不对该代码转换单元接收到的媒体数据(如可伸缩媒体数据2052)进行解密。例如,图28示出了与图26所示代码转换单元2620类似的代码转换单元2820,区别在于代码转换单元2820不包括保护简档数据接收器2626。因此,依照一种实施例,图28所示的代码转换器2830不需要解析保护简档数据2056的逻辑。
依照一种实施例,代码转换单元2820还包括编码器2850,它接收代码转换后的媒体2640,代码转换后的媒体2640可以是可伸缩媒体或不可伸缩数据(如位图)。依照一种实施例,编码器2850可以是能够用不可伸缩的位图生成新的可伸缩媒体2662的可伸缩媒体编码器,如JPEG2000或MPEG编码器。在另一实施例中,编码器2850可以只有足够的逻辑为特定属性生成可伸缩媒体2662。
依照一种实施例,编码器2850包括生成新的可伸缩简档数据2664的可伸缩简档数据发生器2654。在一种实施例中,可伸缩简档数据发生器2654通过分析代码转换后的媒体2640而生成可伸缩简档数据2664。在另一实施例中,可伸缩简档数据发生器2654可以接收输入,如本文已经说明的可伸缩属性标准2014,以生成可伸缩简档数据2664。
图29是示出依照本发明的另一种实施例的代码转换单元的框图。代码转换单元2920可以是能够对任意类型的可伸缩数据(如JPEG2000或MPEG)进行代码转换的任意类型的设备,如便携通信设备、固定计算设备或数字图像捕捉设备。依照一种实施例,与代码转换单元2620相同,代码转换单元2920用相应的接收器(2622、2624、2626)接收可伸缩媒体2052、可伸缩简档数据2054和保护简档数据2056。此外,依照另一实施例,代码转换单元2920用相应的输出器(2942、2944、2946)输出可伸缩媒体2662、可伸缩简档数据2664和保护简档数据2666。
如图29所示,依照一种实施例,代码转换单元2920包括代码转换器2930,代码转换器2930依照这里已经说明的实施例根据可伸缩简档数据2054从可伸缩媒体2052提取段以生成新的可伸缩媒体2662。此外,依照另一实施例,代码转换器2930处理可伸缩简档数据2054以生成新的可伸缩简档数据2664。
在一种实施例中,代码转换器2930通过更改与可伸缩简档数据2054中指示的段相关联的位移而生成新的可伸缩简档数据2664,以反映已经依照本文已经说明的实施例从可伸缩媒体2052提取出了特定的段。在另一实施例中,代码转换器2930通过标记已经依照本文已经说明的实施例进行了哪些代码转换操作(如已经从可伸缩媒体2052提取了哪些段)而生成新的可伸缩简档数据2664。
代码转换器2930可以通过更改与保护简档数据2056相关联的加密映射而生成新的保护简档数据2666。在一种实施例中,可以通过更改(依照本文中已经说明过的实施例)根据可伸缩简档数据2054从可伸缩媒体2052提取的段的相关联位移而更改加密映射。在另一实施例中,可以通过标记依照本文中已经说明过的实施例已经进行了哪些代码转换操作而更改加密映射。
图30是示出依照本发明的另一种实施例的代码转换单元的框图。代码转换单元3020可以是能够对任意类型的可伸缩数据(如JPEG2000或MPEG)进行代码转换的任意类型的设备,如便携通信设备、固定计算设备或数字图像捕捉设备。
图30所示的代码转换单元3020不包括接收可伸缩简档数据2054的可伸缩简档数据接收器。因此,依照一种实施例,图30中的代码转换器3030可以包括不用可伸缩简档数据2054而解析可伸缩媒体2052的逻辑。例如,假定可伸缩媒体2052是JPEG2000文件,代码转换器3030能够读取可伸缩媒体2052的内容表,以确定可伸缩媒体2052的哪些段对应于与保护简档数据2056相关联的加密映射中涉及的那些段,从而按照已经说明过的更改加密映射。在另一实施例中,代码转换器3030可以不全知道与可伸缩媒体2052相关联的内容表,而是可以只有最小量的逻辑用于解析该内容表的特定方面。
图31是示出了依照本发明的另一种实施例的代码转换单元的框图。图31所示代码转换单元3120与图29中所示代码转换单元2920相似,区别在于代码转换单元3120不包括保护简档数据接收器2626。因此,依照一种实施例,图31中所示代码转换器3130不需要依照本文已经说明的实施例用以解析保护简档数据的逻辑或更改保护简档数据的加密映射的逻辑。
图32是示出了依照本发明的另一种实施例的代码转换单元的框图。图32所示的代码转换单元3220与图29中所示代码转换单元2920相似,区别在于代码转换单元3220包括带有保护修改器3232的代码转换器3230。依照一种实施例,保护修改器3232可以依照本文已经说明的实施例修改保护或添加保护层。尽管只有图32示出了保护修改器3232,但依照另一实施例,代码转换单元2620、2720、2820、2920、3020、3120、3220(图26-32)也可包括保护修改器。
在又一实施例中,可以由编码器2650、2750、2850(图26-28)接收输入(如可伸缩属性标准2014和/或保护属性标准2016)以生成可伸缩简档数据2664和/或保护简档数据2666。
依照一种实施例,可以对可伸缩简档数据2054和/或保护简档数据2056进行加密,这种情况下,接收该数据(2054、2056)的任何代码转换单元2620、2720、2820、2920、3020、3120、3220(图26-32)将需要密钥以解密该数据(2054、2056)。
有不能对可伸缩媒体(如JPEG2000文件或MPEG文件)进行代码转换的传统代码转换器。依照一种实施例,代码转换单元2620、2720、2820、2920、3020、3120、3220(图26-32)是传统设备。通过在代码转换单元2620、2720、2820、2920、3020、3120、3220上安装软件、硬件和/或微代码组件,如接收器2622、2624、2626,代码转换器2630、2730、2830、2930、3030、3130、3230,编码器2650、2750、2850和输出器2942、2944、2946,代码转换单元2620、2720、2820、2920、3020、3120、3220可以变得能够依照本文中已经说明的实施例对可伸缩媒体2052进行代码转换。
依照一种实施例,可伸缩媒体2052是加密的。例如,可伸缩简档数据2054使得代码转换器2630、2830、2930、3130、3230(图26、28、29、31、32)能够依照本文已经说明过的实施例从可伸缩媒体2052提取段。为了做到这一点,代码转换器2630、2830、2930、3130、3230可以接收密钥以对可伸缩媒体2052解密。依照另一实施例,可伸缩媒体2052是不加密的。
依照一种实施例,可以用网络将可伸缩媒体数据2052、可伸缩简档数据2054和/或保护简档数据2056从另一设备(如编码器或另一代码转换器)传递到代码转换单元2620、2720、2820、2920、3020、3120、3220(图26-32)。在另一实施例中,可伸缩媒体数据2052、可伸缩简档数据2054和/或保护简档数据2056可以由代码转换单元2620、2720、2820、2920、3020、3120、3220从存储设备获取。在又一实施例中,该存储设备可以是相应的代码转换单元2620、2720、2820、2920、3020、3120、3220的一部分。
依照一种实施例,可以在网络上将可伸缩媒体数据2662、可伸缩简档数据2664和/或保护简档数据2666(图26-32)传输到另一设备,例如另一代码转换器或解码器。依照另一实施例,可以将可伸缩媒体数据2662、可伸缩简档数据2664和/或保护简档数据2666存储在存储设备上,另一设备(如代码转换器或解码器)可以从那里获取它们。在又一实施例中,该存储设备可以是相应的代码转换单元2620、2720、2820、2920、3020、3120、3220的一部分。
在又一实施例中,可以将接收器2622、2624、2626(图26-32)中的两个或更多合并成一个接收器。例如,可伸缩媒体接收器2622和可伸缩简档数据接收器2624可以合并成一个接收器。同样,可伸缩媒体接收器2622和保护简档数据接收器2626可以合并成一个接收器。或者,所有三个接收器(2622、2624、2626)可以合并成一个接收器。
在又一实施例中,可以将输出器2942、2944、2946(图29、30、31、32)中的两个或更多合并成一个输出器。例如,可伸缩媒体输出器2942和可伸缩简档数据输出器2944可以合并成一个输出器。同样,可伸缩媒体输出器2942和保护简档数据输出器2946可以合并成一个输出器。或者,所有三个输出器(2942、2944、2946)可以合并成一个输出器。
在又一实施例中,发生器2654、2656(图29、30、31、32)可以合并成一个发生器。
如已经说明的,依照一种实施例,可伸缩媒体2052、可伸缩简档数据2054和保护简档数据2056(图26-32)可以在单独的文件中或者以任意组合被合并在单个文件中。
依照另一实施例,为了维持可伸缩媒体2052的安全性,代码转换单元2620、2720、2820、2920、3020、3120、3220(图26-32)不接收用于对可伸缩媒体2052进行加密的密钥。在这种情况下,只有解码器(2320、2420、2520)将接收密钥以便对可伸缩媒体2052解密。
依照一种实施例,编码器2020、2120、2220(图20-22)和代码转换单元2620、2720、2820、2920、3020、3120、3220(图26-32)可以在一个设备中。依照另一实施例,编码器2020、2120、2220(图20-22)和解码器2320、2420、2520(图23-25)可以在一个设备中。在又一实施例中,代码转换单元2620、2720、2820、2920、3020、3120、3220(图26-32)和解码器(2320、2420、2520)(图23-25)可以在一个设备中。编码器2020、2120、2220(图20-22),代码转换单元2620、2720、2820、2920、3020、3120、3220(图26-32)和解码器(2320、2420、2520)(图23-25)可以三个都在一个设备中。
与图26-32所示的编码器2020、2120、2220,代码转换单元2620、2720、2820、2920、3020、3120、3220和解码器2320、2420、2520相关联的功能可以本领域的技术人员所熟知的多种方式移动和组合。
因而说明了本发明的实施例。尽管是在特定的实施例中说明了本发明,但应该理解本发明不应被理解为受这些实施例所限,而应依照后附的权利要求理解。
权利要求
1.一种媒体数据编码设备,包括用来接收媒体数据(2012)的媒体数据接收器(2022);与所述媒体数据发生器耦合的可伸缩媒体发生器(2024),所述可伸缩媒体发生器用来根据所述媒体数据生成可伸缩媒体(2052);与所述可伸缩媒体发生器耦合的可伸缩属性标准接收器(2032),所述可伸缩属性标准接收器用来接收可伸缩属性标准(2014);与所述可伸缩属性标准接收器耦合的可伸缩简档数据发生器(2034),所述可伸缩简档数据发生器用来至少部分根据所述可伸缩媒体和所述可伸缩属性标准生成可伸缩简档数据;和用来输出所述可伸缩简档数据的可伸缩简档数据输出器(2036)。
2.权利要求1的媒体数据编码设备,其中所述媒体数据编码设备是JPEG2000编码设备。
3.权利要求1的媒体数据编码设备,其中所述可伸缩简档数据被加密。
4.权利要求1的媒体数据编码设备,其中所述可伸缩简档数据未被加密。
5.权利要求1的媒体数据编码设备,其中所述可伸缩媒体和所述可伸缩简档数据被一起输出到单个文件中。
6.权利要求5的媒体数据编码设备,其中所述可伸缩简档数据和所述可伸缩媒体在所述单个文件中,并且所述可伸缩简档数据在所述文件的起始处。
7.权利要求5的媒体数据编码设备,其中所述可伸缩简档数据和所述可伸缩媒体在所述单个文件中,并且所述可伸缩简档数据不在所述文件的起始处。
8.权利要求1的媒体数据编码设备,其中所述可伸缩媒体编码器是从由便携通信设备、固定计算设备或数字图像捕捉设备组成的组中选择出的设备。
9.一种媒体数据编码设备,包括用来接收媒体数据(2012)的媒体数据接收器(2022);与所述媒体数据接收器耦合的可伸缩媒体发生器(2024),所述可伸缩媒体发生器用来根据所述媒体数据生成可伸缩媒体(2052);用来接收保护属性标准(2016)的保护属性标准接收器(2042);与所述保护属性标准接收器耦合的保护简档数据发生器(2044),所述保护简档数据发生器用来至少部分根据所述可伸缩媒体和所述保护属性标准生成保护简档数据(2056);以及用来输出所述保护简档数据的保护简档数据输出器(2046)。
10.权利要求9的媒体数据编码设备,其中所述媒体数据编码设备是JPEG2000编码设备。
全文摘要
本发明涉及媒体数据编码设备。本发明的实施例关于接收媒体数据、根据媒体数据生成可伸缩媒体、接收可伸缩属性标准、至少部分根据所述可伸缩媒体和可伸缩属性标准生成可伸缩简档数据、并输出该可伸缩简档数据的设备。
文档编号H04N7/24GK1943238SQ200580011242
公开日2007年4月4日 申请日期2005年2月11日 优先权日2004年2月13日
发明者J·G·阿波斯托洛鲍洛斯, S·J·威 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1