结构化文档、尤其xml文档的编码/译码的方法和装置的制作方法

文档序号:7862550阅读:215来源:国知局
专利名称:结构化文档、尤其xml文档的编码/译码的方法和装置的制作方法
技术领域
本发明涉及用于结构化文档,尤其XML文档编码的方法或装置,其中,根据模式从结构化的文档中生成比特流,以及涉及一种用于译码的方法或装置,其中,根据模式从比特流中生成结构化的文档。
在MPEG-7标准上工作的范围内开发了一种用于XML数据的二进制编码的方法,该方法以下称为BiM法,而且是例如从文献ISO/IEC FDIS15938-12001(E),“信息技术-多媒体内容描述接口-部分1系统”中公开的。该方法采用了在编码和译码时存在的XML模式定义,例如MPEG-7模式,以便生成XML描述的各个数据元用的代码。该方法的前提是,在编码器和译码器面前至少部分地存在同样的模式定义。这可以例如通过在译码器中固定地装入标准化的XML模式的方式来确保。此外,还存在着独立或附加于原来的文档地给译码器传送模式的可能性。可以以文本的形式来执行将模式从编码器向泽码器的传输,其中,可以应用一种例如像ZIP那样的文本压缩标准。
本发明所基于的任务现在在于,如此来说明给出一种方法和装置,使得特别有效地实现模式的传输,并且在译码器上降低了所传输的数据量和计算功率,该数据量和计算功率对于从模式中生成代码表是必要的。此外,还应确保未完整地传输的模式的一致性。
在编码法方面通过权利要求1所述的特征,在译码法方面通过权利要求7所述的特征,在编码装置方面通过权利要求14所述的特征,和在译码装置方面通过权利要求15所述的特征来根据本发明解决该任务。
其它的权利要求涉及本发明方法或装置的有利的扩展方案。
本发明基本上在于,用编码法根据Meta模式(Meta-scheme)从模式中生成比特流,或比特流的一部分,其中,执行以下的优化中的一项或多项-从元素说明和属性说明中分离匿名类型,并编码为特殊类型,该类型的类型定义被例示为模式定义中的顶层元素,-在编码器方面将语法树标准化,-替换类型名称的字符串,
-传输派生树(Vererbungsbaum)的信息。
译码考虑了这些优化,并且相反地从比特流中生成一个模式。
以下借助示出在附图中的实施例来阐述本发明。


