-
Die
Erfindung betrifft ein Verfahren zur Codierung eines XML-basierten Dokuments
gemäß Oberbegriff
des Anspruchs 1, ein entsprechendes Decodierverfahren gemäß dem Gattungsbegriff
des Anspruchs 18 sowie entsprechende eine Codiervorrichtung gemäß dem Anspruch
19 und Decodiervorrichtung gemäß dem Anspruch
20.
-
XML
(Extensible Markup Language) ist eine Sprache, mit der eine strukturierte
Beschreibung der Inhalte eines Dokuments ermöglicht wird. Hierbei können Namensräume verwendet
werden, die mittels XML-Schema-Sprachdefinitionen definiert sind. Eine
genauere Beschreibung des XML-Schemas sowie der darin verwendeten
Strukturen, Datentypen und Inhaltsmodelle findet sich in den Referenzen
[7], [8] und [9].
-
Aus
dem Stand der Technik sind Verfahren zur Codierung von XML-basierten
Dokumenten bekannt, bei denen das Dokument in eine codierte Binärdarstellung
umgewandelt wird. Beispielsweise werden in den Dokumenten [1][2],
die im Rahmen der Entwicklung eines MPEG-7-Codierstandards entstanden
sind, Verfahren zur Codierung und Decodierung von XML-basierten
Dokumenten beschrieben. Hierbei können Fragmente des XML-basierten
Dokuments in sogenannte Fragment Update Units codiert werden.
-
Es
ist häufig
erforderlich, Fragment Update Units nach ihrem Inhalt zu kategorisieren
und beispielsweise derart kategorisiert in Tabellen abzuspeichern.
Dies ermöglicht
Fragmente einer Kategorie wenn erforderlich schnell abrufen und
beispielsweise darstellen zu können.
Es ist hierbei vorteilhaft, wenn die Kategorisierung wenig Rechenkomplexität erfordert,
da die Kategorisierung während
des Empfangs ohne konkreten Abruf neben anderen Aufgaben eines Empfängers ausgeführt wer den
muss. Beispielsweise werden neben dem Empfang, der Decodierung und
Anzeige einer Rundfunksendung auch XML Fragmente empfangen, die
programmbegleitende Informationen enthalten und schnell zu kategorisieren sind.
Hierbei ist es vorteilhaft, wenn die Kontextinformationen, anhand
dessen die Fragmente kategorisiert werden, fester Länge sind,
da diese dann mit geringer Komplexität ausgelesen und für die Kategorisierung
verglichen werden können.
-
Die
aus dem Stand der Technik bekannten Verfahren zur Erzeugung einer
Binärdarstellung
von XML-basierten Dokumenten weisen Nachteile bei der schnellen
Kategorisierung von empfangenen Fragmenten auf. Aus dem Stand der
Technik sind Verfahren zur Signalisierung von Kontextinformationen
der Fragmente bekannt [5][6]. Allerdings weisen diese den Nachteil
auf, dass Kontextinformationen entweder variabel in der Länge und
ineffizient bei einer geringen Anzahl unterschiedlicher Fragmente
[5] oder fix in der Länge
aber auf in einem Standard vordefinierte Fragmente beschränkt sind
[6].
-
Das
Problem der Kategorisierung von Fragmenten ergibt sich beispielsweise
bei einem mit Hilfe der XML-Sprache (XML = extensible markup language)
erstellten Dokument, welches in einem gemäß MPEG7-Standard spezifizierten
binären
Format dem sogenannten MPEG7-BiM Format repräsentiert wird. Bezüglich des
MPEG7-BiM Formats eines XML-Dokuments sei hierbei insbesondere auf
die Dokumente [1][2] verwiesen.
-
Bei
einer derartigen Repräsentation
wird ein Datenstrom erzeugt, der in mehrere Einheiten (Access Units)
aufgeteilt, welche ihrerseits wiederum aus mehreren Fragmenten,
den oben erwähnten Fragment
Update Units, bestehen. Die Einheiten werden codiert und bei Bedarf
als MPEG7-BiM-Strom an einen oder mehrere Empfänger versandt. Die Fragmente
enthalten hierbei Kontextinformationen, die abhängig vom Fragmentinhalt mit
einer unterschiedlichen Anzahl an Bits repräsentiert werden.
-
Der
mögliche
Fragmentinhalt ist hier nicht beschränkt auf eine Untermenge der
zu Übertragenden
XML Elemente.
-
Im
Rahmen von TV-Anytime (TVA) – ein
Konzept, welches, basierend auf einer Kombination von interaktiven
Diensten wie dem Internet mit dem traditionellen Broadcast wie dem
Fernsehen, einem Fernsehzuschauer erlaubt, sein Fernsehprogramm
zu einem beliebigen Zeitpunkt zu sehen, und in dem referenzierten,
Dokument [6] ausführlicher
beschrieben ist, wird eine beschränkte Zahl an möglichen
Fragmentinhalten festgelegt.
-
Hierbei
ist die Menge der möglichen
XML Elemente eines XML Dokuments durch einen Namensraum in dem referenzierten
Dokument [6] festgelegt. Zudem werden dien Inhalte von Fragmenten auf
eine Untermenge dieser XML Elemente festgelegt. Die Signalisierung
der Kontextinformation dieser Fragmente wird dabei durch einen Code
fester Länge spezifiziert.
Dies ermöglicht
eine effiziente Kategorisierung der empfangenen Fragmente, allerdings
ist die Fragmentierung auf die spezifizierten Fragmentinhalte beschränkt. Sollen
neue Informationselement übertragen
werden ist dies ohne Neuzuordnung von Codes nicht möglich.
-
Aufgabe
der Erfindung ist es deshalb, ein Verfahren zur Codierung und ein
Verfahren zur Decodierung von XML-basierten Dokumenten sowie einen entsprechende
Codier- und Decodiereinrichtung zu schaffen, welche eine verbesserte
Kategorisierung von Fragmenten in dem codierten Datenstrom ermöglicht ohne
die Menge möglicher
Fragmentinhalte einzuschränken
und eine effiziente Codierung der Kontextinformation ermöglicht.
-
Diese
Aufgabe wird ausgehend von dem Verfahren zum Codieren gemäß dem Oberbegriff
des Anspruchs 1 durch dessen kennzeichnende Merkmale gelöst. Des
Weiteren wird dies durch das Verfahren zum Decodieren gemäß dem Anspruch
18 sowie durch die Codiereinrichtung gemäß Anspruch 19 und die Decodiereinrichtung
gemäß Anspruch
20 gelöst.
-
Ein
erfindungswesentlicher Vorteil besteht darin, dass die Kategorisierung
schneller erfolgen kann, als es bei Verfahren gemäß dem Stand
der Technik der Fall ist. Dabei wird dies auf vorteilhafte Weise
erzielt, ohne die Menge möglicher
Fragmente einzuschränken.
Zudem ermöglicht
die Erfindung auch eine effiziente Codierung der Kontextinformation.
-
Darüber hinaus
umfasst die Erfindung ein Verfahren zum Decodieren einer Datenstruktur,
wobei das Verfahren derart ausgestaltet ist, dass eine mit dem oben
beschriebenen Codierverfahren codierte Datenstruktur decodiert wird.
-
Darüber hinaus
umfasst die Erfindung ein Verfahren zum Codieren und Decodieren
einer Datenstruktur, welches das oben beschriebene Codierverfahren
und Decodierverfahren umfasst.
-
Die
Erfindung umfasst auch eine Codiervorrichtung, mit der das erfindungsgemäße Codierverfahren
durchführbar
ist, sowie eine Decodiervorrichtung, mit der das erfindungsgemäße Decodierverfahren
durchführbar
ist. Ferner betrifft die Erfindung eine entsprechende Vorrichtung
zum Codieren und Decodieren, mit der das oben beschriebene kombinierte Codier-
und Decodierverfahren durchführbar
ist.
-
Weiterbildungen
der Erfindung sind in den abhängigen
Ansprüchen
definiert und zumindest teilweise folgender Diskussion der Vorteile
der Erfindung zu entnehmen.
-
In
strukturierten Dokumenten, insbesondere XML Dokumenten, wird der
Typ von Informationen in einem XML-Element oder XML-Attribut eines Dokuments
durch die Namen aller Vaterelemente und deren Typen deklariert.
Hierbei sind die XML-Elemente und XML-Attribute entsprechend einer
Strukturdefinition in einem Dokumentenbaum angeordnet.
-
Bei
dem erfindungsgemäßen Verfahren
zur Codierung des strukturierten Dokuments werden alle XML-Elemente,
die Wurzelelemente eines codierten Fragments sind, gemäß ihrem
Namen und der Namen ihrer Vaterelemente, das heißt gemäß ihrem Pfad in einer Tabelle
gespeichert. Die Pfade sind hierbei Absolutpfade, die von dem Wurzelknoten
des Dokumentenstrukturbaums beginnen und zu einem Element des Dokumentenstrukturbaums
führen,
das exklusiv in einem Fragment enthalten ist, das heißt ein Wurzelelement
eines codierten Fragments ist. Diese Tabelle, Kontextpfadtabelle
genannt, wird zur Initialisierung des Decoders vorab übertragen.
Jedem Eintrag in der Kontextpfadtabelle ordnet der En- und Decoder
einen Kontextcode („ContextCode") fester Länge zu.
Vor der Übertragung
eines codierten Fragments wird der absolute Pfad zum Wurzelelement
des Fragments als Kontextinformation durch den zugeordneten ContextCode
signalisiert. Dieser ContextCode ist über eine Übertragung hinweg fest in der
Länge.
Die Verwendung einer Initialisierungstabelle ermöglicht jedoch bei der Initialisierung
der Übertragung
die freie Wahl der Aufteilung in Fragmente.
-
In
einer weiteren Ausführungsform
werden die Pfade relativ zum vorhergehenden Pfad in einer Tabelle
abgelegt und übertragen.
Hierdurch kann der Speicheraufwand für die Tabelle verringert werden.
-
In
einer besonders bevorzugten Ausführungsform
werden die Pfade entsprechend der Kontextpfad („ContextPfad") Codierung des MPEG-7
BiM Formats [1][2] in der Tabelle abgelegt und übertragen. Hierdurch kann eine
standardisierte weit verbreitete Struktur genutzt und die Verringerung
des Speicheraufwands weiter gesteigert werden.
-
Wird
die zuzuordnende Länge
der ContextCodes explizit mit der Kontextpfadtabelle signalisiert, ermöglicht dies
bei ausreichend groß gewählter Länge der
Kontextcodes während
der Übertragung
neue Kontextpfade in die Tabelle aufzunehmen ohne die Länge und
die Zuordnung der Kontextcodes zu verändern.
-
In
einer bevorzugten Ausführungsform
werden die Kontextpfadtabellen wiederholt im Datenstrom abgelegt
und übertragen.
Die Länge
der Kontextcodes wird hierbei durch variable Längencodes, beispielsweise mit
variable length unsigned integer most signiffigcant bit first „vluimsbf", wie es in den Dokumenten
[1][2] definiert ist, signalisiert. Dies ermöglicht Empfängern, die sich in eine Übertragung
einwählen,
sofort Fragmente zu kategorisieren und sobald eine Kontextpfadtabelle
empfangen wird Kontextpfade zuzuordnen.
-
Updates
der Codelänge
und der Codetabelle.
-
In
einer bevorzugten Ausführungsform
werden in der Kontextpfadtabelle nur Kontextpfade übertragen
die Pfade zu Wurzelelementen von bisher übertragenen und bis zur nächsten Übertragung
der Kontextpfadtabelle zu übertragenden
Fragmenten enthalten. Bei neuen Pfaden zu Wurzelelementen von Fragmenten
wird die Kontextpfadtabelle erweitert. Dieses Verfahren ist insbesondere
bei wiederholter Übertragung
von Kontextpfadtabellen vorteilhaft, da die Kontextpfadtabelle nur
bisher notwendige Information enthält. Diese Kontextpfadtabelle
ist damit kleiner als jene, die Pfade aller Wurzelelemente von Fragmenten
der gesamten Übertragung
enthalten. Sind die in der Kontextpfadtabelle enthaltenen Kontextpfade
nicht aufeinander folgenden Kontextcodes zugeordnet, so ist in der
Kontextpfadtabelle zusätzlich
zu dem jeweiligen Kontextpfad der zugeordnete Kontextcode zu codieren.
-
Ausführungsbeispiele
der Erfindung werden nachfolgend anhand der 1 bis 5 dargestellt und
erläutert.
-
Es
zeigen
-
1a Ein
gemäß dem Stand
der Technik strukturiertes XML Dokument;
-
1b Eine
aus dem Stand der Technik bekannte Repräsentation des strukturierten
XML Dokumentenbaumes;
-
1c Eine
Aufteilung des aus dem Stand der Technik bekannten Baumes in Fragmente;
-
1d Ein
sich gemäß dem Stand
der Technik ergebender Datenstrom bestehend aus Access Units und
Fragmenten;
-
2 Struktur
des Datenstroms nach Codierung eines Strukturierten XML Dokuments
mit dem erfindungsgemäßem Verfahren.
-
3 Struktur
einer Kontextpfadtabelle.
-
4 Struktur
einer Kontextpfadtabelle mit expliziter Signalisierung der fixen
ContextCodeLänge.
-
5 Struktur
eines KontextPfadTabellenUpdates.
-
1a zeigt
ein aus dem Stand der Technik bekanntes strukturiertes XML Dokument
in textueller Form. Zu erkennen ist dabei, dass zwischen durch spitzen
Klammern gekennzeichneten, zusammengefassten Strukturelementen – vereinfachend
auch nur als Elemente bezeichnet – teilweise weitere Strukturelemente
sowie für
diese Darstellung beispielhaft gewählte Daten (Werteausprägungen)
eingebettet sind. Hierzu sind die auch mit dem englischen Ausdruck „Tag" bezeichneten Strukturelemente
teilweise als ein Paar aus einem einleitenden und abschließenden Tag
ausgestaltet, wobei sich das abschließende Tag lediglich durch einen
der spitzen Klammer folgenden Schrägstrich von dem einleitenden
Tag unterscheidet.
-
Darüber hinaus
können
auch derartig eingebettete Daten bzw. Strukturelemente parallel
zueinander existieren.
-
Die
sich hierbei ergebende Struktur ist ab einer gewissen Größe in textueller
Form schwer darstellbar. Aufgrund der sich ergebenden Struktur ist
es daher bekannt, ein derartig strukturiertes Dokument als Baustruktur
zu zeigen.
-
1b zeigt
daher das aus der 1a bekannte strukturierte XML
Dokument in der Baumrepräsentation.
Dabei ergeben die genannten Strukturelemente bzw. Paare von Strukturelemente
jeweils ein als Ellipse dargestelltes Element oder Knoten des Dokumentes,
wobei für
den Fall das ein Element ein weiteres Element enthält – es also
einbettet –,
ein Pfad von einem Knoten direkt zu einem neuen Knoten führt, während wenn
das Element unmittelbar Daten einbettet – also einen Wert enthält – ein Pfad
von einem Knoten direkt in eine rechteckig dargestellte Werteausprägung mündet.
-
Ausgehend
von einem Wurzelknoten DRE des Dokumentes lässt sich nun jeder Knoten DE1...DE10
durch einen zu ihm hinführenden
absoluten Pfad bestimmen bzw. beschreiben. Beispielsweise ist der
Knoten DE5 durch den sich aus den Schritten A2 und B1 ergebenden
Pfad bestimmt.
-
Ausgehend
von der dargestellten Baumstruktur ergibt sich nun bei wie oben
beschrieben üblichen
Fragmentierung ein in 1c dargestellte Partitionierung
der in 1b gezeigten Baumrepräsentation.
Dabei wird die Baumstruktur in Subbäume ST1...ST4 unterteil, welche
die genannten Fragmente des XML Dokuments darstellen.
-
Durch
diese Aufteilung ergibt sich für
jeden Subbaum ST1...ST4 dabei jeweils aus einem der Elemente DE1...DE10,
welches exklusiv in einem Subbaum ST1...ST4 enthalten ist, ein Wurzelelement oder
-Knoten FRE1...FRE4 des jeweiligen Fragments (Subbaums) ST1...ST4,
welcher wiederum entweder in verbleibenden Elemente DE5...DE10 oder
in Werteausprägungen
mündet.
-
Die
Subbäume
ST1...ST4 können
dabei analog dem oben beschriebenen Verfahren durch Pfade zu den
Wurzelelementen FRE1...FRE4 der Subbäume identifiziert werden.
-
Für eine Übertragung
wird nun ein derartiges Dokument in der Regel codiert. Dabei ergibt
sich üblicherweise
ein (Bit)Datenstrom. 1d zeigt die Struktur eines
codierten Datenstroms BS wie er sich gemäß einer aus dem Stand der Technik
bekannten spezifizierten Repräsentation
darstellt.
-
In
dieser Darstellung ist der Datenstrom in Access Units AU unterteilt,
die aus mehreren Fragmenten FUU bestehen. Hierbei repräsentieren
die Fragmente FUU entsprechend 1b Subbäume eines
XML Dokuments. Die Fragmente FUU werden durch ein Fragment Befehl
(FC), durch einen Kontext Pfad (CP) und Position Codes zum Wurzelelement FRE1...FRE4
eines Subbaums und durch eine Repräsentation des Subbaums (PL)
repräsentiert.
-
Beispielhaft
ist ein Kontextpfad („ContextPfad") CP entsprechend
einer aus dem Stand der Technik bekannten XPATH Notation [3] dargestellt, der
sich aus einer durch Schrägstriche
getrennten Aneinanderreihung der Namen von einem Vorgängerknoten(auch
Vaterknoten) zu seinem bzw. seinen nachfolgenden Knoten (auch Nachfolger-
oder Kindknoten) ergibt.
-
Der
Kontextpfad kann dabei jedes XML Element oder Attribut eines in
der Instanz deklarierten Namensraums identifizieren. In der Regel
ist es jedoch für
eine Übertragung
nur sinnvoll bestimmte Elemente oder Attribute als Wurzelelement
eines Subbaums für
die Repräsentation
eines Fragments FUU zu verwenden. Zudem werden Kontextpfade mit Codes
variabler Länge ähnlich der
Länge eines
Kontextpfades gemäß der XPATH
Notation [3] repräsentiert.
Dies ist jedoch wie oben beschrieben mit Nachteilen behaftet.
-
Daher
wird durch eine Codierung gemäß der Erfindung
eine Möglichkeit
geschaffen, bei der insbesondere bei mehreren Frag menten mit dem
gleichen Kontextpfad eine effiziente Codierung mit Kontextcodes
fester Länge
in den Fragmenten FUU ermöglicht
wird.
-
2 zeigt
eine Struktur eines mit dem erfindungsgemäßen Verfahren erstellten Datenstroms, der
das codierte XML-Dokument
repräsentiert.
Zu erkennen ist, dass der Strom neben Fragmenten FUU zu Beginn der Übertragung
eine Kontextpfadtabelle CPT enthält,
die eine Liste an Kontextpfaden CP1...CP4 umfasst.
-
Entsprechend
der Anzahl der Einträge
wird die Bitlänge
der Kontextcodes CC bestimmt, der für die Dauer einer Übertragung
zu einem Decoder konstant bleibt, so dass alle Einträge eindeutig
identifiziert werden können. Üblicher
weise wird die Bittlänge(CC)>=ld(Anzahl der Einträge) gewählt, wobei
ld der Logarithmus zur Basis zwei ist. Die Wurzelknoten der Subbäume werden
in den jeweiligen Fragmenten durch den Wert des Kontextcodes CC
signalisiert, welcher auf Einträge
in der Kontextpfadtabelle CPT verweist, der den Kontextpfad CP1...CP4
zu dem Wurzelknoten enthält.
-
In
dem in 2 dargestellten Beispiel wird durch den Wert „1" der zweite Eintrag
in der Kontextpfadtabelle CPT identifiziert, da „0" den ersten Eintrag identifiziert.
-
3 zeigt
ein Beispiel einer Kontextpfadtabelle für die in 1c dargestellte
Partitionierung. In der Tabelle sind zwei Adressierbare Kontextpfade CP'1, CP'2 encodiert. Dementsprechend
kann der Kontextcode mit der oben gegebenen Berechnung mit einem
Bit codiert werden: 0 signalisiert den ersten Kontextpfad, 1 den
zweiten.
-
4 zeigt
ein alternatives Ausführungsbeispiel
einer Kontextpfadtabelle in der die Anzahl der Bits (8) mit dem
der Kontextcode encodiert wird explizit im Datenstrom codiert ist – also dem
Decoder signalisiert wird. Dies ist insbesondere vorteilhaft, wenn während der Übertragung
die Kontextpfadtabelle mit weiteren Kontextpfaden erweitert werden
soll. Dies ist insbesondere bei Verfahren zur Codierung von XML
Dokumenten nötig,
bei denen zum Beginn der Encodierung das komplette XML Dokument
noch nicht vorliegt und damit noch nicht alle Kontextpfade der Wurzelelemente
von Subbäumen
bekannt sind.
-
5 zeigt
die Struktur eines mit dem erfindungsgemäßen Verfahren erstellten Datenstroms,
in dem eine erste Kontextpfadtabelle CPT zu Beginn des Datenstroms
codiert wurde und eine Erweiterung bzw. Aktualisierung der Kontextpfadtabelle
CBTU später
im Datenstrom codiert wurde.
-
6 zeigt
ein weiteres gemäß der Erfindung
mögliches
Ausführungsbeispiel
einer Erweiterung einer Kontextpfadtabelle CPTU, die Informationen
enthält
an welcher Position (3) in der Kontextpfadtabelle die folgenden
neuen Kontextpfade (/Group/Chair) eingetragen werden.
-
Literaturverzeichnis:
-
- [1] ISO/IEC 15938-1 Multimedia Content Description Interface
- Part 1: Systems, Geneva 2002
- [2] ISO/IEC 15938-1:2002/FDAM 1:2004 Multimedia Content Description
Interface – Part
1: Systems, Amendment 1: Systems Extensions
- [3] http://www.w3.org/TR/xpath
- [4] TV-Anytime Specification Series S-3 on Metadata, Part-B,
Version 13
- [5] ETSI TS 102 822-3-2: Broadcast and On-line Services: Search,
select and rightful use of content on personal storage systems ("TV-Anytime Phase
1"), Part 3: Metadata,
Sub-part 2: System Aspects in a Unidirectional Environment.
- [6] DVB GBS0005r16: Carriage of TVA information in DVB TSs
- [7] http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/
- [8] http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/
- [9] http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/