[go: up one dir, main page]

DE10355345A1 - Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom - Google Patents

Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom Download PDF

Info

Publication number
DE10355345A1
DE10355345A1 DE10355345A DE10355345A DE10355345A1 DE 10355345 A1 DE10355345 A1 DE 10355345A1 DE 10355345 A DE10355345 A DE 10355345A DE 10355345 A DE10355345 A DE 10355345A DE 10355345 A1 DE10355345 A1 DE 10355345A1
Authority
DE
Germany
Prior art keywords
data
type
data stream
mts
data packets
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.)
Withdrawn
Application number
DE10355345A
Other languages
English (en)
Inventor
Friedemann Hübler
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.)
Deutsche Thomson Brandt GmbH
Original Assignee
Deutsche Thomson Brandt GmbH
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 Deutsche Thomson Brandt GmbH filed Critical Deutsche Thomson Brandt GmbH
Priority to DE10355345A priority Critical patent/DE10355345A1/de
Priority to EP04300720A priority patent/EP1536429A1/de
Priority to US10/988,803 priority patent/US7664105B2/en
Priority to TW093135513A priority patent/TWI345174B/zh
Priority to MYPI20044836A priority patent/MY145511A/en
Priority to CN200410095098XA priority patent/CN1622535B/zh
Priority to KR1020040096958A priority patent/KR101164670B1/ko
Priority to JP2004340970A priority patent/JP4990493B2/ja
Publication of DE10355345A1 publication Critical patent/DE10355345A1/de
Priority to JP2012052265A priority patent/JP2012146391A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/005Reproducing at a different information rate from the information rate of recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