图1展示了用于阐述本发明编码/译码的原理示图,图2展示了用于阐述本发明优选实施形式的细节的示图,图3展示了用于阐述本发明一个其它的优选实施形式的细节的示图,以及图4展示了本发明译码器的优选实施形式的原理示图。
由于XML模式在它这方面是基于标准化语法定义的XML文档,即所谓的“模式用的模式(Schema for Schemas)”(W3C规程),该“模式用的模式”在一定程度上是Meta模式,所以一个模式可以同样用上述的BiM法来编码和传输。
附图1中展示了一种装置,其中,在第一步骤中用BiM编码法BiM-E从XML模式XMLS中根据Meta模式SS来生成比特流的一部分或比特流BS1,以及在第二步骤中用同样的BiM编码法BiM-E从XML文档XML中根据模式XMLS来生成比特流的一个其它的部分或比特流BS2,以及在相反的方向上用BiM译码法BiM-D从比特流的两个部分中,或从比特流BS1和BS2中恢复XML模式和XML文档。
在本发明的第一优选的扩展方案中,从元素说明或属性说明中分离所谓的“匿名类型”。
在BiM法“深度优先”中实现XML文档的传输,但是在译码器上的模式编译的过程则要求建立“宽度优先”,其中,例如在因特网页http//www.generation5.org/simple_search.shtml上,详细阐述了这些表达。在如序列或选择那样的组中,这可以通过在译码器方面的小的暂存器来补偿,但是在采用可定义各个元素类型或属性类型的“匿名类型”的情况下,工作量证明在编码器方面的重构是合理的在以下的例子中用AT0来表示的匿名类型定义被从元素“履历(CurriculumVitae)”的元素说明中分离出来,并且获得一个名称和/或代码,该名称和/或代码在相应元素中被用于参考。由此有利地降低了所传输类型的等级的深度,因此简化了在译码器方面的模式的编译。
例子
重构之前的模式<复合类型名称=“个人描述符”>
<元素名称=“履历”>
<复合类型>
<元素名称=“名称”类型=“字符串”/>
<元素名称=“生日”类型=“日期”/>
...
</复合类型>
</元素>
<元素名称=“职业”类型=“profTp”/>
</复合类型>
在重构之后的模式<复合类型名称=“个人描述符”>
<元素名称=“履历”类型=“AT0”/>
<元素名称=“职业”类型=“profTp”/>
</复合类型>
<复合类型名称=“AT0”>
<元素名称=“名称”类型=“字符串”/>
<元素名称=“生日”类型=“日期”/>
...
</复合类型>
在本发明的第二优选的扩展方案中,像在BiM中详细说明的那样,在编码器方面执行语法树的标准化。
在BiM法中从映射XML模式结构的语法树中,生成用于比特流译码的所谓的“有限态自动机”。为了提高编码效率,这些语法树不是1∶1地对应于文本的XML定义,而是进行标准化。在此可能出现三种不同的情况1.简化仅含有一个元素的组将该组分解,并将所含有的元素在所分解的组的层面上归类到内容模型中,其中,用重新分组之前的所分解的组和元素的相应属性的乘积,来替换元素的属性minOccurs和maxOccurs。
2.简化选择组,该选择组含有具有属性值minOccurs=0的元素将选择组的属性“minOccurs”与以前的值无关地设置到0上,给曾具有属性值minOccurs=0的元素分配一个属性值minOccurs=1。
3.简化嵌套的选择组如果一个选择组含有另一个含有属性值minOccurs=maxOccurs=1的选择组,则分解该选择组,并且直接将内容编入位于其上的选择组中。
应在模式的传输时已经在编码器上进行这些简化,因为标准化的代码的发放影响了派生树转换,并且如果可以直接接纳内容模型,则在译码器方面简化了模式的编译。
这里优点在于,由此同样减轻了译码器的负荷,并且可以将内容模型像它在类型译码时的那样,直接分配给模式编译器。
在本发明的第三优选的扩展方案中,像在附图2中所展示的那样,执行类型名称的字符串的替换。
在类型定义的属性“名称”和“基础”中,以及在元素说明或属性说明的属性“类型”上,常常在模式中出现同样的类型名称,会将这些类型名称作为字符串来多次传输。因此在类型名称的编码时有利地仅编码一个号来代替名称,并且独立于此地存在一个表格,该表格使号重新与原始的名称发生联系。建议将类型号作为号,下面还将详细阐述的原类型的派生树将该类型号分配给所有的复合类型。
相应的内容也适用于全局性元素说明的属性“名称”及其在“ref”属性中的参考,并且适用于属性“替换组”中的替换组的名称。在这些情况下可以例如采用全局元素的模式转移代码SBC。
以此可以节省数据容量,因为可以更紧凑地示出对同样类型名称的重复的参考,并且可以用标准压缩程序更好地压缩类型分配表,因为类型名称不是分布在比特流上地出现,而是紧凑地在比特流中的互相联系的范围中出现。
在一个有利的实施形式中,对包括类型名称、或元素名称、或替换组名称的清单进行编码。在该实施形式中将名称在清单中的位置采用为号,来代替给名称明确地分配号。这是有利的,因为在清单中不必再将号进行编码,并且因此确保了更有效的传输。
在本发明的第四优选的扩展方案中实现了派生树的信息传输。
在所谓的属性“基础”中,如果它存在着的话,每个类型定义含有关于它是从何种类型派生而来的有关信息。如果收集了一个模式的所有这些信息,则得出一种树结构,所谓的派生树。在BiM编码法中采用派生树,以便在类型变换(类型铸造)的情况下传送元素的新的类型。在此,分配给所有从基础类型派生来的类型的代码,也就是所谓的类型代码,以及该代码的长度对于正确的译码是决定性的。从基础类型之下的派生树中的所有类型的总数中得出了长度。如果已完整地传输了模式,则在译码器方面都可以明确地求出代码和代码长度。但是如果在译码器方面模式是不完整的,则还必须传输附加信息,以便给已经传输的类型分配类型代码。
每个传输的类型在名称字段中具有涉及原类型的类型代码的号。因此通过简单的求差可以求出所导出类型的类型代码。还缺少关于由传输类型所定义的子树的丰度的信息,并且因此缺少关于从该传输类型所导出类型的类型代码的长度的信息。用可以变化的长度代码中的少数几个比特可以传输该长度。
附图3中示范性示出了具有类型A的模式的派生树,从该类型A中导出了其它的类型。相对于原类型“任何类型”,该类型例如获得了类型代码134。从类型A中导出了类型AA,AB和AC,其相对原类型的类型代码已被给出。为了求出相对于基础类型A的类型代码,从所希望类型的类型代码中减去基础类型的类型代码和1就已足够了TCType=TCType bzgl.Urtyp-TCBasistyp bzgl.Urtyp-1所缺少的关于类型代码长度的信息,可以最好作为附加的数字纳入在参考表中。
为了可以用标准压缩程序来压缩类型分配表中的信息,最好针对整个字节将它存放(字节对准)。第一个数是一个vluimsbf5数,该vluimsbf5数编码表格中的行数,于是跟随着一个vluimsbf5数字,该vluimsbf5数字编码在类型代码比特上的号,并且跟随着一个其它的vluimsbf5数字,该vluimsbf5数字示出了相对于原类型本身的类型代码。现在跟随着填充比特,以便对准字节边界。
类型分配表的格式
类型分配表的传输实现了,甚至当未曾或还未曾完整地传输和/或译码所基于的模式时,就将有时存在于所编码文档中的类型代码正确地进行译码。
相应地应该用全局的元素来传送全局的SBC,并且在属于一个替换组的元素情况下应该传送替换代码,其中,首先对于所有的全局元素一次传送全局的SBC长度,并用替换组的头部元素来传送各自的替换代码的长度。
在编码时在各个扩展方案中所示出的特征的任何组合是可能的,并且也可以以相应的方式在译码时得到采用。
BiM法要求,将XML模式编译为一种格式,该格式允许通过代码的值来确定代码字的长度和选择数据元素。为此存在着多种可能性。在MPEG-7标准(ISO/IEC 15938-12001部分1系统,或ISO/IEC15938-62001部分6基准软件)中,对于有效负荷的译码建议了一种采用有限态自动机的模型,而对于上下文(Context)路径的译码建议了从模式中生成的代码表。
在本发明译码器的附图4中所示出的优选的扩展方案中,用字节代码模型说明了译码过程,其中,将模式结构翻译成由交联状态组成的系统,这些状态由字节代码解释器BCI来处理,其中,由编码器接收的比特流BS含有应选择的后续状态的信息。与在MPEG-7标准中所建议的模型不同,如此来设计字节代码模型,使得既可以将表示有效负荷的比特流进行译码,也可以将示出上下文路径的比特流进行译码。因此不必要为不同的编码法而两次在译码器上预留含有在模式中的同一信息。解释器BCI从输入比特流中读出以BiM格式编码XML文档或XML模式的信息。该信息允许在当前状态的后续状态中进行选择,该当前状态存放在字节代码中。将后续状态作为指针P固定地布设在字节代码之内。按照配置来输出路径、有效负荷或字节代码。
用以上所建议的修改,模式的译码同样可以有效地实现在字节代码模型中。在此情况下不输出有效负荷和路径,而是直接生成字节代码,该字节代码可以由字节代码解释器用于相应类型的译码。
字节代码由结构元素或状态所组成。状态是不同类型的,用状态的头部比特段来识别该类型。根据类型,状态含有不同的信息字段,这些信息字段由字节代码解释器来读出,并且按照配置(有效负荷/上下文路径)和当前的状态来分析处理。
对于表示模式信息的状态的种类可以设想多种变型方案。主要的是可以通过字节代码模型的状态来模拟XML模式的所有的语法元素,并且在所述状态下提供整个的信息来使用,该信息对两个在MPEG-7标准中所定义的算法(上下文路径/有效负荷)的有效译码是必要的。
以下简述字节代码的一种可能的构造。
状态的种类,概况1.复合类型的头部状态类型的头部状态形成在复合类型的译码时的入口点。它含有类型的名称(如果不涉及匿名类型),以及用于类型(指向基础状态的指针)以及多型性(Polymorphismus)的派生的信息。对于类型属性的清单的指针是专门用于有效负荷编码的。具有上下文表的和操作数树状分支代码表的子元素(Kindelement)数量的字段是专门用于上下文路径编码的。最后的信息字段是指向后续状态的指针,即表示复合类型的内容的第一状态(例如元素状态或选择状态)。
头部状态的图形表达
2.选择状态选择状态模拟了(nachbilden)XML模式的选择组。选择状态基本上含有具有可能的后续状态的指针清单。为了确定实际选出的状态,必须在译码有效负荷时读出比特流。选择状态有两种变型方案一种转移到不同可能的后续状态中的起始状态,以及一种重新汇总选择的最终状态。
3.元素状态元素状态模拟了在模式的复合类型中的元素说明。它含有指向具有元素名称的字符串的指针,以及指向类型的头部状态的指针。有时还存在着关于位置代码的长度的(仅用于路径译码)和用于替换组的信息。
4.属性状态属性状态模拟了模式的属性说明。含有了指向属性名称的指针,以及指向属性的简单类型的头部状态的指针。
5.出现状态出现状态模拟了minOccurs和maxOccurs属性,这些minOccurs和maxOccurs属性在XML模式下可能例如出现在元素或组(选择、序列、...)中。如果出现了元素或组的一个其它的实例(Instanz),它则含有指向后续状态的指针,以及如果已编码了组的最后的实例,它则含有指向后续状态的指针。由于在XML模式下存在着元素自包含的可能性(在元素的复合类型定义中,或在更深的嵌套中,元素本身重新出现),所以出现状态也可能是同时多于一次地激活的。因此需要一个指向出现状态之内的一个批(Stapel)的指针,其确保出现状态的每个激活实例的当前状态。
6.类型的最终状态类型的最终状态含有具有该类型所有属性的指针清单。它在路径的译码时是必要的,因为在树状分支代码表中在表格的末尾上归类了所有的属性。在达到最终状态时,字节代码解释器在等级上转移到已调用该类型的元素中。在字节代码解释器的工作存储器中必须存放了关于所调用元素的相应的信息。
7.简单类型的头部状态该状态控制着内容的译码,即它含有对编译码器的指针,该编译码器可以专门从比特流中读出和译码有关类型的数据。在信息字段中详细说明了编译码器的类型。
与MPEG-7基准软件的水准相比较,字节代码模型的主要优点是1.对于两种编码法(上下文路径/有效负荷)在译码器上仅一次表示模式信息。在字节代码状态下的信息的绝大部分对于两种方法是重要的。较小的部分是专门用于两种方法中的每次一种的。因此模式信息在译码器上的表示是很紧凑的。
2.字节代码模型将模式信息的良好定义的数据格式提供来使用,该数据格式例如也适用于预编译和存储(代替作为文本的XML模式)。
3.可以很迅速地通过标准压缩程序来实施字节代码,因为字节代码模型很好地准备了译码过程。所有的信息可以在该状态下通过指针直接提供使用,而且不必(像在ISO/IEC 15938-6,部分6基准软件中那样)部分地才在清单中搜索。
以同样的方式和方法可以实现相应的编码器,其中,它以以下的方式是逆反的,使得由结构化文档的文本表示来控制状态,并且状态过渡生成二进制的表示。
权利要求
1.用于编码结构化文档、尤其XML文档的方法,其中,在第一步骤中标准化模式(XMLS)的结构,其中,简化了具有元素和/或属性的组,其中,用编码法(BiM-E)从所标准化的模式中根据Meta模式(SS)来生成比特流的一部分或比特流(BS1)。
2.按权利要求1的方法,其中,在一个其它的步骤中用所述同样的BiM编码法(BiM-E),从文档(XML)中根据所述的模式(XMLS)来生成所述比特流的一个其它的部分或一个其它的比特流(BS2)。
3.按权利要求1或2的方法,其中,如此来重构结构化文档的模式定义的元素说明和/或属性说明,使得匿名类型定义(AT0)从所述的元素说明和/或属性说明中分离出来,并且获得一个名称和/或代码,该名称和/或代码被用于在所述相应元素中的参考。
4.按权利要求1至3之一的方法,其中,仅将号以及具有在号和类型名称、和/或元素名称、和/或替换组名称之间的分配关系的一个或多个表格进行编码,来代替类型名称、和/或元素名称、和/或替换组的名称。
5.按权利要求1至4之一的方法,其中,将包括所述的类型名称、和/或元素名称、和/或替换组名称的一个或多个清单,以及所述的类型名称、和/或元素名称、和/或替换组名称在所述清单中的位置进行编码,来代替类型名称、和/或元素名称、和/或替换组的名称。
6.按以上权利要求之一的方法,其中,将类型、全局元素和/或替换组的派生树的信息进行编码,其中,每个类型通过关于它相对于原类型的类型代码的信息,和涉及所描述类型的所有类型代码的长度的信息来描述,和/或每个全局的元素通过SBC的长度和SBC来描述,和/或在替换组中的每个元素通过替换代码的长度和替换代码来描述。
7.用于译码结构化文档、尤其XML文档的方法,其中,用译码法(BiM-D)从比特流的一部分中,或从比特流(BS1)中,根据Meta模式(SS)来生成模式(XMLS),其中,在所述的比特流中确定了,所述模式的结构是否已经标准化,其中,已简化了具有元素和/或属性的组,并且对于该情况不执行标准化。
8.按权利要求7的方法,其中,在第二步骤中,用所述同样的译码法(BiM-D)从所述比特流的一个其它的部分或一个其它的比特流(BS2)中,根据所述的模式(XMLS)来生成文档(XML)。
9.按权利要求7的方法,其中,在译码所述的模式(XMLS)期间,用所述同样的译码法(BiM-D)从所述比特流的一个其它的部分或一个其它的比特流(BS2)中,根据所述模式(XMLS)的已经译码的部分来生成文档(XML)。
10.按权利要求7至9之一的方法,其中,如此来重构结构化文档的元素说明和/或属性说明,使得将为了传输而已为其分配了名称和/或代码的匿名类型(AT0)插入到所述各自的元素说明或属性说明中,由该元素说明或属性说明来参考所述各自的匿名类型。
11.按权利要求7至10之一的方法,其中,从所述的比特流中,通过号以及具有在号和类型名称、和/或元素名称、和/或替换组名称之间的分配关系的一个或多个表格来译码类型名称、和/或元素名称、和/或替换组的名称。
12.按权利要求7至11之一的方法,其中,从所述的比特流中,通过包括所述类型名称、和/或元素名称、和/或替换组名称的一个或多个清单,以及所述的类型名称、和/或元素名称、和/或替换组名称在所述清单中的位置,来译码类型名称、和/或元素名称、和/或替换组的名称。
13.按权利要求7至12之一的方法,其中,首先从所述的比特流中对类型、和/或全局元素、和/或替换组的派生树的信息进行译码,其中,每个类型通过关于它相对于原类型的类型代码的信息,和所有涉及所描述类型的类型代码的长度信息来描述,和/或每个全局的元素通过所述SBC的长度和SBC来描述,和/或在替换组中的每个元素通过所述替换代码的长度和替换代码来描述。
14.用于编码结构化文档、尤其XML文档的装置,其中,存在着一个编码单元,该编码单元在第一步骤中标准化模式(XMLS)的结构,其中,简化了具有元素和/或属性的组,该编码单元从所述的标准化的模式中,根据Meta模式(SS)来生成比特流的一部分或比特流(BS1)。
15.用于译码结构化文档、尤其XML文档的装置,其中,存在着一个译码单元,该译码单元从比特流的一部分中,或从比特流(BS1)中,根据Meta模式(SS)来生成模式,其中,在所述的比特流中确定了,所述模式(XMLS)的结构是否已经标准化,其中,已简化了具有元素和/或属性的组,并且对于该情况不执行标准化。
16.按权利要求14的装置,其中,所述的编码单元具有一个可配置的字节代码解释器,该字节代码解释器解释在字节代码中的信息,并且该字节代码解释器根据所述的配置从所述的基于字节代码的结构化文档中生成一个代码,该代码表示路径或有效负荷。
17.按权利要求15的装置,其中,所述的译码单元具有一个可配置的字节代码解释器,该字节代码解释器可以通过来自所述比特流中的信息来配置,并且该字节代码解释器根据所述的配置,从所述的基于字节代码的比特流中生成路径、有效负荷或字节代码。
全文摘要
本发明基本上在于,用编码法根据Meta模式从模式中生成比特流,或比特流的一部分,其中,执行以下的优化中的一项或多项从元素说明和属性说明中分离匿名类型,并编码为特殊类型,该类型的类型定义例示为模式定义中的顶层元素;在编码器方面将语法树标准化;替换类型名称的字符串;传输派生树的信息。译码考虑了这些优化,并且相反地从比特流中生成模式。
文档编号H04N7/24GK1669024SQ03816871
公开日2005年9月14日 申请日期2003年7月7日 优先权日2002年7月15日
发明者J·霍伊尔, A·胡特, U·尼德迈尔 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1