CN102119384A - 用于编码元素的方法和设备 - Google Patents
用于编码元素的方法和设备 Download PDFInfo
- Publication number
- CN102119384A CN102119384A CN2009801310708A CN200980131070A CN102119384A CN 102119384 A CN102119384 A CN 102119384A CN 2009801310708 A CN2009801310708 A CN 2009801310708A CN 200980131070 A CN200980131070 A CN 200980131070A CN 102119384 A CN102119384 A CN 102119384A
- Authority
- CN
- China
- Prior art keywords
- currentelement
- data structure
- previous
- coding
- property value
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/146—Coding 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=″urn: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次,分别带有不同的数据值。传统的基于架构的压缩方法在生成的编码数据流中包含了相同的元素el的结构信息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 (16)
1.一种用于编码一个元素组的方法,其中所述元素组中的每一个元素包括一种类型的数据结构和至少一个属性值,其特征在于,包括步骤:
选择一个要进行编码的当前元素;
确定所述当前元素是否和前一个经过编码的元素具有相同的数据结构;如果不相同,对所述当前元素的数据结构和所述当前元素的至少一个属性值进行编码;以及
如果相同,对所述当前元素的至少一个属性值进行编码,并且提供一个用于指示所述当前元素具有和所述前一个经过编码的元素相同的数据结构类型的指示值。
2.如权利要求1所述的方法,其特征在于,在所述元素组中,所述当前元素紧邻所述前一个经过编码的元素。
3.如权利要求1或2所述的方法,其特征在于,所述当前元素和所述前一个经过编码的元素都是出险次数节点类型,并且编码步骤使用架构。
4.如权利要求1到3任一权利要求所述的方法,其特征在于,所述方法进一步包括:
如果不相同,提供另一个指示值,用于指示所述当前元素具有和所述前一个经过编码的元素不同的数据结构类型。
5.如权利要求3所述的方法,其特征在于使用所述架构进行编码的步骤进一步包括:
从所述架构中获取对应于所述当前元素的编码工具,以用于对所述当前元素的数据结构进行编码(201);以及
基于所述编码工具对所述当前元素的数据结构进行编码(206)。
6.如权利要求1到5任一权利要求所述的方法,其特征在于所述元素组来自与所述架构相关的文件或片段。
7.一种用于解码一个元素组的经过编码的数据的方法,其中,所述元素组中每一个元素包括一种类型的数据结构和至少一个属性值,其特征在于,包括步骤:
选择要进行解码的当前元素的经过编码的数据;以及
如果基于所述经过编码的数据的一部分,确定所述当前元素和前一个经过解码的元素具有相同的数据结构类型,则通过解码所述经过编码的数据来获取至少一个属性值以及通过使用所述前一个经过解码的元素的数据结构来获取所述当前元素的数据结构,其中,所述经过编码的数据的一部分指示所述当前元素和前一个经过解码的元素具有相同的数据结构类型。
8.如权利要求7所述的方法,其特征在于,进一步包括:
如果确定所述当前元素和所述前一个经过解码的元素相比具有不同的数据结构类型,通过对所述当前元素的经过编码的数据进行解码从而获取所述当前元素的至少一个属性值和数据结构。
9.一种用于携带当前元素的经过编码的数据的数据结构,其中,所述当前元素具有一种类型的数据结构和至少一个属性值,其特征在于,包括:
属性值域用于携带所述当前元素的至少一个属性值的经过编码的数据;以及
指示域用于指示所述当前元素是否具有和前一个经过编码的元素相同的数据结构类型。
10.一种用于对一个元素组进行编码的编码器,其中,所述元素组的每一个元素包括一种类型的数据结构和至少一个属性值,其特征在于,包括:
输入模块(402),用于接收数据;以及
处理模块(403),用于确定要被编码的当前元素是否和前一个经过编码的元素具有相同的数据结构,响应于确定步骤的否定判断对所述当前元素的数据结构和至少一个属性值进行编码,和响应于确定步骤的肯定判断对所述当前元素的至少一个属性值进行编码以及提供一个用于指示所述当前元素具有和前一个经过编码的元素相同的数据结构类型的指示值。
11.如权利要求10所述的编码器,其特征在于,所述当前元素和所述前一个经过编码的元素都是出现次数节点类型,以及所述处理模块(403)使用架构来对数据结构进行编码。
12.如权利要求11所述的编码器,其特征在于,所述编码器进一步包括:
编码工具模块(401),用于从所述架构中获取用于对元素的数据结构进行编码的工具;以及所述对数据结构进行编码的步骤进一步包括:
所述处理模块(403)进一步用于基于由所述编码工具模块(401)提供的与所述当前元素对应的工具来对当前元素的数据结构进行编码。
13.一种用于对一个元素组的经过编码的数据进行解码的解码器,其中,所述元素组的每一个元素包括一种类型的数据结构和至少一个属性值,其特征在于,包括:
输入模块(502),用于接收要被解码的当前元素的经过编码的数据;以及
处理模块(503),用于基于所述经过编码的数据的一部分来确定所述当前元素是否具有和前一个经过解码的元素相同的数据结构类型,其中所述经过编码的数据的一部分用于指示所述当前元素是否具有和前一个经过解码的元素相同的数据结构类型;响应于确定步骤的肯定判断,通过解码所述经过编码的数据获取至少一个属性值以及通过使用所述前一个经过解码的元素的数据结构来获取所述当前元素的数据结构。
14.如权利要求13所述的解码器,其特征在于,响应于确定步骤的否定判断,所述处理模块(503)通过对所述当前元素的经过编码的数据进行解码获取所述当前元素的数据结构和至少一个属性值。
15.一种用于对一个元素组进行编码的存储介质,其中所述元素组的每一个元素包括一种类型的数据结构和至少一个属性值,其特征在于,包括用于如下功能的指令:
选择一个要进行编码的当前元素;
确定所述当前元素是否和前一个经过编码的元素具有相同的数据结构;如果不相同,对所述当前元素的数据结构和所述当前元素的至少一个属性值进行编码;以及
如果相同,对所述当前元素的至少一个属性值进行编码,并且提供一个用于指示所述当前元素具有和所述前一个经过编码的元素相同的数据结构类型的指示值。
16.一种用于对一个元素组的经过编码的数据进行解码的存储介质,其中所述元素组的每一个元素包括一种类型的数据结构和至少一个属性值,其特征在于,包括用于如下功能的指令:
选择要进行解码的当前元素的经过编码的数据;以及
如果基于所述经过编码的数据的一部分,确定所述当前元素和前一个经过解码的元素具有相同的数据结构类型,则通过解码所述经过编码的数据来获取至少一个属性值以及通过使用所述前一个经过解码的元素的数据结构来获取所述当前元素的数据结构,其中,所述经过编码的数据的一部分指示所述当前元素和前一个经过解码的元素具有相同的数据结构类型。
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 true CN102119384A (zh) | 2011-07-06 |
CN102119384B 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)
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)
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)
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 | 삼성전자주식회사 | 메타데이터 인코딩/디코딩 방법 및 장치 |
-
2008
- 2008-09-08 EP EP08305534A patent/EP2161667A1/en not_active Withdrawn
-
2009
- 2009-09-04 WO PCT/EP2009/061479 patent/WO2010026223A1/en active Application Filing
- 2009-09-04 EP EP09811130.5A patent/EP2327028B1/en active Active
- 2009-09-04 JP JP2011525563A patent/JP5536066B2/ja active Active
- 2009-09-04 US US12/737,936 patent/US8193952B2/en active Active
- 2009-09-04 CN CN200980131070.8A patent/CN102119384B/zh active Active
Patent Citations (2)
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 (2)
Title |
---|
RAMEZ ALKHATIB,MARC H. SCHOLL: "Efficient Compression and Querying of XML Repositories", 《19TH INTERNATIONAL CONFERENCE ON DATABASE AND EXPERT SYSTEMS APPLICATION》 * |
SEBASTIAN MANETH, NIKOLAY MIHAYLOV, SHERIF SAKR: "XML Tree Structure Compression", 《19TH INTERNATIONAL CONFERENCE ON DATABASE AND EXPERT SYSTEMS APPLICATION》 * |
Also Published As
Publication number | Publication date |
---|---|
JP5536066B2 (ja) | 2014-07-02 |
US20110148673A1 (en) | 2011-06-23 |
EP2161667A1 (en) | 2010-03-10 |
EP2327028B1 (en) | 2023-06-28 |
JP2012502337A (ja) | 2012-01-26 |
CN102119384B (zh) | 2014-06-11 |
US8193952B2 (en) | 2012-06-05 |
EP2327028A1 (en) | 2011-06-01 |
WO2010026223A1 (en) | 2010-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110283183A1 (en) | Method for compressing/decompressing structured documents | |
JP3368883B2 (ja) | データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置 | |
CN100437562C (zh) | 用于xml文档的结构化流播的方法和装置 | |
US9128912B2 (en) | Efficient XML interchange schema document encoding | |
KR20040007442A (ko) | 구조화된 문서를 압축/복원하기 위한 방법 | |
EP1913697A2 (en) | Methods and devices for compressing and decompressing structured documents | |
CN1251135C (zh) | 自描述数据标签 | |
US20040107402A1 (en) | Method for encoding and decoding a path in the tree structure of a structured document | |
US10282400B2 (en) | Grammar generation for simple datatypes | |
CN104424010B (zh) | 一种文本文档乱码检测及修复方法和系统 | |
CN102203734B (zh) | 条件处理方法和设备 | |
CN116757158A (zh) | 基于半导体存储的数据管理方法 | |
US7676742B2 (en) | System and method for processing of markup language information | |
JP3080149B2 (ja) | パタン符号化方法及び復号化方法とこの方法を用いた符号化装置及び復号化装置 | |
CN110322385B (zh) | 水印嵌入以及提取方法、装置及电子设备 | |
CN102119384B (zh) | 用于编码元素的方法和设备 | |
US7797346B2 (en) | Method for improving the functionality of the binary representation of MPEG-7 and other XML based content descriptions | |
JP2006519422A (ja) | 構造化されたドキュメントのエンコーディング方法 | |
US6691275B1 (en) | Encoder with vector-calculated disparity logic | |
US10311137B2 (en) | Grammar generation for augmented datatypes for efficient extensible markup language interchange | |
US10019418B2 (en) | Efficient XML interchange profile stream decoding | |
US8898559B2 (en) | Method for encoding an XML-based document | |
KR100968083B1 (ko) | 구조화된 문서들, 특히 xml 문서들을인코딩/디코딩하기 위한 방법 및 장치 | |
CN115361454B (zh) | 消息序列编码、解码、传输方法及编码、解码设备 | |
US7043502B1 (en) | Methodology for JEDEC file repair through compression field techniques |
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 | ||
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 |
|
TR01 | Transfer of patent right | ||
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 |