In paketorientierten Datenströmen (TS) sind strukturelle Informationen, die man z. B. zum Durchsuchen oder zum Vor- und Zurückspulen braucht, nur in bestimmten Paketen enthalten (PP#1¶1¶, PP#1¶2¶). Erfindungsgemäß wird während des Abspeicherns eines Datenstroms (MTS) eine Info-Datei (I) angelegt, die Verweise auf alle Anfänge derjenigen Pakete enthält, die diese Informationen enthalten. Die Info-Datei enthält Datenblöcke (IB), und jeder Datenblock kennzeichnet die Position (OP, OB) eines Datenpakets mit struktureller Information sowie den Abstand zum nächsten bzw. vorherigen solchen Datenpaket und zusätzliche Informationen zum jeweiligen Datenpaket.

Description

  • Stand der Technik
  • Digitale Datenströme, wie z.B. nach dem MPEG2 Standard ISO/IEC 13818-1, sind oft in Pakete zerstückelt. Dabei sind bestimmte Informationen, wie z.B. Zeitangaben, nur in bestimmten Paketen enthalten. Insbesondere definiert der genannte Standard die Struktur eines Transportdatenstroms (TS). Ein MPEG2-TS Datenstrom ist ein paketorientierter Strom, der aus aufeinanderfolgenden Transportpaketen („Transport Stream Packets", TSP) besteht. Ein TSP besteht aus einem Kopf („Header") und Transportdaten, die wiederum einen Teil eines Pakets (PES-Packet) aus einem paketorientierten Elementardatenstrom (Packetized Elementary Stream, PES) darstellen. Um ein ganzes PES-Packet zu erhalten, müssen die einzelnen Teile aus aufeinanderfolgenden zusammengehörigen TSPs extrahiert und zusammengefügt werden, ohne dabei die Reihenfolge der TSPs zu verändern. Ein PES-Packet besteht aus Header-Informationen und einem Datenfeld. Das Datenfeld kann z.B. ein Teil eines Videodatenstroms oder eines Audiodatenstroms sein. Um einen solchen Datenstrom nach Informationen zu durchsuchen (Scannen), muss jedes Paket untersucht werden, was viel Zeit in Anspruch nimmt. Desweiteren können umfangreiche Auswertungen nötig sein, z.B. Fehlerüberprüfung oder Fehlerkorrektur.
  • Erfindung
  • Um in einem paketorientierten Datenstrom nicht jedes Paket untersuchen zu müssen, wird eine Info-Datei (Info-File) erzeugt, welche beim Scannen des Datenstroms behilflich ist. Dabei werden jeweils die Offsets, d.h. der Versatz, in Paketen und Bytes, zu markanten Informationen abgelegt. Der Datenstrom und die Info-Datei werden parallel, d.h. gleichzeitig, gescannt und anhand der Info-Datei erkennt man, wieviele Pakete bzw. Bytes im Datenstrom übersprungen werden können, um zur nächsten spezifizierten Position mit der gewünschten Information oder zum nächsten markanten Einsprungpunkt zu gelangen. Gleichzeitig können im Info-File weitere Informationen zum jeweiligen Datenpaket abgelegt werden, welche in umfangreicheren Prozeduren aus dem Datenstrom ausgewertet werden müssen. Dadurch müssen diese Prozeduren nur einmal ausgeführt werden. Das kann schon im Studio sein, oder in einem Aufnahmegerät beim Anwender, während der Aufnahme oder später in einer Nachbearbeitung. Dazu reicht es im Prinzip, wenn das Gerät die Info-Datei aufnehmen und den aufgenommenen Datenstrom nur abspielen kann. Ein erfindungsgemäßes Info-File ermöglicht ein nahezu verzögerungsfreies Scannen des Datenstroms und damit einen enormen Zeitvorteil bei der Informationsextrahierung und beim Anspringen einer bestimmten Position im Datenstrom.
  • Ein erfindungsgemäßes Info-File zum Durchsuchen von paketorientierten Datenströmen besteht aus einer Folge von Info-Blöcken. Jeder Info-Block wird mit einem zugehörigen Paket im Datenstrom assoziiert. Er beinhaltet zwei Komponenten: Erstens den Offset, d.h. nach wie vielen Paketen bzw. Bytes das nächste Datenpaket assoziiert mit dem nächsten Info-Block kommt, und zweitens zusätzliche Informationen zum aktuell zugehörigen Datenpaket, z.B. den jeweiligen Zeitstempel (timestamp).
  • Damit ein Info-File auch variable Datenraten und unterschiedliche Paketgrößen besser unterstützen kann, enthält ein Info-Block den Versatz oder Offset zum nächsten relevanten Paket sowohl in Paketen als auch in Bytes. Dabei wäre eine der beiden Angaben im Prinzip ausreichend.
  • Weiterhin sind die Offsets relativ, so dass ein erfindungsgemäßes Info-File Datenströme beliebiger Größen unterstützen kann. Im Gegensatz zu absoluten Offsets, die sich auf den Beginn des Stroms beziehen, besteht dann eine Begrenzung durch die Offsetgröße nur in dem Abstand zweier Datenpakete, nicht aber in der Dateilänge.
  • Das Info-File kann insbesondere zum schnellen Vor- und Rückwärtsspulen in paketorientierten Datenströmen eingesetzt werden, wo es erhöhte Flexibilität ermöglicht. Durch die Verwendung eines Info-Files erfolgt das Scannen in paketorientierten Datenströmen wesentlich schneller, da uninteressante bzw. irrelevante Pakete im Datenstrom übersprungen werden können, insbesondere solche Pakete des Transportdatenstroms, die zu anderen Elementardatenströmen gehören oder keine PES-Packet Header enthalten. Außerdem können die Ergebnisse komplizierter Berechnungen als Zusatzinformationen im Info-File gespeichert werden, so dass die Berechnungen nur noch einmal, z.B. beim Erstellen des Info-Files, durchgeführt zu werden brauchen. Die Verwendung eines Info-Files wird umso wirkungsvoller, je mehr Pakete im Datenstrom übersprungen werden und je schwieriger die Extraktion gewünschter Informationen aus dem Datenstrom ist.
  • Eine Vorrichtung zum Vorrichtung zum Vor- oder Zurückspulen innerhalb eines Elementardatenstroms, der aus Datenpaketen unterschiedlicher Größe besteht, wobei diese Datenpakete aus anderen Datenpaketen konstanter Größe, z.B. TDPs, eines Transportdatenstroms extrahiert werden, und wobei ein Dateizeiger eine aktuelle Position innerhalb des Transportdatenstroms anzeigt, enthält mindestens ein Speichermedium, aus dem die Position derjenigen TDPs des Transportdatenstroms abgerufen wird, welche die Anfänge bzw. Header der Datenpakete des Elementardatenstroms enthalten, weiterhin eine Vorrichtung, z.B. Prozessor, zur Berechnung der Position eines anderen TSPs innerhalb des Transportdatenstroms aus der Position des Dateizeigers und der aus dem Speichermedium abgerufenen Positionsangabe bzw. Offset des anderen TDPs, und schließlich eine Vorrichtung zum Setzen des Dateizeigers auf die berechnete Position innerhalb des Transportdatenstroms.
  • Vorteilhafte Ausführungsformen der Erfindung werden in den Ansprüchen, der folgenden detaillierten Beschreibung und den Zeichnungen beschrieben.
  • Zeichnungen
  • Beispielhafte Ausführungsformen der Erfindung werden in den im folgenden beschriebenen Zeichnungen skizziert. Darin zeigen
  • 1 den Aufbau eines MPEG-2 TS Datenstroms;
  • 2 den allgemeinen Aufbau einer Info-Datei;
  • 3 eine Info-Datei für einen MPEG-2 TS Datenstrom; und
  • 4 ein Struktogramm der ParsePacket() Funktion.
  • Ausführungsbeispiele
  • Die Erfindung wird am Beispiel eines Parsers für ein MPEG-2 Speicher- und Wiedergabegerät (Digital Storage Device, DSD) erläutert, das im folgenden als DSD-MPEG2-Parser bezeichnet wird.
  • Der DSD-MPEG2-Parser untersucht einen Strom von MPEG-2 TS Daten, bestehend aus TSPs, und versucht, aus den darin enthaltenen Teilen von PES-Packets komplette PES-Packets zusammenzusetzen. Dabei können die TSPs zu verschiedenen PES-Packets gehören, die verschiedene Elementardatenströme ergeben. Ein vereinfachter MPEG-2 Transportdatenstrom MTS und zugehörige Elementardatenströme PES1,PES2 sind in 1 schematisch dargestellt. Der Transportdatenstrom MTS besteht aus MPEG-2 Transportpaketen TSP, die jeweils Header und Daten bzw. Payload enthalten. Diese Payload stellt Teile von PES-Packets dar, die wiederum aus Header und Daten bzw. Payload bestehen. Die zusammengehörigen PES-Packets PP#1,PP#2 ergeben Elementardatenströme PES1, PES2, von denen z.B. einer Video- und der andere Rudiodaten enthalten kann.
  • Der „start_code_prefix" im Header eines PES-Packets ist 24 bit breit und hat den festen Wert 000001hex. Die nachfolgende „stream_id" gibt an, welchen Typ der mitgeführte Datenstrom („PES_packet_data_byte") hat. Dieser liegt bei einem Videostrom im Bereich von E0hex bis EFhex bzw. bei einem Audiostrom im Bereich von C0hex bis DFhex.
  • Der Parser untersucht das „payload_unit_start_indicator"-Flag aus dem Header des TSPs auf den Wert 1, und den Datenbereich eines solchen TSPs auf den Wert 00000001hex, entsprechend dem „start_code_prefix" des PES-Packets, auf 32 bit expandiert. Haben beide Felder die erwarteten Werte, so erkennt der Parser, dass im aktuellen TSP ein neues PES-Packet beginnt.
  • Ein PES-Packet kann einen „Presentation Time Stamp" (PTS) und einen „Decoding Time Stamp" (DTS) mit sich führen. Der PTS gibt an, zu welchem Zeitpunkt die mitgeführten Daten angezeigt werden sollen, und der DTS gibt Auskunft über den Decodierungszeitpunkt der Daten. Das ebenfalls im Header des PES-Packets enthaltene „PTS_DTS_flag" gibt an, ob sich ein PTS oder DTS im PES-Packet befindet. Der ISO/IEC13818-1 Standard schreibt einen Abstand von höchstens 0.7s zwischen aufeinanderfolgenden PTS vor. Zum Ermitteln der aktuellen Position, d.h. des aktuellen Timecodes, kann der PTS ausgewertet werden.
  • Bei der Auswertung des PTS ergibt sich das Problem, dass der PTS in einem Videodatenstrom nicht bei Null beginnen muss, sondern jeden beliebigen (Start-)Wert annehmen kann. Die einzelnen Bilder (Frames) in einem Videodatenstrom sind nicht in genau der Reihenfolge codiert, in der sie angezeigt werden. Der PTS kann somit in begrenztem Maße auch kleiner werden. Da die Länge des PTS begrenzt ist, kann dieser aber auch „überlaufen". Weiterhin kann der PTS an einer Schnittstelle mehrerer hintereinander zusammengesetzter Teil-Videodatenströme um einen großen Wert springen. Dieser Sprung des PTS bedeutet jedoch keinen Sprung des Timecodes des abspielenden Videos. Das Problem, dass der erste PTS in einem MPEG2-TS Datenstrom von Null abweichen kann, lässt sich auf folgende Weise lösen: Eine Variable, deren Wert der Timecode, also die verstrichene Abspielzeit ist, wird bei einem Reset()-Aufruf auf Null gesetzt. Dieser Variablen wird kontinuierlich die Differenz zweier aufein anderfolgender PTS hinzugefügt. Damit dieser Wert die Einheit Millisekunden hat, wird der Differenzwert durch 90 geteilt. In dem Fall, dass die Differenz zweier aufeinanderfolgender PTS größer als FFFFhex entsprechend 0.7s ist, wird die Differenz ignoriert. Der Fall tritt ein, wenn die Schnittstelle zwischen zwei zusammengesetzten Teilströmen erreicht wird. Falls der Parser auf einen PTS trifft, der ein „Ausreißer" ist, wird die Differenz zwischen diesem und dem vorigen PTS und zwischen diesem und dem nachfolgenden PTS ignoriert, da beide Werte vom Betrag größer als 0.7s sind.
  • Die Differenz zwischen zwei benachbarten PTS wird nur dann in die Berechnung des Timecodes einbezogen, wenn sie nicht größer als FFFFhex, entsprechend 0.7s, ist. Diese Berechnung erfordert nur die unteren 16 bit des PTS, der aber 33 bit breit ist. Da jedoch zur Berechnung nur 16 bit benötigt werden und der Vergleich zweier PTS auf den Wert FFFFhex mit 32 bit wesentlich einfacher zu realisieren ist, wird das MSB (Most Significant Bit) des PTS generell ignoriert.
  • Während des Vor- bzw. Rückspulvorgangs werden keine Videodaten über einen IEEE1394-Bus zur Anzeige gesandt, sondern lediglich der Positionszeiger in der Videodatei verschoben. Die Geschwindigkeit, mit der der Dateizeiger bewegt wird, ist die Geschwindigkeit, mit der gespult wird. Dazu wird kontinuierlich der aktuelle Timecode ermittelt, welcher z.B. auf einem Displaymodul dargestellt werden kann.
  • Um eine konstante und berechenbare Spulgeschwindigkeit zu ermöglichen, wird in konstanten Zeitabschnitten der Dateizeiger um die Differenz eines bestimmten Timecodes verschoben. Dazu müssen die zum gesuchten Timecode korrespondie renden Datenpakete im Videostrom gefunden werden. Der prinzipielle Ablauf des Spulvorgangs ist in Tab.1 dargestellt.
  • Figure 00080001
    Tab.1 Prinzipieller Ablauf des Spulvorgangs
  • Mittels der Differenz des Timecodes (CurrentTimeCode + ΔT) und der anschließenden Wartezeit der Routine kann man die Spulgeschwindigkeit einstellen. Die Wartezeit der Schleife kann frei gewählt werden. Passend zu dieser wird die Differenz des Timecodes ΔT ermittelt, um eine bestimmte Spulgeschwindigkeit zu realisieren.
  • Die Spulgeschwindigkeit ist das Intervall des übersprungenen Timecodes in einer bestimmten Zeit. Dies könnte z.B. bedeuten: In einer Sekunde sollen 10 Sekunden Film übersprungen werden. Die Wartezeit sollte nicht zu groß sein, da sonst die Anzeige des Timecodes während des Spulens nur in großen Abständen verfolgt werden kann. Die Wartezeit darf jedoch auch nicht so klein sein, dass ΔT einen wert annimmt, der kleiner als der durchschnittliche Abstand zweier Timecodes ist. Außerdem hat die Wartezeit Auswirkungen auf die Lesbarkeit des Displays zur Zeitanzeige.
  • Da beim Vor- und Zurückspulen der Timecode an der aktuellen Position im Videostrom benötigt wird, muss der Videodatenstrom kontinuierlich geparst werden. Bei einem MPEG2-TS Datenstrom bedeutet das, dass alle TSPs untersucht werden müssen. Die PES-Packets müssen ermittelt und auf das Vorkommen eines PTS untersucht werden. Der PTS muss anschließend auf Fehler überprüft und eventuell korrigiert werden. Dieser Vorgang nimmt jedoch viel Zeit in Anspruch, sodass nicht beliebig schnell gespult werden kann. Durch die Benutzung eines erfindungsgemäßen Info-Files, durch welches unter geringem Aufwand der aktuelle Timecode und das ihn enthaltende TSP ermittelt werden können, wird das Vor- und Zurückspulen jedoch wesentlich vereinfacht.
  • Nicht in jedem PES-Packet muss sich ein PTS befinden. Wenn aber ein PTS vorhanden ist, muss er sich am Anfang des PES-Packets befinden. Nachdem ein PTS gefunden wurde, können daher viele TSPs übersprungen werden. Beim Parsen des Videodatenstroms ist allerdings im Vorfeld nicht bekannt, wie viele TSPs übersprungen werden können. An dieser Stelle kann die vorteilhafte Wirkung des erfindungsgemäßen Info-Files genutzt werden.
  • Ein erfindungsgemäßes Info-File I ist in 2 dargestellt. Es enthält prinzipiell eine Folge von Offset-Werten OP,OB, die angeben, wie viele elementare Pakete nicht relevant sind und beim Spulen übersprungen werden können. Außerdem werden zu jedem Offset Zusatzinformationen AI abgelegt. Zusammen ergeben diese drei Felder einen Info-Block IB für jedes PES-Packet PP. Die Werte für „Offset Packets" OP und „Offset Bytes" OB geben die Anzahl elementarer Transportdatenpakete (TSPs) TDP und die Anzahl der Bytes zwischen zwei relevanten TSPs an, also zwischen zwei Paketen PP#11,PP#12 des Transportdatenstroms MTS, die die Header PPH1,PPH2 von solchen PES-Packets PP enthalten, die im gleichen Elementardatenstrom EDS direkt aufeinanderfolgen. Zwischen diesen relevanten TSPs liegen die TSPs, die zu diesem jeweiligen PES-Packet PP gehören, aber es können dort auch TSPs vorkommen, die zu den PES-Packets anderer Elementardatenströme gehören. Ein Info-Block IB besteht aus zwei Offset-Werten OP,OB und dem Zusatzinformationsfeld AI. Das Zusatzinformationsfeld („Additional Information") AI bezieht sich auf das zugehörige Paket PP#11,PP#12 im Datenstrom und kann z.B. den Zeitstempel (PTS) dieses Pakets enthalten. Jedes Info-File bezieht sich nur auf einen Elementardatenstrom, vorzugsweise den Videodatenstrom, weil sich an ihm das Vor- und Rückspulen orientieren soll.
  • Im Fall eines MPEG2-TS Datenstroms geben die ersten beiden Felder OP,OB eines Info-Blocks den Abstand zweier aufeinanderfolgender PES-Packets an und sind jeweils 32 Bit breit. Das „Additional Information" Feld AI enthält in der beschriebenen Applikation für jedes Videoformat den fertig berechneten und fehlerkorrigierten Timecode, ebenfalls 32 Bit breit. Ein Info-Block ist in der beschriebenen Form bei einem MPEG2-TS Datenstrom demnach 3 × 32 = 96 Bit oder 12 Byte lang. Es kann aber vorteilhaft sein, im Zusatzinformationsfeld AI weitere Daten abzulegen, wenn dadurch das Info-File nicht so groß wird, dass die Spulgeschwindigkeit wieder reduziert wird. Mit Hilfe der Informationen im Info-File kann die Applikation alle nicht relevanten TSPs sofort überspringen. Die Navigation bzw. Synchronisation zwischen dem Info-File I und dem Elementardatenstrom EDS, z.B. einem MPEG2-gemäßen Videodatenstrom, erfolgt von PES-Packet zu PES-Packet. Der Timecode kann dabei direkt aus dem Info-File gelesen werden und muss somit nicht bei jedem Spulvorgang neu berechnet werden.
  • Ein aufgenommener MPEG2-TS Videodatenstrom muss nicht mit einem TSP beginnen, welches den Anfang eines PES-Packets („PES Start") enthält. Nimmt das DSD z.B. einen Live-Stream auf, so ist das erste TSP ein beliebiges Paket aus einem fortlaufenden Transportdatenstrom. Dieser Fall ist in 3 dargestellt. Der Transportdatenstrom MTS beginnt mit zwei anderen Datenpaketen OTH, bevor das erste Paket PSP#1 mit einem „PES Start" kommt. Der erste Offset-Wert OP1,OB1 des Info-Files beschreibt die Distanz zwischen dem ersten MTS Paket PSP#1, das ein „PES Start" enthält und dem zweiten MTS Paket PSP#2, das ebenfalls ein „PES Start" beinhaltet. Die ersten TSPs im Transportdatenstrom MTS enthalten noch kein vollständiges PES-Packet und bleiben vom Info-File unbeachtet, auch wenn sie zum gleichen Elementardatenstrom gehören. Zusätzlich kann aber auch ein erster Eintrag im Info-File den Abstand des ersten PES-Packets PSP#1 bzw. die Anzahl der zu überspringenden irrelevanten TSPs OTH angeben.
  • Wird die Aufnahme eines Videostroms beendet, dann muss das zuletzt empfangene TSP nicht das Ende eines PES-Packets enthalten. Deshalb wird an den letzten Info-Block in einem MPEG2-spezifischen Info-File ein weiterer Block angehängt, dessen „Offset Packets" Wert Null ist, und anschließend folgt die Position des letzten TSP, welches ein „PES Start" enthält. Dieses angefangene PES-Packet muss nicht mehr vollständig sein und soll bei einer Wiedergabe nicht mehr gesendet werden. An dem in 3 gezeigten verkürzten Bei spiel beschreibt der letzte reguläre Info-Block OP2,OB2,TC2 den Abstand zwischen dem letzten vollständigen PES-Packet, das mit PSP#2 beginnt, und dem unvollständigen letzten, mit PSP#3 beginnenden PES-Packet. Der Offset OP2 ist drei, weil das dritte folgende TSP den nächsten, zum gleichen Elementardatenstrom gehörenden PES-Packet Header PSP#3 enthält. Der Offset OB2 ist die Summe der Bytes des PES-Packets, das mit PSP#2 beginnt. Der Timecode TC2 entspricht der Darstellungszeit, dem PTS dieses PES-Packets. Der letzte Info-Block OP3,OB3,TC3 jedoch enthält eine Null für den Offset-Wert OP3, und danach die Position des letzten „PES Start" Pakets PSP#3. Damit wird das Ende des aufgezeichneten Elementardatenstroms beschrieben.
  • Ein Videodatenstrom, der mit Hilfe eines Info-Files gescannt wird, muss zuerst mit dem Info-File synchronisiert werden. Dabei muss das erste TSP im Videodatenstrom gesucht werden, das den Anfang eines PES-Parkets, also ein „PES Start", enthält.
  • Die Erzeugung und Auswertung des Info-Files erfolgt im format-spezifischen DSD-Stream-Parser. Somit besteht die Möglichkeit, für jedes Videoformat ein speziell angepasstes Info-File mit individuellem Zusatzinformationsfeld und individueller Bitlänge des Info-Blocks zu erzeugen.
  • Das Erstellen des Info-Files erfolgt normalerweise beim Empfang der Videodaten, also während des Aufnahmevorgangs. Falls zu einem bereits bestehenden Track kein Info-File existiert, kann beim Start der DSD-Applikation ein solches erzeugt werden. Somit ist es möglich, auch Videodateien wiederzugeben, für die bei der Aufnahme kein erfindungsgemäßes Info-File erzeugt wurde, z.B. wenn eine Videodatei manuell kopiert wurde. Das Info-File kann auch zusammen mit den Videodaten übertragen und empfangen werden.
  • Zur Implementierung der Schnittstelle werden im DSD-Stream-Parser Modul die in Tab.2 aufgeführte Funktionen definiert, mittels derer ein Info-File geöffnet, erzeugt oder geschlossen werden kann.
  • Tab.2 Funktionen des DSD-Stream-Parsers
    Figure 00130001
  • Figure 00140001
    Tab.2: Funktionen des DSD-Stream-Parsers
  • Ein Aufruf von ParsePacket() liest ein Info-File, bzw. ein Aufruf von ParseStream() liest oder erzeugt ein Info-File, in Abhängigkeit von einem vorherigen Funktionsaufruf von OpenInfoFile() oder CreateInfoFile().
  • Die Funktion CheckSync() überprüft, ob der Videodatenstrom und das Info-File synchron sind. Bei einem MPEG2-TS Datenstrom wird geprüft, ob das „payload_unit_start_indicator"-Flag an der aktuellen Position im Videostrom auf 1 gesetzt ist und der „start_code_prefix" den Wert 000001hex enthält. Ist dies der Fall, enthält das TSP an der aktuellen Stelle im Videostrom den Anfang eines PES-Packets. Da das Info-File den Abstand zweier TSPs angibt, die jeweils benachbarte „PES Start" enthalten, ist dies die notwendige Bedingung für das Scannen des Videodatenstroms mit Hilfe des Info-Files. Die Funktion gibt in diesem Fall den Wert „true" zurück.
  • Ein Aufruf von ParsePacket() scannt ein einzelnes TSP eines MPEG2-TS Datenstroms. Aufeinander folgende Aufrufe von ParsePacket() enthalten als Eingangsparameter aufeinander folgende TSPs. Der Timecode des aktuell geparsten Pakets wird aus dem zugehörigen Info-File gelesen. Ein vorangegangener Aufruf von OpenInfoFile() ist deshalb notwendig. 4 zeigt den Ablauf der ParsePacket() Routine.
  • Ein zu parsender Videodatenstrom wird in einzelnen Aufrufen von ParsePacket() zuerst mit dem Info-File synchronisiert, indem das erste TSP im Videodatenstrom gesucht wird, das ein „PES Start" enthält. Dazu wird im ersten Schritt D1 das erste Byte eines TSP Headers, das sync_byte, auf den vorgeschriebenen Wert 47hex untersucht. Die Modulvariable bFirstPESReached gibt an, ob dieses TSP bereits gefunden wurde. Im zweiten Schritt D2 von ParsePacket() wird diese Variable untersucht. Wurde das TSP bisher nicht gefunden, so erfolgt ein Aufruf von CheckSync(). In Abhängigkeit des zurückgelieferten Wertes kann der Wert von bFirstPESReached auf „true" gesetzt werden. Im dritten Schritt D3 wird mit Hilfe dieser Variable nochmals geprüft, ob ein erstes TSP mit dem Anfang eines PES-Packets gefunden wurde. Wurde der Videodatenstrom in einem Aufruf von ParsePacket() mit dem Info-File synchronisiert, wird aus diesem der Offset zum nächsten TSP gelesen, das ein relevantes „PES Start" enthält . Die Modulvariable u32PacketsToNextPES erhält den Wert des ermittelten Offsets. Bei jedem Funktionsaufruf wird die Variable dekrementiert. Das Info-File wird erst dann wieder ausgelesen, wenn die Variable den Wert Null erreicht hat. Wird aus dem Info-File ein Offset von Null gelesen D4,D5, d.h. Dateiende erreicht, wird die Position des letzten TSPs, das ein „PES Start" enthält, der Modulvariablen u64ByteCounterAtPESStart übergeben. Der Wert dieser Variablen wird durch die Funktion GetCurrentEndOfValidStream() zurückgegeben. Wurde das Dateiende nicht erreicht, wird der zum aktuellen TSP gehörende Timecode aus dem Info-File gelesen und in der Modulvariablen u32ElapsedTime abgelegt.
  • Die Funktion ParseStream() scannt einen aus einem oder mehreren TSPs bestehenden Teil eines Videodatenstroms. Sie unterstützt sowohl die Ermittlung des Timecodes aus einem Info-File als auch die Erzeugung einer solchen Datei. Der angewandte Modus ist abhängig von einem vorangegangen Aufruf von OpenInfoFile() oder CreateInfoFile(). In einer Schleife wird jeweils ein einzelnes Videodatenpaket aus dem zu parsenden Videodatenstrom extrahiert. Die Schleife wird so lange ausgeführt, bis jedes Paket durchlaufen wurde. Die Modulvariable u32TSPCounter zählt dabei die extrahierten Pakete und in u64ByteCounter werden die extrahierten Bytes gezählt. Im Fall eines vorangegangenen Aufrufs von OpenInfoFile() wird das jeweils extrahierte Paket als Eingangsparameter eines Funktionsaufrufs von ParsePacket() verwendet. Sobald das erste TSP mit einem „PES Start" erreicht wurde, wird die aktuelle Anzahl Bytes, enthalten in u64ByteCounter, der Modulvariablen u32CurrentStartOfStreamOffset übergeben.
  • Soll ein Info-File erzeugt werden, so wird das aktuelle TSP der privaten Funktion ParseTransportPacket() übergeben. Diese Funktion stellt fest, ob das TSP relevant für den Elementardatenstrom ist, extrahiert daraus ein Stück eines PES-Packets und speichert dieses in einem Buffer. Bei jedem Funktionsaufruf wird ein weiteres Stück PES-Packet in einem Buffer abgelegt. Enthält das TSP den Anfang eines neuen PES-Packets, wird der Zählerstand der Variable u32TSPCounter in der Modulvariablen u32TSPCounterAtPESStart sowie der aktuelle Wert von u64ByteCounter in u64ByteCounterAtPESStart abgelegt, alle bisher gespeicherten Stücke des PES-Packets werden zusammengefügt und das gesamte PES-Packet durch die private Funktion ParsePESPacket() untersucht. Diese ermittelt, falls vorhanden, den zugehörigen PTS und legt diesen in der Modulvariable u32PTS ab. Außerdem ist es möglich, PES-Packets weiter zu untersuchen, z.B. auf enthaltene Video- oder Audiodatenströme. Der PTS wird anschließend in ParseTransportPacket() untersucht, auf Fehler überprüft und korrigiert sowie der aktuelle Timecode berechnet, welcher in das geöffnete Info-File geschrieben wird. Die Berechnung des Timecodes erfolgt nach dem oben beschriebenen Verfahren. Die Distanz zwischen zwei benachbarten TSPs, die ein „PES Start" enthalten, wird anhand der Modulvariablen u32TSPCounter, u32TSPCounterAtPESStart, u64ByteCounter und u64ByteCounterAtPESStart berechnet.
  • Die Funktion GetCurrentEndOfValidStream() gibt den aktuellen Wert der Variablen u64ByteCounterAtPESStart, wie bei ParsePacket() und ParseStream() beschrieben, zurück. Damit liefert sie die Position des zuletzt geparsten TSPs, das ein „PES Start" enthält.
  • Die Funktion GetStartOfStreamOffset() gibt den Wert der in ParseStream() gefüllten Variable u32CurrentStartOfstreamOffset zurück. Gibt die Applikation einen Videostrom wieder, wird die eigentliche Übertragung erst ab dem zurückgelieferten Wert gestartet. Das verhindert, dass bei Wiedergabebeginn ein unvollständiges PES-Packet übertragen wird. Da ein Videodatenstrom bei jeder Stelle beginnend aufgenommen werden kann, muss die aufgenommene Datei nicht mit einem „PES Start" im ersten TSP beginnen. Die Variable u32CurrentStartOfStreamOffset wird anfangs auf den Initialwert FFFFFFFFhex gesetzt. Wird dieser Wert durch die Funktion zurückgeliefert, bedeutet das, dass in ParseStream() bisher kein „PES Start" gefunden wurde.
  • Die Suche nach einem bestimmten Timecode im Info File erfolgt in der SeekTimeCode() Routine des DSD-MPEG2-Parsers. Es wird zwischen Vorwärts- und Rückwärtssuche unterschieden (SeekType). Zurückgeliefert wird die Anzahl Bytes, um die sich der Dateizeiger im Videostrom bewegen muss, um das entsprechende TSP zu erreichen. Im Rückwärtszweig der Routine wird ein Timecode im Info-File gesucht, der kleiner oder gleich dem als Parameter übergebenen Timecode ist. Dabei läuft der in Tab.3 dargestellte Algorithmus ab.
  • Figure 00180001
    Tab.3: Struktogramm der Rückwärtssuche in SeekTimeCode()
  • Der Gesamtsprungzähler in Tab.3 bezeichnet die Anzahl der Bytes, um die der Positionszeiger im Videostrom bewegt werden muss, um zu dem gewünschten Timecode zu gelangen. Dieser wird im Info-File gesucht, indem die Offsets von PES-Packet zu PES-Packet aufsummiert werden.
  • Im Vorwärtszweig der Routine wird ein Timecode im Info-File gesucht, der größer oder gleich dem als Parameter übergebenen Timecode ist. Tab.4 stellt das Struktogramm der Vorwärtssuche dar.
  • Figure 00190001
    Tab.4: Struktogramm der Vorwärtssuche in SeekTimeCode()
  • Nach jedem Schleifendurchlauf des in Tab.4 dargestellten Algorithmus zeigt der Dateizeiger des Info-Files auf den Beginn des nächsten Info-Blocks, für welchen die Schritte 5 bis 8 ausgeführt werden. Beim Erreichen des Dateiendes wird die Schleife verlassen und der Dateizeiger im Info-File auf „Dateianfang" gesetzt.
  • Im folgenden wird die Umsetzung der Forward- und Reverse-Kommandos zum Vorwärts- und Rückwärtsspulen beschrieben.
  • Das Vorwärts- und Rückwärtsspulen in einem Videodatenstrom erfolgt mit Hilfe des oben beschriebenen Info-Files. Zu Beginn der Routine wird davon ausgegangen, dass der Positionszeiger innerhalb des Videostroms auf ein TSP zeigt, das den Anfang eines PES-Packets („PES Start") enthält, oder auf ein TSP, das sich vor diesem befindet. Zur Synchronisation mit dem Info-File wird der Videostrom solange vorwärts gescannt, bis ein TSP mit einem „PES Start" gefunden wurde. In 3 werden im Datenstrom TS die Pakete OTH gescannt, bis das erste PES-Packet PSP#1 gefunden wurde, das ein „PES Start" enthält. Anschließend wird mittels einer Schleife in SeekTimeCode() ein Timecode im Info-File gesucht, welcher einen bestimmten zeitlichen Abstand zum aktuellen Timecode hat, und die Anzahl zu überspringender TSPs bzw. Bytes wird durch Aufsummieren ermittelt. Um diese wird der Dateizeiger im Videostrom versetzt.
  • Die Synchronisation zwischen dem Videostrom und dem Info-File muss auch bei einem Kommandowechsel gewährleistet sein. Dazu wird während des Wiedergabevorgangs der Timecode ebenfalls aus dem Info-File statt aus dem Videostrom gelesen. Das hat zwei Gründe: Erstens muss der Timecode dann nicht aus dem PTS neu berechnet werden, was schneller geht und sich zugunsten der Performance auswirkt, und zweitens ist dadurch das Info-File bei einem möglichen Kommandowechsel nach Vorspulen („Forward") oder Rückspulen („Reverse") synchron zum Videostrom.
  • Um den Videostrom und das Info-File auch bei einem Kommandowechsel synchron zu halten, hält der DSD-MPEG2-Parser folgende Vorgaben ein:
    • 1. Zu Beginn der Ausführung eines Kommandos muss der Positionszeiger im Videostrom auf das TSP zeigen, welches den Beginn des zur aktuellen Zeigerposition im Info-File zugehörigen PES-Packets enthält, oder auf ein TSP, welches sich vor diesem befindet. Befindet sich der Zeiger sowohl des Videostroms als auch des Info-Files am Dateianfang, so ist diese Bedingung per Definition erfüllt.
    • 2. Befindet sich nach dem Wiedergabevorgang der Positionszeiger im Videostrom auf keinem TSP mit einem „PES Start", so zeigt der Dateizeiger des Info-Files auf den Info-Block, der zum nächsten TSP mit einem „PES Start" gehört. Enthält das aktuelle TSP des Videostroms ein „PES Start", so zeigt der Dateizeiger des Info-Files auf den zu diesem TSP zugehörigen Info-Block.
    • 3. Nach der Ausführung eines Forward- oder Reverse-Kommandos zeigt der Positionszeiger im Videostrom auf ein TSP mit einem „PES Start". Der Dateizeiger des Info-Files zeigt auf den zu diesem TSP gehörigen Info-Block. Ausnahme ist der Fall, dass während der Kommandoausführung das Dateiende erreicht wird. In diesem Fall werden beide Zeiger auf den Dateianfang gesetzt.
  • Nach der Ausführung eines Kommandos wird sowohl die Videodatei als auch das Info-File geschlossen. Deshalb werden Modulvariable eingeführt, welche die aktuelle Position im Videostrom und im Info-File dauerhaft speichern. Das DSD-Working-Thread Modul legt zu diesem Zweck die Variable u64FilePos an, die nach jedem Dateizugriff mit der aktuellen Position des Dateizeigers der Videodatei aktualisiert wird. Der DSD-MPEG2-Parser definiert die Variable u32InfoFilePosition. In der StartFile() Routine des DSD-Working-Threads wird nach dem Öffnen der Videodatei der Dateizeiger auf die Position in u64FilePos gesetzt. Gleiches geschieht beim Öffnen des Info-Files mit der entsprechenden DSD-MPEG2-Parser Modulvariablen. Erfolgt die Wiedergabe eines anderen als des im vorangegangenen Kommando ausgewählten Tracks, müssen beide Modulvariablen auf Null gesetzt werden.
  • In der praktischen Umsetzung lassen sich typischerweise etwa folgende Größenverhältnisse zwischen den Dateien erzielen:
    Für eine 65Mbyte große Videodatei ist das Info-File ca. 81Kbyte groß, entsprechend 0.12%. Für eine andere Videodatei von 229Mbyte ist das Info-File ca. 146Kbyte groß, entsprechend etwa 0.06%.
  • Der verwendete Transportdatenstrom (Transport Stream, TS) ist ein paketorientierter Datenstrom, der vorwiegend für fehlerbehaftete Kanäle benutzt wird, meist für Übertragung oder Speicherung. Die Erfindung ist jedoch unabhängig davon, ob alle oder nur ein Teil der Pakete des Transportdatenstroms überhaupt relevant sind.
  • Die verwendeten PES-Packets haben variable-Größe, bis zu 64Kbyte, und können im Video-Elementardatenstrom ein intracodiertes Bild („I-Frame", ca.40Kbyte) oder bis zu zwei intercodierte Bilder („B-Frame", "P-Frame") enthalten. Dies ist auf die je nach Bildinhalt variable Größe der codierten Bilder zurückzuführen. Daher erlaubt das erfindungsgemäße Verfahren ein einfaches, schnelles und gezieltes Auffinden einzelner PES-Packets, und damit einzelner Videobilder.
  • Wichtig an der Erfindung ist, dass die Informationen zum Auffinden der PES-Packets separat abgelegt werden, z.B. in einer separaten Datei oder in einem separaten Speicherbereich. Ein weiterer Vorteil des erfindungsgemäßen Verfahrens ist, dass zur Lokalisierung einer speziellen Stelle innerhalb eines Elementardatenstroms der gespeicherte Transportdatenstrom, der die Pakete mehrerer Elementardatenströme enthalten kann, nicht erst während der Lokalisierung nach diesen Elementardatenströmen sortiert werden muss. Beides führt dazu, dass der Transportdatenstrom unverändert abgespeichert werden kann, so wie er empfangen wurde.
  • Weiterhin erlaubt das erfindungsgemäße Verfahren, jeden von der Bildcodierung her möglichen Einsprungpunkt, d.h. jeden I-Frame, in der Videodatei anzuspringen, statt z.B. ein festes Raster möglicher Einsprungpunkte vorzugeben. Sogar intercodierte Bilder, B-Frames oder P-Frames, können angesprungen werden, wenn sie sich am Anfang eines PES-Packets befinden. Diese Punkte werden beim Anlegen der Info-Datei automatisch lokalisiert.
  • Durch die Angabe relativer Offsets ist das Verfahren unabhängig von der Länge der Gesamtdatei. Nur die maximale Sprungweite ist begrenzt, die sich aber sicher vorhersagen lässt. Dabei kann der Offset zum nächsten relevanten TSP bzw. zum vorherigen relevanten TSP angegeben werden, je nach Definition der Zuordnung.
  • Das erfindungsgemäße Verfahren lässt sich vorteilhaft in Geräten einsetzen, die in paketorientierten Datenströmen navigieren müssen, z.B. Aufnahme- und Wiedergabegeräte für Video- und/oder Audiodaten, etwa Personal Video Recorder (PVR) oder ähnliche, insbesondere zur Implementierung von Vorspul-, Rückspul- oder Wiedergabefunktion.

Claims (12)

  1. Verfahren zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom (MTS) ersten Typs aus ersten Datenpaketen (TDP) konstanter Größe, wobei die in den ersten Datenpaketen (TDP) enthaltenen Daten ohne Änderung ihrer Reihenfolge zusammengesetzt werden können zu zweiten oder weiteren Datenpaketen (PP), die unterschiedliche Größe haben können und die einen oder mehrere verschiedene Datenströme (PES1, PES2) eines zweiten Typs oder weiterer Typen ergeben, dadurch gekennzeichnet, dass – die an den definierten Positionen befindlichen ersten Datenpakete (TDP) die Anfänge oder Header (PPH1,PPH2) der zweiten Datenpakete enthalten; und – die Beschreibung der definierten Positionen sowie zusätzliche das jeweilige zweite Datenpaket betreffende Informationen von den Datenströmen getrennt gespeichert wird oder abrufbar ist.
  2. Verfahren nach Anspruch 1, wobei die an den definierten Positionen befindlichen ersten Datenpakete (TDP) automatisch die Anfänge oder Header (PPH1,PPH2) aller zum gleichen Datenstrom (EDS) gehörigen zweiten Datenpakete (PP) enthalten.
  3. Verfahren nach Anspruch 1 oder 2, wobei die zweiten Datenpakete (PP) nur Daten eines Typs enthalten, diese Daten codiert sind und die Anfänge oder Header (PPH1,PPH2) der zweiten Datenpakete die Einsprungpunkte für eine Decodierung des zweiten Datenstroms (EDS) sind.
  4. Verfahren nach einem der vorherigen Ansprüche, wobei die Position eines Datenpakets (PP#12) des Datenstroms (MTS) ersten Typs, das den Anfang oder Header (PPH2) eines Datenpakets des Datenstroms (ESD) zweiten Typs enthält, relativ (OP,OB) zu einem anderen Datenpaket (PP#11) des Datenstroms (MTS) ersten Typs beschrieben wird, welches den Anfang oder Header (PPH1) des nächsten oder vorhergehenden zweiten Datenpakets des Datenstroms (EDS) zweiten Typs enthält.
  5. Verfahren nach dem vorherigen Anspruch, wobei die relative Angabe (OP,OB) als Anzahl von Paketen ersten Typs (OP) und als Anzahl von Bytes (OB) angegeben wird.
  6. Verfahren nach einem der vorherigen Ansprüche, wobei die separat gespeicherten Informationen die Position von Headern von PES-Packets sowie den Timestamp des jeweiligen Headers enthalten, und wobei der Datenstrom (MTS) ersten Typs ein MPEG-2 Transportdatenstrom ist.
  7. Verfahren zum Vor- oder Zurückspulen innerhalb eines Datenstroms (EDS) zweiten Typs, der aus Datenpaketen (PP) unterschiedlicher Größe besteht, wobei diese Datenpakete (PP) aus anderen Datenpaketen (TDP) konstanter Größe eines Datenstroms (MTS) ersten Typs extrahiert werden, und wobei ein Dateizeiger eine aktuelle Position innerhalb des Datenstroms (MTS) ersten Typs anzeigt, dadurch gekennzeichnet, dass – die relative Position derjenigen Datenpakete (PP#11,PP#12) des Datenstroms (MTS) ersten Typs, welche die Anfänge oder Header der Datenpakete (PP) des Datenstroms (EDS) zweiten Typs enthalten, aus einem Speicher oder einer Datei abgerufen werden; – aus der Position des Dateizeigers (PP#11) und der abgerufenen Position eines anderen Datenpakets (PP#12) innerhalb des Datenstroms (MTS) ersten Typs die Position des anderen Datenpakets (PP#12) berechnet wird; und – der Dateizeiger auf die berechnete Position innerhalb des Datenstroms (MTS) ersten Typs springt.
  8. Verfahren nach Anspruch 7, wobei die Position aller derjenigen Datenpakete (PP#11,PP#12) des Datenstroms (MTS) ersten Typs, welche die Anfänge oder Header der Datenpakete (PP) des Datenstroms (EDS) zweiten Typs enthalten, aus einem Speicher oder einer Datei abgerufen werden.
  9. Verfahren nach Anspruch 7 oder 8, wobei die Datenpakete (PP) des Datenstroms (EDS) zweiten Typs im Header (PPH1,PPH2) einen Zeitstempel enthalten, weiter dadurch gekennzeichnet, dass auch dieser Zeitstempel zusammen mit der Positionsangabe des den jeweiligen Header enthaltenden Datenpakets (PP#11, PP#12) des Datenstroms (MTS) ersten Typs in dem Speicher oder der Datei gespeichert ist und von dort abgerufen wird, und dieser Zeitstempel zur Bestimmung oder Anzeige der Position innerhalb des Datenstroms (EDS) zweiten Typs verwendet wird.
  10. Vorrichtung zum Vor- oder Zurückspulen innerhalb eines Datenstroms (EDS) zweiten Typs, der aus Datenpaketen (PP) unterschiedlicher Größe besteht, wobei diese Datenpakete (PP) aus anderen Datenpaketen (TDP) konstanter Größe eines Datenstroms (MTS) ersten Typs extrahiert werden, und wobei ein Dateizeiger eine aktuelle Position (PP#11) innerhalb des Datenstroms (MTS) ersten Typs anzeigt, dadurch gekennzeichnet, dass die Vorrichtung folgende Bestandteile enthält: – ein Speichermedium, aus dem die Position derjenigen Datenpakete (PP#11,PP#12) des Datenstroms (MTS) ersten Typs abgerufen wird, welche die Anfänge oder Header (PPH1,PPH2) der Datenpakete (PP) des Datenstroms (EDS) zweiten Typs enthalten; – ein Mittel zur Berechnung der Position eines anderen Datenpakets (PP#12) innerhalb des Datenstroms (MTS) ersten Typs aus der aktuellen Position des Dateizeigers (PP#11) und der aus dem Speichermedium abgerufenen Positionsangabe (OP,OB) des anderen Datenpakets (PP#12); und – ein Mittel zum Setzen des Dateizeigers auf die berechnete Position (PP#12) innerhalb des Datenstroms (MTS) ersten Typs.
  11. Vorrichtung nach Anspruch 10, wobei die Datenpakete (PP) des Datenstroms (EDS) zweiten Typs Zeitmarken enthalten, die sich auch aus Zusatzinformationen. (AI) ermitteln lassen, welche zusammen mit der Positionsangabe (OP,OB) des den jeweiligen Paketheader (PPH2) enthaltenden Datenpakets (PP#12) aus dem Speichermedium abgerufen werden, und wobei das zum Vor- oder Rückspulen selektierte andere Datenpaket (PP#12) so gewählt wird, dass die ihm zugeordnete Zeitmarke und die im aktuellen Datenpaket (PP#11) enthaltene Zeitmarke eine vorgegebene Zeitdifferenz einhalten.
  12. Vorrichtung zum Berechnen und Speichern von Informationen, die sich auf einen Datenstrom (EDS) zweiten Typs beziehen, der aus Datenpaketen (PP) unterschiedlicher Größe besteht, wobei diese Datenpakete (PP) in ihrem Header (PPH1,PPH2) Zeitmarken enthalten und aus dem Inhalt anderer Datenpakete (TDP) konstanter Größe eines Datenstroms (MTS) ersten Typs zusammengesetzt werden, dadurch gekennzeichnet, dass die Vorrichtung enthält: – ein Mittel zur Zuordnung der Datenpakete (TDP) des Datenstroms (MTS) ersten Typs zu einem Datenstrom (EDS) zweiten Typs; – ein Mittel zur Extraktion der Zeitmarken der Datenpakete (PP) des Datenstroms (EDS) zweiten Typs aus den Datenpaketen (TDP) des Datenstroms (MTS) ersten Typs; – ein Zähler zum Zählen der Datenpakete (TDP) des Datenstroms (MTS) ersten Typs vom aktuellen, einen Header enthaltenden Datenpaket (PP#11) bis zum nächsten, einen Header enthaltenden Datenpaket (PP#12), das zum gleichen Datenstrom (EDS) zweiten Typs gehört; – eine Vorrichtung zum Speichern von Datenblöcken (IB), wobei jeder Datenblock einem Datenpaket (PP) des Datenstroms (EDS) zweiten Typs zugeordnet ist und mindestens die ermittelte Anzahl von Paketen und die extrahierte Zeitmarke enthält.
DE10355345A 2003-11-25 2003-11-25 Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom Withdrawn DE10355345A1 (de)

Priority Applications (9)

Application Number Priority Date Filing Date Title
DE10355345A DE10355345A1 (de) 2003-11-25 2003-11-25 Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom
EP04300720A EP1536429A1 (de) 2003-11-25 2004-10-25 Verfahren und Vorrichtung zur Aufzeichnung oder Umlegung von bestimmten Positionen in einem Datenstrom
US10/988,803 US7664105B2 (en) 2003-11-25 2004-11-15 Method and apparatus for storage or relocation of defined positions in a data stream
TW093135513A TWI345174B (en) 2003-11-25 2004-11-19 Method and apparatus for storage or relocation of defined positions in a data stream
MYPI20044836A MY145511A (en) 2003-11-25 2004-11-22 Method and apparatus for storage or relocation of defined positions in a data stream
CN200410095098XA CN1622535B (zh) 2003-11-25 2004-11-23 用于数据流中确定位置的存储和重定位的方法及装置
KR1020040096958A KR101164670B1 (ko) 2003-11-25 2004-11-24 데이터 스트림내 정의된 위치의 저장 또는 재배치를 위한방법 및 장치
JP2004340970A JP4990493B2 (ja) 2003-11-25 2004-11-25 データストリーム内の所定位置を記憶又は再配置するための方法及び装置
JP2012052265A JP2012146391A (ja) 2003-11-25 2012-03-08 データストリーム内の所定位置を記憶又は再配置するための方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10355345A DE10355345A1 (de) 2003-11-25 2003-11-25 Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom

Publications (1)

Publication Number Publication Date
DE10355345A1 true DE10355345A1 (de) 2005-06-23

Family

ID=34442301

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10355345A Withdrawn DE10355345A1 (de) 2003-11-25 2003-11-25 Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom

Country Status (8)

Country Link
US (1) US7664105B2 (de)
EP (1) EP1536429A1 (de)
JP (2) JP4990493B2 (de)
KR (1) KR101164670B1 (de)
CN (1) CN1622535B (de)
DE (1) DE10355345A1 (de)
MY (1) MY145511A (de)
TW (1) TWI345174B (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10355345A1 (de) * 2003-11-25 2005-06-23 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom
CN101243675B (zh) * 2005-06-27 2016-05-11 核心无线许可有限公司 用于动态丰富媒体场景的传送机制
US8904443B2 (en) * 2005-09-07 2014-12-02 Sony Corporation System and method for improving home network GUI response time and presentation
KR101227497B1 (ko) * 2006-04-28 2013-01-29 엘지전자 주식회사 디지털 방송 신호와 상기 신호를 처리하는 장치 및 방법
US7930449B2 (en) * 2006-09-14 2011-04-19 Opentv Inc. Method and system for data transmission
US11303684B2 (en) 2006-09-14 2022-04-12 Opentv, Inc. Methods and systems for data transmission
US8335873B2 (en) 2006-09-14 2012-12-18 Opentv, Inc. Method and systems for data transmission
US20080240227A1 (en) * 2007-03-30 2008-10-02 Wan Wade K Bitstream processing using marker codes with offset values
FR2923970B1 (fr) * 2007-11-16 2013-01-04 Canon Kk Procede et dispositif de formation, de transfert et de reception de paquets de transport encapsulant des donnees representatives d'une sequence d'images
AU2010204110B2 (en) 2009-01-07 2012-08-23 Nds Limited Data stream storage system
JP2011223360A (ja) * 2010-04-09 2011-11-04 Sony Corp 送信装置、受信装置、制御方法、及び通信システム
CN105611320B (zh) 2010-07-19 2018-10-19 Lg电子株式会社 收发媒体文件的方法以及使用该方法发送/接收的装置
KR101440271B1 (ko) 2012-10-22 2014-09-18 주식회사 다산네트웍스 패킷 처리 방법 및 시스템
CN104268288B (zh) * 2014-10-21 2018-06-19 福州瑞芯微电子股份有限公司 一种基于ntfs的媒体库扫描方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1051027A1 (de) * 1999-05-06 2000-11-08 Sony Corporation Datenverarbeitungsverfahren und -gerät, Datenwiedergabeverfahren und -gerät, Datenaufzeichnungsmedien
EP1294139A2 (de) * 2001-08-30 2003-03-19 Thomson Licensing S.A. Verfahren, Gerät und Datenstruktur, mehrfachem Führung Datenstromgetriebe ermöglichend
EP1363291A1 (de) * 2001-01-16 2003-11-19 Matsushita Electric Industrial Co., Ltd. Informationsaufzeichnungsvorrichtung und -verfahren

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026232A (en) * 1995-07-13 2000-02-15 Kabushiki Kaisha Toshiba Method and system to replace sections of an encoded video bitstream
JP3484834B2 (ja) * 1995-07-28 2004-01-06 ソニー株式会社 データ符号化/復号化方法および装置
JPH1098681A (ja) * 1996-09-24 1998-04-14 Ekushingu:Kk デコード装置
US6449653B2 (en) * 1997-03-25 2002-09-10 Microsoft Corporation Interleaved multiple multimedia stream for synchronized transmission over a computer network
US6272131B1 (en) * 1998-06-11 2001-08-07 Synchrodyne Networks, Inc. Integrated data packet network using a common time reference
US6278838B1 (en) * 1998-06-26 2001-08-21 Lsi Logic Corporation Peak-ahead FIFO for DVD system stream parsing
AU4944699A (en) * 1998-06-29 2000-01-17 Limt Technology Ab Method and apparatus for splicing data streams
US6584118B1 (en) * 1998-08-27 2003-06-24 Nortel Networks Limited Payload mapping in synchronous networks
CA2289958C (en) * 1998-11-19 2003-01-21 Tomoyuki Okada Information recording medium, apparatus and method for recording or reproducing data thereof
JP3806018B2 (ja) * 1999-02-18 2006-08-09 株式会社東芝 ストリームデータの情報記憶媒体、その記録方法、再生方法、記録装置および再生装置
KR100308152B1 (ko) * 1999-07-31 2001-09-29 서평원 단문 메시지 서비스를 위한 셀 브로드캐스팅 방법
FR2797549B1 (fr) * 1999-08-13 2001-09-21 Thomson Multimedia Sa Procede et dispositif de synchronisation d'un decodeur mpeg
US7023833B1 (en) * 1999-09-10 2006-04-04 Pulse-Link, Inc. Baseband wireless network for isochronous communication
US6633564B1 (en) * 1999-09-22 2003-10-14 Nortel Networks Limited Method and apparatus for inserting packets into a data stream
JP2001103424A (ja) * 1999-09-29 2001-04-13 Victor Co Of Japan Ltd 符号化ビットストリーム記録及び/又は再生装置、並びに記録媒体
JP4389365B2 (ja) * 1999-09-29 2009-12-24 ソニー株式会社 トランスポートストリーム記録装置および方法、トランスポートストリーム再生装置および方法、並びにプログラム記録媒体
EP1148727A1 (de) * 2000-04-05 2001-10-24 THOMSON multimedia Verfahren und Vorrichtung zur Dekodierung von digitalen Videosignalen in einem digitalen Fernsehsystem unter Verwendung von Scheinheadereinfügung
US6654389B1 (en) * 1999-11-23 2003-11-25 International Business Machines Corporation System and method for searching patterns in real-time over a shared media
US6940831B1 (en) * 1999-11-29 2005-09-06 Matsushita Electric Industrial Co., Ltd Wireless communications system
US7089485B2 (en) * 2000-02-03 2006-08-08 Agere Systems Inc. Simple link protocol providing low overhead coding for LAN serial and WDM solutions
US6795418B2 (en) * 2000-03-31 2004-09-21 Koninklijke Philips Electronics N.V. Wireless MAC protocol based on a hybrid combination of slot allocation, token passing, and polling for isochronous traffic
GB0007870D0 (en) 2000-03-31 2000-05-17 Koninkl Philips Electronics Nv Methods and apparatus for making and replauing digital video recordings, and recordings made by such methods
US6845100B1 (en) * 2000-08-28 2005-01-18 Nokia Mobile Phones Ltd. Basic QoS mechanisms for wireless transmission of IP traffic
JP2002077818A (ja) * 2000-09-04 2002-03-15 Pioneer Electronic Corp 蓄積再生システム、トランスポートストリームの蓄積方法及びトランスポートストリームの再生方法
US20020154647A1 (en) * 2001-02-16 2002-10-24 Hanan Potash Frame handler for high-speed fiber optic communication interface
US8081865B2 (en) * 2001-03-29 2011-12-20 Panasonic Corporation AV data recording apparatus and method, recording media recorded by the same, AV data reproducing apparatus and method, and AV data recording and reproducing apparatus and method
WO2002080541A1 (fr) * 2001-03-29 2002-10-10 Matsushita Electric Industrial Co., Ltd. Appareil d'enregistrement/lecture de donnees av, procede connexe, et disque sur lequel sont enregistrees les donnees par l'appareil d'enregistrement/lecture de donnees av ou procede associe
US7039056B2 (en) * 2001-08-02 2006-05-02 Lucent Technologies Inc. High quality audio and video over digital subscriber lines (DSLs)
US7339890B2 (en) * 2002-02-01 2008-03-04 Broadcom Corporation Scalable, high-resolution asynchronous transfer mode traffic shaper and method
JP2003264804A (ja) * 2002-03-12 2003-09-19 Hitachi Ltd データ配信システム、データ配信装置、デジタル受信機、データ配信方法
US7379462B2 (en) * 2003-04-01 2008-05-27 Texas Instruments Incorporated WLAN access scheduling control
PL214807B1 (pl) * 2003-04-14 2013-09-30 Adb Polska Sp Sposób laczenia w ukladzie przetwarzajacym strumienie MPEG pakietów kilku wejsciowych strumieni MPEG w jeden transportowy strumien wyjsciowy z jednoczesna korekcja oznaczen czasowych
EP1639600A1 (de) * 2003-06-17 2006-03-29 Koninklijke Philips Electronics N.V. Stream-dateiformat für eine dvd-multimedia-hausplattform mit stopfbyteentfernung
US8213769B2 (en) * 2003-08-06 2012-07-03 Broadcom Corporation Frame indexing technique to improve personal video recording functionality and security of transmitted video
DE10355345A1 (de) * 2003-11-25 2005-06-23 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom
JP2005167338A (ja) * 2003-11-28 2005-06-23 Toshiba Corp 映像音声再生装置
JP2006164378A (ja) * 2004-12-06 2006-06-22 Toshiba Corp 情報記録媒体、情報記録方法、情報再生方法、情報記録装置、情報再生装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1051027A1 (de) * 1999-05-06 2000-11-08 Sony Corporation Datenverarbeitungsverfahren und -gerät, Datenwiedergabeverfahren und -gerät, Datenaufzeichnungsmedien
EP1363291A1 (de) * 2001-01-16 2003-11-19 Matsushita Electric Industrial Co., Ltd. Informationsaufzeichnungsvorrichtung und -verfahren
EP1294139A2 (de) * 2001-08-30 2003-03-19 Thomson Licensing S.A. Verfahren, Gerät und Datenstruktur, mehrfachem Führung Datenstromgetriebe ermöglichend

Also Published As

Publication number Publication date
TWI345174B (en) 2011-07-11
EP1536429A1 (de) 2005-06-01
CN1622535A (zh) 2005-06-01
US7664105B2 (en) 2010-02-16
KR101164670B1 (ko) 2012-07-11
CN1622535B (zh) 2012-05-16
TW200527274A (en) 2005-08-16
JP4990493B2 (ja) 2012-08-01
JP2005158251A (ja) 2005-06-16
MY145511A (en) 2012-02-29
US20050122974A1 (en) 2005-06-09
KR20050050573A (ko) 2005-05-31
JP2012146391A (ja) 2012-08-02

Similar Documents

Publication Publication Date Title
DE69633552T2 (de) Verfahren und vorrichtung zum bildgenauen zugriff auf digitale audiovisuelle information
DE60102831T2 (de) System und verfahren zur verarbeitung von mpeg-stroemen fuer die einfuegung von dateiindex
DE60028120T2 (de) Datenverarbeitungsverfahren und -gerät, Datenwiedergabeverfahren und -gerät, Datenaufzeichnungsmedien
DE69620073T2 (de) Datenkodier/-dekodierverfahren und -gerät und Aufzeichnungsmedium für kodierte Daten
DE69912979T2 (de) Verfahren und gerät zur bearbeitung zeitveränderlicher bilder
DE69512445T2 (de) Audio-Video Dekodierungssystem und Verfahren
DE69625629T2 (de) Dekodierung und Rückwärtswiedergabe von kodierten Signalen
DE60007972T2 (de) Verfahren zur erzeugung von speziellen wiedergabebetriebsarten in einem datenstromaufzeichnungsgerät
DE10355345A1 (de) Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom
DE69527401T2 (de) Aufzeichnung und wiedergabe eines mpeg-informationssignals auf einen/von einem aufzeichnungsträger
DE69632664T2 (de) Dekodierung von Informationsseiten, die Titelinformation und Seitendaten umfassen
DE69805256T2 (de) Videodatenschnittgerät und rechnerlesbares Aufzeichnungsmedium zur Speicherung eines Schnittprogramms
DE69330358T2 (de) Gerät und Verfahren zur Verarbeitung von digitalen Videosignalen
DE69535631T2 (de) Aufzeichnung und Wiedergeben von Digitaldaten
DE69603587T2 (de) Vorrichtung und verfahren zur aufnahme bildbetreffender informationen
DE69836342T2 (de) Optische Platte, rechnerlesbares Aufzeichnungsmedium das ein Schnittprogramm speichert, Wiedergabegerät für die optische Platte und rechnerlesbares Aufzeichnungsmedium das ein Wiedergabeprogramm speichert
DE69807452T2 (de) Rechnersystem und -verfahren zur aufnahme, nachbearbeitung und wiedergabe von mittels interframe- und intraframe-techniken komprimiertem bewegtbildvideo
DE69837726T2 (de) Verfahren und Vorrichtung zum Realisieren einer nahtlosen Wiedergabe von kontinuierlichen Medien-Zuführungen
DE69428938T2 (de) Aufzeichnung von digitalen Videosignalen
DE69802257T2 (de) Optische Platte und computerlesbares Speichermedium sowie Aufnahmemethode und -vorrichtung dafür
DE60223483T2 (de) Verfahren zum aufzeichenen eines digitalen Rundfunkprogramms und zeitbasierter Wiedergabe eines aufgezeichneten Rundfunkprogramms und zugehörige Vorrichtung
DE69528091T2 (de) Verfahren und Vorrichtung zum Aufzeichnen und Wiedergeben von komprimierten Videodaten
DE69933273T2 (de) Informationserzeugungsverfahren zum schnellen Suchen von Packetdaten, Aufzeichnungsmedium mit denselben Informationen, und Aufzeichnungs- und/oder Wiedergabegerät unter Verwendung desselben
CN101843099B (zh) 存储视频数据的装置和方法
DE69633365T2 (de) Verfahren und Gerät zur Aufzeichnung von Daten auf einem Aufzeichnungsträger und Verfahren und Gerät zur Wiedergabe derselben, und ein Aufzeichnungsträger

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8139 Disposal/non-payment of the annual fee