U.S. patent application number 10/467047 was filed with the patent office on 2004-06-03 for method for improving the functions of the binary representation of mpeg-7 and other xml-based content descriptions.
Invention is credited to Heuer, Jorg, Hutter, Andreas, Niedermeier, Ulrich.
Application Number | 20040107297 10/467047 |
Document ID | / |
Family ID | 7672499 |
Filed Date | 2004-06-03 |
United States Patent
Application |
20040107297 |
Kind Code |
A1 |
Heuer, Jorg ; et
al. |
June 3, 2004 |
Method for improving the functions of the binary representation of
mpeg-7 and other xml-based content descriptions
Abstract
The aim of the invention is to encode string-based data types,
which have for example a tree-type structure, in such a way that
signal bits (flags) for optional sections and/or for length
information concerning the codes that are of variable length are
placed in a defined sequence at the beginning of the created
bitstream, thus accelerating the search for data by means of a
sorting process and bit mask queries. The invention also relates to
a more efficient encoding of the #position field by, among other
things, the assignment of code fragments for each group of regular
expressions.
Inventors: |
Heuer, Jorg; (Munchen,
DE) ; Hutter, Andreas; (Munchen, DE) ;
Niedermeier, Ulrich; (Muenchen, DE) |
Correspondence
Address: |
BELL, BOYD & LLOYD, LLC
P. O. BOX 1135
CHICAGO
IL
60690-1135
US
|
Family ID: |
7672499 |
Appl. No.: |
10/467047 |
Filed: |
January 27, 2004 |
PCT Filed: |
January 31, 2002 |
PCT NO: |
PCT/DE02/00343 |
Current U.S.
Class: |
709/247 ;
375/E7.024; 707/E17.019; 707/E17.058 |
Current CPC
Class: |
G06F 16/50 20190101;
H04N 21/435 20130101; H04N 21/235 20130101; H04N 21/2353 20130101;
G06F 16/30 20190101 |
Class at
Publication: |
709/247 |
International
Class: |
G06F 015/16 |
Foreign Application Data
Date |
Code |
Application Number |
Feb 1, 2001 |
DE |
101 04 537.9 |
Claims
1. Method for improving the functionality of a binary
representation of XML-based content descriptions, in which a
string-based data type (T(S)) which is defined by a regular
expression (RRA2(T(S))) is mapped in such as way that the signaling
bits (SOP) for optional parts and/or length information (LVLC) of
variable-length codes are placed in a defined order, derived from
the regular expression at the start of a bit stream (BS2) for
instantiation of the string-based data type.
2. Method in accordance with claim 1, in which the data in the bit
stream in at least one instantiation are searched in such a way
that initially signaling bits are checked for whether they contain
specific optional parts of the regular expression at all.
3. Method in accordance with claim 1, in which the data in the bit
stream in at least one instantiation are searched in such a way
that initially signaling bits are used in advance in the decoder to
provide the corresponding resources for processing and/or storing
the contained data fields.
4. Method in accordance with claim 2 or 3, in which length
information is used to generate a bit pattern for searching in the
remaining bit stream (RBS).
5. Method for improving the functionality of a binary
representation of XML-based content descriptions, in which a data
type (T) is mapped in such a way that structure elements in
different groups of the representation are assigned different tree
branching codes (SBC) and that the position codes (#pos)feature
different code fragments (CF) for different nesting depths in which
the structure elements occur.
Description
[0001] The invention relates to the encoding and decoding of
XML-based structured documents, as provided for in MPEG-7 for
example. XML (extensible markup language) is a standard for the
definition of document structures and is used to represent
structured data in a text file and typically forms the basis of the
language XHTML. These XML-based structured documents are based on a
set of structured elements--also referred to as a "Schema" below in
this document--as can be specified for example using Document Type
Definition (DTD), XML Schema or Multimedia Description Schemes
(DS).
[0002] The binary format of MPEG-7 files and the setting up of
navigation paths using tree-structured code tables is known from
[1] for example.
[0003] The invention relates to the optimization of the encoding of
structured XML documents. The underlying object of the invention
now consists of specifying methods for improving the functionality
of the binary representation of XML-based content descriptions,
especially of MPEG-7 documents, in which the volume of data to be
transmitted is as small as possible and search processes within the
encoded document as well as the further processing of the encoded
document are as simple as possible.
[0004] This object is achieved in accordance with the invention by
the features of claims 1 and 4. The other claims relate to
advantageous further developments of the inventive method.
[0005] One of the conclusions from the above-mentioned ISO/IEC
Draft [1] is that the structure of an XML document can be recorded
as a data tree in which each element of the description corresponds
to a node in this tree. The structure of the nodes is determined by
the definition in the schema underlying the document. In particular
it defines the type and number of child elements. The prototype of
such a node is shown for example on Page 19 of [1]. This tree
structure node consists of the name of the element or complex type,
a field with code words TBC (Tree Branch Code) which serve to
reference the child elements and the tree branches which represent
the references to the corresponding child elements. It can also be
taken from [1] that the TBCs can be divided up into two components,
namely schema branching and position information, whereby the
schema information is derived from the elements that occur in the
schema as child elements, whereas the position information contains
the position information for those elements which can occur
multiple times. The possible types of child element in these cases
are complex type elements which in their turn can contain other
child elements, but also simple type elements or attributes that
cannot contain child elements. The length of the field #position is
defined by the maximum number ("maxOccurs") of the element
concerned which is specified in the schema.
[0006] To move around in the document the TBCs, that is the Schema
Branch Codes, and if necessary the position codes are concatenated,
which produces a path in the document. If the desired element is
reached, the last code will be inserted in the table. If the
desired element cannot have any further children, i.e. it is an
attribute or a simple type, then this termination code is not
necessary and will not be sent. In this case the attribute or the
simple type element is subsequently transmitted encoded. The
invention now essentially consists of encoding string-based data
types, that is updated types derived directly or indirectly from
the data type string, of which the possible content is specified
using regular expressions [4] and which for example can be
represented as a tree-type structure, in such a way of that signal
bits (flags) for optional parts and/or length information of the
variable length codes are in accordance with a general method in a
defined order and that by on the one hand the processing of the
information contained in the data type can be simplified by
preceding information about the content and also the search for
data can be accelerated by sorting out and bit mask interrogations.
Furthermore the invention relates to a more efficient encoding of
the #position field by assigning specific code fragments for each
grouping of elements in accordance with the definition of the data
type.
[0007] The invention is explained below in more detail on the basis
of the examples shown in the diagrams. The diagrams show
[0008] FIG. 1 a regular expression for definition of a string-based
data type with a number of nested optional parts,
[0009] FIG. 2 a first representation of the regular expression
shown in FIG. 1 together with the associated bit stream created for
a string-based data type,
[0010] FIG. 3 a further representation of the regular expressions
shown in FIG. 1 together with the associated bit stream for the
string-based data type to explain the invention and
[0011] FIG. 4 a representation for a regular expression to explain
the improvement in encoding efficiency in accordance with the
invention.
[0012] FIG. 1 shows a description of a string-based data type
specified by a regular expression with optional parts. The regular
expressions contained in the definition of the data type are for
example specified in more detail in [4]. Below the regular
expressions of simple optionally present parts 1, 4 und 5 as well
as nested optional parts 2, 2.1, 2.1.1 or 3, 3.1, 3.1.1, 3.1.1.1,
and 3.1.1.1.1 indicated by the corresponding dashes.
[0013] FIG. 2 shows a representation RRA1(T(S)) for a string-based
data type T(S) specified by the regular expression S of FIG. 1 with
the aid of flags numbered in accordance with the optional parts, in
which case here, as previously normal in [2], the relevant flag is
followed directly by a corresponding interrogation of the flag as
well as by the optionally included information data. In parallel to
representation RRA1(T(S)) from top to bottom a bit stream BS1 is
specified a line-by-line with the relevant number of bits. As can
be shown in the above example the classes, for example
.backslash.d{2}, of the authorized characters, called data fields
below, can then be encoded with specific binary representations.
Variable-length data fields such as ".backslash.d+" will be encoded
here with variable-length codes, whereby specific bits, for example
every ninth bit, signal whether further bits, for example nine
bits, follow.
[0014] In the existing method for encoding string-based data types
the regular expressions are used to encode the structure of the
instantiation. However to evaluate coded data of this data type the
entire data stream must be read in in order to be able to establish
relevant paths for the recipient, that is the corresponding data
fields, are contained in the data stream. Furthermore it is not
possible for the decoder to determine in advance the resources
required for decoding and storing the data fields, but it must do
this in step with the decoding of the bit stream.
[0015] A representation for a regular expression of a string-based
data type is known to a corresponding encoder or decoder by
definition or must be signaled to the latter accordingly.
[0016] FIG. 3 shows a representation changed in accordance with the
invention RRA2(T(S)) for the regular expression S together with a
corresponding further bit stream BS2. In this example the flags SOP
for optional parts are initially stored in accordance with the
encoding principle described in [2] but here they are stored at the
beginning of bit stream BS2, before the length information LVLC of
the variable-length data is subsequently stored.
[0017] This length information can for example be encoded as
follows: The number of consecutive bits that are equal to 1
represent the number of data blocks used for the corresponding
representation of variable-length data. If, as in the above
example, the data block consists of eight bits, the binary code
"1110" specifies a data length of 24 bits for example, whereas the
binary code "10" specifies a length of 8 bits. These computed data
lengths are represented in this example with "8*VLC X".
[0018] The fact that in the invention the signaling bits or flags
for optional parts and/or length information of the variable-length
codes is placed in a defined order, at the start of the bit stream,
means that the search for data can be accelerated. Since the first
flags signal whether the existing data can contain those parts of
the regular expression for which the search is being made it is not
necessary to read in the entire bit stream BS2 to do this.
Furthermore as a result of the information about the data fields
used and their length at the start of the bit stream, the rest of
bit stream RBS can be compared for the search with a pre specified
bit pattern.
[0019] FIG. 4 represents or shows a representation of the
definition for a complex data type T to be encoded in parallel with
the relevant schema branching code SBC for the relevant position
code #pos showing how a correspondent tree branching table is
constructed. SBCs are assigned to the elements of a complex type
element, for example in the order in which they occur in the
definition, regardless of the grouping in which they occur or how
deeply nested they are. When and elements of the same type and/or
the same name occur in two or more different groups within and the
specification of the complex type different codes are also
assigned. This schema branching code SBC uniquely defines which
element is encoded within which, possibly nested, grouping. The
position code #pos can be assembled in accordance with the nesting
of the groupings. In this case for each grouping which is a father
of the element to be encoded, a code fragment, for example CF, is
assigned in a fixed order, for example beginning with the furthest
away. In this case, depending on the maximum possible a current is
the each of these groupings a fixed bit length is used in each
case. However a variable bit length, corresponding to the
definition for encoding the position code can also be used.
[0020] In the example of FIG. 4 elements a to c are assigned a
schema branching code SBC in the order in which they occur. Element
a occurs twice here, in which case on the second occurrence it is
assigned a different code "100" instead of "001". The field for the
position code #pos is made up of the following components or code
fragments:
[0021] 3 Bits XXX which determine the position within the outside
sequence bracket;
[0022] Multiples of 4 Bits YYYY which determine the position within
the choice bracket, and
[0023] Multiples of 4 Bits ZZZZ which determine the position below
the elements c.
[0024] The advantage of the method in accordance with the
invention, compared to the method described in [3], is that only
the positions at which the elements involved can actually be
positioned in accordance with the schema definition have to be
encoded or addressed. In addition a position code also only has to
be transferred for elements of which there can be multiple
instances. This enables the description structure to be encoded
more efficiently. Another significant advantage produced is that
the document can be expanded by additional elements at any given
nesting level, which is often not possible in the method in
accordance with [3] because of the sequentially assigned position
codes.
[0025] The following publications are cited in this document:
[0026] [1] ISO/IEC CD 15938-1 Information technology--Multimedia
content description interface: Systems, ISO/IEC JTC1
SC29/WG11/N3701, La Baule (France), October 2000
[0027] [2] Datatype encoding improvements for BiM, Cedric Thienot,
Claude Seyrat, Gregoire Pau, ISO/IEC JTC1 SC29/WG11/M6853, Pisa
(Italy), January 2001
[0028] [3] BiM navigation path improvements, Cedric Thienot, Claude
Seyrat, Gregoire Pau, ISO/IEC JTC1 SC29/WG11/M6854, Pisa (Italy),
January 2001
[0029] [4] from the Internet:
http://www.w3.org/TR/xmlschema-2/#regexs
* * * * *
References