CN102119384B - 用于编码元素的方法和设备 - Google Patents

用于编码元素的方法和设备 Download PDF

Info

Publication number
CN102119384B
CN102119384B CN200980131070.8A CN200980131070A CN102119384B CN 102119384 B CN102119384 B CN 102119384B CN 200980131070 A CN200980131070 A CN 200980131070A CN 102119384 B CN102119384 B CN 102119384B
Authority
CN
China
Prior art keywords
currentelement
data
data structure
coding
previous
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200980131070.8A
Other languages
English (en)
Other versions
CN102119384A (zh
Inventor
陈仁雷
周光华
宋文娟
马小骏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
InterDigital CE Patent Holdings SAS
Original Assignee
Thomson Licensing SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of CN102119384A publication Critical patent/CN102119384A/zh
Application granted granted Critical
Publication of CN102119384B publication Critical patent/CN102119384B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/146Coding or compression of tree-structured data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明提供了一种用于编码一个元素组的方法,其中所述元素组中的每一个元素包括一种类型的数据结构和至少一个属性值,包括步骤:选择一个要进行编码的当前元素;确定所述当前元素是否和前一个经过编码的元素具有相同的数据结构;如果不相同,对所述当前元素的数据结构和所述当前元素的至少一个属性值进行编码;以及,如果相同,对所述当前元素的至少一个属性值进行编码,并且提供一个用于指示所述当前元素具有和所述前一个经过编码的元素相同的数据结构类型的指示值。该方法被用于减少结构信息的编码冗余。

Description

用于编码元素的方法和设备
技术领域
本发明涉及数据处理,尤其涉及用于编码元素的方法和设备。 
背景技术
目前,数据经常以结构化文档的形式进行存储或传输,该结构化文档包括多种不同类型的数据。结构化文档是一组元素,其中每个元素与一种类型和至少一个属性关联,并且元素之间通过层次化的关系相互关联。结构化文档的典型例子是可扩展标记语言(extensible markup language,XML)文档。结构化文档包括用于隔离不同元素的标记(也称作标签)。一个元素本身可以包括一些属性和低级别元素。低级别元素也可以称作子元素。因此,结构化文档可表示为一棵树或层次化结构,每一个节点代表一个元素并且和处于更高层次级别的节点相连。该处于更高层次的节点代表包含该处于低层次的元素的一个元素。处于分支端点的节点代表包含数据的元素,并且该处于分支端点的节点已经不能再被划分为子元素。在这里,处于分支端点的节点的数据也可以被认识是对应于某种类型的元素的属性值。 
在现有的多种用于编码结构化文档的压缩方法中,有一种压缩方法为基于架构(schema)的压缩方法。用于定义结构化文档的架构本身也是结构化文档。架构的典型例子是XML架构。一般来说,XML架构是一组用于定义XML实例的架构组件(component)。架构组件本身也是元素,它是包含架构的数据模型模板的构件(building block)的通称。在使用基于架构的压缩方法压缩结构化文档的一个实例的过程中,首先从架构的定义中生成有限状态机(finite state automation,FSA),然后使用相应的FSA来把架构的一个实例或实例的部分转化成比特流。一些架构组件可能包含出现次数限制(occurrence constraint),由minOccurs和maxOccur两个属性来定义。这种类型的架构组件通常被称作出现次数节点(occurrence node)。 
下面是一个XML架构的例子,在该XML架构中包括一个maxOccur属性设置为100的出现次数节点。 
<?xml                 version=″1.0″            encoding=″ISO-8859-1″?> 
<schema                    targetNamespace=″urn:thomson:SchemaExample″ 
xmlns=″http://www.w3.org/2001/XMLSchema″ 
xmlns:s=″urn:thomson:SchemaExample″ 
xmlns:xs=″http://www.w3.org/2001/XMLSchema″ 
xmlns:xsi=″http://www.w3.org/2001/XMLSchema-instance″> 
      <element name=″testSchema″> 
           <complexType> 
                <choice maxOccurs=″100″> 
                <element name=″e1″type=″xs:string″/> 
                <element name=″e2″type=″xs:string″/> 
                <element name=″e3″type=″xs:string″/> 
                <element name=″e4″type=″xs:string″/> 
                <element name=″e5″type=″xs:string″/> 
                </choice> 
           </complexType> 
      </element> 
</schema> 
下面的例子示出了上述架构的一个实例。 
<?xml version=″1.0″encoding=″ISO-8859-1″?> 
<s:testSchema                         xmlns:s=″um:thomson:SchemaExample″ 
xmlns:b=″urn:thomson:SchemaB″            xmlns:a=″urn:thomson:SchemaA″ 
xmlns:c=″urn:thomson:SchemaC″ 
xmlns:xsi=″http://www.w3.org/2001/XMLSchema-instance″ 
xsi:schemaLocation=″urn:thomson:SchemaExample./SchemaExample.xsd″> 
 <e1>AAAA</e1> 
 <e1>BBBB</e1> 
 <e1>CCCC</e1> 
<e1>DDDD</e1> 
<e1>EEEE</e1> 
</s:testSchema> 
从上述例子中可以看出,元素e1重复了5次,分别带有不同的数据值。传统的基于架构的压缩方法在生成的编码数据流中包含了相同的元素e1的结构信息5次。这被视作冗余。 
发明内容
本发明的一个方面提供了一种用于通过使用定义一个元素组的每一个元素的结构的至少一个架构组件来编码所述元素组的方法,其中所述元素组中的每一个元素包括的数据结构信息和至少一个数据值,包括步骤:选择一个要进行编码的当前元素;确定所述当前元素是否和前一个经过编码的元素具有相同的数据结构;如果不相同,对所述当前元素的数据结构和所述当前元素的至少一个数据值进行编码;以及如果相同,对所述当前元素的至少一个数据值进行编码,并且提供一个与所述当前元素相互关联的用于指示所述当前元素具有和所述前一个经过编码的元素相同的数据结构类型的指示值。 
根据本发明的一个方面,它提供了一种用于通过使用定义一个元素组的每一个元素的结构的至少一个架构组件来解码所述元素组的经过编码的数据的方法,其中,所述元素组中每一个元素包括数据结构信息和至少一个数据值,包括步骤:选择要进行解码的当前元素的经过编码的数据;以及如果基于所述当前元素的经过编码的数据的一部分,确定所述当前元素和前一个经过解码的元素具有相同的数据结构信息,则通过解码所述经过编码的数据来获取至少一个数据值以及通过使用所述前一个经过解码的元素的数据结构信息来获取所述当前元素的数据结构信息,其中,所述经过编码的数据的一部分指示所述当前元素和前一个经过解码的元素具有相同的数据结构信息。 
根据本发明的一个方面,它提供了一种用于通过使用定义一个元素组的每一个元素的结构的至少一个架构组件来对所述元素组进行编码的编码器,其中,所述元素组的每一个元素包括数据结构信息和至少一个数据值,包括:输入模块(402),用于接收数据;以及处理模块(403),用于确定要 被编码的当前元素是否和前一个经过编码的元素具有相同的数据结构信息,响应于确定步骤的否定判断对所述当前元素的数据结构信息和至少一个数据值进行编码,和响应于确定步骤的肯定判断对所述当前元素的至少一个数据值进行编码以及提供一个用于指示所述当前元素具有和前一个经过编码的元素相同的数据结构信息的指示值。 
根据本发明的一个方面,它提供了一种用于通过使用定义一个元素组的每一个元素的结构的至少一个架构组件来对所述元素组的经过编码的数据进行解码的解码器,其中,所述元素组的每一个元素包括的数据结构信息和至少一个属性值数据值,包括:输入模块(502),用于接收要被解码的当前元素的经过编码的数据;以及处理模块(503),用于基于所述当前元素的经过编码的数据的一部分来确定所述当前元素是否具有和前一个经过解码的元素相同的数据结构信息,其中所述经过编码的数据的一部分用于指示所述当前元素是否具有和前一个经过解码的元素相同的数据结构类型;响应于确定步骤的肯定判断,通过解码所述经过编码的数据获取至少一个数据值以及通过使用所述前一个经过解码的元素的数据结构信息来获取所述当前元素的数据结构信息。 
根据本发明的一个方面,减少了结构信息的编码冗余。 
在阅读了本发明的下述具体描述后,可以了解本发明的其他方面和优点。 
下面结合着附图对本发明的实施例进行描述。做为本申请一部分的附图被用于协助读者对本发明的理解。本发明不应局限于这些实施例。 
附图说明
在附图中: 
图1的图根据本发明的实施例示出出现次数节点的状态转移。 
图2的流程图根据本发明的实施例示出编码设备执行的编码方法。 
图3的流程图根据本发明的实施例示出解码设备执行的解码方法。 
图4的块图根据本发明的实施例示出了编码设备。 
图5的块图根据本发明的实施例示出了解码设备。 
具体实施方式
如下将结合附图对本发明的实施例进行描述。为了清楚和简洁起见,一些现有技术中的功能和配置可能会被省略。 
下面的实施例在一个采用基于架构的压缩方法的数据处理环境中被阐述。例如,在ISO网站上的关于ISO/IEC 15938-1:2002/Amd 2:2006信息技术-多媒体内容描述接口-部分1,系统的文档(ISO/IEC 15938-1:2002/Amd 2:2006 Information Technology-Multimedia Content Description Interface-Part1,Systems)。该文档定义一个基于架构的压缩环境的各个方面。下面的实施例被放在这个环境下进行描述,并且同时指出需要对该环境做出的改变。但是应当理解,本发明并不应局限于该描述的实施例。 
在基于架构的压缩方法中,FSA被用于编码元素的结构信息。在这里,实例的结构信息包括在一个结构化文档的实例中除了元素包含的数据值之外的元素组件的信息,例如序列(sequence)、选项(choice)、特性(property)以及其他用于描述元素的结构。图1示出了根据本发明实施例的出现次数节点的状态转移图。FSA使用分路过渡(shunt transition)和循环过渡(loop transition)来对一个或多个元素或者元素组进行编码。循环过渡包括循环开始过渡(loop start transition),循环结束过渡(loop end transition)和循环继续过渡(loop continue transition)。进一步地,增加了重复状态(repeat state)和非重复状态(unrepeat state),用于协助减少冗余的结构信息。 
因为实施例是被放在由ISO/IEC 15938-1:2002/Amd 2:2006信息技术-多媒体内容描述接口-部分1规定的框架中进行描述,并且对该框架做了一些改变,下面将对状态和过渡(transition)做简要的介绍。 
元素过渡(Element transition):当通过的时候,它通知解码器是哪一个元素被呈现。 
类型状态(Type state):当激活时,它对类型编码器进行触发。 
循环过渡:它被用于对一个或多个元素或元素组的解码进行建模。在本实施例中,循环过渡包括循环开始过渡、循环结束过渡、循环继续过渡、重复过渡(repeat transition)和非重复过渡(unrepeat transition)。 
循环开始过渡:当将要编码的一些元素或元素组要出现多次的时候,它将被通过。 
循环继续过渡:当还有至少一个需要被编码的元素或元素组的时候,它将被通过。 
循环结束过渡:当没有需要被编码的元素或元素组的时候,它将被通过。 
编码过渡(code transition):它与二进制码字和签名相关联。当从二进制描述数据流中读取相关联的二进制码字的时候,将通过编码过渡。二进制码字从它的签名中获得。 
分路过渡:它是一种特殊的编码过渡。它的二进制码字的值永远等于0。 
简单状态(Simple state):它没有具体的动作,只是被用于构造状态机。 
重复状态:当元素和它前一个元素有相同的结构信息的时候,它被通过。 
非重复状态:当元素和它前一个元素相比有不同的结构信息的时候,它被通过。 
当对一个XML文件或者XML文件的部分片段进行压缩的时候,对元素逐个进行分析,并且对内嵌元素的元素进行递归。对于对出现次数元素的处理,它在如图1所示的FSA中进行循环。经过的过渡对应的码字(code)形成了编码结果。从背景技术中的XML实例的例子中可以看出元素el出现了5次,并且分别带有不同数据值。首先,状态机通过编码过渡、循环过渡和元素过渡到达类型状态。由于这是第一次元素el出现,状态机通过循环继续过渡直接到达简单状态。然后,在编码第二元素el的过程中状态机第二次到达状态类型。此时,状态机判断第二个元素el的结构信息是否和先前编码的元素的结构信息相同。如果它们相同并且下一个元素依旧是el,那么状态机将通过重复状态到达简单状态。否则,如果它们不相同,状态机则通过非重复状态。重复这个过程一直到所有的元素都被分析过。最后,状态机通过循环 结束过渡到达结束状态。 
编码设备通过使用相应的XML架构来对XML实例进行压缩。图2的流程图根据本发明的实施例示出了编码器设备执行的使用XML架构的编码方法。 
-在步骤201中,编码设备基于XML架构生成全部的FSA,该FSA被用于对XML文件中的元素进行编码。 
-在步骤202中,编码设备接受需要被编码的和该XML架构相关联的XML文件。 
-在步骤203中,编码设备从该XML文件中读取一个元素做为当前元素。 
-在步骤204中,编码设备判断当前元素是否是文件结束(end of file,EOF)。如果是EOF,那么编码设备在步骤205中结束编码过程。如果不是,则进入步骤206。 
-在步骤206中,编码设备通过使用相对应的FSA对当前元素的结构信息进行编码来生成经过编码的结构信息。在这里,经过编码的结构信息通常以二进制的形式存在。此外,当前元素中包含的数据值可以在这一步骤中或者输出最终经过编码的结构信息之后的步骤中被编码,从而生成经过编码的数据值。经过编码的结构信息和经过编码的数据值的组合形成最终的经过编码的元素。为了减少结构信息编码的冗余,如下的步骤将主要关注于对结构信息进行编码的方面。 
-在步骤207中,编码设备判断当前元素是否对应于出现次数节点的一个子元素(sub-element)以及上一个元素是否对应于同样的出现次数节点的一个子元素。如果不是,则进入步骤209;如果是,则进入步骤208。因为该方法致力于减少出现次数节点编码过程中的冗余,该步骤致力于判断当前元素是否属于相同的出现次数节点。因此,当当前元素和上一个元素不属于相同的出现次数节点的时候,就节省了下面的判断步骤。 
-在步骤209中,编码设备输出当前元素的经过编码的结构信息。 
-在步骤208中,编码设备判断当前元素的元素定义信息是否和上一个元素的元素定义信息相同。如果不相同,则进入步骤212;如果相同,则进 入步骤210。该步骤用于区别对应于相同出现次数节点的不同子元素的元素。有时候,该步骤是必要的。这是因为不同元素的不同结构信息可能对应相同的经过编码的结构信息。在这里,元素定义信息是在架构中用于定义元素的结构的信息。从上述的XML架构的例子可以看出元素e1和元素e2在XML架构中的元素定义不同。当编码设备对上一个元素执行步骤206的时候,与上一个元素相关的信息,如元素定义信息、FSA和经过编码的结构信息,被存储在临时的存储设备或易失性存储设备中,如RAM。并且,在当前元素被编码后,对存储设备进行更新。 
-在步骤212中,编码设备输出用于指示不同的指示值(例如比特“0”)以及当前元素的经过编码的结构信息。 
-在步骤210中,编码设备确定当前元素的经过编码的结构信息是否和该XML文件中它前面的元素的经过编码的结构信息相同。该确定步骤是通过比较在步骤206中生成的当前元素的经过编码的结构信息和前面元素的经过编码的结构信息来完成的。如果相同,则进入步骤211;如果不相同,则进入步骤212。 
-在步骤211中,编码设备输出用于指示相同的指示值(例如比特“1”)。在某种意义上,该指示值也可以被认为是一个用于指示经过编码的结构信息是否在最终输出中存在的标记。 
根据本发明的一个方面,本领域的普通技术人员能够认识到步骤207用于判断当前元素和前一个元素是否属于同一个出现次数节点。步骤208和210用于判断XML文件中当前元素的结构信息是否和前一个元素的结构信息相同,这是因为在有些情况下具有不同结构信息的不同的元素可能具有相同的二进制的经过编码的结构信息。此外,应当知晓,在其他使用架构来对结构化文档的实例进行编码的其他环境中,可以使用其他的方法来判断当前元素和前一个元素的结构信息是否相同。通过使用标记来指示经过编码的结构信息是否存在,其减少具有相同结构信息的经过编码的元素的的大小。从而节约了存储空间,以及在传输包括这些元素的XML文件时使用的带宽。 
根据本发明实施例的一个变形,在步骤201中编码设备不生成全部的FSA。代替地,编码设备在编码一个元素之前仅仅生成对应于该元素的FSA。 再或者,全部的FSA预先存储在设备中,而不是在步骤201中生成。 
根据本发明实施例的一个变形,如果使用其他方法或手段能够不使用经过编码的结构信息并且还能够执行步骤210的判断步骤,那么步骤206不是必须一定在步骤207之前执行。但是,在输出经过编码的结构信息之前对元素的结构信息进行编码。 
根据本发明实施例的一个变形,该方面不仅可以应用在整个XML文件上,也可以应用在XML文件的片段(fragment)上。 
图3的流程图示出了根据本发明的实施例的解码设备执行的解码方法。 
-在步骤301中,解码设备基于相应的XML架构生成用于解码结果编码的元素的全部的FSA。 
-在步骤302中,解码设备获取属于出现次数节点的当前的经过编码的元素。 
-在步骤303中,解码设备基于经过编码的元素中包含的指示值来判断当前元素的结构信息是否和前一个元素的结构信息相同。如果相同,则进入步骤304;如果不同,则进入步骤305。做为一个示例,指示值为比特“1”时表面当前元素的结构信息和前一个元素的结构信息相同;比特“0”时表面不同。换句话来说,该指示值可以被视作用于指示经过编码的信息是否存在于经过编码的元素之中的标记。在这里,当前一个元素被解码设备解码的时候,与前一个元素相关的信息被暂时地存储在缓存中或一个存储设备中。并且,在解码设备对当前元素解码之后,缓存或存储设备的内容被更新。 
-在步骤304中,解码设备输出存储的前一个元素的结构信息。 
-在步骤305中,解码设备基于相应的FSA对经过编码的结构信息进行解码,从而生成当前元素的结构信息;并且输出当前元素的结构信息。进一步地,对于经过编码的数据值进行解码的过程可以在对经过编码的结构信息进行解码的过程之中或者过程之后进行。 
根据本发明的实施例,提供用于在基于架构的压缩环境中携带经过编码的出现次数节点类型的元素的数据结构。该数据结构包括指示域,并且有可能包括结构信息域和内容域,分别用于承载该元素的经过编码的结构信息和经过编码的数据值。指示域用于指示该元素的结构信息是否和前一个元素的 结构信息相同。如果该元素的结构信息和前一个元素的结构信息相同,则赋予指示域一个用于指示结构信息相同并且结构信息域不存在的数值。相反地,如果不相同,则赋予指示域一个用于指示结构信息不同并且结果信息域存在的数值。因此,该指示域也能够用于指示结构信息域是否存在。 
图4的块图根据本发明的实施例描述了编码设备。编码设备400包括FSA模块401,输入模块402,处理模块403,输出模块404和缓存模块405。FSA模块401用于基于XML架构向处理模块403提供FSA。FSA的提供可以通过如下的方式:响应于处理模块对FSA的请求,FSA模块401生成相应的FSA;或FSA模块401首先基于XML架构生成全部的FSA,在存储设备中存储全部的FSA,然后响应于对FSA的请求向处理模块403提供FSA。输入模块402用于接收数据。输出模块404用于输出数据。缓存模块405用于缓存数据。处理模块403用于从输入模块402接收一个要被编码的元素做为当前元素,并且基于缓存模块405提供的前一个元素的结构信息判断当前元素的结构信息是否和前一个元素的结构信息相同。如果相同,处理模块403使用输入模块404输出用于指示不存在经过编码的结构信息的指示值。如果不相同,处理模块403使用输入模块404输出用于指示存在经过编码的结构信息的指示值,并且处理模块被进一步用于基于从FSA模块401接收的相应的FSA对当前元素的结构信息进行编码来生成当前元素的经过编码的结构信息。在这里,当处理模块403对前一个元素进行编码的时候,与前一个元素相关的信息,如前一个元素的经过编码的结构信息,被存储在缓存模块405。并且,在当前元素被编码之后对缓存模块405中存储的信息进行更新。 
图5的块图根据本发明的实施例描述了解码设备。解码设备500包括FSA模块501,输入模块502,处理模块503,输出模块504和缓存模块505。FSA模块501用于基于XML架构为处理模块503提供FSA。输入模块502用于接收数据。输出模块504用于输出数据。缓存模块505用于缓存数据。解码设备500的处理模块503用于通过使用从FSA模块501接收的相应的FSA基于从输入模块502接收的数据来生成元素的结构信息。具体来说,处理模块503从输入模块502接收经过编码的元素做为当前的经过编码的元 素,并且基于包含在经过编码的元素中的指示值判断当前元素的结构信息是否和前一个元素的结构信息相同。如果相同,处理模块503使用输出模块504输出前一个元素的结构信息。前一个元素的结构信息在对前一个元素的经过编码的结构信息进行解码的时候被存储在缓存模块505中。相反地,如果不相同,处理模块503基于从FSA模块501接收的相应的FSA对当前元素的经过编码的结构信息进行解码,并且使用输出模块504输出当前元素的结构信息。在这里,在处理模块503对前一个元素进行解码的时候,与前一个元素相关的信息,如前一个元素的结构信息,被存储在缓存模块505中。并且,在对当前的经过编码的元素解码之后,对缓存模块505中的信息进行更新。 
下面提供了实验数据以及注释。例子中的架构及其XML实例被置于由ISO/IEC 15938-1:2002/Amd 2:2006信息技术-多媒体内容描述接口-部分1规定的框架中。 
0000 0100#元素个数 
000#位置码 
0#类型标记 
0 0100#字符串的大小 
0100 0001 0100 0001 0100 0001 0100 0001#字符串的值 
000#位置码 
0#类型标记 
0 0100 
0100 0010 0100 0010 0100 0010 0100 0010#字符串的值 
000#位置码 
0#类型标记 
0 0100#字符串的大小 
0100 0011 0100 0011 0100 0011 0100 0011#字符串的值 
000#位置码 
0#类型标记 
0 0100#字符串的大小 
0100 0100 0100 0100 0100 0100 0100 0100#字符串的值 
000#位置码 
0#类型标记 
0 0100#字符串的大小 
0100 0101 0100 0101 0100 0101 0100 0101#字符串的值 
000 
根据本发明的实施例的输出如下所示: 
0000 0100#元素个数 
000#位置码 
0#类型标记 
0 0100#字符串的大小 
0100 0001 0100 0001 0100 0001 0100 0001#字符串的值 
1#重复标记 
0 0100#字符串的大小 
0100 0010 0100 0010 0100 0010 0100 0010#字符串的值 
1#重复标记 
0 0100#字符串的大小 
0100 0011 0100 0011 0100 0011 0100 0011#字符串的值 
1#重复标记 
0 0100#字符串的大小 
0100 0100 0100 0100 0100 0100 0100 0100#字符串的值 
1#重复标记 
0 0100#字符串的大小 
0100 0101 0100 0101 0100 0101 0100 0101#字符串的值 
000 
从上述的实验数据可以看出冗余的结构信息减少了。 
本发明描述了几个实施例。但是应该了解到,还可以对已描述的实施例做各种修改。例如,不同实施例中的元素能够被结合、补充、修改或者移除,从而生成不同的实施例。此外,本领域的普通技术人员应当理解可以使 用其他结构或者步骤来代替说明书公开的结构或步骤,并且新的实施例能够以基本相同的方式,实现基本相同的功能,并且具备基本相同的有益效果。 

Claims (13)

1.一种用于通过使用至少一个架构组件来编码作为结构化文档的一个元素组的数据的方法,所述至少一个架构组件定义所述元素组的每一个元素的结构,其中所述元素组中的每一个元素包括数据结构信息和至少一个数据值,其特征在于,包括步骤:
选择一个要进行编码的当前元素;
确定所述当前元素是否和前一个经过编码的元素具有相同的数据结构;如果不相同,对所述当前元素的数据结构和所述当前元素的至少一个数据值进行编码;以及
如果相同,对所述当前元素的至少一个数据值进行编码,并且提供一个与所述当前元素相互关联的用于指示所述当前元素具有和所述前一个经过编码的元素相同的数据结构类型的指示值。
2.如权利要求1所述的方法,其特征在于,在确定所述当前元素是否和所述前一个经过编码的元素具有相同的数据结构的步骤之前,还包括
确定所述当前元素和所述前一个经过编码的元素是否对应相同的出现次数节点的子元素;如果不相同,输出所述当前元素经过编码的数据结构信息;以及
如果相同,则转到用于确定所述当前元素和所述前一个经过编码的元素是否具有相同数据结构的步骤。
3.如权利要求1或2所述的方法,其特征在于确定所述当前元素是否和所述前一个经过编码的元素具有相同的数据结构的步骤进一步包括:
确定所述当前元素的经过编码的数据结构信息是否和所述前一个经过编码的元素的经过编码的数据结构信息相同。
4.如权利要求3的所述的方法,其特征在于,在确定所述当前元素的经过编码的数据结构信息是否和所述前一个经过编码的元素的经过编码的数据结构信息相同的步骤之前,所述方法进一步包括:
通过使用所述至少一个架构组件来确定所述当前元素的元素定义信息是否和所述前一个经过编码的元素的元素定义信息相同;
如果不相同,输出用于指示不同的指示值以及当前元素经过编码的数据结构信息;以及
如果相同,则转到用于确定所述当前元素的经过编码的数据结构信息是否和所述前一个经过编码的元素的经过编码的数据结构信息相同的确定步骤。
5.如权利要求1所述的方法,其特征在于对所述当前元素的数据结构信息进行编码的步骤进一步包括:
从所述至少一个架构组件中获取对应于所述当前元素的编码工具,以用于对所述当前元素的数据结构信息进行编码(201);以及
基于所述编码工具对所述当前元素的数据结构信息进行编码(206)。
6.如权利要求1、2和5中的任一权利要求所述的方法,其特征在于所述元素组来自与所述至少一个架构组件相关的文件或片段。
7.一种用于通过使用至少一个架构组件来解码作为结构化文档的一个元素组的经过编码的数据的方法,所述至少一个架构组件定义所述元素组的每一个元素的结构,其中,所述元素组中每一个元素包括数据结构信息和至少一个数据值,其特征在于,包括步骤:
选择要进行解码的当前元素的经过编码的数据;以及
如果基于所述当前元素的经过编码的数据的一部分,确定所述当前元素和前一个经过解码的元素具有相同的数据结构信息,则通过解码所述经过编码的数据来获取至少一个数据值以及通过使用所述前一个经过解码的元素的数据结构信息来获取所述当前元素的数据结构信息,其中,所述经过编码的数据的一部分指示所述当前元素和前一个经过解码的元素具有相同的数据结构信息。
8.如权利要求7所述的方法,其特征在于,进一步包括:
如果确定所述当前元素和所述前一个经过解码的元素相比具有不同的数据结构信息,通过对所述当前元素的经过编码的数据进行解码从而获取所述当前元素的至少一个数据值和数据结构信息。
9.一种用于通过使用至少一个架构组件来编码作为结构化文档的一个元素组的数据的编码器,所述至少一个架构组件定义所述元素组的每一个元素的结构,其中,所述元素组的每一个元素包括数据结构信息和至少一个数据值,其特征在于,包括:
输入模块(402),用于接收数据;以及
处理模块(403),用于确定要被编码的当前元素是否和前一个经过编码的元素具有相同的数据结构信息,响应于确定步骤的否定判断对所述当前元素的数据结构信息和至少一个数据值进行编码,和响应于确定步骤的肯定判断对所述当前元素的至少一个数据值进行编码以及提供一个用于指示所述当前元素具有和前一个经过编码的元素相同的数据结构信息的指示值。
10.如权利要求9所述的编码器,其特征在于,所述当前元素和所述前一个经过编码的元素对应于出现次数节点的子元素,以及所述处理模块(403)使用所述至少一个架构组件来对数据结构信息进行编码。
11.如权利要求10所述的编码器,其特征在于,所述编码器进一步包括:
编码工具模块(401),用于从所述至少一个架构组件中获取用于对元素的数据结构信息进行编码的有限状态机;以及所述对数据结构信息进行编码的步骤进一步包括:
所述处理模块(403)进一步用于基于由所述编码工具模块(401)提供的与所述当前元素对应的有限状态机来对当前元素的数据结构信息进行编码。
12.一种用于通过使用至少一个架构组件来解码作为结构化文档的一个元素组的经过编码的数据的解码器,所述至少一个架构组件定义所述元素组的每一个元素的结构,其中,所述元素组的每一个元素包括数据结构信息和至少一个属性值数据值,其特征在于,包括:
输入模块(502),用于接收要被解码的当前元素的经过编码的数据;以及
处理模块(503),用于基于所述当前元素的经过编码的数据的一部分来确定所述当前元素是否具有和前一个经过解码的元素相同的数据结构信息,其中所述经过编码的数据的一部分用于指示所述当前元素是否具有和前一个经过解码的元素相同的数据结构类型;响应于确定步骤的肯定判断,通过解码所述经过编码的数据获取至少一个数据值以及通过使用所述前一个经过解码的元素的数据结构信息来获取所述当前元素的数据结构信息。
13.如权利要求12所述的解码器,其特征在于,响应于确定步骤的否定判断,所述处理模块(503)通过对所述当前元素的经过编码的数据进行解码获取所述当前元素的数据结构信息和至少一个数据值。
CN200980131070.8A 2008-09-08 2009-09-04 用于编码元素的方法和设备 Active CN102119384B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP08305534.3 2008-09-08
EP08305534A EP2161667A1 (en) 2008-09-08 2008-09-08 Method and device for encoding elements
PCT/EP2009/061479 WO2010026223A1 (en) 2008-09-08 2009-09-04 Method and device for encoding elements

Publications (2)

Publication Number Publication Date
CN102119384A CN102119384A (zh) 2011-07-06
CN102119384B true CN102119384B (zh) 2014-06-11

Family

ID=41090333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980131070.8A Active CN102119384B (zh) 2008-09-08 2009-09-04 用于编码元素的方法和设备

Country Status (5)

Country Link
US (1) US8193952B2 (zh)
EP (2) EP2161667A1 (zh)
JP (1) JP5536066B2 (zh)
CN (1) CN102119384B (zh)
WO (1) WO2010026223A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10311137B2 (en) 2015-03-05 2019-06-04 Fujitsu Limited Grammar generation for augmented datatypes for efficient extensible markup language interchange

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1820269A (zh) * 2004-05-20 2006-08-16 株式会社东芝 运动图像中对象的元数据流的数据结构,及其搜索方法和重放方法
CN101067814A (zh) * 2007-05-10 2007-11-07 浪潮集团山东通用软件有限公司 数据访问层Xml格式数据与关系数据间的映射转换方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2813743B1 (fr) * 2000-09-06 2003-01-03 Claude Seyrat Procede de compression/decompression de documents structures
JP3894280B2 (ja) * 2001-02-02 2007-03-14 インターナショナル・ビジネス・マシーンズ・コーポレーション Xmlデータの符号化方法、符号化されたxmlデータの復号化方法、xmlデータの符号化システム、符号化されたxmlデータの復号化システム、プログラムおよび記録媒体
US7158990B1 (en) * 2002-05-31 2007-01-02 Oracle International Corporation Methods and apparatus for data conversion
JP2005148970A (ja) * 2003-11-13 2005-06-09 Meidensha Corp データ変換方法
JP2005284903A (ja) * 2004-03-30 2005-10-13 Matsushita Electric Ind Co Ltd 文書符号化装置、文書復号化装置、文書符号化方法及び文書復号化方法
US8346737B2 (en) * 2005-03-21 2013-01-01 Oracle International Corporation Encoding of hierarchically organized data for efficient storage and processing
TWI295446B (en) * 2005-12-30 2008-04-01 Ind Tech Res Inst Executing system and executing method of intelligent rule base service
KR20090017030A (ko) * 2007-08-13 2009-02-18 삼성전자주식회사 메타데이터 인코딩/디코딩 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1820269A (zh) * 2004-05-20 2006-08-16 株式会社东芝 运动图像中对象的元数据流的数据结构,及其搜索方法和重放方法
CN101067814A (zh) * 2007-05-10 2007-11-07 浪潮集团山东通用软件有限公司 数据访问层Xml格式数据与关系数据间的映射转换方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Ramez Alkhatib,Marc H. Scholl.Efficient Compression and Querying of XML Repositories.《19th International Conference on Database and Expert Systems Application》.2008,365-369页. *
Sebastian Maneth, Nikolay Mihaylov, Sherif Sakr.XML Tree Structure Compression.《19th International Conference on Database and Expert Systems Application》.2008,243-247页.
XML Tree Structure Compression;Sebastian Maneth, Nikolay Mihaylov, Sherif Sakr;《19th International Conference on Database and Expert Systems Application》;20080901;全文 *

Also Published As

Publication number Publication date
WO2010026223A1 (en) 2010-03-11
JP2012502337A (ja) 2012-01-26
CN102119384A (zh) 2011-07-06
JP5536066B2 (ja) 2014-07-02
EP2327028A1 (en) 2011-06-01
US8193952B2 (en) 2012-06-05
US20110148673A1 (en) 2011-06-23
EP2327028B1 (en) 2023-06-28
EP2161667A1 (en) 2010-03-10

Similar Documents

Publication Publication Date Title
US20110283183A1 (en) Method for compressing/decompressing structured documents
JP3368883B2 (ja) データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
CN111262876B (zh) 基于区块链的数据处理方法、装置、设备以及存储介质
JP3865694B2 (ja) 構造化文書の木構造におけるパスの符号化および復号化方法
CN101346689A (zh) 压缩模式表示对象和用于元数据处理的方法
CN1251135C (zh) 自描述数据标签
US8949207B2 (en) Method and apparatus for decoding encoded structured data from a bit-stream
US20110153531A1 (en) Information processing apparatus and control method for the same
CN101807205A (zh) 用于处理xml数据的处理模块、设备和方法
US20140026029A1 (en) Efficient xml interchange schema document encoding
CN104424010B (zh) 一种文本文档乱码检测及修复方法和系统
CN102203734B (zh) 条件处理方法和设备
CN102708106B (zh) Exi 编码器
US7676742B2 (en) System and method for processing of markup language information
CN105071990A (zh) 一种通用的信息系统接口测试方法及装置
CN102119384B (zh) 用于编码元素的方法和设备
JPH10164374A (ja) パタン符号化方式及び復号化方式とこの方式を用いた符号化装置及び復号化装置
US20040107297A1 (en) Method for improving the functions of the binary representation of mpeg-7 and other xml-based content descriptions
US20010030615A1 (en) Variable length decoding system and method
US20090307243A1 (en) Coding Positions of Data Elements In A Data Structure
CN100449530C (zh) 大纲、语法分析方法和基于一种大纲生成一个位流的方法
US10931303B1 (en) Data processing system
CN101099387B (zh) 用于编码/解码轻便应用场景表示二进制表示的点序列的方法和装置
US8898559B2 (en) Method for encoding an XML-based document
CN115293105A (zh) 字符编译方法及装置、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: I Si Eli Murli Nor, France

Patentee after: THOMSON LICENSING

Address before: BLONEY-BIYANGU CITY, FRANCE

Patentee before: THOMSON LICENSING

CP02 Change in the address of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20190520

Address after: Paris France

Patentee after: Interactive digital CE patent holding Co.

Address before: I Si Eli Murli Nor, France

Patentee before: THOMSON LICENSING

TR01 Transfer of patent right