DE69918571T2 - Verfahren und vorrichtung zur lieferung von in einem transportstrom eingebetteten bytekodes - Google Patents

Verfahren und vorrichtung zur lieferung von in einem transportstrom eingebetteten bytekodes Download PDF

Info

Publication number
DE69918571T2
DE69918571T2 DE69918571T DE69918571T DE69918571T2 DE 69918571 T2 DE69918571 T2 DE 69918571T2 DE 69918571 T DE69918571 T DE 69918571T DE 69918571 T DE69918571 T DE 69918571T DE 69918571 T2 DE69918571 T2 DE 69918571T2
Authority
DE
Germany
Prior art keywords
bytecode
transport stream
data
packets
bytecodes
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.)
Expired - Fee Related
Application number
DE69918571T
Other languages
English (en)
Other versions
DE69918571D1 (de
Inventor
Viswanathan Swaminathan
Gerard Fernando
Raghuveer Pallikonda
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69918571D1 publication Critical patent/DE69918571D1/de
Application granted granted Critical
Publication of DE69918571T2 publication Critical patent/DE69918571T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4348Demultiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Control Of Conveyors (AREA)
  • Discharge Of Articles From Conveyors (AREA)

Description

  • Hintergrund der Erfindung
  • A. Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf das Gebiet der Datenkommunikation. Teile der Offenbarung dieser Patentunterlagen enthalten Material, das dem Urheberrecht unterliegt.
  • Der Inhaber des Urheberrecht hat keinen Einwand, wenn jemand die Patentunterlagen oder die Patentoffenbarung, wie sie in der Akte oder den Aufzeichnungen des Patent- und Markenamtes erscheint, bildtechnisch reproduziert, behält sich aber alle Urheberrechte darüber hinaus vor. Sun, Sun Microsystems, das Sunlogo, Solaris, SPARC, "Write Once, Run Anywhere", Java, JavaOS, JavaStation und alle auf Java basierenden Marken und Logos sind Marken oder eingetragene Marken von Sun Microsystems, Inc, in den USA und anderen Ländern.
  • B. Technischer Hintergrund
  • Eine Verwendung des Internets ist das Liefern von Media-Informationen (wie eine Video- oder Sounddatei) an einen Benutzer. Ein Problem bei den derzeitigen Media-Liefersystemen ist, daß es schwierig ist, irgendwelche anderen Daten zu liefern, während die Mediadaten geliefert werden. Manchmal ist es gewünscht, Mediadaten und andere Daten (wie Steuerdaten) zur gleichen Zeit zu senden, ein Verfahren, das als "gleichzeitige Lieferung" bezeichnet wird. Bis jetzt gibt es kein geeignetes System zum gleichzeitigen Liefern von Media- und Steuerdaten. Die Probleme, die mit dem Bereitstellen eines gleichzeitigen Lieferns von Mediadaten und Steuerdaten verbunden sind, lassen sich durch einen Überblick über Media-Liefersysteme verstehen.
  • Media-Lieferung (Media Delivery)
  • In Multimediaanwendungen werden Mediadaten, wie Video- oder Audioinformationen, von einem Servercomputer zu einem Clientcomputer (zum Beispiel einem Computer eines Benut zers zu Hause oder im Büro) über einen "Transportstrom" übertragen. Ein Transportstrom besteht aus einer Abfolge von Bursts oder Paketen von Mediadaten. Bevor die Mediadaten übertragen werden, werden sie zuerst durch Konvertieren in ein geeignetes Format zur Übertragung bearbeitet. Einige Systeme (zum Beispiel Motion Picture Experts Group (MPEG)-Standards, wie MPEG-1, MPEG-2, MPEG-4 usw.) sind verfügbar, um Mediadaten (zum Beispiel Audio, Video usw.) zu bearbeiten, um sie als Mediadatenstrom zu übertragen.
  • Mediadaten werden manchmal als "zeitbezogene" oder "zeitsensitive" Daten bezeichnet. Dies liegt daran, weil es wichtig oder erforderlich ist, daß die Daten in einer bestimmten Geschwindigkeit und/oder zu einer bestimmten Zeit verfügbar sind. Beim Ansehen eines Videostroms ist es zum Beispiel wichtig, daß neue Videobilder verfügbar sind, so wie sie benötigt werden, um Unterbrechungen oder Verzögerungen in den dargestellten Videodaten zu vermeiden. Wenn die Daten eines Videos zu langsam gesendet werden, kann zum Beispiel das dargestellte Videobild einfrieren oder schwarz werden, während der Clientcomputer auf neue Videodaten wartet. Ähnlich müssen für Audiodaten neue Audiodaten kontinuierlich geliefert werden oder es entstehen Unterbrechungen bei der Wiedergabe. Diese Unterbrechungen können eine Ruhepause beim Abspielen der Audiodaten hervorrufen, was dazu führt, daß der Ton abgeschnitten wird oder Töne und Wörter fehlen. (Es ist zu beachten, daß zeitbezogene Daten nicht auf Mediadaten beschränkt sind. Zeitbezogene Daten sind Daten, die zusätzliche Informationen mit sich tragen, die ein Timing darstellen, das für die Verwendung der Daten relevant ist. Zum Beispiel können zeitbezogene Daten Zeitmarken umfassen, die Deadlines anzeigen, bis zu denen die Daten verarbeitet werden sollten).
  • In einigen Fällen ist eine Steueranwendung erforderlich, um bei der Wiedergabe der Mediadaten zu helfen oder um die Wiedergabe der Mediadaten zu steuern. In einigen Fällen ist eine solche Steueranwendung ein Applet oder eine Anwendung (wie ein Applet oder eine Anwendung in der Programmiersprache JavaTM). Das Applet wird als ein Bytecode von einem Server zu einem Benutzercomputer übertragen und der Benutzercomputer verwendet das Applet um die Wiedergabe der Mediadaten zu steuern. Es kann notwendig sein, einen Bytecode oder andere seriellen Daten oder Objekte an Clients zusammen mit den Mediainformationen zu liefern.
  • Es gibt derzeit keinen effektiven Mechanismus, der verfügbar ist, um Bytecodebefehle zusammen mit Mediadaten zu liefern. Typischerweise werden Bytecodedaten übertragen, nach dem alle notwendigen Daten übertragen sind. Das kann für einige Umgebungen zu spät sein, bei denen Applets oder Steueranwendungen bearbeitet werden müssen, sobald sie verfügbar werden. Eine Lösung aus dem Stand der Technik ist es, die Steueranwendung zuerst zu senden, noch bevor die Media- oder zeitbezogenen Daten übertragen werden. Dies führt jedoch zu unerwünschten Verzögerungen beim Wiedergeben der Mediadaten. Der Benutzer erwartet, Videodaten zu sehen, statt dessen muß er jedoch warten, bis die Steuerdaten empfangen sind. Diese Verzögerung ist unerwünscht.
  • Daher besteht ein Bedarf für die Übertragung von Bytecodebefehlen gleichzeitig mit den Mediadaten, anstelle einer Übertragung vor oder nach den Mediainformationen.
  • US-PS 5 768 539 offenbart ein Verfahren zum Herunterladen von Anwendungssoftware und zum Übertragen von Videoinformationen über ein digitales Netz. Nach diesem Verfahren wird ein Transportstrom von Datenpaketen erzeugt, wobei der Transportstrom Audio- und Videoinformationen sowie ausführbaren Code und zugeordnete Bearbeitungsdaten enthält. Das Verfahren kann vorsehen, daß die Daten gemäß dem MPEG-Standard übertragen werden. Die MPEG-Pakete werden in Nutzinformationsabschnitte von ATM-Zellen abgebildet. Videoinformationen auf der einen Seite und Software und zugeordnete Daten auf der anderen Seite werden in separaten Paketen übertragen. Daten, die keine Audio- oder Videodaten sind, werden auch in den Nutzinformationsabschnitten der MPEG-Pakete abgebildet.
  • EP 0 967 547 offenbart ein Verfahren und eine Vorrichtung zum Liefern von Klassen und Objekten. Gemäß diesem Dokument wird ein Kopf, der Zeitinformation umfaßt, an die Klassen und Objekte angefügt und zu einer Empfängerseite übertragen. Dieses Dokument wurde nach dem Prioritätstag des vorliegenden Patents veröffentlicht.
  • Es ist das Ziel der vorliegenden Erfindung, ein Verfahren zum Liefern von Bytecodes zum Steuern der Wiedergabe von Mediadaten in einem Transportstrom zur Verfügung zu stellen, wobei Mediadaten in Datenpakete zerlegt werden, was für ein gleichzeitiges und rechtzeitiges Liefern der Bytecodebefehle mit Mediadaten und eine effiziente Benutzung des Datenraums, der in dem Transportstrom verfügbar ist, ermöglicht.
  • Zusammenfassung der Erfindung
  • Es wird ein Verfahren und eine Vorrichtung zum Einbetten von Bytecodedaten in ein Transportstrom beschrieben. Ausführungsformen der Erfindung sorgen dafür, daß JavaTM-Bytecode (in einer Klassendatei) gleichzeitig für einen Benutzer verfügbar ist, der Mediainformationen durch einen Transportstrom empfängt. Bytecodeinformationen werden in den Raum eingebettet, der in dem Transportstrom zur Verfügung gestellt wird, oder in Pakete, welche die Mediadaten übertragen.
  • In einer Ausführungsform der Erfindung werden Mediadaten in strukturierte Pakete gruppiert, die als Packetized Elementary Stream (PES)-Pakete bezeichnet werden. Die Bytecodedaten werden in vordefinierten Bereichen in jedem PES-Paket eingebettet. Ein vordefinierter Bereich wird in dem Kopfsegment eines PES-Pakets zur Verfügung gestellt. Bytecodebefehle können auch in einem Privatstromabschnitt eines PES-Pakets eingebettet werden.
  • Bytecodedaten können auch in dem Privatstromabschnitt übertragen werden und eine Übertragungswiederholung von Bytecodedaten wird in anderen Bereichen des PES-Pakets ausgeführt. Bytecodedaten können auch in einem Adaptionsfeld übertragen werden und wieder übertragene Daten werden als private Daten im PES-Kopf gesendet.
  • Ein Transportstrom, der bei der Erfindung benutzt wird, ist ein MPEG-2-Transportstrom, der strukturierte Pakete umfaßt, welche die PES-Pakete übertragen. Diese Transportstrompakete besitzen umgekehrt in ihnen eingebettete Bytecodedaten innerhalb von Räumen in dem Transportstrom. In einer Ausführungsform der Erfindung kann Bytecode in einem Transportstromkopf oder in einem Transportstromnutzinformationsabschnitt eingebettet sein.
  • In Ausführungsformen der Erfindung wird das Einbetten von Informationen gemäß den Verfahren dieser Erfindung so ausgeführt, daß ein MPEG-2-kompatibler Decoder in der Lage ist, den Strom unabhängig davon zu verwenden, ob der Decoder die eingebetteten Bytecodeinformationen ausnutzt oder nicht. Weiterhin wird der Transportstrom mit minimalen Änderungen in der Bit-Rate im Hinblick auf sowohl die Länge als auch die Frequenz übertragen und liegt innerhalb der erlaubten maximalen Bandbreite. Ausführungsformen dieser Erfindung können auch Tune-in-Punkte definieren, an denen ein Decoder mit dem Decodieren und dem Darstellen der Bytecodeinformationen anfängt.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist eine Ausführungsform einer JavaTM-Netzwerkanwendungsumgebung.
  • 2 ist ein Blockdiagramm einer Ausführungsform eines Computersystems, das dazu in der Lage ist, eine geeignete Ausführungsumgebung für eine Ausführungsform der Erfindung zur Verfügung zu stellen.
  • 3 ist ein Diagramm, das ein Verfahren zum Packen, Fragmentieren und Transportieren von Daten gemäß einer Ausführungsform der Erfindung darstellt.
  • 4 stellt ein Verfahren zum Einbetten von Bytecodedaten in das Adaptionsfeld eines Pakets gemäß einer Ausführungsform der Erfindung dar.
  • 5 stellt ein Verfahren zum Einbetten von Bytecode in den Nutzinformationsabschnitt eines MPEG-2-Transportstrompakets gemäß einer Ausführungsform der Erfindung dar.
  • 6 stellt Bytecodedaten dar, die in einem PES-Kopf eines PES-Pakets eingebettet sind.
  • Detaillierte Beschreibung der Erfindung
  • Die Erfindung stellt ein Verfahren und eine Vorrichtung zum Einbetten von Bytecodedaten in einen Transportstrom zur Verfügung. In der folgenden Beschreibung werden zahlreiche spezielle Details dargestellt, um ein vollständigeres Verständnis der vorliegenden Erfindung zu liefern. Den Fachleuten wird jedoch deutlich, daß die vorliegende Erfindung ohne diesen speziellen Details ausgeführt werden kann. Andererseits werden gut bekannte Merkmale nicht im Detail beschrieben, um nicht unnötigerweise von der Erfindung abzulenken.
  • Die Erfindung wird im Hinblick auf die Übertragung von Mediadaten zu einem Client-Computersystem beschrieben. Dies ist jedoch nur ein Beispiel. Die Erfindung ist ebenso anzuwenden auf jegliche Einrichtungen, die Daten empfangen können, einschließlich von Digitalempfänger (set top boxes), Minicomputern (personal digital assistants), intelligenten Anwendungen (smart applications), Telekomeinrichtungen und Bankterminals (financial termi nals) oder anderer solcher Einrichtungen. Außerdem ist die Erfindung nicht auf Mediadaten beschränkt, sondern besitzt eine ähnliche Anwendung bei jeglicher Form von Daten, einschließlich Daten, die sich auf Electronic Commerce beziehen.
  • Bytecodedatenübertragung in einem Mediadatentransportstrom
  • Die aktuelle Erfindung sorgt für ein gleichzeitiges Liefern von Mediadaten und Bytecodedaten über einen Mediadatentransportstrom. Die Erfindung sorgt für ein Einbetten von Bytecodedaten in vordefinierte Bereiche in den Transportstrom. Nach dem Empfangen können die Bytecodedaten separiert und benutzt werden, um ein Wiedergeben oder Steuern der empfangenen Mediadaten zu unterstützen.
  • Eine bestehende Technik zum zeitlichen Liefern von Mediaströmen, die den Erfindern bekannt ist, ist ein Verfahren, das in einer Anmeldung beschrieben ist, die beim US-Patentamt eingereicht wurde mit dem Titel "Method and Apparatus for Timely Delivery of a Bytecode and Serialized Objects Stream" ("Verfahren und Vorrichtung zur zeitlichen Lieferung von einem Bytecode und einem seriellen Objektstrom"), welche nun Gegenstand des US-Patents Nr. 6 092 120 und der entsprechenden EP 0 967 547 A2 ist. Das vorliegende Verfahren zum Liefern von Bytecodinformationen, die in einem Transportstrom eingebettet sind, kann von einem Strom gebrauch machen, der durch ein Verfahren einen Zeitbezug erhalten hat, das in der zuvor genannten Anmeldung offenbart ist.
  • In der vorliegenden Erfindung wird der Bytecode in einem Transportstrom in einer solchen Weise eingebettet, daß die Übertragungsratenfrequenz und die maximale Länge stabil bleiben. Bytecodeinformationen werden in dem Transportstrom so eingebettet, daß ein Decoder in der Lage ist, den Mediadatenteil des Stroms zu decodieren, selbst wenn der Decoder keinen Gebrauch von den eingebetteten Bytecodeinformationen machen kann. In einer Ausführungsform der Erfindung werden die Bytecodedaten in einem Mediatransportstrom eingebettet, der unter Verwendung des MPEG-2-Protokolls decodiert ist. Diese Ausführungsform wird nachfolgend beschrieben.
  • MPEG-2
  • Obgleich die vorliegende Erfindung für alle Arten von Transportströmen gleich angewendet werden kann, wird die Erfindung beispielhaft in Verbindung mit der Übertragung als ein Teil eines MPEG-2-Transportstroms beschrieben.
  • 3 ist ein Diagramm, welches den Ablauf darstellt, mit dem die Mediadaten über einen MPEG-2-Transportstrom übertragen werden. Der Strom umfaßt Transportstrompakete (TSPs), die aus einem Kopf und einem Datenspeicherabschnitt bestehen. Der Kopf, der auch als Transportstromkopf (TS-Kopf) bezeichnet wird, kann optional ein "Adaptionsfeld" umfassen. Der Datenspeicherabschnitt, der auch als Transportstromnutzinformation (TS-Nutzinformation) bezeichnet wird, umfaßt Packetized Elementary Stream (PES)-Pakete. Jedes PES-Paket umfaßt ein PES-Kopf und Elementarstromdaten.
  • Der Transportstrom ist in 4 aus der Perspektive einer Datenquelle gezeigt, der in PES-Pakete konvertiert und in TSP-Pakete zusammengesetzt ist. Es existiert eine Quelle 1000 von Mediadaten, wie Audio-, Video-, Bild- oder andere Daten, die zu einem Clientcomputer übertragen werden sollen. Um dies zu bewerkstelligen, werden die Mediadaten 1000 in eine oder mehrere Pakete variabler Größe gesetzt, die als Packetized Elementary Stream (PES)-Pakete 1100 bezeichnet werden. Jedes PES-Paket besteht aus zwei Bereichen, einem Kopfbereich und einem Datenbereich. Dem PES-Kopf 1110 folgen "Elementarstromdaten" (Elementary Stream Data) 1120.
  • PES-Kopfbereich (PES Header Region)
  • Der Kopfbereich enthält ein PES-Kopf 1110. Der PES-Kopf 1110 identifiziert die Attribute der Daten, die in dem Datenbereich gespeichert sind. Solche Attribute können den Typ der Daten, die Größe der Daten, die übertragen werden, die Anfang- und Endpositionen der übertragenen Daten und möglicherweise andere Informationen umfassen, die für eine Interpretation der übertragenen Daten benötigt werden. Zum Beispiel kann eine Ausführungsform eines PES-Kopf 1110 Informationen umfassen, welche die Länge des Kopfs, die Version, ein Flag, das eine Klasse und ein Objekt bezeichnet, die Zahl der erforderlichen Klassen, einen "Start loading"-Zeitstempel, einen "Load by"-Zeitstempel, die Größe der Klasse, den verwendeten Kompressionstyp, die Art des verwendeten Sicherheitsschemas, die An der verwendeten Feh lerberichtigung, andere Typinformationen, die Länge einer Klassenbezeichnung (ID), eine Klassenbezeichnung (ID), die Längen der Klassen-IDs für jede der benötigten Klassen und Klassen-IDs für jede der benötigten Klassen darstellen.
  • Mediadatenbereich (Media Data Region)
  • Der Elementarstromdatenbereich 1120 enthält elementare Mediadaten. Die elementaren Daten 1000 bestehen aus allen oder einem Teil der Quelldaten (d.h. Audiodaten, Videodaten). Die Daten können mit geeigneten Identifizierungsinformationen in dem PES-Kopf 1110 zum Dekomprimieren der Elementarstromdaten 1120 komprimiert sein (wie benötigt).
  • Transportstrom (Transport Stream)
  • Wie vorhergehend erwähnt, besteht der Transportstrom aus TSP-Paketen, die aus einem Kopf und einem Datenspeicherabschnitt bestehen. Ein MPEG-2-Transportstrom 1200 ist ein Multiplexbitstrom und eine Ansammlung einzelner MPEG-2-Transportstrompakete (MPEG-2-TSP) 1210. Jedes MPEG-2-TSP 1210 besitzt eine feste Länge von 188 Bytes und umfaßt einen Transportstromkopf (TS-Kopf) 1220 gefolgt von einem Datenspeicherabschnitt (TS-Nutzinformation) 1230. (Die TS-Nutzinformationen bestehen aus PES-Paketen 1100).
  • TS-Kopf 1220 (TS Header)
  • Der TS-Kopf enthält Informationen, die zum Empfangen und Decodieren der MPEG-2-TSPs 1210 benötigt werden. Alle Transportstrompakete beginnen mit dem Transportstromkopf (32 Bits). Dieser Transportstromkopf enthält eine 13-Bit-Pakte-ID (PID), wie in Tabelle 1 nachfolgend gezeigt. Die Transportstrompakete des einzelnen PID tragen Daten von einem und nur einem Elementarstrom. Die PID bezeichnet über Programmspezifikationsinformation (PSI)-Tabellen die Inhalte der Daten, die in dem Transportsstrompaket enthalten sind. Es gibt vier PSI-Tabellen, die in dem Transportstrom getragen werden, nämlich Program Association Table (PAT), Program Map Table (PMT), Conditional Access Table (CAT) und Network Information Table (NIT). Diese Tabellen enthalten die notwendigen Informationen für ein Demultiplexing und zum Darstellen von Programmen.
  • Ein Programm ist hierin eine Ansammlung von Elementarströmen, die synchron dargestellt werden sollen. Die Programmnummer ist die numerische Markierung, die einem Programm zugeordnet ist. Die Programmdefinition wird als Transportstrompakete übertragen, welche die Program Map Table des Programms enthalten. Die Program Map Table spezifiziert neben anderen Informationen, welche PIDs und damit welche Elementarströme jedem Programm zugeordnet sind. Die Program Association Table liefert die Entsprechung zwischen der Programmnummer und der Program Map Table. Die PMT kennzeichnet außerdem die PID der Transportstrompakete, welche die PCR (Program Clock Reference) für jedes Programm tragen. Die Conditional Access Table enthält die Verschlüsselungsinformation, und die Network Information Table kann die Netzwerkinformation angeben, ihr Inhalt ist jedoch nicht durch den Standard definiert.
  • Tabelle 1: Transportpaketsyntax
    Figure 00090001
  • Adaptionsfeld (Adaption Field)
  • Wie vorhergehend bemerkt, kann der Transportstromkopf optional ein Adaptionsfeld aufweisen. Die Adaptionsfeldsteuerbits in dem TSH kennzeichnen, ob es ein Adaptionsfeld und/oder eine Nutzinformation gibt oder nicht. Die Adaptionsfeldsteuerwerte sind nachfolgend in Tabelle 2 beschrieben: Tabelle 2: Adaptionsfeldsteuerwert
    Figure 00090002
  • Das Adaptionsfeld, sofern es vorhanden ist, ist in der nachfolgenden Tabelle 4 beschrieben:
  • Tabelle 3: Transportstromadaptionsfeld (teilweise)
    Figure 00100001
  • PES-Paket
  • Das PES-Paket weist folgende Struktur auf, wie in Tabelle 4 gezeigt:
  • Tabelle 4: PES-Paket (teilweise)
    Figure 00100002
  • Figure 00110001
  • Privatdaten (Private Data)
  • Der MPEG-2-Transportstrom ist in der Lage, Benutzerdaten zu übertragen. Die Benutzerdaten können als Privatdaten in das Adaptionsfeld des Transportkopfs eines Pakets gefüllt werden. Sie können als ein Privatelementarstrom eines Programms geliefert werden. Sie können auch als Privatdaten in dem PES-Kopf des Transportstroms geliefert werden. MPEG-2 ermöglicht auch, Privatdaten in Transportstrompaketen mit einem PID-Wert zu senden, der als eine Program Map Table PID in der Program Association Table festgelegt ist.
  • Die vorliegende Erfindung umfaßt Ausführungsformen, die auf die Möglichkeit Rücksicht nehmen, Privatdaten in einem Transportstrom zu liefern, um Bytecode zum Liefern einzubetten.
  • Einbetten von Bytecodedaten
  • Die Übertragung von Bytecode und anderen Benutzerdaten in dem MPEG-2-Transportstrom wird durch Einbetten der Daten in unterschiedlicher Abschnitte der Pakete ausgeführt. Dies umfaßt (1) ein Einbetten der Daten als Privatdaten in das Adaptionsfeld 1222 des TS-Kopfs 1220 (d.h. Kopf) eines MPEG-2-TSP 1210, (2) ein Einbetten der Daten als Privatdaten in die TS-Nutzinformationen 1230 (d.h. Datenspeicherabschnitt) eines MPEG-2-TSP 1210, (3) ein Übertragen der Daten als Privatelementarstrom, der in dem PES-Kopf 1110 des PES-Pakets 1100 enthalten ist. Insbesondere können die Daten unter Verwendung einer Kombination der vorhergehend aufgezählten Verfahren übertragen werden.
  • 1. Adaptionsfeldverfahren (Adaptation Field Method)
  • Wie in der 4 dargestellt, können in einer Ausführungsform der Erfindung Bytecodedaten als Privatdaten in das Adaptionsfeld 1222 (einschließlich in den Kopf 1220) eines MPEG-2-TS-Pakets gepackt werden. Um die Daten in jedem Paket zu maximieren, können MPEG-2-TS-Pakete 1210 ohne TS-Nutzinformationen 1230 gesendet werden. Wenn das Adaptions feldsteuerfeld (adaptation_field_control field) 10 ist, beträgt die Länge des Adaptionsfelds 1222 183 Bytes. Insgesamt können 181 Bytes von Bytecodedaten in solch einem MPEG-2-TS-Paket 1210 eingebettet werden. Da die Paketlänge auf ein Maximum von 188 Bytes in dieser Ausführungsform der Erfindung festgelegt ist, bleibt die Bitrate konstant und Übertragungswiederholungszeiten und Tune-in-Zeiten (Einstellzeiten) können berechnet werden.
  • Die PCR PID-Transportstrompakete, welche die PCR-Informationen des Programms enthalten, besitzen eine minimale normative Rate. Dies definiert das maximale Intervall dieser PCRs in dem Strom. Es können jedoch zusätzliche Pakete, welche Bytecodedaten übertragen, als PCR PID-Pakete eingefügt werden. Diese Pakete werden mit einer Rate eingefügt, die unter Verwendung einer Tune-in-Zeit und der Bandbreite, die für den Bytecodedatenstrom benötigt wird, berechnet. Wenn das Adaptionsfeldsteuerflag (adaptation_field_control flag) '10 ist, sollte der Wert der Adaptionsfeldlänge (adaptation_field_length) 183 betragen (4 Bytes für den Rest des Transportstromkopfs und 1 Byte für die Adaptionsfeldlänge). Insgesamt können 181 Bytes Bytecodedaten in einem solchen Paket gesendet werden, da ein Byte für andere Adaptionsfeldflags verwendet wird und die Privatdatenlänge unter Verwendung von einem Byte spezifiziert wird.
  • Wieder Bezug nehmend auf 6 beginnen die Bytecodepakete mit einem Bytecodetransportkopf 601 und einem Bytecodestromkopf 602. In einer Ausführungsform dieser Erfindung kann ein Bytecodetransportkopf 601 folgende Daten enthalten:
    Version (V) (2 Bits)
    Zukünftige Benutzung (2 Bits)
    Nächste Tune-in-Zeit (64 Bits)
    Nächste Übertragungswiederholungszeit (60 Bits)
  • Die "nächste Tune-in-Zeit" ist der nächste Tune-in-Punkt, von dem aus ein Decoder mit dem Decodieren beginnen kann. Dies markiert den Beginn der Übertragungswiederholung für alle Klassen/Objekte, die für eine Session notwendig sind. In einer MPEG-2-Implementation wird diese Zeit in Einheiten eines 90 Megahertz-Takts gemessen. Die Zahl der Einheiten werden von dem Beginn der Session gemessen. Dauernullen werden benutzt, um anzuzeigen, daß die Tune-in-Zeit nicht definiert ist.
  • Die nächste Übertragungswiederholungszeit ist die Zeit der nächsten Übertragungswiederholung für eine) Klasse/Objekt. Diese Zeit wird in Einheiten eines 90 Megahertz-Takts gemessen. Dauernullen werden benutzt, um anzuzeigen, daß die Tune-in-Zeit nicht definiert ist. Dieses Feld ist auf 32 Bit ausgerichtet. Dies gibt die nächste Übertragungswiederholung der TS-Nutzinformation 1230 in dem gleichen Kanal wieder. Wenn sich der normale und der Übertragungswiederholungskanal unterscheiden, kann eine Klassendatei wieder in den normalen Kanal zum Tune-in zu einer Zeit vor der nächsten Übertragungswiederholungszeit übertragen werden.
  • 2. Nutzinformationsverfahren (Payload Methode
  • Die Benutzerdaten können auch als ein Privatelementarstrom eines Programms gesendet werden. MPEG-2 erlaubt zwei Privatelementarstromarten: Privatstrom1/Privatestrom2 (Private_Stream1/Private_Stream2). Diese unterscheiden sich in dem Format des PES-Kopfs, der in diesen Strömen übertragen wird.
  • Die Bytecodedaten können als Privatdaten des Typs Privatstrom2 mit einem Java-Stromkopf oder einem beliebigen anderem Äquivalent als der Privatstrom-PES-Kopf gesendet werden. Wie in 5 dargestellt, können in einer anderen Ausführungsform der Erfindung Bytecodedaten als Daten in die TS-Nutzinformation 1230 (Datenspeicherabschnitt) eines MPEG-2-TS-Pakets gepackt werden. Wenn nicht genügend Elementarstromdaten 1120 verfügbar sind, um in den TS-Nutzinformationsabschnitt 1230 des MPEG-2-Transportstroms 1200 defragmentiert zu werden, können stattdessen Bytecodedaten ersetzt werden.
  • 3. PES-Kopfverfahren (PES Header Method)
  • Das MPEG-2-TS-Format für die Elementarströme verschiedener Stromarten besitzen Felder für Privatdaten, die in dem PES-Kopf gesendet werden sollen. 16 Bytes der Bytecodedaten können als Privatdaten in jedem PES-Kopf gesendet werden, wenn das PES-Privatendatenflag in dem PES-Kopf gesetzt ist. Die PES-Köpfe erscheinen nur an dem Beginn eines PES-Pakets und jedes PES-Paket wird in mehrere Transportstrompakete aufgespalten. Daher tragen nicht alle Transportstrompakete dieses PID PES-Köpfe. Diese Technik zum Liefern von Benutzerdaten kann benutzt werden, wenn die zu sendende Information nicht viel Bandbreite benötigt. In diesem Fall kann sich die Bitrate etwas ändern.
  • Wie in 8 dargestellt, werden Bytecodedaten in den PES-Kopf 1110 eines PES-Paktes 1100 eingebettet. Das MPEG-2-PES-Format für die Elementarströme verschiedener Stromarten besitzt Felder für Privatdaten, die in dem PES-Kopf 1110 gesendet werden sollen. 16 Bytes der Bytecodedaten können als Privatdaten in jedem PES-Kopf 1110 übertragen werden, wenn das PES-Privatdatenflag gesetzt ist.
  • PES-Köpfe 1110 erscheinen nur an dem Beginn eines PES-Pakets 1100. Als ein Teil einer Fragmentierung der PES-Pakete 1100 wird jedes Paket in mehrere MPEG-2-TS-Pakete 1210 aufgespalten. Daher brauchen nicht alle MPEG-2-TS-Pakete 1210 in dem MPEG-2-Transportstrom 1200 einen PES-Kopf 1110 zu tragen.
  • 4. Hybridverfahren eines Bytecodedatentransports zur Übertragung und Übertragungswiederholung
  • Anstatt die Bytecodedaten nur in PES-Köpfen einzuschließen, kann eine Kombination der zuvor genannten Verfahren verwendet werden. Die Kombinationstechniken stellen eine Möglichkeit zur Übertragungswiederholung von Bytecodedaten zur Verfügung, ohne die Lieferrate der ursprünglich übertragenen Bytecodedaten oder der Mediadaten zu beeinflussen.
  • Der Transportstrommultiplexer hält eine konstante Rate aufrecht, mit der die Pakete geliefert werden. Die Transportstrompakete, welche die PES-Pakete und andere Informationen übertragen, werden mit Bytecodedaten unter Verwendung von vordefinierten Stopfbytes in dem Adaptionsfeld aufgefüllt, um eine konstante Bitrate aufrechtzuerhalten. Ein Auffüllen erfolgt auch, wenn nicht genügend PES-Paketdaten vorhanden sind, um die Transportstrompaketnutzinformatinsbytes aufzufüllen. In diesem Verfahren wird die normale Übertragung von Bytecodedaten unter Verwendung des Privatstromverfahrens (vorhergehend beschrieben) ausgeführt, während die Übertragungswiederholung der gleichen Bytecodedaten durch Ersetzen der oben erwähnten Stopfbytes erreicht werden kann. Die Übertragungswiederholung wird damit bei einer nicht erhöhten Bandbreite erzielt und die Bitrate kann konstant gehalten werden.
  • Eine andere Technik nutzt das Adaptionsfeldverfahren zur normalen Übertragung der Bytecodedaten. Die Übertragungswiederholung der gleichen Bytecodedaten wird als PES-Kopfprivatdaten gesendet. Die normale Übertragung wird in dem Adaptionsfeld ausgeführt, um sicherzustellen, daß alle Daten bei einer festen Rate gesendet werden können. Die Übertragungswiederholung wird unter Verwendung des PES-Kopfs ausgeführt, so daß die Bandbreite nicht wesentlich erhöht wird.
  • Ein anderes Schema kombiniert die Privatstromtechnik und die PES-Kopftechnik. Die Übertragungswiederholung von Bytecodedaten erfolgt als PES-Kopfprivatdaten, wie in der oben genannten Technik, aber für die normale Übertragung der Bytecodedaten wird das Privatstromverfahren verwendet.
  • Fehlerberichtung (Error Correction)
  • Die oben beschriebenen Hybridschemata stellen die Möglichkeit für eine Übertragungswiederholung zur Verfügung. Da ein Verlust eines Transportstrompakets zu einer ungewollten Verfälschung der Bytecodedaten führen kann, wird eine Verfahrensweise zur Übertragungswiederholung implementiert, um alle verlorenen Pakete wieder zu übermitteln. Ein möglicher Ansatz umfaßt die Übertragungswiederholung der gesamten Klasse zu regulären Intervallen beim Ausbleiben eines Rückkanals. Dies dient zur Unterstützung von zufälligen Zugriffspunkten im Fall von Medien. Dies ist eventuell jedoch nicht möglich, wenn die Zahl der Clients zu groß ist oder wenn die Klasse (oder das Objekt) sehr groß ist, was die Übertragungswiederholung ausschließt.
  • Wenn ein Rückkanal vorhanden ist, kann ein Paketverlust dem Server angezeigt werden und das verlorene Paket kann wieder übertragen werden. Wenn ein sicheres Multicastschema verwendet wird, können die Daten auch von anderen Orten als dem Server wieder übertragen werden.
  • Es gibt eine Anzahl von Fehlerabfangschemata mit eingebauter Redundanz, die geeignet sind, teilweise verlorene Pakete wieder zu erlangen. Zum Beispiel können Schemata wie Vorwärtsfehlerkorrektur (forward error correction) benutzt werden. Das Paketverlustproblem kann auch teilweise durch Verwendung einiger zuverlässiger Multicastschemata gelöst werden. Ausführungsformen der Erfindung unterstützen die Verwendung beliebiger fehlerabfangender oder beliebiger sicherer Multicastalgorithmen, um den Paketverlust zu beheben.
  • Die Umgebung, welche die Einrichtungen zum Betreiben der Verfahren dieser Erfindung zur Verfügung stellt, umfaßt Ausführungsformen in Form von Hardwaresystemen, Softwarekomponenten und Datenstrukturen, die beim Betrachten der folgenden Beschreibung verstanden werden können. Nachfolgend werden Überblicke über Hardwareausführungen, objektorientiertes Programmieren und die Programmiersprache JavaTM gegeben.
  • Objektorientiertes Programmieren
  • Objektorientiertes Programmieren ist ein Verfahren zum Erzeugen eines Computerprogramms durch die Kombination verschiedener fundamentaler Bausteine und durch Erzeugen von Beziehungen unter und zwischen den Bausteinen. Die Bausteine in objektorientierten Programmiersystemen werden als "Objekte" bezeichnet. Ein Objekt ist eine Programmeinheit, die eine Datenstruktur (eine oder mehrere Instanzvariablen) und die Operationen (Methoden), welche die Daten benutzen oder beeinflussen können, zusammen gruppieren. Demnach besteht ein Objekt aus Daten und einer oder mehreren Operationen oder Prozeduren, die an den Daten ausgeführt werden können. Das Kombinieren von Daten und Operationen in einen einheitlichen Baustein wird als "Kapselung" ("encapsulation") bezeichnet.
  • Ein Objekt kann angewiesen werden, eine seiner Methoden auszuführen, wenn es eine "Nachricht" erhält. Eine Nachricht ist eine Anweisung oder ein Befehl, die an das Objekt gesendet wird, um eine bestimmte Methode auszuführen. Eine Nachricht besteht aus einer Methodenauswahl (zum Beispiel Methodenname) und mehreren Argumenten. Eine Nachricht teilt dem empfangenden Objekt mit, welche Operationen auszuführen sind.
  • Ein Vorteil der objektorientierten Programmierung ist die Art, in der die Methoden aufgerufen werden. Wenn eine Nachricht an ein Objekt gesendet wird, ist es nicht notwendig, daß die Nachricht das Objekt anweist, wie eine bestimmte Methode auszuführen ist. Es ist nur ein Aufruf erforderlich, daß das Objekt die Methode ausführt. Dies vereinfacht die Programmentwicklung erheblich.
  • Objektorientierte Programmiersprachen basieren in erster Linie auf einem "Klassen"-Schema. Ein klassenbezogenes objektorientiertes Programmierschema ist allgemein beschrieben in: Liebermann, "Using Prototypical Objects to Implement Shared Behavior in Object-Oriented Systems", OOPSLSA 86 Proceedings, September 1986, S. 214-223.
  • Eine Klasse definiert eine An eines Objekts, das typischerweise sowohl Variablen als auch Methoden für die Klasse umfaßt. Eine Objektklasse wird benutzt, um eine bestimmte Instanz eines Objekts zu erzeugen. Eine Instanz einer Objektklasse umfaßt die Variablen und Methoden, die für die Klasse definiert sind. Mehrere Instanzen der gleichen Klasse können aus einer Objektklasse erzeugt werden. Jede Instanz, die aus einer Objektklasse erzeugt wird, gilt als von der gleichen An oder Klasse.
  • Zum Beispiel kann eine Arbeitnehmerobjektklasse die Instanzenvariablen "Name" und "Gehalt" und eine Methode "Gehaltsbestimmung" umfassen. Instanzen der Arbeitnehmerobjektklasse können für jeden Arbeitnehmer in einer Organisation erzeugt oder instantiiert werden. Jede Objektinstanz gilt als vom Typ "Arbeitnehmer". Jede Arbeitnehmerobjektinstanz umfaßt "Name"- und "Gehalt"-Instanzvariablen und die "Gehaltsbestimmung"-Methode. Die Werte, die der "Name"- und "Gehalt"-Variable jeder Arbeitnehmerobjektsinstanz zugeordnet sind, enthalten den Namen und das Gehalt eines Arbeitnehmers in der Organisation. Eine Nachricht kann an eine Arbeitnehmerobjektinstanz eines Arbeitnehmers gesendet werden, um die "Gehaltsbestimmung"-Methode aufzurufen, um das Gehalt des Arbeitnehmers zu verändern (d.h. den Wert, welcher der "Gehalt"-Variable in dem Arbeitnehmerobjekt des Arbeitnehmers zugeordnet ist).
  • Eine Hierarchie von Klassen kann definiert werden, so daß eine Objektklassendefinition eine oder mehrere Unterklassen besitzt. Eine Unterklasse übernimmt die Definitionen ihrer Eltern (und ihrer Großeltern usw.). Jede Unterklasse in der Hierarchie kann dem Verhalten, das durch seine Elternklasse spezifiziert ist, etwas hinzufügen oder dieses modifizieren. Einige objektorientierte Programmiersprachen unterstützen eine Mehrfachvererbung, wenn eine Unterklasse eine Klassendefinition von mehr als einer Elternklasse erbt. Andere Programmiersprachen unterstützen nur eine Einfachvererbung, wenn eine Unterklasse darauf beschränkt ist, die Klassendefinition nur einer Elternklasse zu erben. Die Programmiersprache JavaTM stellt außerdem einen Mechanismus zur Verfügung, der als eine Schnittstelle (Interface) bekannt ist, die als ein Satz von konstanten und abstrakten Methodendeklarierungen bekannt ist. Eine Objektklasse kann die abstrakten Methoden, die in der Schnittstelle definiert sind, implementieren. Sowohl die Einfach- als auch die Mehrfachvererbung sind für eine Schnittstelle zugänglich. Das heißt, eine Schnittstelle kann eine Schnittstellendefinition von mehr als einer Elternschnittstelle erben.
  • Ein Objekt ist ein generischer Ausdruck, der in der objektorientierten Programmierumgebung benutzt wird, um ein Modul zu bezeichnen, das zugeordneten Code und Variablen enthält. Eine Softwareanwendung kann unter Verwendung einer objektorientierten Programmiersprache geschrieben werden, wobei die Funktionalität des Programms unter Verwendung von Objekten implementiert wird.
  • JavaTM-Programmierung und Ausführung
  • Ein JavaTM-Programm setzt sich aus einer Anzahl von Klassen und Schnittstellen zusammen. Im Gegensatz zu vielen Programmiersprachen, in denen ein Programm in einem maschinenabhängigen, ausführbaren Programmcode kompiliert wird, werden JavaTM-Klassen in maschinenunabhängige Bytecodeklassendateien kompiliert. Jede Klasse enthält Code und Daten in einem plattformunabhängigen Format, das als Klassendateiformat bezeichnet wird. Das Computersystem, das als das Ausführungsvehikel agiert, enthält ein Programm, das als virtuelle Maschine bezeichnet wird und für die Ausführung des Codes in JavaTM-Klassen verantwortlich ist. Die virtuelle Maschine stellt ein Abstraktionsniveau zwischen der Maschinenunabhängigkeit der Bytecodeklassen und dem maschinenabhängigen Befehlssatz der zugrunde liegenden Computerhardware zur Verfügung. Ein "Klassenlader" ("class loader") in der virtuellen Maschine ist für das Laden der Bytecodeklassendateien, wie sie benutzt werden, verantwortlich, und entweder führt ein Interpreter die Bytecodes direkt aus oder ein "Just-In-Time" (JIT)-Kompilierer übersetzt die Bytecodes in Maschinencode, so daß sie von dem Prozessor ausgeführt werden können.
  • Beispiel einer JavaTM-Netzanwendungsumgebung
  • 1 ist ein Blockdiagramm, das ein Beispiel einer JavaTM-Netzumgebung darstellt, die eine Clientplattform 102 umfaßt, welche über ein Netz 101 mit einem Server 100 zu dem Zweck verbunden ist, auf JavaTM-Klassendateien zuzugreifen, um eine JavaTM-Anwendung oder ein Applet auszuführen.
  • In 1 umfaßt der Server 100 eine JavaTM-Entwicklungsumgebung 104 zur Benutzung beim Erzeugen der JavaTM-Klassendateien für eine gegebene Anwendung. Die JavaTM-Entwicklungsumgebung 104 stellt einen Mechanismus, wie einen Editor und einen Applet- Anzeiger, zum Erzeugen von Klassendateien und zum Voranzeigen von Applets zur Verfügung. Ein Satz von JavaTM-Kernklassen 103 umfaßt eine Bibliothek von JavaTM-Klassen, auf die über Quelldateien verwiesen werden kann, die andere/neue JavaTM-Klassen enthalten. Von der JavaTM-Entwicklungsumgebung 104 werden eine oder mehrere JavaTM-Quelldateien 105 erzeugt. JavaTM-Quelldateien 105 enthalten die programmierlesbare Klassendefinitionen, einschließlich Datenstrukturen, Methodenimplementationen und Verknüpfungen zu anderen Klassen. JavaTM-Quelldateien 105 werden an ein JavaTM-Kompilierer 106 gegeben, der JavaTM-Quelldateien 105 in ".class"-Dateien 107 kompiliert, die Bytecodes enthalten, der von einer virtuellen JavaTM-Maschine ausgeführt werden kann. Bytecodeklassendateien 107 werden auf dem Server 100 gespeichert (zum Beispiel in temporärem oder permanentem Speicher) und sind zum Herunterladen über das Netz 101 verfügbar.
  • Die Clientplattform 102 enthält eine virtuelle JavaTM-Maschine (JVM) 110, welche über die Benutzung verfügbarer nativer Betriebssysteme (O/S)-Aufrufe 112 in der Lage ist, Bytecodeklassendateien auszuführen, und führt native O/S-Aufrufe aus, wenn dies während der Ausführung notwendig ist.
  • JavaTM-Klassendateien werden oft in Appletags in einem HTML (Hypertext Markup Language)-Dokument identifiziert. Eine Webserver-Anwendung 108 wird auf den Server 100 ausgeführt, um auf HTTP (Hypertext Transport Protocol)-Aufrufe zu antworten, die URLs (Universal Source Locator) zu HTML-Dokumenten enthalten, die auch als "Web-Seiten" bezeichnet werden. Wenn eine Browseranwendung, die auf einer Clientplattform 102 ausgeführt wird, ein HTML-Dokument anfordert, wie durch ein Weiterleiten einer URL 109 zu einem Webserver 108, startet der Browser automatisch das Herunterladen der Klassendateien 107, die in dem Applettag des HTML-Dokuments bezeichnet sind. Die Klassendateien 107 werden typischerweise von dem Server heruntergeladen und in eine virtuelle Maschine 111 individuell, wie benötigt, geladen.
  • Es ist typisch für die Klassen von JavaTM-Programmen, daß sie so spät wie möglich während der Programmausführung geladen werden. Sie werden nach Aufruf aus dem Netz (gespeichert auf einem Server) geladen oder bilden ein lokales Dateisystem, wenn sie das erste Mal während der Ausführung des JavaTM-Programms verknüpft werden. Die virtuelle Maschine lokalisiert und lädt jede Klassendatei, parst das Klassendateiformat, weist Speicher für die verschiedenen Komponenten der Klasse zu und verknüpft die Klasse mit anderen bereits gelade nen Klassen. Dieses Verfahren macht den Code in der Klasse für die virtuelle Maschine leicht ausführbar.
  • Ausführungsform einer Computerausführungsumgebung
  • Eine Ausführungsform der Erfindung kann als Computersoftware in Form eines computerlesbaren Programmcodes implementiert werden, der auf einem Computer für allgemeine Zwecke ausgeführt wird, wie einem Computer 200, der in 2 dargestellt ist, oder in Form von Bytecodeklassendateien, die von einer virtuellen Maschine ausgeführt werden können, die auf einem solchen Computer abläuft. Eine Tastatur 210 und eine Maus 211 sind mit einem bidirektionalen Systembus 218 verbunden. Die Tastatur und die Maus dienen zum Aufnehmen von Benutzereingabe in das Computersystem und übertragen diese Benutzereingabe zu einer zentralen Bearbeitungseinheit (CPU) 213. Andere geeignete Eingabeeinrichtungen können zusätzlich zu der Maus 211 und der Tastatur 210 oder statt dessen benutzt werden. Eine I/O (Eingabe/Ausgabe)-Einheit 219, die mit dem bidirektionalen Systembus 218 gekoppelt ist, stellt solche I/O-Elemente dar, wie ein Drucker, AN (Audio/Video)-I/O, usw..
  • Der Computer 200 umfaßt ein Videospeicher 211, einen Hauptspeicher 215 und einen Massenspeicher 212, die alle mit dem bidirektionalen Systembus 218 zusammen mit der Tastatur 210, der Maus 211 und der CPU 213 gekoppelt sind. Der Massenspeicher 212 kann sowohl feste als auch entfernbare Medien umfassen, wie magnetische, optische oder magnetooptische Speichersysteme oder eine beliebige andere verfügbare Massenspeichertechnologie. Der Bus 218 kann zum Beispiel 32 Adressleitungen zum Adressieren des Videospeichers 214 oder des Hauptspeichers 215 aufweisen. Der Systembus 218 umfaßt außerdem beispielsweise einen 32-Bit-Datenbus zum Übertragen von Daten zwischen und unter den Komponenten, wie der CPU 213, dem Hauptspeicher 215, dem Videospeicher 214 und dem Massenspeicher 212. Alternativ können Multiplexdaten/Adressleitungen anstelle von separaten Daten und Adressleitungen benutzt werden.
  • In einer Ausführungsform der Erfindung ist die CPU 213 ein von Motorola® hergestellter Mikroprozessor, wie der 680X0-Prozessor, oder ein von Intel® hergestellter Mikroprozessor, wie der 80X86, oder Pentium®-Prozessor, oder ein von Sun Microsystems® hergestellter Mikroprozessor SPARC®. Es können jedoch auch beliebig andere Mikroprozessoren oder Mikrocomputer benutzt werden. Der Hauptspeicher umfaßt ein Dynamic Random Access Me mory (DRAM). Der Videospeicher 214 ist ein Dual-Port Video Random Access Memory. Ein Port des Videospeichers 214 ist mit einem Videoverstärker 216 verbunden. Der Videoverstärker 216 wird benutzt, um einen Rastermonitor 217 mit Kathodenstrahlröhre (CRT) anzutreiben. Der Videoverstärker 216 ist im Stand der Technik gut bekannt und kann durch beliebige geeignete Vorrichtungen implementiert werden. Diese Schaltung konvertiert Pixeldaten, die in dem Videospeicher 214 gespeichert sind, zu einem Rastersignal, das für die Benutzung mit dem Monitor 217 geeignet ist. Der Monitor 217 ist eine Monitorart, die zum Anzeigen von grafischen Bildern geeignet ist.
  • Der Computer 200 kann auch eine Kommunikationsschnittstelle 220 aufweisen, die mit dem Bus 218 verbunden ist. Die Kommunikationsschnittstelle 220 stellt eine Zweiwege-Datenkommunikation zur Verfügung, die über eine Netzverknüpfung 201 mit einem lokalen Netzt 222 verknüpft ist. Wenn zum Beispiel die Kommunikationsschnittstelle 220 eine Integrated Service Digital Network (ISDN)-Karte oder ein Modem ist, sorgt die Kommunikationsschnittstelle 220 für eine Datenkommunikationsverbindung zu einem entsprechenden Typ von Telefonleitung, die einen Teil der Netzverknüpfung 221 umfaßt. Wenn die Kommunikationsschnittstelle 220 eine Local Area Network (LAN)-Karte ist, sorgt die Kommunikationsschnittstelle 220 für eine Datenkommunikationsverbindung über eine Netzverknüpfung 221 zu einem kompatiblen LAN. Kabellose Verknüpfungen sind auch möglich. In allen solchen Implementierungen, sendet und empfängt die Kommunikationsschnittstelle 220 elektrische, elektromagnetische oder optische Signale, welche digitale Datenströme tragen, die verschiedene Arten von Informationen darstellen.
  • Die Netzverknüpfung 221 sorgt typischerweise für eine Datenkommunikation über ein oder mehrere Netze zu anderen Dateneinrichtungen. Zum Beispiel kann die Netzverknüpfung 221 für eine Verbindung über ein lokales Netz 222 zu einem Hostcomputer 223 oder zu einer Dateneinrichtung zur Verfügung stellen, die von einem Internet Service Provider (ISP) 224 betrieben wird. Der ISP 224 stellt umgekehrt eine Datenkommunikationsdienst über das World Wide-Paket Datenkommunikationsnetz zur Verfügung, das nun üblicherweise als das "Internet" 225 bezeichnet wird. Sowohl das lokale Netz 122 als auch das Internet 225 benutzen beide elektrische, elektromagnetische oder optische Signale, die digitale Datenströme übertragen. Die Signale in den verschiedenen Netzen und die Signale auf der Netzverknüpfung 221 und in der Kommunikationsschnittstelle 220, welche die digitalen Daten von und zu dem Computer 200 transportieren, sind beispielhafte Formen von Trägerwellen, die Informationen transportieren.
  • Der Computer 200 kann über das (die) Netz(e), die Netzverknüpfung 221 und das Kommunikationsinterface 220 Nachrichten senden und Daten, einschließlich von Programmcode, empfangen. In dem Beispiel des Internets kann der Server 226 einen aufgerufenen Code für ein Applikationsprogramm über das Internet 225, ISP 224, das lokale Netz 222 und die Kommunikationsschnittstelle 220 übertragen.
  • Der empfangene Code kann von der CPU 213, wenn er empfangen ist, ausgeführt werden und/oder in dem Massenspeicher 212 oder anderen nichtflüchtigen Speichern zur späteren Ausführung gespeichert werden. Auf diese Weise kann der Computer 200 Anwendungscode in Form von Trägerwellen erhalten.
  • Die Computersysteme, die vorhergehend beschrieben wurden, dienen nur als Beispiele. Eine Ausführungsform der Erfindung kann in anderen Arten von Computersystemen oder Programmier- oder Bearbeitungsumgebungen implementiert werden.
  • Damit wurde ein Verfahren und Vorrichtung zum zeitlichen Liefern eines Bytecodestroms in Verbindung mit einen oder mehreren speziellen Ausführungsformen beschrieben.

Claims (18)

  1. Verfahren zur Lieferung eines Bytecodes in einem Transportstrom, das Folgendes umfaßt: Erlangen von Mediadaten zur Übertragung zu einem Client an einer Empfängerstation über einen Transportstrom, Zerlegen der Mediadaten in wenigstens ein Primärpaket, wobei jedes der Primärpakete einen Primärpaketkopf und Primärpaketdaten umfaßt, Zerlegen jedes der Primärpakete in mehrere Sekundärpakete einer festen Länge, wobei jedes der Sekundärpakete einen Transportstromkopfabschnitt und einen Transportstromnutzinformationsabschnitt aufweist, wobei der Transportstrom die mehreren Sekundärpakete umfaßt, Einbetten von Bytecodes in den Primärpaketkopf des Primärpakets, Dekodieren des Transportstroms an der Empfängerstation, um die Bytecodes von den Mediadaten zu separieren, Nutzen der Bytecodes, um eine Wiedergabe der Mediadaten an der Empfängerstation zu steuern.
  2. Verfahren nach Anspruch 1, bei dem der Transportstromkopf einen Adaptionsfeldabschnitt und einen Kopfabschnitt umfaßt und Teile der Bytecodes in den Adaptionsfeldabschnitt eingebettet werden.
  3. Verfahren nach Anspruch 1 oder 2, bei dem der Transportstromnutzinformationsabschnitt ein Privatstromfeld umfaßt und Abschnitte der Bytecodes in das Privatstromfeld eingebettet werden.
  4. Verfahren nach Anspruch 1 bis 3, das folgende Schritte umfaßt: Erlangen von Bytecodes, die zur Steuerung der Wiedergabe der Mediadaten notwendig sind, Zerlegen der Bytecodes in mehrere Bytecodepakete, wobei jedes der Bytecodepakete einen Bytecodekopf und eine Klassendatei umfaßt.
  5. Verfahren nach Anspruch 4, das folgenden Schritt umfaßt: Zerlegen der Bytecodes in mehrere Bytecodepakete, wobei jedes der Bytecodepakete einen Bytecodekopf und eine Klassendatei umfaßt und der Bytecodekopf eine Versionskennzeichnung, einen Tune-in-Punkt für einen Dekoder und eine Übertragungswiederholungszeit für die Klassendatei aufweist, und wobei der Primärpaketkopf Informationen umfaßt zum Interpretieren jedes der Primärpakete.
  6. Verfahren nach Anspruch 5, bei dem die Informationen zum Interpretieren Folgendes umfassen: Länge des Kopfes, Versionsbezeichnung, Datentyp in dem wenigstens einen Primärpaket, mehrere Zeitstempel, Größe des wenigstens einen Primärpakets, benutzter Kompressionstyp, benutztes Sicherheitsschema und Fehlerberichtigungsverfahren.
  7. System, das Folgendes umfaßt: einen Computer an einer Übertragungsstation mit einem Prozessor, einem Speicher, einen Code, der von dem Prozessor abgearbeitet wird und der dafür eingerichtet ist, Bytecodes zu einem Client an einer Empfängerstation über einen Transportstrom zu liefern, der Folgendes umfaßt: – eine Einrichtung zum Zerlegen der Mediadaten in wenigstens ein Primärpaket, wobei jedes der Primärpakete einen Primärpaketkopf und Primärpaketdaten umfaßt, – eine Einrichtung zum Zerlegen jedes der Primärpakete in mehrere Sekundärpakete einer festen Länge, wobei jedes der Sekundärpakete einen Transportstromkopfabschnitt und einen Transportstromnutzinformationsabschnitt aufweist, wobei der Transportstrom die Sekundärpakete umfaßt, – eine Einrichtung zum Einbetten von Bytecodes in den Primärpaketkopf des Primärpakets, und einen Computer an einer Empfängerstation, der Folgendes umfaßt: – eine Einrichtung zum Decodieren des Transportstroms an der Empfängerstation, um die Bytecodes von den Mediadaten zu separieren, und – eine Einrichtung zum Benutzen der Bytecodes, um eine Wiedergabe der Mediadaten an der Empfängerstation zu steuern.
  8. System nach Anspruch 7, bei dem der Transportstromkopf einen Adaptionsfeldabschnitt und einen Kopfabschnitt umfaßt und Abschnitte der Bytecodes in dem Adaptionsfeldabschnitt eingebettet werden.
  9. System nach Anspruch 7 oder 8, bei dem der Transportstromnutzinformationsabschnitt ein Privatstromfeld umfaßt und Abschnitte der Bytecodes in dem Privatstromfeld eingebettet werden.
  10. System nach einem der Ansprüche 7 bis 9, das Folgendes umfaßt: – eine Einrichtung zum Erlangen von Mediadaten zur Übertragung zu einem Client an einer Empfängerstation über einen Transportstrom, – eine Einrichtung zum Erlangen von Bytecodes, die notwendig sind, um die Wiedergabe der Mediadaten zu steuern, – eine Einrichtung zum Zerlegen der Bytecodes in mehrere Bytecodepakete, wobei jedes der Bytecodepakete einen Bytecodekopf und eine Klassendatei umfaßt.
  11. System nach Anspruch 10, bei dem der Primärpaketkopf Informationen zum Interpretieren jedes der Primärpakete umfaßt und das weiterhin Folgendes umfaßt: – eine Einrichtung zum Zerlegen der Bytecodes in mehrere Bytecodepakete, wobei jedes der Bytecodepakete einen Bytecodekopf und eine Klassendatei umfaßt und der Bytecodekopf eine Versionsbezeichnung, einen Tune-in-Punkt für einen Decoder und eine Übertragungswiederholungszeit für die Klassendatei aufweist.
  12. System nach Anspruch 11, bei dem die Informationen zum Interpretieren Folgendes umfassen: Länge des Kopfes, Versionsbezeichnung, Datentyp in dem wenigstens einen Primärpaket, mehrere Zeitstempel, Größe des wenigstens einen Primärpakets, benutzter Kompressionstyp, benutztes Sicherheitsschema und Fehlerberichtigungsverfahren.
  13. Computerprogrammprodukt, das Folgendes umfaßt: ein computergeeignetes Medium mit einem darin eingebetteten computerlesbaren Programmcode zum Liefern von Bytecodes in einem Transportstrom, wobei der computerlesbare Programmcode dazu eingerichtet ist, einen Computer zu Folgendem zu veranlassen: – Erlangen von Mediadaten zur Übertragung zu einem Client an einer Empfängerstation über einen Transportstrom, – Zerlegen der Mediadaten in wenigstens ein Primärpaket, wobei jedes der Primärpakete einen Primärpaketkopf und Primärpaketdaten umfaßt, – Zerlegung jedes der Primärpakete in mehrere Sekundärpakete einer festen Länge, wobei jedes der Sekundärpakete einen Transportstromkopfabschnitt und einen Transportstromnutzinformationsabschnitt aufweist und der Transportstrom die Sekundärpakete umfaßt, – Einbetten von Bytecodes in den Primärpaketkopf des Primärpakets, – Dekodieren des Transportstroms an der Empfängerstation, um die Bytecodes von den Mediadaten zu separieren, – Benutzen der Bytecodes, um eine Wiedergabe der Mediadaten an der Empfängerstation zu steuern.
  14. Computerprogrammprodukt nach Anspruch 14, bei dem der Transportstromkopf einen Adaptionsfeldabschnitt und einen Kopfabschnitt umfaßt und Abschnitte des Bytecodes in dem Adaptionsfeldabschnitt eingebettet werden.
  15. Computerprogrammprodukt nach Anspruch 13 oder 14, bei dem der Transportstromnutzinformationsabschnitt ein Privatstromfeld umfaßt und Abschnitte des Bytecodes in dem Privatstromfeld eingebettet werden.
  16. Computerprogrammprodukt nach einem der Ansprüche 13 bis 15, bei dem der computerlesbare Programmcode dazu eingerichtet ist, einen Computer weiterhin zu Folgendem zu veranlassen: – Erlangen von Bytecodes, die notwendig sind, um eine Wiedergabe der Mediadaten zu steuern, – Zerlegen der Bytecodes in mehrere Bytecodepakete, wobei jedes der Bytecodepakete einen Bytecodekopf und eine Klassendatei umfaßt.
  17. Computerprogrammprodukt nach Anspruch 16, bei dem der computerlesbare Programmcode weiterhin dazu eingerichtet ist, einen Computer zu Folgendem zu veranlassen: Zerlegen des Bytecodes in mehrere Bytecodepakete, wobei jedes der Bytecodepakete einen Bytecodekopf und eine Klassendatei umfaßt und der Bytecodekopf eine Versionsbezeichnung, einen Tune-in-Punkt für einen Decoder und eine Übertragungswiederholungszeit für die Klassendatei aufweist, wobei der Primärpaketendkopf Informationen zum Interpretieren jedes der Primärpakete umfaßt.
  18. Computerprogrammprodukt nach Anspruch 17, bei dem die Informationen zum Interpretieren Folgendes umfassen: Länge des Kopfes, Versionsbezeichnung, Datentyp des wenigstens einen Primärpakets, mehrere Zeitstempel, Größe des wenigstens einen Primärpakets, benutzter Kompressionstyp, benutztes Sicherheitsschema und Fehlerberichtigungsverfahren.
DE69918571T 1998-12-01 1999-11-22 Verfahren und vorrichtung zur lieferung von in einem transportstrom eingebetteten bytekodes Expired - Fee Related DE69918571T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US203551 1998-12-01
US09/203,551 US6460086B1 (en) 1998-12-01 1998-12-01 Method and apparatus for delivery of a bytecode embedded within a transport stream
PCT/US1999/027722 WO2000033532A2 (en) 1998-12-01 1999-11-22 Method and apparatus for delivery of a bytecode embedded within a transport stream

Publications (2)

Publication Number Publication Date
DE69918571D1 DE69918571D1 (de) 2004-08-12
DE69918571T2 true DE69918571T2 (de) 2005-08-25

Family

ID=22754450

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69918571T Expired - Fee Related DE69918571T2 (de) 1998-12-01 1999-11-22 Verfahren und vorrichtung zur lieferung von in einem transportstrom eingebetteten bytekodes
DE69943358T Expired - Lifetime DE69943358D1 (de) 1998-12-01 1999-11-22 Verfahren und Vorrichtung zur Lieferung von in einem Transportstrom eingebetteten Bytekode

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69943358T Expired - Lifetime DE69943358D1 (de) 1998-12-01 1999-11-22 Verfahren und Vorrichtung zur Lieferung von in einem Transportstrom eingebetteten Bytekode

Country Status (7)

Country Link
US (1) US6460086B1 (de)
EP (2) EP1445914B1 (de)
JP (1) JP4444510B2 (de)
AT (1) ATE270805T1 (de)
AU (1) AU2155100A (de)
DE (2) DE69918571T2 (de)
WO (1) WO2000033532A2 (de)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099348B1 (en) * 1998-11-03 2006-08-29 Agere Systems Inc. Digital audio broadcast system with local information
FR2786898B1 (fr) * 1998-12-03 2001-08-10 Cit Alcatel Systeme de gestion des interconnexions pour elements de reseau d'un reseau analogique
US7215671B1 (en) * 1999-03-16 2007-05-08 Canon Kabushiki Kaisha Information processing apparatus and method
US7188353B1 (en) * 1999-04-06 2007-03-06 Sharp Laboratories Of America, Inc. System for presenting synchronized HTML documents in digital television receivers
US7448021B1 (en) 2000-07-24 2008-11-04 Sonic Solutions, A California Corporation Software engine for combining video or audio content with programmatic content
US6941383B1 (en) 2000-01-20 2005-09-06 Interactual Technologies, Inc. System, method and article of manufacture for java/javascript component in a multimedia synchronization framework
US7178106B2 (en) 1999-04-21 2007-02-13 Sonic Solutions, A California Corporation Presentation of media content from multiple media sources
US6769130B1 (en) 2000-01-20 2004-07-27 Interactual Technologies, Inc. System, method and article of manufacture for late synchronization during the execution of a multimedia event on a plurality of client computers
US20050182828A1 (en) 1999-04-21 2005-08-18 Interactual Technologies, Inc. Platform specific execution
US6453420B1 (en) 1999-04-21 2002-09-17 Research Investment Network, Inc. System, method and article of manufacture for authorizing the use of electronic content utilizing a laser-centric medium
EP1203377A1 (de) 1999-04-21 2002-05-08 Research Investment Network, Inc. System, verfahren und hergestellter gegenstand zum ändern des inhaltes auf einem tragbaren aufzeichnungmedium
US6529949B1 (en) 2000-02-07 2003-03-04 Interactual Technologies, Inc. System, method and article of manufacture for remote unlocking of local content located on a client device
US7458091B1 (en) 2000-01-20 2008-11-25 Sonic Solutions, A California Corporation System, method and article of manufacture for a business layer component in a multimedia synchronization framework
US7188193B1 (en) * 2000-01-20 2007-03-06 Sonic Solutions, A California Corporation System, method and article of manufacture for a synchronizer component in a multimedia synchronization framework
US7346920B2 (en) 2000-07-07 2008-03-18 Sonic Solutions, A California Corporation System, method and article of manufacture for a common cross platform framework for development of DVD-Video content integrated with ROM content
US7188186B1 (en) * 1999-09-03 2007-03-06 Meyer Thomas W Process of and system for seamlessly embedding executable program code into media file formats such as MP3 and the like for execution by digital media player and viewing systems
US7392481B2 (en) 2001-07-02 2008-06-24 Sonic Solutions, A California Corporation Method and apparatus for providing content-owner control in a networked device
EP1187379B1 (de) * 2000-08-01 2005-03-16 Command Audio Corporation Verfahren und Signal zur Übertragung eines Rundfunkprogramms an einen drahtlosen Empfänger
US7689510B2 (en) 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
JP2002100113A (ja) * 2000-09-25 2002-04-05 Canon Inc 再生装置、再生方法、伝送装置、伝送方法及び記憶媒体
JP2002100114A (ja) * 2000-09-25 2002-04-05 Canon Inc 再生装置、再生方法、伝送装置、伝送方法及び記憶媒体
FI110973B (fi) * 2001-05-15 2003-04-30 Digita Oy Menetelmä sovellusten lähettämiseen digitaalisessa yleislähetysverkossa
FR2836317A1 (fr) * 2002-02-19 2003-08-22 Michel Francis Monduc Procede de transmission de messages audio ou video sur le reseau internet
US20030196113A1 (en) * 2002-04-10 2003-10-16 Chris Brown System and method for providing a secure environment for performing conditional access functions for a set top box
US7457312B2 (en) * 2002-06-19 2008-11-25 Microsoft Corporation Bandwidth sharing in advanced streaming format
EP1377034A1 (de) * 2002-06-27 2004-01-02 Thomson Licensing S.A. Datenverarbeitungsvorrichtung und -verfahren für interaktives Fernsehen
US7290057B2 (en) * 2002-08-20 2007-10-30 Microsoft Corporation Media streaming of web content data
DE10240363B3 (de) * 2002-09-02 2004-07-29 Jäger, Rudolf, Dr.rer.nat. Objektgenaue Synchronisation von MPEG-1/-2 kodierten Videoströmen mit Zusatzinformation
JP4558498B2 (ja) 2002-11-20 2010-10-06 エルジー エレクトロニクス インコーポレイティド 記録されたスチールイメージの再生を管理するためのデータ構造を有する記録媒体、それによる記録及び再生方法及び装置
RU2361291C2 (ru) * 2003-01-20 2009-07-10 Эл Джи Электроникс Инк. Носитель записи со структурой данных для управления воспроизведением записанных на нем статических изображений и способы и устройства записи и воспроизведения
US7729992B2 (en) * 2003-06-13 2010-06-01 Brilliant Digital Entertainment, Inc. Monitoring of computer-related resources and associated methods and systems for disbursing compensation
US8095500B2 (en) 2003-06-13 2012-01-10 Brilliant Digital Entertainment, Inc. Methods and systems for searching content in distributed computing networks
US7720924B2 (en) * 2003-12-12 2010-05-18 Syniverse Icx Corporation System providing methodology for the restoration of original media quality in messaging environments
KR100640390B1 (ko) * 2004-01-17 2006-10-30 삼성전자주식회사 트랜스포트 스트림방식 엠펙-2 시스템의 부가 데이터 삽입 장치와 그 방법
GB0401781D0 (en) * 2004-01-28 2004-03-03 Koninkl Philips Electronics Nv Digital broadcasting terminal
WO2006034464A1 (en) * 2004-09-23 2006-03-30 Thomson Licensing Inserting metadata for trick play in video transport stream
US20060168012A1 (en) * 2004-11-24 2006-07-27 Anthony Rose Method and system for electronic messaging via distributed computing networks
WO2006066052A2 (en) 2004-12-16 2006-06-22 Sonic Solutions Methods and systems for use in network management of content
US20060158357A1 (en) * 2005-01-19 2006-07-20 Visteon Global Technologies, Inc. Text compression method for multi-level display
KR20070057558A (ko) * 2005-12-02 2007-06-07 삼성전자주식회사 디지털신호 수신장치 및 디지털신호 송신장치와 이 장치들을 사용하는 방법
US7809018B2 (en) * 2005-12-16 2010-10-05 Coding Technologies Ab Apparatus for generating and interpreting a data stream with segments having specified entry points
CN101395881B (zh) * 2005-12-16 2012-06-27 杜比国际公司 用于产生和解释具有带有指定入口点的一系列段的数据流的设备、方法和计算机程序
US20070140650A1 (en) * 2005-12-19 2007-06-21 Matsushita Electric Industrial Co., Ltd. Broadcast receiving apparatus
US7803998B2 (en) * 2005-12-21 2010-09-28 Pioneer Hi-Bred International, Inc. Methods and compositions for modifying flower development
WO2007079176A2 (en) * 2005-12-30 2007-07-12 Edda Technology, Inc. Process sharing among independent systems / applications via data encapsulation in medical imaging
CA2648107A1 (en) * 2006-04-24 2007-11-08 Qualcomm Incorporated Multiplexer to transmitter interface protocol
US8005990B2 (en) * 2008-02-29 2011-08-23 Newport Media, Inc. Efficient decoding of mobile multimedia multicast system non real-time service files
US8763149B1 (en) * 2008-04-30 2014-06-24 Google Inc. Site dependent embedded media playback manipulation
KR101662843B1 (ko) * 2010-03-05 2016-10-14 삼성전자주식회사 데이터 통신 망에서의 스트리밍 서비스 장치 및 방법
CN102387407A (zh) * 2010-08-31 2012-03-21 国基电子(上海)有限公司 实现广播网络条件接收的系统和方法
CN102594773B (zh) * 2011-01-10 2017-03-29 中兴通讯股份有限公司 一种实现数据获取的方法和系统
KR101995221B1 (ko) * 2011-11-24 2019-07-16 삼성전자주식회사 통신 시스템에서 패킷 송수신 장치 및 방법
EP3013059A4 (de) * 2013-06-21 2017-03-22 Sony Corporation Übertragungsvorrichtung, übertragungsverfahren, wiedergabevorrichtung, wiedergabeverfahren und empfangsvorrichtung
US20150033091A1 (en) * 2013-07-23 2015-01-29 Electronics And Telecommunications Research Institute Apparatus and method for requesting retransmission of lost packet based on mpeg media transport system
US20150032845A1 (en) * 2013-07-26 2015-01-29 Samsung Electronics Co., Ltd. Packet transmission protocol supporting downloading and streaming
US10075452B2 (en) 2016-02-18 2018-09-11 Comcast Cable Communications, Llc Distributed content uploading and validation
JP6751053B2 (ja) * 2017-06-05 2020-09-02 日本電信電話株式会社 通信装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768539A (en) * 1994-05-27 1998-06-16 Bell Atlantic Network Services, Inc. Downloading applications software through a broadcast channel
US5650825A (en) * 1995-03-31 1997-07-22 Matsushita Electric Corporation Of America Method and apparatus for sending private data instead of stuffing bits in an MPEG bit stream
US5790753A (en) * 1996-01-22 1998-08-04 Digital Equipment Corporation System for downloading computer software programs
HUP0002383A2 (hu) 1997-03-21 2000-10-28 Canal+ Société Anonyme Eljárás és berendezés egy továbbított adatáram több szekciójának eltárolására, továbbá egy adatáramban ciklikusan továbbított szekciócsoport tárolására
US6212327B1 (en) * 1997-11-24 2001-04-03 International Business Machines Corporation Controlling record/playback devices with a computer
US6092120A (en) 1998-06-26 2000-07-18 Sun Microsystems, Inc. Method and apparatus for timely delivery of a byte code and serialized objects stream

Also Published As

Publication number Publication date
DE69918571D1 (de) 2004-08-12
DE69943358D1 (de) 2011-05-26
EP1445914B1 (de) 2011-04-13
US6460086B1 (en) 2002-10-01
WO2000033532A3 (en) 2000-08-10
WO2000033532A2 (en) 2000-06-08
EP1445914A2 (de) 2004-08-11
EP1445914A3 (de) 2005-11-30
ATE270805T1 (de) 2004-07-15
JP4444510B2 (ja) 2010-03-31
EP1133862B1 (de) 2004-07-07
AU2155100A (en) 2000-06-19
EP1133862A2 (de) 2001-09-19
JP2002532009A (ja) 2002-09-24

Similar Documents

Publication Publication Date Title
DE69918571T2 (de) Verfahren und vorrichtung zur lieferung von in einem transportstrom eingebetteten bytekodes
DE69933281T2 (de) Verfahren und Vorrichtung zur Mediendatenübertragung
DE69936570T2 (de) Verfahren und vorrichtung zur mediendatenübertragung
US6092120A (en) Method and apparatus for timely delivery of a byte code and serialized objects stream
DE60220259T2 (de) Datenreferenzsystem
DE69834045T2 (de) Verfahren zur einkapselung von daten in transportpakete konstanter länge
DE69919384T2 (de) Verfahren und vorrichtung zur automatischen optimierung der ausführung eines rechnerprogramms
DE69837833T2 (de) System und verfahren zur erzeugung und schnittstellenbildung von mpeg-kodierte audiovisuelle gegenstände darstellenden bitströmen
DE69928642T2 (de) Emulation von strömung über internet in einer rundfunkanwendung
DE60212339T2 (de) Ein digitales fernsehen anwendungsprotokoll zum interaktiven fernsehen
DE69418580T2 (de) Fernanzeige von einem Bild durch Übertragung von komprimierten Videorahmen, die seinen Hintergrund und seinen überlagerten Vordergrund darstellen
DE10296790B4 (de) Verfahren zur Präsentation von Medienobjekten, Multimediapräsentationssystem sowie Computerprogrammprodukt und dessen Verwendung
DE69936157T2 (de) Authentifizierung von in einem digitalen Übertragungssystem übertragenen Daten
DE69907482T2 (de) Vorrichtung und verfahren zur ausführung von interaktiven fernsehanwendungen auf set top boxen
DE10392598T5 (de) Unterstützung von fortschrittlichen Codierungsformaten in Mediendateien
EP1532797A1 (de) Verfahren zum übertragen von nutzdatenobjekten gemüss einem profilinformationsobjekt
DE69819507T2 (de) Set-top-box gerätetreiber für die ieee1394 norm
DE10392280T5 (de) Verfahren und Vorrichtung zum Unterstützen von AVC in MP4
EP2559177A2 (de) Transportstrom-bereitsteller, dab-signal-bereitsteller, transportstrom-analysierer, dab-empfänger, verfahren, computerprogramm und transportstrom-signal
DE69635177T2 (de) Isochrone Hochgeschwindigkeitsdatenübertragung in MPEG-2 Datenströmen
DE10062514B4 (de) Verfahren und Vorrichtung zum Steuern der Übertragung und Wiedergabe von digitalen Signalen
DE60103881T2 (de) Steuerung von zugriff auf daten über ein multibandnetzwerk
DE60203808T2 (de) Verfahren und vorrichtung zur übertragung von in kodiertem videosignal eingefügten anwenderdaten
DE102005052207A1 (de) Verfahren zum Übertragen von einem Datenstrom von einer Datenquelle zu einer Datensenke sowie Datensenkengerät, Datenquellgerät und Gerät zur Durchführung des Verfahrens
DE69930468T2 (de) Verfahren und Vorrichtung zur Prioritätsverwaltung für Datenverarbeitung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee