DE69936570T2 - Verfahren und vorrichtung zur mediendatenübertragung - Google Patents

Verfahren und vorrichtung zur mediendatenübertragung Download PDF

Info

Publication number
DE69936570T2
DE69936570T2 DE69936570T DE69936570T DE69936570T2 DE 69936570 T2 DE69936570 T2 DE 69936570T2 DE 69936570 T DE69936570 T DE 69936570T DE 69936570 T DE69936570 T DE 69936570T DE 69936570 T2 DE69936570 T2 DE 69936570T2
Authority
DE
Germany
Prior art keywords
data
time
related sequence
media
instructions
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 - Lifetime
Application number
DE69936570T
Other languages
English (en)
Other versions
DE69936570D1 (de
Inventor
Anne Redwood City Jones
Jay San Jose Geagan
Kevin L. Sunnyvale GONG
Alagu Fremont Periyannan
David W. San Francisco SINGER
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.)
Apple Inc
Original Assignee
Apple Computer 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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of DE69936570D1 publication Critical patent/DE69936570D1/de
Application granted granted Critical
Publication of DE69936570T2 publication Critical patent/DE69936570T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • H04N7/52Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal
    • 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
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4143Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
    • 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
    • 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/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • H04N21/4381Recovering the multiplex stream from a specific network, e.g. recovering MPEG packets from ATM cells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf Verfahren und Vorrichtungen für das Vorbereiten von zeitbezogenen Sequenzen von Mediendaten für eine Übertragung und insbesondere auf eine paketierte Übertragung solcher Mediendaten.
  • EINFÜHRUNG UND HINTERGRUND
  • Es gibt viele verschiedene Dateistrukturen, die heutzutage verwendet werden, um zeitbasierte Medien zu speichern: Audioformate, wie RIFF, Videoformate wie AVI, Streaming-Formate, wie RealMedia. Ein Grund dafür, dass die Dateistrukturen unterschiedlich sind, ist ihr unterschiedlicher Schwerpunkt und ihre unterschiedliche Anwendbarkeit. Einige dieser Formate sind ausreichend weit akzeptiert, breit in ihrer Anwendung und einigermaßen einfach zu implementieren und können so nicht nur für eine Inhaltslieferung sondern auch als Austauschformate verwendet werden. Das Bedeutendste dieser allgemeinen Formate ist das QuickTime Dateiformat. Es wird heutzutage im größten Teil der Websites, die zeitbasierte Daten liefern, im größten Teil der Autorenumgebungen, einschließlich professioneller Umgebungen, und auf dem größten Teil der Multimedia-CDROM-Titel verwendet.
  • Die QuickTime Medienschicht unterstützt die effiziente Anzeige und Verwaltung von allgemeinen Multimediadaten mit einer Betonung auf zeitbasiertem Material (Video, Audio, etc.). Die Medienschicht verwendet das QuickTime Dateiformat als das Speicher- und Austauschformat für Medieninformation. Die konstruktiven Fähigkeiten der Schicht sind im allgemeinen breiter als die existierenden Implementierungen, und das Dateiformat kann mehr Information darstellen, als dies aktuell von existierenden QuickTime Implementierungen gefordert wird.
  • Im Gegensatz zu Formaten, wie AVI, die allgemein konstruiert wurden, um lokalen wahlfreien Zugriff auf synchronisierte Medien zu unterstützen, erlaubt QuickTime Systemen, die Daten, die Beziehungen und die Zeitplanung einer allgemeinen Multimediadarstellung zu verwalten. Insbesondere weist das QuickTime Dateiformat Strukturen auf, um das zeitliche Verhalten allgemeiner zeitbasierter Ströme darzustellen, ein Konzept, das die zeitbasierte Aussendung von Netzpaketen abdeckt als auch die zeitbasierte lokale Präsentation von Multimediadaten.
  • Das existierende QuickTime Dateiformat wurde durch Apple Computer im Mai 1996 in der Dateiformatspezifizierung, die man auf der QuickTime Website <http://www.apple.com/quicktime> finden kann, öffentlich beschrieben.
  • Ein Aspekt des QuickTime Dateiformats ist das Konzept, dass die physikalische Struktur von Mediendaten (die Anordnung auf Plattenaufzeichnungen) unabhängig ist und durch eine logische Struktur der Datei beschrieben wird. Die Datei wird durch einen Satz von "Film" Metadaten vollständig beschrieben. Diese Metadaten liefern eine deklarierende, strukturelle und zeitliche Information über die tatsächlichen Mediendaten.
  • Die Mediendaten können sich in derselben Datei wie die Beschreibungsdaten (die "Film" Metadaten) oder in einer oder mehreren anderen Dateien befinden. Ein Film, der in eine Datei strukturiert ist, wird allgemein als "flat" bezeichnet und ist in sich geschlossen. Non-Flat-Filme können strukturiert werden, um auf einige oder alle der Mediendaten in anderen Dateien Bezug zu nehmen.
  • Als solches ist das Format im allgemeinen für die Optimierung in verschiedenen Anwendungen geeignet. Beispielsweise müssen beim Editieren (Komponieren), Daten nicht erneut geschrieben werden, da Editiervorgänge angewandt und die Medien neu angeordnet werden; die Metadatendatei kann erweitert und zeitliche Abbildungsinformation eingestellt werden. Wenn Editiervorgänge beendet sind, können die relevanten Mediendaten und die Metadaten in eine einzige, verschachtelte und optimierte Datei geschrieben werden, für einen lokalen Zugang oder einen Zugang über ein Netz. Sowohl die strukturierten als auch die optimierten Dateien sind gültige QuickTime Dateien, und beide können inspiziert, abgespielt und neu bearbeitet werden.
  • Die Verwendung von strukturierten (non-flat) Dateien ermöglicht es, dass dieselben Basismediendaten in einer beliebigen Anzahl von Präsentationen verwendet und wieder verwendet werden können. Derselbe Vorteil ergibt sich beim Serving, wie man unten sehen wird.
  • Sowohl beim Editieren als auch beim Serving ermöglicht dies, dass eine Anzahl anderer Dateien als Teil eines Films behandelt werden können, ohne die Mediendaten zu kopieren. Somit kann das Editieren und Serving direkt von den Dateien aus gemacht werden, wie dem Audioformat "au" von Sun Microsystem oder dem AVI-Videoformat, was die Anwendbarkeit dieser Formate stark erweitert.
  • Die QuickTime Datei ist in einen Satz von Objekten, der Atome genannt wird, unterteilt. Jedes Objekt startet mit einem Atomkopfteil, der seine Größe und seinen Typ deklariert:
    Figure 00030001
  • Diese Größe wird in Bytes ausgedrückt, einschließlich der Größe und dem Typ der Kopfteilfelder. Das Typfeld ist vier Zeichen groß (gewöhnlich druckbare Zeichen), um eine leichte Dokumentation und Identifikation zu erlauben. Die Daten in einem Objekt nach dem Typfeld können Felder, eine Sequenz von enthaltenen Objekten oder beides sein.
  • Eine Datei ist deswegen einfach eine Sequenz von Objekten:
    Figure 00040001
  • Die zwei wichtigen Objekte der oberen Ebene sind die Mediendaten (mdat) und die Metadaten (moov).
  • Das oder die Mediendatenobjekte enthalten die tatsächlichen Medien (beispielsweise Sequenzen von Tonabtastwerten). Ihr Format wird durch das Dateiformat nicht beschränkt: sie sind keine gewöhnlichen Objekte. Ihr Format wird in den Metadaten beschrieben, nicht durch irgend welche Deklarationen, die sich physikalisch an sie anschließen. So werden beispielsweise in einem Film, der nur aus Motion-JPEG besteht, JPEG-Frames aneinander angrenzend in den Mediendaten ohne dazwischen liegende zusätzliche Kopfteile gespeichert. Die Mediendaten in den Mediendatenobjekten werden logisch in Stücke unterteilt; es gibt jedoch keine expliziten Stückmarkierungen innerhalb der Mediendaten.
  • Wenn die QuickTime Datei auf Mediendaten in anderen Dateien Bezug nimmt, ist es nicht notwendig, dass diese 'sekundären' Dateien gemäß der QuickTime Spezifikation formatiert sind, da solche Mediendatendateien so formatiert sind, als ob sie Inhalte eines Medienobjekts wären. Da das QuickTime Format nicht notwendigerweise irgendwelche Kopfteile oder andere Information, die sich physikalisch an die Mediendaten anschließt, erfordert, ist es für die Mediendaten möglich, Dateien zu sein, die 'fremde' Kopfteile enthalten (beispielsweise UNIX ".au" Dateien oder AVI-Dateien), und für die QuickTime Metadaten ist es möglich, die passende Deklarationsinformation zu enthalten und auf die Mediendaten in der 'fremden' Datei Bezug zu nehmen. Auf diese Weise kann das QuickTime Dateiformat verwendet werden, existierende Körper von Material in nicht gleichen Formaten ohne ein Kopieren zu aktualisieren. Das QuickTime Dateiformat ist ein gesichertes Format und es kann mit anderen gesicherten Formaten zusammenarbeiten, diese einschließen und sie somit nach vorne bringen.
  • Freier Platz (der beispielsweise durch eine Editieroperation gelöscht wurde) kann auch durch ein Objekt beschrieben werden. Software, die eine Datei liest, die Objekte freien Platzes enthält, sollte solche Objekte freien Platzes ignorieren als auch Objekte auf jeglicher Ebene, die sie nicht versteht. Dies ermöglicht die Erweiterung der Datei auf nahezu jede Ebene durch das Einführen neuer Objekte.
  • Die primären Metadaten sind das Filmobjekt. Eine QuickTime Datei weist exakt ein Filmobjekt auf, da sich typischerweise am Beginn oder Ende der Datei befindet, um seine einfache Lokalisierung zu gestatten:
    Figure 00050001
  • Der Filmkopfteil liefert Basisinformation über die gesamte Präsentation (sein Erzeugungsdatum, den gesamten Zeitmaßstab und so weiter). In der Sequenz der enthaltenden Objekte gibt es typischerweise mindestens eine Spur (track), die zeitlich präsentierte Daten beschreibt.
  • Figure 00060001
  • Der Spurkopfteil liefert relative Basisinformation über die Spur (ihre ID, Zeitmaßstab und dergleichen). Objekte, die in der Spur enthalten sind, können sich auf andere Spuren (beispielsweise für eine komplexe Komposition) oder Editierlisten beziehen. In dieser Sequenz enthaltener Objekte kann es ein Medienobjekt geben, das die Medien beschreibt, die präsentiert werden, wenn die Spur abgespielt wird.
  • Das Medienobjekt enthält Deklarationen, die sich auf die Präsentation beziehen, die von der Spur benötigt werden (beispielsweise dass es sich um ein abgetastetes Audiosignal oder MIDI handelt, oder Orientierungsinformation für eine 3D-Szene). Der Typ der Spur wird durch seine Handhabungsvorrichtung angegeben:
    Figure 00060002
  • In der Medieninformation gibt es ebenso eine Handhabungsvorrichtungsdeklaration für die Datenhandhabungsvorrichtung (die die Mediendaten ergreift), und eine Dateninformationsdeklaration, die definiert, welche Dateien die Mediendaten für die zugehörige Spur enthalten. Unter Verwendung dieser Deklaration können Filme aufgebaut werden, die sich über mehrere Dateien erstrecken.
  • Auf der untersten Ebene wird eine Abtastwerttabelle (sample table) verwendet, die sich auf den zeitlichen Aspekt der Spur zu den Daten, die in der Datei gespeichert sind, bezieht:
    Figure 00070001
  • Die Abtastwertbeschreibung enthält Information über die Medien (beispielsweise die Komprimierungsformate, die im Video verwendet werden). Die Zeit-zur-Abtastung-Tabelle setzt die Zeit in der Spur mit dem Abtastwert (durch einen Index), der zu dieser Zeit angezeigt werden sollte, in Beziehung. Die Synchronisationsabtastwerttabelle deklariert, welche dieser Abtastwerte Synchronisationsabtastwerte (Schlüsselabtastwerte) sind, die nicht von anderen Abtastwerten abhängen.
  • Das Abtast-zu-Stück-Objekt (sample-to-chunk object) deklariert, wie man die Mediendaten für einen gegebenen Abtastwert finden kann, und seine Beschreibung, wenn sein Index gegeben ist:
    Figure 00080001
  • Die Abtastwertgrößentabelle zeigt die Größe jedes Abtastwerts an. Die Stückversatztabelle (chunkoffset table) zeigt den Versatz in die Inhaltsdatei des Starts jedes Stücks an.
  • Das Hindurchgehen durch die oben beschriebenen Strukturen, um die passenden Daten, die zu einer gegebenen Zeit anzuzeigen zu sind, zu finden, erfolgt geradeaus, und umfasst im allgemeinen ein Indizieren und Addieren. Unter Verwendung der Synchronisationstabelle ist es auch möglich, den vorhergehenden Synchronisationsabtastwert zu sichern und 'still' nach vorne zu rollen, indem man Deltas zu einem gewünschten Startpunkt ansammelt.
  • 1 zeigt die Struktur eines einfachen Films mit einer Spur. Ein ähnliches Diagramm kann man in der Dokumentation des QuickTime Dateiformats zusammen mit einer detaillierten Beschreibung der Felder der verschiedenen Objekte finden. QuickTime Atome (Objekte) sind hier mit ihrem Typ in einem grauen Kasten und einen beschreibenden Namen darüber gezeigt. Dieser Film enthält eine einzige Videospur. Die Bilder des Videos befinden sich in derselben Datei in einem einzigen Stück von Daten. Es sollte angemerkt werden, dass das 'Stück' nur ein logisches Konstrukt ist; es ist kein Objekt. Im Stück sind Bilder des Videos, typischerweise in ihrer natürlichen Form gespeichert. Es muss keine Kopfteile oder Felder in den Videobildern selber geben.
  • 2 ist ein Diagramm einer selbständigen Datei mit einer Audio- und einer Videospur. Es sind hier aus Gründen der Kürze weniger Atome gezeigt; die Zeiger von den Spuren in die Mediendaten sind natürlich die gewöhnlichen Abtastwerttabellendeklarationen, die die Zeitsteuerungsinformation enthalten.
  • Das QuickTime Dateiformat weist eine Anzahl von Vorteilen auf, einschließlich:
    • 1) Skalierbarkeit der Größe und der Bitraten. Die Metadaten sind flexibel aber kompakt. Dies macht es geeignet für kleine herabladbare Filme (beispielsweise aus dem Internet) als auch für das Liefern der Basis für eine Anzahl hochwertiger Editiersysteme, bei denen die Verwendung relativ großer Mengen nicht komprimierter Daten erforderlich sein kann.
    • 2) Die physikalische Struktur ist von der logischen und zeitlichen Struktur unabhängig. Dies macht es möglich, die physikalische Struktur in Abhängigkeit von der Verwendung, die die Datei haben wird, zu optimieren. Insbesondere bedeutet es, dass ein einziges Dateiformat für das Erstellen und Editieren, das Herabladen oder Platzieren auf CDROMS und für das Streamen geeignet ist.
    • 3) Es hat sich erwiesen, dass das Dateiformat eine sehr breite Vielzahl von Kodierer-Dekodierer-Typen und Spurtypen handhaben kann, einschließlich vieler, die zur Zeit, zu der das Format konstruiert wurde, nicht bekannt waren. Diese bewiesene Fähigkeit, sich in einer aufwärtskompatiblen Weise zu entwickeln, ist für den Erfolg eines Speicherformats fundamental.
  • Skalierbare oder geschichtete Kodierer-Dekodierer können im QuickTime Dateiformat auf unterschiedliche Weise gehandhabt werden. Für ein Streamingprotokoll, das die Skalierbarkeit unterstützt, können die Abtastwerte mit der Schicht oder dem Bandbreitengrenzwert markiert werden, die erfüllt sein müssen, um die Abtastwerte zu übertragen.
  • Spuren, die einen Satz von Alternativen bilden (beispielsweise Tonspuren in verschiedenen natürlichen Sprachen), können so markiert werden, dass nur eine für eine Wiedergabe ausgewählt wird. Dieselbe Struktur kann verwendet werden, um Alternativen für ein Streaming (beispielsweise für eine Wahl der Sprache) auszuwählen. Diese Fähigkeit ist detaillierter im QuickTime Dateiformat beschrieben.
  • Wenn QuickTime einen Film oder eine Spur anzeigt, greift die passende Handhabungsvorrichtung auf die Mediendaten für eine spezielle Zeit zu. Die Medienhandhabungsvorrichtung muss den Datenstrom korrekt interpretieren, um die geforderten Daten abzurufen. Beispielsweise quert in Bezug auf ein Videomedium die Medienhandhabungsvorrichtung mehrere Atome, um den Ort und die Größe eines Abtastwertes für einen gegebene Medienzeit zu finden. Die Medienhandhabungsvorrichtung kann folgendes ausführen:
    • 1. Bestimme die Zeit im Medienzeitkoordinatensystem.
    • 2. Untersuche das Zeit-zu-Abtastwert-Atom, um die Abtastwertnummer zu bestimmen, die die Daten für die spezifizierte Zeit enthält.
    • 3. Scanne das Abtastwert-zu-Stück-Atom, um zu entdecken, welche Stücke den in Frage stehenden Abtastwert enthalten.
    • 4. Extrahiere den Versatz zum Stück aus dem Stückversatzatom.
    • 5. Finde den Versatz im Stück und die Abtastgröße unter Verwendung des Abtastgrößenatoms.
  • Es ist oft wünschenswert, eine QuickTime Datei oder andere Typen zeitbezogener Sequenzen von Mediendaten über ein Datenkommunikationsmedium zu übertragen, das mit einem Computernetz (beispielsweise dem Internet) verbunden ist. In vielen Computernetzen sollten die Daten, die in das Netz übertragen werden, im allgemeinen in einer Paketform vorliegen. Normalerweise sind zeitbezogene Sequenzen von Mediendaten nicht im passend paketierten Format für eine Übertragung über ein Netz gespeichert. Beispielsweise befinden sich Mediendatendateien im QuickTime Format nicht in paketierter Form. Somit besteht eine Notwendigkeit, die Daten in Paketen zu sammeln, was manchmal als Streamen von Daten bezeichnet wird, um sie über ein Netz zu übertragen.
  • Eine Lösung des Stands der Technik, das Problem der Übertragung zeitbezogener Sequenzen von Mediendaten über ein Netz anzugehen, besteht darin, die Mediendatei über das Netz unter Verwendung eines Netz- oder Übertragungsprotokolls, wie des Hypertext Transfer Protokolls (HTTP) zu senden. Somit wird die Mediendatei selbst von einem Computersystem über das Netz zu einem anderen Computersystem gesandt. Es kann jedoch sein, dass kein Wunsch besteht, die Mediendatei im empfangenden Computersystem zu speichern. Das heißt, wenn die Mediendatei am empfangenden Computersystem empfangen und betrachtet oder angehört wird, kann es sein, dass kein Wunsch oder keine Möglichkeit beim Benutzer des empfangenden Computersystems besteht, eine Kopie der Daten zu speichern, beispielsweise wenn das empfangende Computersystem ein Netzcomputer oder ein Computer mit einer geringen Speicherfähigkeit ist.
  • Eine andere alternative Lösung, das Problem zu lösen, wie Daten für eine Übertragung durch Pakete über ein Netz zu sammeln sind, besteht darin, eine Datei vorzubereiten, die die Netzprotokolldateneinheiten in der Datei für ein spezielles Übertragungsprotokoll enthält. In einem gewissen Sinn kann eine solche Datei als eine paketierte Datei angesehen werden, die im wesentlichen im selben Format gespeichert ist, wie sie gemäß dem speziellen Übertragungsprotokoll übertragen werden wird. Das Durchführen dieser Operation umfasst normalerweise das Speichern der Datei in einer paketierten Form für ein spezielles Netzprotokoll bei einer speziellen Datenübertragungsrate und einem speziellen Mediendateiformat. Somit wird für jedes andere Übertragungsprotokoll bei einer speziellen Datenübertragungsrate die Datei in ihrer paketierten Form im wesentlichen repliziert. Die feste Form solcher Dateien kann ihre Anwendbarkeit/Kompatibilität einschränken und es schwierig machen, solche Dateien lokal zu betrachten. Somit kann es sein, dass eine solche Lösung die Speicheranforderungen stark erhöht, beim Versuch die Datei in verschiedenen Übertragungsprotokollen bei verschiedenen Datenübertragungsraten bereit zu stellen. Darüber hinaus ist jede paketierte Datei, die gemäß dieser alternativen Lösung des Stands der Technik erzeugt wird, im allgemeinen auf ein spezielles Mediendateiformat beschränkt, und somit werden andere Mediendateiformate für dasselbe Medienobjekt (beispielsweise einen digitalen Film) typischerweise paketisiert und auf dem sendenden Computersystem gespeichert.
  • Eine nochmals anderer Ansatz, das Problem zu lösen, wie zeitbezogene Sequenzen von Mediendaten als Strom übertragen werden können, besteht darin, die Paketierung der Mediendaten auszuführen, wenn dies vom Übertragungssystem gefordert wird, gemäß dem speziell gewünschten Übertragungsprotokoll. Diese Verarbeitung erfordert in vielen Fällen eine beträchtliche Zeit und kann somit die Leistung des Übertragungssystems verlangsamen.
  • Beispielsweise offenbart die EP-A-0 497 449 (Pioneer Electronic Corp.) das erneute Übertragen von Videosignalen von einer Basisstation über Relaisstationen zu Endgerätestationen. Insbesondere empfangen die Relaisstationen das Videosignal und speichern das Signal auf einem Aufzeichnungsmedium, wobei ein zusätzliches Videosignal in das gespeicherte Videosignal eingeschoben werden kann. Weiterhin überträgt die Relaisstation das gespeicherte Videosignal in Paketen fester Größe gemäß einer Zeitplanungsvorrichtung für die Übertragung.
  • Somit ist es wünschenswert, ein verbessertes Verfahren und eine Vorrichtung für das Übertragen von zeitbezogenen Sequenzen von Mediendaten bereit zu stellen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf Information, die die Übertragung von zeitbezogenen Daten über ein Datenkommunikationsmedium erlaubt. In einer Ausführungsform umfasst ein Satz von Daten mindestens eine Anweisung, um ein digitales Verarbeitungssystem zu veranlassen, einen Satz von Paketen zu erzeugen, der eine zeitbezogene Sequenz von Mediendaten darstellt. Der Satz von Paketen ist mit einem Übertragungsprotokoll verknüpft. Der Satz von Daten umfasst eine zeitbezogene Sequenz von Daten, die mit der zeitbezogenen Sequenz von Mediendaten verknüpft ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Beispiel der Struktur eines einfachen Films mit einer Spur im Stand der Technik.
  • 2 ist ein Beispiel einer selbstständigen Filmdatei des Stands der Technik.
  • 3 ist ein Flussdiagramm, das ein Beispiel eines Verfahrens gemäß der vorliegenden Erfindung zeigt.
  • 4 zeigt ein Beispiel einer Anweisungsspur (hint track) der vorliegenden Erfindung.
  • 5 zeigt ein anderes Beispiel der Anweisungsspur der vorliegenden Erfindung.
  • 6 ist ein Diagramm eines Netzes von Computersystemen, in welchem Mediendaten ausgetauscht und/oder verarbeitet werden können, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 7 ist ein Blockdiagramm eines digitalen Verarbeitungssystems, das gemäß einer Ausführungsform der vorliegenden Erfindung verwendet werden kann.
  • 8 ist ein Blockdiagramm eines Systems, das Anweisungen (hints) verwendet, um Mediendaten zu übertragen, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 9 ist ein Blockdiagramm eines Systems, das Anweisungen verwendet, um Mediendaten zu übertragen, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 10 ist ein Flussdiagramm, das ein Verfahren für das Erzeugen von Anweisungen für das Liefern einer Mediendatenübertragung gemäß einer Ausführungsform der Erfindung zeigt.
  • 11 ist ein Flussdiagramm, das ein Verfahren zur Verarbeitung von Mediendaten, die von einem Empfangssystem empfangen werden, gemäß Anweisungen gemäß einer Ausführungsform der Erfindung zeigt.
  • 12 ist ein Beispiel eines maschinenlesbaren Speichermediums, auf das von einem digitalen Verarbeitungssystem, wie einem Generator, zugegriffen werden kann, gemäß einer Ausführungsform der Erfindung.
  • 13 ist ein Beispiel eines maschinenlesbaren Speichermediums, auf das von einem digitalen Verarbeitungssystem, wie einem Server, gemäß einer Ausführungsform der Erfindung zugegriffen werden kann.
  • 14 ist ein Beispiel eines maschinenlesbaren Speichermediums, auf das von einem digitalen Verarbeitungssystem, wie einem Empfangssystem oder einem anderen digitalen Verarbeitungssystem, gemäß einer Ausführungsform der Erfindung zugegriffen werden kann.
  • 15 ist ein Diagramm eines Datenspeicher- und/oder Kommunikationsmediums, das gespeicherte/transportierte Medien- und Anweisungsinformation auf sich aufweist, gemäß einer Ausführungsform der Erfindung.
  • DETAILLIERTE BESCHREIBUNG
  • Die vorliegende Erfindung liefert Verfahren und Vorrichtungen für das Ermöglichen einer Übertragung und insbesondere der paketierten Übertragung von zeitbezogenen Sequenzen von Mediendaten, die beispielsweise Video, Audio, Video und Audio etc. einschließen können, über ein Kommunikationsmedium, wie ein Computernetz.
  • In einer Ausführungsform der vorliegenden Erfindung erzeugt ein digitales Verarbeitungssystem einen Satz von Daten für das Anzeigen, wie eine zeitbezogene Sequenz von Mediendaten gemäß einem Übertragungsprotokoll zu übertragen ist. Typischerweise ist dieser Satz von Daten auf einer Speichervorrichtung gespeichert, die mit dem digitalen Verarbeitungssystem verbunden ist. Weiterhin ist dieser Satz von Daten eine zeitbezogene Sequenz von Daten, die mit der zeitbezogenen Sequenz von Mediendaten verknüpft ist.
  • Die vorliegende Erfindung kann vollständig in ausführbaren Computerprogrammanweisungen implementiert werden, die auf einem computerlesbaren Medium gespeichert sind, oder sie kann in einer Kombination aus Software und Hardware gespeichert werden, oder in gewissen Ausführungsformen vollständig in Hardware. Typischerweise wird ein Servercomputersystem, das mit einem Netz gekoppelt ist, den Satz von Daten erzeugen, der als eine Anweisungsspur (hint track) bezeichnet werden kann, und es wird diese Anweisungsspur in einer Speichervorrichtung speichern, die mit dem Servercomputersystem verbunden ist. Wenn ein Client-Computersystem eine Präsentation (beispielsweise das Betrachten oder Anhören oder das Betrachten und Anhören) einer Mediendatendatei anfordert, so verwendet das Serversystem die Anweisungsspur, um zu bestimmen, wie die Mediendaten für eine Übertragung zum Client-Computersystem zu paketieren sind. Es wird erkennbar, dass die vorliegende Erfindung allgemein auf zeitbezogene Sequenzen von Mediendaten anwendbar ist, und dass QuickTime hier nur als ein Beispiel dieser allgemeinen Anwendbarkeit dargestellt wird. Somit sollte die Erfindung nicht notwendigerweise auf QuickTime begrenzt sein.
  • 3 zeigt ein Beispiel eines Verfahrens gemäß der Erfindung. Das in 3 gezeigte Verfahren 300 beginnt im Schritt 301, in welchem das Mediendateiformat für die speziellen Mediendaten, die übertragen werden sollen, bestimmt wird. Im Schritt 303 werden auch das spezielle Übertragungsprotokoll oder die Übertragungsprotokolle, die verwendet werden sollen, bestimmt. Die Schritte 301 und 303 sind jedoch optional, beispielsweise dort, wo dasselbe Mediendateiformat immer unter Verwendung desselben Übertragungsprotokolls übertragen wird.
  • Im Schritt 305 erzeugt und speichert ein digitales Verarbeitungssystem, wie beispielsweise ein Servercomputersystem, die Anweisungen für das Paketieren einer zeitbezogenen Sequenz von Mediendaten in einer Mediendatei. Alternativ kann ein Computersystem die Anweisungen erzeugen und sie an ein anderes System, wie ein Servercomputersystem, liefern, das sie für eine spätere Verwendung in einem Übertragungsverfahren speichert. Die Paketierung erlaubt die Übertragung über ein Netz oder Kommunikationsmedium gemäß dem gewünschten Übertragungsprotokoll, das im Schritt 303 bestimmt worden war. In einer Ausführungsform der vorliegenden Erfindung werden die Anweisungen als eine Spur einer zeitbezogenen Sequenz von Anweisungen gespeichert, die sich auf andere Spuren von Mediendaten bezieht, aber in einer Ausführungsform getrennt von diesen ist. Die Spur der Anweisungen kann in einer Ausführungsform der vorliegenden Erfindung getrennt von den Mediendaten, auf die sie sich bezieht, gespeichert werden. Als solches kann die Spur von Anweisungen in einer Datei gespeichert werden, die sich von einer anderen Datei unterscheidet, die die Mediendaten enthält, auf die von der Spur der Anweisungen Bezug genommen wird, oder die Spur der Anweisungen kann in einem Anweisungsgebiet in der Datei, die die Mediendaten enthält, gespeichert werden, wobei diese getrennt und unterschieden ist vom Datengebiet, das die tatsächlichen Mediendaten enthält. In einer Ausführungsform der Erfindung kann eine Anweisungsspur oder ein Teil davon als durch den Server ausführbare Anweisungen interpretiert werden, wobei diese ausführbaren Anweisungen den Server veranlassen, eine zeitbezogene Sequenz von Daten zu paketieren, wobei dies typischerweise aber nicht notwendigerweise zeitbasierte Mediendaten sind. In einer Ausführungsform der Erfindung werden die Anweisungen auf der Speichervorrichtung, die mit dem übertragenden digitalen Verarbeitungssystem gekoppelt ist, gespeichert.
  • Im Schritt 307 werden die Daten, die gemäß den Anweisungen paketiert sind, vom Übertragungssystem, wie einem Servercomputersystem, zu einem empfangenden System übertragen. Diese Mediendaten werden durch das Paketieren der Mediendaten gemäß den Anweisungen übertragen. In einer alternativen Ausführungsform der Erfindung kann das Servercomputersystem entscheiden, die Anweisungen nicht zu verwenden und die Mediendaten durch ein alternatives Paketierungsverfahren zu senden.
  • Im Schritt 309 präsentiert das empfangende System das Medienobjekt, das durch die Mediendaten dargestellt wird. Typischerweise wird diese Präsentation (bei der es sich um ein Betrachten und Anhören eines Medienobjekts oder bloß um ein Betrachten oder bloß um ein Anhören des Medienobjekts handeln kann) ausgeführt, wenn die paketierten Daten am Empfangssystem empfangen werden. Die paketierten Daten können in einer Ausführungsform der vorliegenden Erfindung auf dem empfangenden System gespeichert werden, aber sie müssen nicht gespeichert werden. Somit ist die Präsentation der Daten kurzlebig in dem Sinn, dass wenn die Präsentation einmal vorüber ist, es keine lokale Kopie am empfangenden System gibt. In einer anderen Ausführungsform kann die Präsentation des Medienobjekts auf dem Serversystem stattfinden, nach der Erzeugung von Anweisungen für die Mediendaten, die das Medienobjekt darstellen. In einer Ausführungsform der Erfindung werden die Mediendaten für eine Paketierung nicht notwendigerweise gemäß den Anweisungen (neu) formatiert, kopiert, etc.
  • Im Schritt 311 kann das empfangende System wahlweise die Mediendatei neu zusammenfügen, wenn die Mediendatei beim Empfang im empfangenden System gespeichert wurde. Es wird erkennbar, dass die verschiedenen Schritte des in 3 gezeigten Verfahrens in einer anderen Reihenfolge als der gezeigten und oben beschriebenen ausgeführt werden können und/oder dass einige der Schritte gleichzeitig ausgeführt werden können. Beispielsweise werden in einer Ausführungsform die Schritte 309 und 311 parallel ausgeführt.
  • Es wird nun eine spezielle Implementierung mit QuickTime gemäß einer Ausführungsform der vorliegenden Erfindung beschrieben. In einer Ausführungsform der vorliegenden Erfindung wird eine Präsentation, bei der die Datei lokal betrachtet werden kann (beispielsweise an einem Server, Generator etc.) und über ein Netz in einem QuickTime Film als Strom übertragen werden kann, bereitgestellt. Im allgemeinen sollte der Streaming-Server (oder ein anderes System) Information über die zu streamenden Dateneinheiten, ihre Zusammensetzung und die Zeitsteuerung haben. Da solche Information typischerweise zeitlich ist, kann sie in Spuren beschrieben werden. Ein Server kann eine Paketierung ausführen und beispielsweise Protokollinformation bestimmen, unter Verwendung derselben Indexoperationen, wie sie verwendet werden, um eine Präsentation zu betrachten.
  • Die Spuren, die Anweisungen für die Server enthalten, werden manchmal als 'Anweisungsspuren' bezeichnet, da solche Spuren einen Satz von Daten darstellen, um den Server im Verfahren der Ausbildung und Übertragung von Paketen anzuweisen. Das QuickTime Dateiformat unterstützt ein Streamen der Mediendaten über ein Netz als auch das lokale Wiedergeben. Das Verfahren des Sendens der Protokolldateneinheiten basiert auf der Zeit, gerade so wie die Anzeige der zeitbasierten Daten und wird deswegen durch ein zeitbasiertes Format am geeignetsten beschrieben. Eine QuickTime Datei oder ein 'Film', die oder der Streaming unterstützt, umfasst Information über die Dateneinheiten, die zu streamen sind. Diese Information ist in zusätzlichen Spuren der Datei, sogenannten "Anweisungsspuren" eingeschlossen.
  • Anweisungsspuren enthalten Anweisungen für einen Streaming-Server (oder ein anderes digitales Verarbeitungssystem), die bei der Formation der Pakete eine Unterstützung leisten. Diese Anweisungen können direkt Daten für den Server enthalten, die zu senden sind (beispielsweise Kopfteilinformation) oder Referenzsegmente der Mediendaten. In einer Ausführungsform der vorliegenden Erfindung werden Befehle in der QuickTime Datei auf dieselbe Weise kodiert, wie die Editier- oder Präsentationsinformation in einer QuickTime Datei für eine lokale Wiedergabe kodiert wird. Statt der Editier- oder Präsentationsinformation kann Information vorgesehen werden, die es einem Server erlaubt, die Mediendaten in einer Weise zu paketieren, die für das Streamen unter Verwendung eines spezifischen Transportnetzes geeignet ist.
  • In einer Ausführungsform der vorliegenden Erfindung werden die selben Mediendaten in einer QuickTime Datei verwendet, die Anweisungen enthält, ob es nun für eine lokale Wiedergabe oder ein Streamen über eine Anzahl von verschiedenen Transporttypen ist. Getrennte 'Anweisungsspuren' für verschiedene Transporttypen können in derselben Datei eingeschlossen sein, und die Medien können über alle solche Transporttypen abgespielt werden, ohne zusätzliche Kopien der Medien selbst herzustellen. Zusätzlich können existierende Medien durch das Hinzufügen passender Anweisungsspuren für spezifische Transporte streambar gemacht werden. Gemäß einem Aspekt der Erfindung müssen die Mediendaten selbst nicht neu geformt oder formatiert werden.
  • Somit enthalten die Abtastwerte in einer Anweisungsspur im allgemeinen Anweisungen, um Pakete auszubilden. Diese Anweisungen können Daten für den Server enthalten, die sofort zu senden sind (beispielsweise Kopfteilinformation) oder Referenzsegmente der Mediendaten in einer anderen Spur.
  • In einer Ausführungsform der vorliegenden Erfindung wird eine Dreiebenen-Konstruktion verwendet, so dass:
    • 1) Die Mediendaten werden als ein Satz von netzunabhängigen Spuren repräsentiert, die in normaler Weise abgespielt, editiert und dergleichen werden können;
    • 2) Es gibt eine gemeinsame Deklarations- und Basisstruktur für Serveranweisungsspuren; dieses gemeinsame Format ist protokollunabhängig, aber enthält Deklarationen darüber, welches Protokoll oder welche Protokolle in der Serverspur oder den Serverspuren beschrieben ist beziehungsweise sind;
    • 3) Es gibt eine spezifische Gestalt der Serveranweisungsspuren für jedes Protokoll, das übertragen werden mag; alle diese Gestalten verwenden dieselbe Basisstruktur. Beispielsweise kann es Gestaltungen für RTP (für das Internet) und MPEG-2 Transport (für das Rundsenden) oder für einen neuen Standard oder für Verkäufer-spezifische Protokolle geben.
  • In einer Ausführungsform der vorliegenden Erfindung sind die sich ergebenden Ströme, die von den Servern unter der Steuerung der Anweisungsspuren gesendet wurden, normale Ströme und umfassen nicht notwendigerweise eine Spur QuickTime Information. Diese Ausführungsform der Erfindung erfordert nicht, dass QuickTime oder seine Strukturen oder der Deklarationsstil notwendigerweise sich in den Daten des Übertragungsmediums (beispielsweise Netzkabel) oder in der Dekodierstation befinden. Beispielsweise kann eine Datei, die H.261 Video und DVI Audio verwendet, unter RTP reihenweise übertragen, in einer Ausführungsform der vorliegenden Erfindung zu einem Paketstrom führen, der voll verträglich mit den IETF-Spezifikationen für das Packen solcher Kodierungen in das RTP ist.
  • In einer Ausführungsform der Erfindung werden Anweisungsspuren aufgebaut und so bezeichnet, dass wenn die Präsentation lokal betrachtet wird, die Anweisungsspuren im wesentlichen von einem Empfangssystem ignoriert werden.
  • In einer Ausführungsform kann eine zeitbezogene Sequenz von Mediendaten, die beispielsweise Video, Audio etc. einschließen können, durch ein digitales Verarbeitungssystem paketiert werden und dann auf demselben digitalen Verarbeitungssystem präsentiert werden. Weiterhin kann die Paketierung kurzlebig sein, so dass die zeitbezogene Sequenz, die gespeichert, gelesen etc. wird, auch "spontan" paketiert wird. In einer Ausführungsform können sich Anweisungen auf Mediendaten beziehen, die nicht kopiert, formatiert etc. wurden; beispielsweise können die Mediendaten, auf die sich Anweisungen beziehen, in einem originalen Format auf einem Nur-Lese-Speicher gespeichert werden, etc.
  • In einer Ausführungsform präsentiert dasselbe Anweisungsverfahren, das die Paketierung liefert, auch die Medien, wenn die Paketierung ausgeführt wird. In alternativen Ausführungsformen der Erfindung kann eine paketierte Datei der zeitbezogenen Mediendaten gemäß den Anweisungsspuren erzeugt und beispielsweise für eine spätere Übertragung gespeichert werden.
  • 4 zeigt die Verwendung von Anweisungsspuren für das Transportieren von Mediendaten gemäß einer Ausführungsform der Erfindung. In 4 ist eine Anweisungsspur 401 für die Medienspur 403 gezeigt. Jeder Anweisungsspurabtastwert, wie der Anweisungsspurabtastwert 405 – der beschreibt, wie man ein RTP-Paket formt – kann einen Kopfteil enthalten, und sich auf einige Daten von einer zugehörigen Medienspur, in diesem Fall einer Videospur 403, beziehen. In der in 4 gezeigten Ausführungsform wurden die Mediendaten (die Videobilder) und die RTP-Anweisungen verschachtelt, so dass die zugehörige Mediendatei relativ leicht gelesen werden kann. In diesem Fall ist jeder Rahmen so gezeigt, dass er in ein einziges RTP-Paket passt. Natürlich ist es möglich, die Rahmen in mehrere Pakete aufzuteilen, sofern das notwendig ist. Umgekehrt können mehrere Rahmen, wenn es gewünscht wird, in einem einzigen Paket platziert werden, wie das im allgemeinen mit Audiodaten ausgeführt wird.
  • Wie oben diskutiert wurde, muss die oben beschriebene logische Struktur nicht die physikalische Struktur bedeuten. Die Mediendaten können in einem Cachespeicher gespeichert werden, und die Anweisungsspurabtastwerte können mit den Medienabtastwerten, auf die sie sich beziehen, physikalisch verschachtelt werden (wie das in 4 gezeigt ist).
  • Alternativ ist es möglich, einen neuen Satz von Metadaten und Mediendaten, die die Anweisungsspuren enthalten, zu schreiben, die die Metadaten und Mediendaten in einer existierenden Präsentation vermehren und sich auf sie beziehen. 5 zeigt gemäß einer Ausführungsform der Erfindung die Verwendung von Anweisungsdaten, um sich auf Mediendaten in einer getrennten Datei zu beziehen. In 5 sind zwei Filmdateien 502 und 504 jeweils mit ihren eigenen Metadaten gezeigt. Die erste, die Filmdatei 502, umfasst eine Videospur. Die zweite, die Filmdatei 504, enthält eine Videospur und eine Anweisungsspur, aber die Metadaten geben an, dass sich die Mediendaten für die erste Videospur im ersten Film 502 befinden. Somit zeigen auch die Anweisungen, die mit der Filmdatei 504 verbunden sind, auf die Mediendaten im ersten Film 502.
  • In einer Ausführungsform der vorliegenden Erfindung kann eine Mediendatei Paketierungsanweisungsspuren für mehrere Protokolle enthalten. Somit kann jede Spur Deklarationen des Protokolls (und Protokollparameter, wenn passend), für das die Anweisungsspur passend ist, enthalten. Diese Spuren können sich natürlich alle auf Mediendaten von den Basismedienspuren in der Datei beziehen. Der Wunsch nach einer Unabhängigkeit vom Protokoll und nach einer Erweiterbarkeit kann auf die beschriebene Art erfüllt werden.
  • In einer Ausführungsform der vorliegenden Erfindung müssen die Anweisungsspuren nicht alle Daten in den Medienspuren verwenden. Die Anweisungsspuren können einen Untersatz der Daten verwenden (beispielsweise einige Videorahmen weglassen), um einen Bandbreitenschwellwert zu erreichen, oder aus anderen Gründen. Da es sein kann, dass mehrere Hinweisspuren für dasselbe Protokoll vorgesehen werden, können sich unterscheidende Untersätze derselben Basismedieninformation mit verschiedenen Raten geliefert werden. Somit kann die vorliegende Erfindung gegenüber Verfahren und Vorrichtungen des Stands der Technik eine verbesserte Skalierbarkeit liefern.
  • Es sollte betont werden, dass obwohl die Anweisungsspuren selbst als auch die QuickTime Metadaten in einer Ausführungsform sich in QuickTime Dateien befinden sollten, die Basismedien in irgend einem Dateityp gelassen werden können, der QuickTime importieren und am Ort Bezug darauf nehmen kann. In einer Ausführungsform der vorliegenden Erfindung kann die Filmdatei eine Datenbezug einschließen, der deklariert, dass sich die Mediendaten in einer anderen Datei befinden. Die Versatzwerte und Zeiger der Abtastwerttabelle könne sich somit auf Daten in dieser 'fremden' Datei beziehen. Somit können gemäß einer Ausführungsform der vorliegenden Erfindung existierende legale Formate, wie "au" Audiodateien, AVI Audio/Video-Dateien und MIDI-Dateien als Strom übertragen werden, ohne dass ein Kopieren oder Neuformatieren der Basismediendaten notwendig ist. Da die Basismediendaten nicht geschrieben sind für QuickTime sondern nur durch die QuickTime Deklarationen und Anweisungsinformation in getrennten Dateien vermehrt werden, können die Basismediendaten auch auf einem maschinenlesbaren Nur-Schreib-Medium, wie einer CDROM, bereitgestellt werden.
  • In einer Ausführungsform der vorliegenden Erfindung verkörpern die Anweisungsspuren die Ergebnisse einer Offline-Berechnung und werden typischerweise optimiert, um dem Server Information zu liefern, um die Paketierung und, sofern notwendig, das Multiplexen zu unterstützen.
  • Beispielhafte Anweisungen, beispielsweise für RTP (das Standard-Echtzeitprotokoll der IETF) und MPEG 2 Transport, sind in den Anhängen A–C gezeigt.
  • In einer Ausführungsform der vorliegenden Erfindung kann eine einzige Datei Anweisungsspuren für mehrere Protokolle oder mehrere unterschiedliche Parametrisierungen desselben Protokolls ohne einen übermäßigen Raumbedarf unterstützten. Neue Protokolle und ihre zugehörigen Anweisungsspuren, können ohne das Unterbrechen von Systemen, die sich auf existierende Protokolle beziehen, konstruiert werden. Somit ist die Erfindung, zumindest in einer Ausführungsform, Protokoll-neutral.
  • Im QuickTime Dateiformat kann eine Spur zum Film durch das Aktualisieren oder Kopieren und ein Vermehren der Metadaten hinzugefügt werden. Wenn sich die Mediendaten in Dateien getrennt von den Metadaten befinden, oder wenn eine optimierte Verschachtelung nicht erforderlich ist, kann dies eine relativ einfache und effiziente Operation sein.
  • In einer Ausführungsform der vorliegenden Erfindung können Spuren durch das Aufbauen eines neuen Satzes von Film-Metadaten, die nur eine Spur enthalten, extrahiert werden, und die, wenn es gewünscht ist, Bezug auf die Mediendaten im Original nehmen.
  • Beispielsweise kann in einer Ausführungsform der vorliegenden Erfindung eine neue Audiospur hinzugefügt werden, die markiert ist als eine Alternative zu einem Satz von anderen Audiospuren. Wenn sie auch mit dem Sprachkode markiert ist (beispielsweise Französisch oder Tagalog), dann kann die passenden Spur zur Präsentationszeit ausgewählt werden.
  • Gemäß einer Ausführungsform der Erfindung sind SMPTE-Zeitkodespuren ein Beispiel elementarer Ströme, die vorhanden sein, hinzugefügt oder entfernt werden können, wenn sich die Notwendigkeit ergibt.
  • Gemäß einem Aspekt der Erfindung können Anweisungsspuren die Entwicklung neuer Formate für neue Protokolle erlauben, ohne Kompatibilitätsprobleme für existierende Server oder eine lokale Wiedergabe zu verursachen. Zusätzlich können während der Lebensdauer des Dateiformats neue Medienspuren hinzugefügt werden, während die Rückwärtskompatibilität aufrecht gehalten wird.
  • In einer Ausführungsform der vorliegenden Erfindung umfassen die Gebiete der Erweiterbarkeit:
    • a) neue Spurtypen, die für Medientypen definiert werden können, die nicht durch das aktuelle QuickTime Dateiformat abgedeckt sind (beispielsweise Messwerte von Laborinstrumenten).
    • b) neue Kodiertypen für existierende Spuren, die definiert werden können (beispielsweise Video- oder Audio-Kodierer-Dekodierer). Es gibt ein explizites Vorsehen für ihre für das Kodieren-Dekodieren spezifische Initialisierungsinformation.
    • c) Neue Anweisungsspurtypen, die für neue Protokolle definiert werden können, und eine Datei, die Anweisungsinformation für mehr als ein Protokoll enthält, ohne eine Raumverschwendung für die Mediendaten selbst zu verursachen.
  • Existierender Inhalt auf Nur-Lese-Medien kann mit der vorliegenden Erfindung verwendet werden (beispielsweise im Vorhinein paketierte Filme auf eine CD-ROM, DVD, etc.).
  • Weiterhin können gemäß einem Aspekt der Erfindung verschiedene "fremde" Dateiformate verwendet werden. In einer Ausführungsform der vorliegenden Erfindung kann beispielsweise, wenn der existierende Inhalt sich im QuickTime Format befindet oder importiert werden kann, er editiert und als Strom übertragen werden, ohne ein Kopieren oder Neuformatieren zu erfordern.
  • In einer Ausführungsform der vorliegenden Erfindung können, wenn ein Kodierer-Dekodierer das Strippen der Mediendaten unterstützt, um eine Skalierbarkeit der Bandbreiten zu erzielen, dann diese gestrippten Bandbreiten unter Verwendung mehrere Streamspuren dargestellt werden. Jede Spur kann eine andere Bandbreite darstellen. Spuren können in gewählten Untersätzen der Basismedien gruppiert werden.
  • In einer Ausführungsform der vorliegenden Erfindung kann, wenn ein Protokoll die Bandbreitenskalierbarkeit unterstützt, dann die Anweisungsspur selbst Information für jede Protokolldateneinheit (ein Abtastwert in der Anweisungsspur) enthalten. Die Information kann den Bandbreitenschwellwert enthalten, über dem die Protokolldateneinheit ans Netz geliefert werden sollte. Somit können die Anweisungsspuren eine verfügbare Bandbreite als hoch, niedrig, etc. anzeigen und/oder andere Information, die sich auf die Bandbreite für die Datenübertragung bezieht.
  • In einer Ausführungsform der vorliegenden Erfindung können, wenn das Protokoll ein Multiplexprotokoll ist (beispielsweise MPEG-2 Transport), verschiedene Anweisungsspuren mit der Hilfe eines verschiedenen Untersatzes der elementaren Stromspuren aufgebaut werden, um verschiedene Datenraten zu erzielen. Somit können einige Spuren für eine Übertragung mit niedriger Bitrate vollständig weggelassen werden.
  • In einer Ausführungsform der vorliegenden Erfindung können, wenn es gewünscht wird, die Basisdaten unter Verwendung verschiedener Kodierer-Dekodierer aufzuzeichnen, dann solche Spuren in eine Gruppe von Alternativen geformt werden, und es wird dann nur eine für die Präsentation gewählt. Die Wahl, welche Spur für die Präsentation verwendet werden soll, ist typischerweise vom Protokoll abhängig und kann unter Verwendung der hier beschriebenen Lösungen der Anweisungsspuren erzielt werden.
  • In einer Ausführungsform der vorliegenden Erfindung kann auch eine Verschlüsselung im Vorhinein auf eine Mediendatei angewandt werden. In diesem Fall können die verschlüsselten Daten entweder (a) in einem elementaren Strom (einer neuen Spur), die mit den ursprünglichen Mediendaten verbunden ist, (oder die ursprünglichen Mediendaten können entfernt werden, wenn sie nicht länger benötigt werden), oder (b) der Anweisungsspur selbst gespeichert werden. Im Fall (b) ist es möglich, dass die Anweisungsspur keine Daten aus dem elementaren nicht verschlüsselten Strom auf die Schnelle extrahiert. Somit kann es sein, dass alle Mediendaten sich in der Anweisungsspur befinden, als auch die Streaming-Paketprotokolldateneinheitsinformation, da die Mediendaten durch die Verschlüsselung transformiert sein können.
  • Als ein Beispiel der eingebetteten Objektinhaltsinformation, kann die IETF Sitzungsbeschreibungsinformation für einen gesamten Film und für einzelne Spuren in den Metadaten für die RTP Anweisungsspuren als Benutzeratome gespeichert werden.
  • In einer Ausführungsform der vorliegenden Erfindung enthält ein Dateiformat typischerweise sowohl Mediendaten in einem abspielbaren Format als auch Streaming-Information. In einer Ausführungsform ist es möglich, ein Übertragung als Strom direkt von diesem Format mit einem relativ niedrigen Overhead vorzunehmen, während die Medienunabhängigkeit, die Protokollunabhängigkeit und die Fähigkeit, die Medien lokal zu präsentieren, bewahrt wird.
  • Gemäß einem Aspekt der Erfindung können Anweisungsspuren detaillierte Kenntnis der Kodierer-Dekodierer, der Zeitsteuerung und der Paketierung in einem Offline-Vorbereitungsverfahren abstrahieren. Somit kann das Folgen der Anweisungsspuren, um den Datenstrom zu erzeugen, relativ einfach sein und keine spezielle Kenntnis des Mediums, das als Strom übertragen werden soll, erfordern. Somit kann das Entkoppeln eines Server von beispielsweise den Details des Dateninhalts gemäß einem Aspekt der Erfindung geliefert werden.
  • In einer Ausführungsform der vorliegenden Erfindung kann ein Satz von Anweisungsspuren verwendet werden, um eine Datei zu konstruieren, die für eine Übertragung als Strom direkt optimiert ist, beispielsweise durch das Anlegen der Netz-PDUs auf der Platte an den logischen Plattengrenzen, in der Zeitsequenz, in der sie gesandt werden sollten. Es kann sein, dass eine solche Datei nicht länger eine allgemeine Präsentation ist, aber dass sie als Strom übertragen werden kann. In einer Ausführungsform können paketierte Dateien, die mit Anweisungsspuren geschaffen wurden, gespeichert und beispielsweise für eine Übertragung als Strom später optimiert werden.
  • In einer Ausführungsform der vorliegenden Erfindung können durch das Einkapseln fremder Dateiformate Mediendaten in anderen Formaten gehalten werden, während sie dennoch in QuickTime veröffentlich werden. Beispielsweise kann ein existierendes Format direkt in eine neue Mediendatendatei verkapselt werden durch das Anwenden der passenden Einwickelvorrichtung, oder sie kann intakt gelassen werden, und es kann auf sie in Segmenten oder als Ganzes durch die Anweisungsspur Bezug genommen werden, was es erlaubt, dass die alten Formate ohne Kopieren als Strom übertragen werden können. Ein einzelner Film kann Stücke enthalten, die aus mehreren alten Formaten ausgewählt werden. Diese Erfindung beschränkt das Basismedienformat nicht.
  • Im allgemeinen wird ein gemeinsames Format, das ein Aufnehmen, Erzeugen und Editieren, Herabladen und Übertragen als Strom umfasst, eine allgemeine Flexibilität liefern. Material kann nach dem Verwendung überarbeitet werden oder auf mehrere Arten verwendet, ohne dass es kopiert oder neu formatiert wird. In einer Ausführungsform der vorliegenden Erfindung ist es möglich, Material, das durch Anweisungen erzeugt wurde, durch das Abstreifen der Anweisungsspuren unter Verwendung von Standardeditoren zu überarbeiten und erneut zu verwenden, und dann eine erneute Anweisung auszuführen, nachdem das Editieren beendet ist.
  • Wenn gewünscht wird, dass eine Mediendatei für eine lokale Betrachtung herabgeladen wird, kann eine optimierte verschachtelte Datei für diesen Zweck erzeugt werden, wobei sich die Metadaten für die Übertragung als Strom in einer getrennten Deklarationsdatei befinden, die sich auf dieselben Basismediendaten bezieht. Es kann somit sein, dass das Herabgeladene die Streaming-Information nicht enthält, und dennoch können die Mediendaten nur einmal an einem Streaming-Server präsentiert werden.
  • Durch das Trennen der logischen Struktur von der physikalischen Struktur kann die physikalische Struktur der Datei in Abhängigkeit von der Anwendung (beispielsweise Editieren, lokales Betrachten, Übertragen als Strom) unterschiedlich optimiert werden.
  • Durch das Zulassen mehrerer Anweisungsspuren für jede Medienspur in einer Ausführungsform der vorliegenden Erfindung kann die Datei durch eine Übertragung als Strom über mehrere Protokolle veröffentlicht werden, ohne dass mehrere Kopien der Medien notwendig sind.
  • 6 ist ein Diagramm eines Netzes von Computersystemen, in welchem Mediendaten verarbeitet werden können, gemäß einer Ausführungsform der vorliegenden Erfindung. Wie in 6 gezeigt ist, sind eine Anzahl von Client-Computersystemen, von denen eines oder mehrere eine Implementierung des empfangenden Systems darstellen können, das oben unter Bezug auf 3 beschrieben wurde, durch das Internet 622 miteinander verbunden. Es wird erkennbar, dass der Ausdruck "Internet" sich auf ein Netz oder Netze bezieht. Solche Netze können eine Vielzahl von Protokollen für den Austausch von Information verwenden, wie TCP/IP, ATM, SNA, SDI etc. Die physikalischen Verbindungen des Internets und die Protokolle und die Kommunikationsverfahren des Internets sind im Stand der Technik gut bekannt. Zugang zum Internet 103 wird typischerweise durch Internet-Dienstanbieter (ISPs) geliefert, wie dem ISP 624 und dem ISP 626. Benutzer auf Client-Systemen, wie den Client-Computersystemen 602, 604, 618 und 620 erhalten im allgemeinen einen Zugang zum Internet durch Internet-Dienstanbieter, wie ISPs 624 und 626. Der Zugang zum Internet kann die Übertragung von Information (beispielsweise E-Mail, Textdateien, Mediendateien etc.) zwischen zwei oder mehreren digitalen Verarbeitungssystemen, wie den Client-Computersystemen 602, 604, 618 und 620 und/oder dem Web-Serversystem 628 erleichtern. Beispielsweise können ein oder mehrere der Client-Computersysteme 602, 604, 618 und 620 und/oder der Web-Server 628 Mediendaten (beispielsweise Video und Audio oder Video oder Audio) an einen oder mehrere andere der Client-Computersysteme 602, 604, 618 und 620 und/oder den Web-Server 628 liefern. Dies kann als Antwort auf eine Anforderung geliefert werden. Wie hier beschrieben ist, können solche Mediendaten im System 600 gemäß Anweisungen übertragen werden. Solche Anweisungen können in einer Ausführungsform der Erfindung gemäß einem spezifischen Format der Mediendaten und/oder einer spezifischen Datenkommunikation (beispielsweise Netze, Protokolle) erzeugt werden.
  • Der Web-Server 628 besteht typischerweise aus mindestens einem Computersystem, um mit einem oder mehreren Datenkommunikationsprotokollen zu arbeiten, wie den Protokollen des World Wide Web, und ist als solcher typischerweise mit dem Internet 622 verbunden. Optional kann der Web-Server 628 Teil eines ISP sein, der Zugang zum Internet und/oder einem anderen Netz für Client-Computersysteme liefern kann. Die Client-Computersysteme 602, 604, 618 und 620 können jeweils mit passender Webbrowsing-Software auf Daten, wie HTML-Dokumente (beispielsweise Webseiten), die vom Web-Server 628 geliefert werden können, zugreifen. Solche Daten können Medien liefern, wie QuickTime Filme, die von den Client-Computersystemen 602, 604, 618 und 620 präsentiert werden können.
  • Der ISP 624 liefert für das Client-Computersystem 602 über eine Modemschnittstelle 606, die als ein Teil des Client-Computersystems 602 angesehen werden kann, eine Verbindungsmöglichkeit mit dem Internet. Das Client-Computersystem kann ein konventionelles Computersystem, wie ein Macintosh Computer, ein "Netzcomputer", ein in der Hand haltbarer/tragbarer Computer, ein Netz-TV-System oder andere Typen von digitalen Verarbeitungssystemen sein (beispielsweise ein Mobiltelefon, das die Fähigkeit zur digitalen Verarbeitung besitzt). In ähnlicher Weise liefert der ISP 626 für die Client-Computersysteme 604, 618 und 620 eine Verbindungsmöglichkeit mit dem Internet, obwohl, wie das in 6 dargestellt ist, eine solche Verbindungsmöglichkeit zwischen den verschiedenen Client-Computersystemen, wie den Client-Computersystemen 602, 604, 618 und 620, variieren kann. Beispielsweise ist, wie das in 6 gezeigt ist, das Client-Computersystem 604 mit dem ISP 626 durch eine Modem-Schnittstelle 608 verbunden, während die Client-Computersysteme 618 und 620 Teil eines lokalen Netzes (LAN) sind. Die Schnittstellen 606 und 608, die als Modems 606 beziehungsweise 608 in 6 gezeigt sind, können ein analoges Modem, ein ISDN-Modem, ein Kabelmodem, eine Satellitenübertragungsschnittstelle (beispielsweise "Direct PC"), eine drahtlose Schnittstelle oder eine andere Schnittstelle für das Koppeln eines digitalen Verarbeitungssystems, wie dem Client-Computersystem, mit einem anderen digitalen Verarbeitungssystem sein. Die Client-Computersysteme 618 und 620 sind mit dem LAN-Bus 612 durch die Netzschnittstellen 614 beziehungsweise 616 verbunden. Die Netzschnittstellen 614 und 616 können vom Ethernet-Typ, Asynchronen Übertragungsmodus (ATM) oder einem anderen Typ einer Netzschnittstelle sein. Der LAN-Bus ist auch mit einem digitalen Gateway-Verarbeitungssystem 610 verbunden, das eine Firewall und andere sich auf das Internet beziehende Dienste für ein LAN liefert. Das digitale Gateway-Verarbeitungssystem 610 ist wiederum mit dem ISP 626 verbunden, um eine Verbindungsmöglichkeit der Client-Computersysteme 618 und 620 mit dem Internet zu liefern. Das digitale Gateway-Verarbeitungssystem 610 kann beispielsweise ein konventionelles Server-Computersystem einschließen. In ähnlicher Weise kann der Web-Server 628 beispielsweise ein konventionelles Server-Computersystem einschließen.
  • Das System 600 kann es einem oder mehreren der Client-Computersysteme 602, 604, 618 und 620 und/oder dem Web-Server 628 erlauben, Mediendaten (beispielsweise Video und Audio oder Video oder Audio) zu einem oder mehreren anderen Client-Computersysteme 602, 604, 618 und 620 und/oder dem Web-Server 628 zu liefern. Solche Daten können beispielsweise in Erwiderung auf eine Anforderung durch ein empfangendes System geliefert werden, wobei dieses beispielsweise eines oder mehrere der Client-Computersysteme 602, 604, 618 und 620 sein kann. Wie hier beschrieben ist, können solche Medien im System 600 gemäß Anweisungen oder Anweisungsspuren übertragen werden. Solche Anweisungen können in einer Ausführungsform der Erfindung gemäß einem spezifischen Format der Mediendaten und/oder einer spezifischen Datenkommunikation (beispielsweise Netz, Protokolle) geschaffen werden, um gemäß einem Aspekt der Erfindung eine Paketierung der Mediendaten zu erlauben.
  • 7 ist ein Blockdiagramm eines digitalen Verarbeitungssystems, das gemäß einer Ausführungsform der vorliegenden Erfindung verwendet werden kann. Beispielsweise kann das in 7 gezeigte digitale Verarbeitungssystem 650 als ein Client-Computersystem, ein Web-Serversystem, ein konventionelles Serversystem etc. verwendet werden. Weiterhin kann das digitale Verarbeitungssystem 650 verwendet werden, um eine oder mehrere Funktionen eines Internet-Dienstanbieters, wie des ISP 624 oder 626, auszuführen. Das digitale Verarbeitungssystem 650 kann eine Schnittstelle zu externen Systemen durch ein Modem oder eine Netzschnittstelle 668 aufweisen. Es wird erkennbar, dass das Modem oder die Netzschnittstelle 668 als ein Teil des digitalen Verarbeitungssystems 650 betrachtet werden kann. Das Modem oder die Netzschnittstelle 668 können ein analoges Modem, ein ISDN-Modem, ein Kabelmodem, eine Tokenring-Schnittstelle, eine Satellitenübertragungsschnittstelle, eine drahtlose Schnittstelle oder eine oder mehrere andere Schnittstellen für das Liefern einer Datenkommunikationsverbindung zwischen zwei oder mehr digitalen Verarbeitungssystemen sein.
  • Das digitale Verarbeitungssystem 650 umfasst einen Prozessor 652, der einen oder mehrere Prozessoren darstellen kann, und der einen oder mehrere konventionelle Typen von Prozessoren einschließen kann, wie eine Motorola PowerPC Prozessor, einen Intel Pentium Prozessor (oder x86 Prozessor), etc. Ein Speicher 155 ist mit dem Prozessor 652 durch einen Bus 656 gekoppelt. Der Speicher 155 kann ein dynamischer Speicher mit wahlfreiem Zugriff (DRAN) sein und/oder er kann einen statischen RAM (SRAM) einschließen. Der Prozessor kann auch mit anderen Typen von Speichergebieten/Speichern (beispielsweise Cache, Flash-Speicher, Plattenspeicher, etc.) verbunden sein, wobei diese als ein Teil des Speichers 155 oder als getrennt vom Speicher 155 angesehen werden können.
  • Der Bus 656 koppelt den Prozessor 652 weiter mit einer Anzeigesteuerung 658, einem Massenspeicher 662, dem Modem oder der Netzschnittstelle 668 und einer Eingabe/Ausgabe-Steuerung (E/A-Steuerung) 664. Der Massenspeicher 662 kann ein magnetisches, optisches, magneto-optisches, ein Band und/oder einen anderen Typ eines maschinenlesbaren Mediums/einer Vorrichtung für das Speichern von Information darstellen. Beispielsweise kann der Massenspeicher 662 eine Festplatte, eine Nur-Lese-CD oder eine beschreibbare optische CD etc. darstellen. Die Anzeigesteuerung 658 steuert in einer konventionellen Art eine Anzeige 660, die eine Kathodenstrahlröhrenanzeige (CRT-Anzeige), eine Flüssigkristallanzeige (LCD), eine Plasmaanzeige oder einen anderen Typ einer Anzeigevorrichtung darstellen kann. Die E/A-Steuerung 664 steuert E/A-Vorrichtungen 666, die ein oder mehrere Tastaturen, Mäuse/Trackbälle oder andere Zeigevorrichtungen, magnetische und/oder optische Plattenlaufwerke, Drucker, Scanner, Digitalkameras, Mikrofone etc. einschließen kann.
  • Es wird erkennbar, dass das digitale Verarbeitungssystem 650 nur ein Beispiel eines Systems darstellt, das viele verschiedene Konfigurationen und Architekturen aufweisen kann, und das mit der vorliegenden Erfindung verwendet werden kann. Beispielsweise haben Macintosh- und Intel-Systeme oft mehrere Busse, wie einen peripheren Bus, einen dedizierten Cache-Bus etc. Andererseits kann es sein, dass ein Netzcomputer, der als eine digitale Verarbeitungsvorrichtung der vorliegenden Erfindung verwendet werden kann, beispielsweise keine Festplatte oder Massenspeichervorrichtung einschließt, sondern Routinen und/oder Daten von einer Netzverbindung, wie dem Modem oder der Schnittstelle 668 empfangen kann, damit sie vom Prozessor 652 verarbeitet werden können. In ähnlicher Weise kann ein Netz-TV-System, das aus dem Stand der Technik bekannt ist, als ein digitales Verarbeitungssystem der vorliegenden Erfindung angesehen werden, aber es kann sein, dass ein solches System nicht eine oder mehrere E/A-Vorrichtungen einschließt, wie die, die oben unter Bezug auf die E/A-Vorrichtung(en) 666 beschrieben wurden. Zusätzlich kann ein tragbares Kommunikations- und Datenverarbeitungssystem, das ein Mobiltelefon und/oder Funkruffähigkeiten verwenden kann, als ein digitales Verarbeitungssystem betrachtet werden, das mit der vorliegenden Erfindung verwendet werden kann.
  • Im System 650, das in der 7 gezeigt ist, kann ein Massenspeicher 662 (und/oder der Speicher 654) Medien (beispielsweise Video, Audio, Filme etc.) speichern, die gemäß der vorliegenden Erfindung (beispielsweise mittels Anweisungen) verarbeitet werden können. Alternativ können Mediendaten vom digitalen Verarbeitungssystem 650 beispielsweise über das Modem oder die Netzschnittstelle 668 empfangen und gespeichert und/oder von der Anzeige 660 und/oder der oder den E/A-Vorrichtungen 666 präsentiert werden. In einer Ausführungsform können paketierte Mediendaten über ein Datenkommunikationsnetz, wie ein LAN und/oder das Internet, gemäß Anweisungsspuren übertragen werden. Andererseits kann der Prozessor 652 ein oder mehrere Routinen ausführen, um eine Datei mit einer oder mehreren Anweisungsspuren zu verwenden, oder um alternativ eine oder mehrere Anweisungsspuren zu erzeugen, um Medien (beispielsweise einen im Vorhinein paketierter Film, eine Audiodatei, eine Videodatei etc.) für eine Präsentation oder Paketierung gemäß den Anweisungsspuren zu verarbeiten. Solche Routinen können im Massenspeicher 662, dem Speicher 664 und/oder einem anderen maschinenlesbaren Medium, das vom digitalen Verarbeitungssystem 650 zugänglich ist, gespeichert werden. In einer Ausführungsform kann das digitale Verarbeitungssystem 650 Mediendaten, die darin eingebettete Anweisungsspuren aufweisen, verarbeiten. In ähnlicher Weise können solche eingebetteten Mediendaten im Massenspeicher 662, dem Speicher 664 und/oder einem anderen maschinenlesbaren Medium, das für das digitalen Verarbeitungssystem 650 zugänglich ist, gespeichert werden.
  • 8 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der Erfindung, das Anweisungen verwendet, um Mediendaten zu übertragen. Das in 8 gezeigte System 680 umfasst ein Empfangssystem, das als ein Client-Datenverarbeitungssystem 682, das mit einem Server 694 über eine Datenkommunikationsverbindung 686 verbunden ist, dargestellt ist. Der Server 694 und/oder das Client-Datenverarbeitungssystem kann beispielsweise eines der Vorrichtungen/Systeme, die unter Bezug auf die 6 und 7 beschrieben wurden, oder eine Kombinationen dieser Vorrichtungen/Systeme darstellen.
  • Der Server 694 umfasst eine Anweisungserzeugungs- und Verarbeitungseinheit 688, eine Medienverarbeitungseinheit 690 und eine Datenkommunikationseinheit 692, von denen jede fest verdrahtete Schaltungen oder durch eine Maschine ausführbare Anweisungen oder eine Kombination daraus einschließen kann. Weiterhin kann zumindest ein Teil dieser festverdrahteten Schaltung und/oder von einer Maschine ausführbaren Anweisungen von einer Kombination der Anweisungserzeugungs- und Verarbeitungseinheit 688, der Medienverarbeitungseinheit 690 und der Datenkommunikationseinheit 692 gemeinsam genutzt werden. In einer Ausführungsform wird mindestens ein Speicherbereich/Speicher (beispielsweise ein von einer Maschine lesbares Medium), der darin gespeicherte passende Routinen und/oder Daten aufweist, der mit mindestens einem Prozessor gekoppelt ist, verwendet, mindestens zum Teil, um die Anweisungserzeugungs- und Verarbeitungseinheit 688 und/oder die Medienverarbeitungseinheit 690 und/oder die Datenkommunikationseinheit 692 zu implementieren.
  • In einer Ausführungsform schafft die Anweisungserzeugungs- und Verarbeitungseinheit 688 Anweisungen und speichert diese für eine Paketierung der Mediendaten, die von der Medienverarbeitungseinheit 690 verarbeitet werden. Wie oben beschrieben ist, können diese Anweisungen als eine getrennte Datei, relativ zu Mediendateien oder eingebettet in die Mediendaten, erzeugt und gespeichert werden. Wenn mehr als ein Medienformat zu verarbeiten ist, kann ein passendes Format durch die Anweisungserzeugungs- und Verarbeitungseinheit 688 berücksichtigt werden, um die Anweisungen zu erzeugen. Die Information über das Medienformat kann durch die Medienverarbeitungseinheit 690 geliefert werden, die auch die Mediendaten (beispielsweise Mediendateien eines Video, Audio oder Video und Audio, etc.) liefern kann. In ähnlicher Weise kann die Datenkommunikationseinheit 692 ein oder mehrere Datenkommunikationsprotokolle (beispielsweise Netzprotokolle) für den Austausch solcher Mediendaten, die gemäß den Anweisungen paketiert sind, über die Datenkommunikationsverbindung 686 liefern. Somit kann die Anweisungserzeugungs- und Verarbeitungseinheit auf der Basis der Medienformatinformation, die von der Medienverarbeitungseinheit 690 geliefert wird, und der Datenkommunikationsprotokollinformation, die von der Datenkommunikationseinheit 692 geliefert wird, passende Anweisungen und eine Paketierung der Medien und/oder der Anweisungen für eine Übertragung zu einem empfangenden digitalen Verarbeitungssystem, wie dem Client-Datenverarbeitungssystem 682, bestimmen. In einer Ausführungsform erfolgt die Übertragung der Medien und Anweisungen in Form eines Stroms gemäß dem Format QuickTime.
  • In Erwiderung auf die Mediendaten und die Anweisungspakete, die über die Datenkommunikationsverbindung 686 empfangen werden, kann das Client-Datenverarbeitungssystem 682 ein Medienobjekt, das durch die Mediendaten dargestellt wird, präsentieren. Eine solche Präsentation kann in kurzlebiger Form ausgeführt werden, wie das oben beschrieben wurde. In einer Ausführungsform der Erfindung können die Mediendaten optional durch das Client-Datenverarbeitungssystem 682 gespeichert, und beispielsweise zu einer späteren Zeit für eine Präsentation und/oder Übertragung durch das Client-Datenverarbeitungssystem 682 wieder zusammengefügt werden.
  • 9 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der Erfindung, das Anweisungen verwendet, um Mediendaten zu übertragen. Insbesondere zeigt 9 eine Ausführungsform der Erfindung, bei der ein getrenntes digitales Verarbeitungssystem, das als ein Generator bezeichnet ist, Anweisungen (oder Anweisungsspuren) erzeugen kann, damit sie an ein anderes System, wie einen Server, geliefert werden, das die Anweisungen verwendet, um Mediendaten für eine Übertragung zu einem anderen System, wie einem Client-Computersystem, zu paketieren. Ein System 696 ist in 9 gezeigt, das einen Server 700 einschließt, der Daten über die Datenkommunikationsverbindung 686 mit dem Client-Datenverarbeitungssystem 682 austauschen kann. In der in 9 gezeigten Ausführungsform erzeugt der Server 700 die Anweisungen jedoch nicht. Stattdessen umfasst ein Generator 710, der mit dem Server 700 durch eine Datenkommunikationsverbindung 708 verbunden ist, eine Anweisungserzeugungseinheit 712, um Anweisungen zu erzeugen, die verwendet werden, um Mediendaten zu paketieren.
  • In einer Ausführungsform findet der Betrieb des Systems 696 folgendermaßen statt: der Server 700 erzeugt eine Anforderung an den Generator 710, Anweisungen für eine oder mehrere Mediendateien, die Mediendaten enthalten, zu erzeugen. Beispielsweise können die Mediendateien im Server 700 auf einem maschinenlesbaren Medium gespeichert werden. Die Anforderung kann Information einschließen, um das Format der Mediendatei und/oder ein Datenübertragungsprotokoll für die Übertragung der Mediendaten und/oder anderer Dateien anzuzeigen. Das Datenkommunikationsprotokoll kann sich auf die Datenkommunikationsverbindung 686 beziehen, die in einer Ausführungsform der Erfindung mit einer Netzverbindung verknüpft sein kann, die spezielle physikalische und logische Eigenschaften aufweist, um den Austausch der Medien und/oder anderer Daten zwischen dem Server 700 und dem Client-Datenverarbeitungssystem 682 zu erleichtern. In Erwiderung auf die Anforderung erzeugt die Anweisungserzeugungseinheit 712 passende Anweisungen, die mit einer zeitbezogenen Anweisungsspur verknüpft sein können, und liefert die Anweisungen an den Server 700. In Erwiderung auf die Anweisungen, die vom Generator 710 über die Datenkommunikationsverbindung 708 empfangen werden, verwendet der Server 700 und insbesondere eine Anweisungsverarbeitungseinheit 702 die Anweisungen, um die Mediendaten für eine Übertragung an das Client-Datenverarbeitungssystem 682 zu paketieren.
  • In Erwiderung auf die Mediendaten und die Anweisungspakete, die über die Datenkommunikationsverbindung 686 empfangen werden, kann das Client-Datenverarbeitungssystem 682 ein Medienobjekt präsentieren, das durch die Mediendaten dargestellt wird. Eine solche Präsentation kann kurzlebig ausgeführt werden, wie das oben beschrieben ist. In einer Ausführungsform der Erfindung können die Mediendaten optional durch das Client-Datenverarbeitungssystem 682 gespeichert und beispielsweise zu einer späteren Zeit für eine Präsentation und/oder Übertragung vom Client-Datenverarbeitungssystem 682 wieder zusammengefügt werden.
  • 10 ist ein Flussdiagramm, das ein Verfahren für das Erzeugen von Anweisungen für das Liefern einer Mediendatenübertragung gemäß einer Ausführungsform der Erfindung zeigt. Im Schritt 720 wird ein Medienformat für die zu übertragenden Mediendaten bestimmt, wenn mehr als ein Format verwendet wird. Wenn nur ein Format verwendet wird, so kann 720 nicht ausgeführt werden. Im Schritt 722 wird ein passenden Datenkommunikationsprotokoll oder Protokolle bestimmt, wenn man wieder annimmt, dass mehr als ein Protokoll verwendet werden kann. Im Schritt 724 werden auf der Basis des Medienformats und dem oder den Datenkommunikationsprotokollen (eines oder beide davon können ausgewählt/konfiguriert worden sein), Anweisungen (beispielsweise Anweisungsspuren) in Bezug auf die Übertragung der Mediendaten geschaffen und gespeichert.
  • Im Schritt 726, der optional ist, können die Anweisungen an ein anderes digitales Verarbeitungssystem übertragen werden. In einer Ausführungsform der Erfindung kann beispielsweise das Verfahren der 10 zumindest zum Teil ausschließlich von einem digitalen Verarbeitungssystem (beispielsweise einem Server) ausgeführt werden. In einer alternativen Ausführungsform kann das Verfahren der 10 zumindest zum Teil durch zwei oder mehr digitale Verarbeitungssysteme ausgeführt werden. Beispielsweise können Attribute der Mediendaten durch ein Server oder ein anderes System einem anderen digitalen Verarbeitungssystem, wie einem Generator, geliefert werden. In Erwiderung darauf kann der Generator auf der Basis der Attribute ein passendes Medienformat, Datenkommunikationsprotokoll(e) und Anweisungen für die Paketierung der Mediendaten, die am Server gespeichert werden können, bestimmen. Alternativ kann der Server das passende Medienformat und das oder die Protokolle an den Generator liefern, der dann die Anweisungen erzeugen würde. Der Generator kann die Anweisungen an den Server oder ein anderes digitales Verarbeitungssystem liefern, das die Mediendaten gemäß den Anweisungen paketieren könnte.
  • 11 ist ein Flussdiagramm, das ein Verfahren zur Verarbeitung von Mediendaten gemäß einer Ausführungsform der Erfindung, die von einem Empfangssystem empfangen werden, gemäß den Anweisungen zeigt. Im Schritt 730 werden die Mediendaten, die an ein empfangendes System gemäß den Anweisungen übertragen wurden, vom empfangenden System empfangen. In einer Ausführungsform kann das empfangende System paketierte Mediendaten, als auch paketierte Anweisungsspuren empfangen. Die Anweisungsspuren können in einer Ausführungsform der Erfindung zumindest mit Teilen der Mediendaten verknüpft sein. Solche Daten können vom empfangenden System in Erwiderung auf eine Anforderung, die vom empfangenden System vorgenommen wurde, empfangen werden. Beispielsweise kann in einer Ausführungsform das empfangenden System ein Client-Computersystem sein, und die Anforderung kann an einen Server oder ein anderes digitales Verarbeitungssystem für die Mediendaten gemacht worden sein. In Erwiderung kann der Server Anweisungen für das Paketieren der Mediendaten erzeugen (oder diese durch ein getrenntes digitales Verarbeitungssystem erzeugt haben), und die paketierten Mediendaten, die Anweisungen einschließen können, an das empfangende System übertragen.
  • Im Schritt 732 wird ein Medienobjekt, das durch die Mediendaten repräsentiert wird, die vom empfangenden System empfangen werden, durch das empfangende System präsentiert. Beispielsweise können die Mediendaten Video, Audio oder eine Kombination einschließen, die vom empfangenden System beispielsweise auf einer Anzeige und Lautsprecher(n) "präsentiert" wird. Wie oben erwähnt wurde, können die Mediendaten mit einem QuickTime Film verknüpft sein.
  • Wahlweise können im Schritt 734 die Mediendaten, die Anweisungen einschließen können, durch das empfangende System als Mediendatei(en) gespeichert werden. Somit kann es sein, dass in alternativen Ausführungsformen der Erfindung der Schritt 732 nicht ausgeführt wird, wenn die Mediendaten empfangen werden, oder dass er vorher oder danach oder parallel mit dem Schritt 734 ausgeführt wird.
  • Im Schritt 734 kann die gespeicherte Mediendatei wahlweise wieder zusammengefügt und/oder präsentiert werden. Somit kann der Schritt 732 nach dem Schritt 734 ausgeführt werden.
  • 12 ist ein Beispiel eines maschinenlesbaren Speichermediums gemäß einer Ausführungsform der Erfindung, auf das von einem digitalen Verarbeitungssystem, wie einem Generator, zugegriffen werden kann. Es wird erkennbar, dass der tatsächliche Speicher, der die Elemente, die unter Bezug auf 12 unten gezeigt und beschrieben werden, speichert, aus einem oder mehreren Elementen, wie die eine oder die mehreren Platten (die beispielsweise magnetisch, optisch, magneto-optisch etc. sein können), dem Speicher 654 und/oder dem Massenspeicher 662, die oben unter Bezug auf 7 beschrieben wurden, bestehen kann. Weiterhin können in einer Ausführungsform, bei dem der Generator, mit dem das maschinenlesbare, in 12 gezeigte Speichermedium verbunden ist, ein Netzcomputer ist, eine oder mehrere der Elemente des maschinenlesbaren Speichermediums in einem anderen digitalen Verarbeitungssystem gespeichert sein und zum Generator herabgeladen werden. Weiterhin können die Elemente, die unter Bezug auf das maschinenlesbare Speichermedium beschrieben sind, an einem Zeitpunkt in einem nicht flüchtigen Massenspeicher (beispielsweise einer Festplatte) gespeichert sein. Im Gegensatz dazu können zu anderen Zeiten die Elemente des maschinenlesbaren Speichermediums zwischen verschiedenen Speicherbereichen, wie einem DRAM, SRAM, eine Platte etc. aufgeteilt sein.
  • 12 zeigt ein maschinenlesbares Speichermedium 740. In einer Ausführungsform wird das maschinenlesbare Speichermedium zumindest zum Teil von einem digitalen Verarbeitungssystem, das Anweisungen oder Anweisungsspuren erzeugt, das heißt einem Generator, gemäß einer oder mehreren Verfahren der Erfindung verwendet. Der Generator, wie er unter Bezug auf 8 beschrieben ist, kann in ein digitales Verarbeitungssystem integriert sind, das Mediendaten gemäß den Anweisungsspuren überträgt, oder es kann, wie das unter Bezug auf 9 beschrieben ist, ein digitales Verarbeitungssystem sein, das die Anweisungen an andere digitale Verarbeitungssysteme, wie einen Server, liefert, der die Anweisungen verwendet, um die Mediendaten zu paketieren und zu übertragen.
  • Wie in 12 gezeigt ist, umfasst das maschinenlesbare Speichermedium 740 typischerweise eine Anzahl von Elementen. Beispielsweise umfasst das maschinenlesbare Speichermedium 740 Software, um dem Generator eine Betriebssystemfunktion zu liefern, wie das durch ein Generatorbetriebssystem (OS) 742 dargestellt ist. Eine Netzübertragungsroutine oder mehrere Netzübertragungsroutinen 748 liefern eine Datenübertragungsfunktion, wie Routinen, Protokolle etc., um es dem Generator zu ermöglichen, Daten über eine Kommunikationsverbindung zu übertragen und zu empfangen.
  • Zusätzlich umfasst das maschinenlesbare Speichermedium 740 Routinen und Daten für das Erzeugen von Anweisungen, die mit der Medienübertragung verknüpft sind. Somit mag das maschinenlesbare Speichermedium 740 optional Information 750 einschließen, die eine Information in Bezug auf ein oder mehrere Datenkommunikationsprotokolle und Medienformate liefert, die notwendig sein können, um Anweisungen durch eine oder mehrere Erzeugungsroutinen 744 zu erzeugen. Beispielsweise kann die Information 750 Information in Bezug auf QuickTime Filme, RTP, MPEG etc. enthalten. Darüber hinaus kann solche Information zumindest zum Teil in die Anweisungserzeugungsroutine 744 integriert und/oder dem Generator durch ein entferntes digitales Verarbeitungssystem geliefert werden.
  • Die Anweisungen, die von der oder den Anweisungserzeugungsroutinen 744 erzeugt werden, können als erzeugte Anweisungen 746 gespeichert und/oder sonst wo gespeichert/übertragen werden (beispielsweise an eine entfernte digitale Verarbeitungsvorrichtung, bei der es sich um einen Server handeln kann). Die Anweisungen sind Anweisungsspuren, die zeitbezogen sind, für die Paketierung und Übertragung von Mediendaten, die auch zeitbezogen sind (beispielsweise Video, Audio, Video und Audio, etc.).
  • Obwohl das maschinenlesbare Speichermedium 740 unter Bezug auf einen Generator beschrieben ist, kann das Medium 740 zumindest zum Teil ein Teil einer Anzahl von Typen digitaler Verarbeitungssysteme, Datenspeichermedien etc. sein. Beispielsweise kann das maschinenlesbare Speichermedium 740 zumindest zum Teil als Teil eines Servers oder eines anderen digitalen Verarbeitungssystems enthalten sein. Weiterhin kann das maschinenlesbare Speichermedium 740 zumindest zum Teil als Teil einer Softwareanwendung auf einer oder mehreren Platten oder anderen maschinenlesbaren Medien enthalten sein.
  • 13 ist ein Beispiel eines maschinenlesbaren Speichermediums gemäß einer Ausführungsform der Erfindung, auf das von einem digitalen Verarbeitungssystem, wie einem Server, zugegriffen werden kann. Es wird erkennbar, dass der tatsächliche Speicher, der die Elemente speichert, die unter Bezug auf 13 unten gezeigt und beschrieben werden, ein oder mehrere Elemente sein kann, wie eine oder mehrere Platten (die beispielsweise magnetisch, optisch, magneto-optisch etc. sein können), der Speicher 654 und/oder der Massenspeicher 662, der oben unter Bezug auf 7 beschrieben ist. Weiterhin können in einer Ausführungsform, bei der der Server, mit dem das maschinenlesbare, in 13 gezeigte Speichermedium verbunden ist, ein Netzcomputer ist, eine oder mehrere der Elemente des maschinenlesbaren Speichermediums bei einem anderen digitalen Verarbeitungssystem gespeichert sein und zum Server herabgeladen werden. Weiterhin können die Elemente, die unter Bezug auf das maschinenlesbare Speichermedium beschrieben sind, an einem gewissen Zeitpunkt in einem nicht flüchtigen Massenspeicher (beispielsweise einer Festplatte) gespeichert sein. Im Gegensatz dazu können zu anderen Zeitpunkten die Elemente des maschinenlesbaren Speichermediums zwischen verschiedenen Speicherbereichen, wie einem DRAM, SRAM, einer Platte, etc. verteilt sein.
  • 13 zeigt ein maschinenlesbares Speichermedium 760. In einer Ausführungsform wird das maschinenlesbare Speichermedium zumindest zum Teil verwendet, um Mediendaten für eine Übertragung auf einer Datenkommunikationsverbindung gemäß einem oder mehreren Verfahren der Erfindung zu paketieren. Das maschinenlesbare Speichermedium 760 kann mit einem Server, wie dem Server 694, der unter Bezug auf 8 beschrieben wurde, verbunden sein, um Routinen einzuschließen, um Anweisungsspuren zu erzeugen und um Mediendaten gemäß den Anweisungsspuren zu übertragen. In einer anderen Ausführungsform kann das maschinenlesbare Speichermedium 760 mit einem digitalen Verarbeitungssystem, wie dem Server 700, der unter Bezug auf 9 beschrieben wurde, verbunden sein, bei dem ein digitales Verarbeitungssystem, wie ein Generator, Routinen einschließt, um Anweisungen zu erzeugen, und der Server kann unter Verwendung der Anweisungen, wie sie von den Routinen verarbeitet werden, die vom maschinenlesbaren Speichermedium 760 geliefert werden, die Mediendaten paketieren und übertragen.
  • Das maschinenlesbare Speichermedium 760 umfasst eine Anzahl von Elementen. Beispielsweise umfasst das maschinenlesbare Speichermedium 760 Software, um dem Server eine Betriebssystemfunktion zu verleihen, wie das durch ein Serverbetriebssystem (OS) 762 dargestellt ist. Eine oder mehrere Netzübertragungsroutinen 768 liefern eine Datenübertragungsfunktion, wie Routinen, Protokolle, etc., um es dem Server zu erlauben, Daten über eine Datenübertragungsverbindung zu senden und zu empfangen.
  • Zusätzlich umfasst das maschinenlesbare Speichermedium 760 eine Medienpaketierungsroutine 770 für das Paketieren von Mediendaten, die zeitbezogen sein können, basierend auf Anweisungen, und die auch paketiert sein können. Somit umfasst das maschinenlesbare Speichermedium 760 einen Mediendatenspeicherbereich 764 und einen Anweisungsspeicherbereich 766, um Mediendaten (bei denen es sich beispielsweise um QuickTime Filme oder andere Medienspuren handeln kann) und Anweisungen (beispielsweise Anweisungsspuren) zu speichern. Die Anweisungen können Anweisungsspuren einschließen, die zeitbezogen sind, für die Paketierung und Übertragung von Mediendaten, die typischerweise auch zeitbezogen sind (beispielsweise Video, Audio, Video und Audio). In einer Ausführungsform werden die Anweisungsspuren getrennt von den Mediendatenpaketen paketiert. In einer Ausführungsform umfassen die Anweisungen Zeigerinformation, die Mediendaten identifizieren kann (beispielsweise ein oder mehrere Pakete, die sich in einer getrennten Mediendatei befinden können).
  • 14 ist ein Beispiel eines maschinenlesbaren Speichermediums gemäß einer Ausführungsform der Erfindung, auf das von einem digitalen Verarbeitungssystem, wie einem Empfangssystem oder einem anderen digitalen Verarbeitungssystem, zugegriffen werden kann. Es wird erkennbar, dass der tatsächliche Speicher, der die Elemente speichert, die unter Bezug auf 14 unten gezeigt und beschrieben werden, ein oder mehrere Elemente sein kann, wie eine oder mehrere Platten (die beispielsweise magnetisch, optisch, magneto-optisch etc. sein können), der Speicher 654 und/oder der Massenspeicher 662, der oben unter Bezug auf 7 beschrieben ist. Weiterhin können in einer Ausführungsform, bei der der Server, mit dem das maschinenlesbare in 14 gezeigte Speichermedium verbunden ist, ein Netzcomputer ist, eine oder mehrere der Elemente des maschinenlesbaren Speichermediums bei einem anderen digitalen Verarbeitungssystem gespeichert sein und zum Empfangssystem herabgeladen werden. Weiterhin können die Elemente, die unter Bezug auf das maschinenlesbare Speichermedium beschrieben sind, an einem gewissen Zeitpunkt in einem nicht flüchtigen Massenspeicher (beispielsweise einer Festplatte) gespeichert sein. Im Gegensatz dazu können zu anderen Zeitpunkten die Elemente des maschinenlesbaren Speichermediums zwischen verschiedenen Speicherbereichen, wie einem DRAM, SRAM, einer Platte, etc. verteilt sein.
  • 14 zeigt ein maschinenlesbares Speichermedium 780. In einer Ausführungsform wird das maschinenlesbare Speichermedium zumindest zum Teil verwendet, um Mediendaten, die gemäß einem oder mehreren Verfahren der Erfindung paketiert sind, zu verarbeiten. Das maschinenlesbare Speichermedium 780 kann mit einem empfangenden System verbunden sein, wie dem Client-Datenverarbeitungssystem 682, das unter Bezug auf die 8 und 9 beschrieben wurden, um Routinen einzuschließen, um Mediendaten, die gemäß den Anweisungen gesendet/empfangen wurden, zu präsentieren. Alternativ kann das maschinenlesbare Speichermedium 780 Mediendaten einschließen, die darin eingebettete Anweisungen (beispielsweise Anweisungsspuren) aufweisen. Solche eingebetteten Mediendaten können im Vorhinein paketiert oder erzeugt werden durch eine Routine, die auf einem maschinenlesbaren Speichermedium, wie dem maschinenlesbaren Speichermedium 780, gespeichert ist.
  • Das maschinenlesbare Speichermedium 780 kann eine Anzahl von Elementen einschließen. Beispielsweise umfasst das maschinenlesbare Speichermedium 780 Software, um dem empfangenden System eine Betriebssystemfunktion zu liefern, wie das durch ein Serverbetriebssystem (OS) 772 dargestellt ist. Eine oder mehrere Netzübertragungsroutinen 782 liefern eine Datenübertragungsfunktion, wie Routinen, Protokolle etc., um es dem Server zu erlauben, Daten über eine Datenübertragungsverbindung zu senden und zu empfangen.
  • Zusätzlich umfasst das maschinenlesbare Speichermedium 780 eine Medienpräsentationsroutine 778 für das Präsentieren von Mediendaten, die gemäß den Anweisungen paketiert sind. Somit kann das maschinenlesbare Speichermedium 780 und insbesondere die Medienpräsentationsroutine 778 Routinen für die Dekomprimierung von Audio- und/oder Videodaten, das Anzeigen eines Videos und/oder das Abspielen einer Audiodatei etc. umfassen. Weiterhin liefert die Medienpräsentationsroutine 778 typischerweise eine Handhabung der Anweisungen, die mit den Mediendaten verknüpft sind. In einer Ausführungsform werden die Anweisungen einfach ignoriert, wenn die Medien präsentiert werden.
  • Optional kann das maschinenlesbare Speichermedium 780 Mediendaten speichern, die gemäß Anweisungen paketiert wurden, als Mediendaten 774, und eine Mediendatenwiederzusammenfügungsroutine 776 einschließen, um die gespeicherten Mediendaten wieder zusammenzufügen (um beispielsweise präsentiert, übertragen zu werden, etc.).
  • 15 ist ein Diagramm eines Datenspeicher- und/oder Kommunikationsmediums gemäß einer Ausführungsform der Erfindung, das darauf gespeicherte/transportierte Medien- und Anweisungsinformation aufweist. Ein Datenspeicher- und/oder Übertragungsmedium (Medium) 800 ist gezeigt, das verschiedene Typen eines Transport- und/oder Speichermediums darstellt, in dem ein Mediendatenpaket 804 und ein Anweisungspaket 806, die gemäß der vorliegenden Erfindung paketiert sind, gespeichert oder transportiert werden können. Beispielsweise kann das Medium 800 den Massenspeicher 662 und/oder den Speicher 654 darstellen, wie das oben unter Bezug auf 7 beschrieben wurde. Das Medium 800 kann auch ein Kommunikationsmedium, wie den LAN-Bus 612, der in 6 gezeigt ist, oder die Datenübertragungsverbindung 686 für das Transportieren von Daten/Signalen, die Medien und/oder andere Information darstellen, repräsentieren.
  • Das Anweisungspaket 806 und das Medienpaket 804 können in einem Paket integriert oder getrennt gespeichert und/oder transportiert werden, wie das in 15 dargestellt ist. Weiterhin können das Anweisungspaket 806 und das Medienpaket 804 mehrere Typen von Formaten verkörpern, wie solche, die hier beschrieben sind oder eines, das mit anderen Medienformaten, Netzprotokollen und/oder einer Architektur einer digitalen Verarbeitungsvorrichtung verbunden ist.
  • Unten sind einige Beispiele für Formate von Anweisungen angegeben. Es wird erkennbar, dass die vorliegende Erfindung jedoch mit verschiedenen Typen von Netzprotokollen, Architekturen von digitalen Verarbeitungssystemen, Medienformaten etc. verwendet werden kann, um eine Übertragung zeitbasierter Daten zu liefern.
  • ALTERNATIVE AUSFÜHRUNGSFORMEN
  • Während die Erfindung in Ausdrücken mehrerer Ausführungsformen und illustrierender Figuren beschrieben worden ist, werden Fachleute verstehen, dass die Erfindung nicht auf die beschriebenen Ausführungsformen oder Figuren beschränkt ist. Insbesondere kann die Erfindung in mehreren alternativen Ausführungsformen praktiziert werden, die eine Paketierung zeitbezogener Mediendaten liefern.
  • Somit sollte verständlich sein, dass das Verfahren und die Vorrichtung der Erfindung mit einer Modifikation und Änderung innerhalb des Umfangs der angefügten Ansprüche praktiziert werden kann. Die Beschreibung ist somit als illustrierend und nicht als die Erfindung begrenzend anzusehen.
  • Anhang A – Abtastwertbeschreibung einer Paketierungsanweisung
  • In einer Ausführungsform der vorliegenden Erfindung weist jede Anweisungsspur eine Tabelle von Abtastwertbeschreibungen auf. Anweisungsspuren haben typischerweise eine Abtastwertbeschreibung. Das Format für jeden Abtastwertbeschreibungseintrag für eine Anweisungsspur gemäß einer Ausführungsform der vorliegenden Erfindung ist unten in Tabelle 1 gezeigt. Tabelle 1: Format der Abtastwertbeschreibung einer Anweisungsspur
    Abtastwertbeschreibung einer Anweisungsspur Bytes
    Größe der Abtastwertbeschreibung 4
    Datenformat 4
    Reserviert 6
    Datenreferenzindex 2
    Maximale Paketgröße 4
    Zusätzliche Datentabelle variabel
  • Das Anweisungskopfteilatom für die Paketierung enthält die folgenden Datenelemente: Feldbeschreibungen:
    Abtastwert Eine ganze Zahl von 32 Bit, die die
    Anzahl von Bytes spezifiziert
    Beschreibungsgröße in der Abtastwertbeschreibung
    Datenformat Eine ganze Zahl von 32 Bit, die das
    Format der Anweisungen anzeigt, die in
    den Abtastwertdaten gespeichert sind.
    Verschiedene Formate können für
    verschiedene Anweisungstypen definiert
    werden. Die Tabelle unten führt die
    definierten Formate auf.
    Reserviert Sechs Bytes, die auf 0 gesetzt sind.
    Datenreferenz Eine ganze Zahl von 16 Bit, die den Index
    des Datenindex enthält, der mit den
    Abtastwerten verbunden ist, die diese
    Abtastwertbeschreibung verwenden.
    Datenreferenzen werden in Datenreferenz
    atomen gespeichert.
    Maximale Paketgröße Eine ganze Zahl von 32 Bit, die die
    maximale Größe von Paketen anzeigt,
    die in dieser Spur berechnet werden.
    Zusätzliche
    Datentabelle Eine Tabelle, die zusätzliche Information
    enthält, die auf einer Spur-weisen Basis
    benötigt wird. Die Werte sind markierte
    Einträge. Sie sind keine erforderlichen
    Einträge. Wenn ein Eintrag in der Tabelle
    nicht vorhanden ist, kann ein
    vernünftiger Standardwert verwendet
    werden.
  • Die Struktur für die zusätzlichen Datentabelleneinträge ist in Tabelle 2 gezeigt. Tabelle 2: Zusätzliches Datentabellenformat
    Zusätzliche Datentabelle Bytes
    Eintragslänge 4
    Datentyp 4
    Daten Eintragslänge – 8
  • Die Einträge in der zusätzlichen Datentabelle enthalten die folgenden Datenelemente: Feldbeschreibungen:
    Eintragslänge Eine ganze Zahl von 32 Bit, die die Länge des
    gesamten Eintrags in Bytes anzeigt (umfasst 8
    Bytes für die Längen- und die Typfelder)
    Datentyp Eine ganze Zahl von 32 Bit, die die Bedeutung
    der Daten im Eintrag anzeigt.
    Daten Die Daten für diesen Eintrag. Die Länge der
    Daten wird durch das Datenlängenfeld der
    Tabelle angezeigt.
  • Die folgenden Datenmarkierungen können für mehrere verschiedene Typen von Datenformattypen definiert werden. Andere Markierungen können geschaffen werden, wenn dies erforderlich ist.
    Länge Typ Datenbeschreibung
    9 'vertrauen' Eine ganze Zahl von 1 Byte, die anzeigt,
    ob diese Spur über einen
    vertrauenswürdigen Transport gesendet
    werden soll. Werte von 0 und 1 sind
    definiert. Wenn diese Markierung nicht
    vorhanden ist, wird angenommen, dass sie
    den Wert null aufweist, was anzeigt, dass
    sie über nicht vertrauenswürdige
    Transporte, wie UDP, gesandt werden kann.
  • Die folgenden Datenformattypen werden definiert. Neue Typen können definiert werden, wenn dies notwendig ist.
    Datenformat Beschreibung
    'rtp' Die Paketisierungsanweisungen für das Senden
    von Medien über das RTP für den spezifischen
    Medientyp und die Kodierung, wie das
    verschiedene IEFT Entwürfe der Audio-Video
    (AVT) Arbeitsgruppe beschrieben haben.
  • Die folgende Datenmarkierung wird in einer Ausführungsform für 'rtp' Daten verwendet.
    Länge Typ Datenbeschreibung
    12 'tims' Eine ganze Zahl mit 32 Bit, die den RTP
    Zeitmaßstab anzeigt. Diese Markierung ist in
    einer Ausführungsform für RTP Daten vorhanden.
  • Die folgenden Datenmarkierungen sind für 'rtp' Daten optional.
    Länge Typ Datenbeschreibung
    12 'tsro' Eine Zahl mit 32 Bit, die den zufälligen
    Versatz anzeigt, der dem gespeicherten
    Zeitstempel hinzugefügt werden muss, wenn die
    RTP-Pakete gesandt werden. Wenn dieses Feld
    nicht vorhanden ist, sollte eine wahre
    zufällige Zahl gemäß der RTP Spezifikation
    verwendet werden. Der Wert dieses Feldes
    könnte null sein, was anzeigt, dass kein
    zufälliger Versatz zu addieren ist.
    10 'snro' Eine Zahl von 16 Bit, die den zufälligen
    Versatz anzeigt, der zur Sequenznummer zu
    addieren ist, wenn die RTP-Pakete gesendet
    werden. Wenn das Feld nicht vorhanden ist,
    sollte eine wahre Zufallszahl gemäß der
    RTP Spezifikation verwendet werden. Der Wert
    dieses Feldes könnte null sein, was anzeigt,
    dass kein zufälliger Versatz zu addieren ist.
  • Anhang B – Beispielhafte Anweisungsspur für RTP
  • Dieser Abschnitt präsentiert ein Beispiel eines Formats einer Anweisungsspur für eine Übertragung eines QuickTime Films als Strom im RTP.
  • Beim Standard-RTP wird jeder Medienstrom typischerweise als getrennter RTP-Strom gesendet. Ein Multiplexen wird im allgemeinen erzielt durch das Verwenden eines IP-Multiplexens auf Portebene, nicht durch das Verschachteln der Daten von mehreren Strömen in eine einzige RTP-Sitzung. Somit sollte jede Medienspur im Film eine zugehörige RTP-Anweisungsspur aufweisen. In einer Ausführungsform der vorliegenden Erfindung enthält jede Anweisungsspur einen Spurbezug zurück zur Medienspur, die sie als Strom überträgt.
  • In diesem Beispiel wird die Paketgröße zu der Zeit bestimmt, zu der die Anweisungsspur erzeugt wird. Somit wird in der Abtastwertbeschreibung für diese Anweisungsspur (eine Datenstruktur, die Felder enthalten kann, die spezifisch für die 'Kodierung' sind – die in diesem Fall ein Protokoll ist) die gewählte Paketgröße angezeigt. In einem Beispiel der vorliegenden Erfindung werden mehrere RTP Anweisungsspuren für jede Medienspur geliefert, um Auswahlmöglichkeiten für verschiedene Paketgrößen zu liefern. Andere Protokolle können auch parametrisiert sein. In ähnlicher Weise wird die passende Zeitskala für den RTP Takt in der Abtastwertbeschreibung unten geliefert.
  • Die Anweisungsspur bezieht sich auf ihre Basismedienstruktur durch eine einzelne Spurreferenzdeklaration. (RTP erlaubt nicht das Multiplexen von Medien innerhalb eines einzigen RTP-Stroms). Die Abtastwertbeschreibung für RTP deklariert die maximale Paketgröße, die diese Anweisungsspur erzeugen wird. Eine Sitzungsbeschreibungsinformation (SAP/SDP) wird in Benutzerdatenatomen in der Spur gespeichert.
  • Jeder Abtastwert in der RTP-Anweisungsspur enthält die Anweisungen, einen Satz von Paketen auszusenden, der zu einer gegebenen Zeit ausgesandt werden muss. Die Zeit in der Anweisungsspur ist die Aussendezeit, nicht notwendigerweise die Medienzeit der zugehörigen Medien.
  • In der folgenden Beschreibung wird die interne Struktur der Abtastwerte, bei denen es sich um Mediendaten und nicht um Metadaten handelt, in der Terminologie dieses Beispiels beschrieben, wobei sie nicht als Objekte strukturiert sein müssen.
  • In diesem Beispiel enthält jeder Abtastwert zwei Bereiche: die Anweisungen, um die Pakete zusammenzustellen, und jegliche zusätzliche Daten, die benötigt werden, wenn solche Pakete gesendet werden (beispielsweise eine verschlüsselte Version der Mediendaten).
  • Figure 00550001
  • Jedes RTP Anweisungspaket enthält die Information, um ein einzelnes Paket zu senden. In einer Ausführungsform ist insbesondere ein RTP-Zeitstempel enthalten, um die Medienzeit von der Aussendezeit zu trennen, zusammen mit Daten, die benötigt werden, um ein RTP-Kopfteil zu bilden. In alternativen Ausführungsformen ist dies jedoch nicht der Fall. Es wird typischerweise andere Kopfteilinformation geliefert. Eine Tabelle der Konstruktionseinträge ist folgendermaßen konstruiert:
    Figure 00550002
  • Es gibt verschiedene Formen eines Konstruktors. Jeder Konstruktor ist 16 Byte groß, was die Iteration relativ einfach macht. Das erste Byte ist ein gemeinsamer Diskriminator:
    Figure 00550003
    Figure 00560001
  • Der sofortige Modus erlaubt den Einschub von für die Nutzdaten spezifischen Kopfteilen (beispielsweise den RTP H.261 Kopfteil). Für Anweisungsspuren, bei denen die Medien 'im Klartext' gesendet werden, kann der Medienabtastwerteintrag die Bytes spezifizieren, die von der Medienspur zu kopieren sind, indem die Abtastwertnummer, der Datenversatz und die zu kopierende Länge angegeben wird. Für relativ komplexe Fälle (beispielsweise Verschlüsselung oder Vorwärtsfehlerkorrektur) können die transformierten Daten in die Anweisungsabtastwerte platziert werden, und dann können die Anweisungsabtastwerte verwendet werden, die für das Zusatzdatenfeld im RTP-Abtastwert selbst geliefert würden.
  • In einem Beispiel der vorliegenden Erfindung besteht kein Erfordernis, dass aufeinander folgende Pakete aufeinander folgende Bytes vom Medienstrom übertragen. Beispielsweise kann, um mit der RTP-Standardpaketierung von H.261 konform zu sein, in einem Beispiel der vorliegenden Erfindung ein Byte am Ende eines Pakets und auch am Beginn des nächsten Pakets gesandt werden (wenn eine Makroblockgrenze in ein Byte fällt).
  • Anhang C – Anweisungsabtastwertdaten für die Paketierung für das Datenformat 'rtp'
  • Dieser Anhang liefert eine Beschreibung der Abtastwertdaten für das 'rtp' Format gemäß einer Ausführungsform der Erfindung. Das 'rtp' Format nimmt an, dass ein Server Daten unter Verwendung des Echtzeittransportprotokolls (RTP) sendet. Dieses Format nimmt an, dass der Server die RTP-Kopfteile kennt, aber es ist nicht erforderlich, dass der Server alles über einen spezifischen Medienkopfteil, einschließlich den Medienkopfteilen, die in verschiedenen IETF-Entwürfen definiert sind, kennt.
  • In einer Ausführungsform der vorliegenden Erfindung wird jeder Abtastwert in der Anweisungsspur ein oder mehrere RTP-Pakete erzeugen. Jeder Eintrag in der Abtastwertdatentabelle in einem Anweisungsspurabtastwert entspricht einem einzigen RTP-Paket. Abtastwerte in der Anweisungsspur können exakt den Abtastwerten in den Medienspuren entsprechen oder auch nicht. In einer Ausführungsform der vorliegenden Erfindung sind die Daten im Anweisungsspurabtastwert byteweise ausgerichtet, aber nicht 32-Bit ausgerichtet. Feldbeschreibungen:
    Eintragszählwert Eine nicht vorzeichenbehaftete ganze
    Zahl, die die Anzahl der Paketeinträge in
    der Tabelle anzeigt. Jeder Eintrag in der
    Tabelle entspricht einem Paket. Mehrere
    Einträge in einem einzigen Abtastwert
    zeigen an, dass der Medienabtastwert in
    mehrere Pakete aufgeteilt werden muss.
    Ein Abtastwert mit einem Eintragszählwert
    von null ist reserviert, und wenn man auf
    ihn stößt, so sollte er verworfen werden.
    Paketeintragtabelle Eine Tabelle variabler Länge, die
    Paketeinträge enthält. Paketeinträge
    werden unten definiert.
    Zusätzliche Daten Ein Feld variabler Länge, das Daten
    enthält, auf die von den Einträgen in der
    Datentabelle, die unten durch Tabelle 3
    gezeigt ist, gezeigt wird:
    Tabelle 3: Zusätzliche Daten
    Paketeintrag Bytes
    relative Paketübertragungszeit 4
    Flags 4
    RTP-Kopfteil-Info 2
    RTP-Sequenznummer 2
    Eintragszählwert 2
    Dateneintrag variabel
  • In einer Ausführungsform enthält der Paketeintrag die folgenden Datenelemente: Feldbeschreibung:
    Relative Paket
    übertragungszeit Eine vorzeichenbehaftete ganze 32 Bit
    Zahl, die die Zeit im Zeitmaßstab der
    Anweisungsspur anzeigt, um dieses Paket
    relativ zur tatsächlichen Zeit des
    Anweisungsabtastwerts zu senden. Negative
    Werte bedeuten, dass das Paket früher als
    zur echten Zeit gesandt wird, was
    nützlich ist für das Glätten der
    Datenrate. Positive Werte sind nützlich
    für das Wiederholen von Paketen zu
    späteren Zeiten. Innerhalb jeder
    Anweisungsabtastwertspur nimmt jeder
    Paketzeitstempel nicht ab.
    Flags Ein 32 Bit Feld, das gewisse Attribute
    für dieses Paket anzeigt.
  • Das RTP-Kopfteilinformationsfeld enthält das folgende Element:
    Feld Bit# Beschreibung
    R 31 Eine 1 Bit Zahl, die anzeigt, dass dieses
    ein wiederholtes Paket ist – die Daten
    wurden in einem vorherigen Paket
    definiert. Ein Server kann wählen,
    wiederholte Pakete zu verwerfen, um ihm
    zu helfen, wenn er seiner Übertragung der
    Pakete hinterher hinkt. Alle wiederholten
    Pakete für ein gegebenes Paket befinden
    sich im selben Anweisungsabtastwert. Alle
    undefinierten Bits (0–30) sind reserviert
    und werden auf null gesetzt.
    RTP-Kopfteilinfo Eine ganze 16 Bit Zahl, die verschiedene
    Werte spezifiziert, die im RTP-Kopfteil
    zu setzen sind.
  • Das RTP-Kopfteilinformationsfeld enthält die folgenden Elemente:
    Feld Bit# Beschreibung
    P 2 Eine 1-Bit Zahl, die dem Auffüllungsbit
    (P) im RTP-Kopfteil entspricht. Es kann
    sein, dass dieses Bit nicht gesetzt ist,
    da ein Server, der eine andere
    Paketauffüllung benötigt, das Paket im
    allgemeinen von der Auffüllung befreien
    und es dann selbst wieder auffüllen muss.
    X 3 Eine 1-Bit Zahl, die dem Erweiterungsbit
    (X) im RTP-Kopfteil entspricht. Es kann
    sein, dass dieses Bit nicht gesetzt ist,
    da ein Server, der seine eigene RTP-
    Erweiterung senden muss, nicht fähig ist
    oder gezwungen werden kann, jegliche
    Erweiterungen aus der Anweisungsspur zu
    ersetzen.
    M 8 Eine 1-Bit Zahl, die dem Markierungsbit
    (M) im RTP-Kopfteil entspricht.
    Nutzdatentyp 9–15 Eine 7-Bit Zahl, die dem Nutzdatentypfeld
    (PT) des RTP-Kopfteils entspricht.
  • Alle undefinierten Bits (0–1 und 4–7) sind reserviert und werden auf null gesetzt. Der Ort der definierten Bits ist derselbe, wie im RTP-Kopfteil.
    RTP-Sequenznummer Eine ganze 16-Bit Zahl, die die RTP-
    Sequenznummer für das Paket spezifiziert.
    Der RTP-Server addiert einen zufälligen
    Versatz zu dieser Sequenznummer, bevor er
    das Paket überträgt. Dieses Feld erlaubt
    die Wiederübertragung von Paketen, das
    heißt dasselbe Paket kann mit derselben
    Sequenznummer und einer anderen
    (späteren) Paketübertragungszeit
    zusammengefügt werden. Beispielsweise
    kann ein Textabtastwert mit einer Dauer
    von 5 Minuten alle 10 Sekunden erneut
    übertragen werden, so dass Clients, denen
    die ursprüngliche Übertragung des
    Abtastwerts fehlt (vielleicht haben sie
    in der Mitte begonnen, einen Film
    abzuspielen) nach einem Maximum von 10
    Sekunden "aufgefrischt" werden.
    Eintragszählwert Eine vorzeichenlose ganze 16-Bit Zahl,
    die die Anzahl der Einträge in der
    Datentabelle spezifiziert.
    Datentabelle Eine Tabelle, die die Daten definiert,
    die in den Nutzdatenteil des RTP-Pakets
    zu setzen sind. Diese Tabelle definiert
    verschiedene Plätze, an denen die Daten
    abgerufen werden können und sie wird
    durch Tabelle 4 gezeigt.
    Tabelle 4 – Datentabelle
    Datentabelleneintrag Bytes
    Datenquelle 1
    Daten 15
  • Das Datenquellenfeld der Eintragstabelle zeigt, wie die anderen 15 Bytes des Eintrags zu interpretieren sind. Werte von 0 bis 4 sind definiert. Die verschiedenen Datentabellenformate sind unten definiert. Obwohl es verschiedene Schemata gibt, sind die Einträge in den verschiedenen Schemata typischerweise 16 Byte lang.
  • Datenmodus keine Operation
  • Der Eintrag in der Datentabelle hat das folgende Format für den Modus keine Operation: Feldbeschreibung:
    Datenquelle = 0 Ein Wert von null zeigt an, dass dieser
    Eintrag der Datentabelle zu ignorieren
    ist.
  • Sofortiger Datenmodus
  • Der Eintrag in die Datentabelle hat das folgende Format für den sofortigen Datenmodus: Feldbeschreibung
    Datenquelle = 1 Ein Wert von eins zeigt an, dass die
    Daten sofort von den Bytes der folgenden
    Daten genommen werden sollen.
    Sofortige Länge Eine ganze 8-Bit Zahl, die die Anzahl der
    Bytes angibt, die von den folgenden Daten
    genommen werden sollen. Gültige Werte
    gehen von 0 bis 14.
    Sofortige Daten 14 Byte von Daten, die in den
    Nutzdatenteil des Pakets zu platzieren
    sind. Nur die erste Zahl von Bytes, die
    durch das Feld sofortige Länge angezeigt
    wird, werden verwendet.
  • Abtastmodus
  • Der Eintrag in die Datentabelle hat das folgende Format für den Abtastmodus: Feldbeschreibung:
    Datenquelle = 2 Ein Wert von zwei zeigt an, dass die
    Daten von den Abtastwertdaten einer Spur
    zu nehmen sind.
    Spurreferenzindex Ein Wert, der anzeigt, von welcher Spur
    die Abtastwertdaten kommen. Ein Wert von
    null bedeutet, dass es exakt eine
    Medienspur gibt, auf die Bezug genommen
    wird, die zu verwenden ist. Werte von 1
    bis 127 sind Indizes in die Referenz
    atomeinträge der Anweisungsspur, die
    anzeigen, von welcher ursprünglichen
    Medienspur der Abtastwert zu lesen ist.
    Ein Wert von –1 bedeutet die
    Anweisungsspur selbst, das heißt der
    Abtastwert von derselben Spur wie der
    Anweisungsabtastwert, der aktuell
    analysiert wird, ist zu verwenden.
    Bytes pro
    Komprimierungsblock Eine ganze 16-Bit Zahl ohne Vorzeichen,
    die die Anzahl der Bytes angibt, die von
    der Komprimierung der Anzahl der
    Abtastwerte im Feld Abtastwerte pro
    Komprimierungsblock herrührt. Ein Wert
    von null ist äquivalent einem Wert von 1.
    Abtastwerte pro
    Komprimierungsblock Eine ganze 16-Bit Zahl ohne Vorzeichen,
    die die nicht komprimierten Abtastwerte
    pro Komprimierungsblock angibt. Ein Wert
    von null ist äquivalent einem Wert von 1.
    Länge Eine ganze 16-Bit Zahl, die die Anzahl
    der zu kopierenden Bytes im Abtastwert
    angibt.
    Abtastwertnummer Eine ganze 32-Bit Zahl, die die
    Abtastwertnummer der Spur angibt.
    Versatz Eine ganze 32-Bit Zahl, die den Versatz
    vom Start des Absatzwerts angibt, von wo
    das Kopieren zu beginnen ist. Wenn man
    auf Abtastwerte in der Anweisungsspur
    Bezug nimmt, wird dies im allgemeinen in
    den Bereich Zusätzliche Daten weisen.
  • Wenn die Zahl der Bytes pro Komprimierungsblock und/oder der Abtastwerte pro Komprimierungsblock größer als 1 ist, dann wird dieses Verhältnis verwendet, um eine Abtastwertnummer in einen tatsächlichen Byteversatz zu übersetzen. Dieser Verhältnismodus wird typischerweise für komprimierte Audiospuren in QuickTime Filmen verwendet, so dass: CB = NS·BPCB/SPCBwobei
  • CB
    = komprimierte Bytes
    NS
    = Zahl der Abtastwerte
    BPCB
    = Bytes pro Komprimierungsblock
    SPCB
    = Abtastwerte pro Komprimierungsblock
  • Beispielsweise weist ein GSM-Komprimierungsblock typischerweise 160 Abtastwerte, die in 33 Bytes verpackt sind, auf. Somit BPCB = 33 und SPCB = 160. Der Anweisungsabtastwert fordert 33 Bytes von Daten an, die beim 161-ten Medienabtastwert beginnen. Wenn man annimmt, dass das erste QuickTime Stück mindestens 320 Abtastwerte enthält, so wird, nachdem bestimmt wurde, dass diese Daten vom Stück 1 stammen, und wo das Stück 1 startet, das Verhältnis verwendet, um den Versatz in die Datei einzustellen, wo die angeforderten Abtastwerte gefunden werden können:
    Stück_Nummer = 1; /* berechnet durch das Hindurchgehen des Abtastwert-zu-Stück Atoms */ erster Abtastwert in diesem Stück = 1; /* auch berechnet von diesem Atom* / Stück_Versatz = Stück Versatzwerte [Stücknummer]; /* von stco Atom */Datenversatz = (Abtastwertnummer – erster Abtastwert in diesem Stück) * BPP / SPP gelesen aus der Datei (Stück_Versatz + Daten_Versatz, Länge);/* Lese Daten aus */
  • Abtastwertbeschreibungsmodus
  • Der Eintrag in der Datentabelle hat das folgende Format für den Abtastwertbeschreibungsmodus: Feldbeschreibung
    Datenquelle = 3 Ein Wert von drei zeigt an, dass die
    Daten aus der Abtastwertbeschreibungs
    tabelle der Medienspur zu nehmen sind.
    Spurreferenzindex Ein Wert, der anzeigt, von welcher Spur
    die Abtastwertdaten kommen. Ein Wert von
    null bedeutet, dass es exakt einen Bezug
    auf die Anweisungsspur gibt, die zu
    verwenden ist. Werte von 1 bis 127 sind
    Indizes in die Referenzatomeinträge der
    Medienspur, die anzeigen, von welcher
    ursprünglichen Medienspur der Abtastwert
    zu lesen ist. Ein Wert von –1 bedeutet
    die Anweisungsspur selbst, das ist die
    Abtastwertbeschreibung von derselben Spur
    wie der Anweisungsabtastwert, der aktuell
    analysiert wird, wird verwendet.
    Reserviert Vier Bytes, die auf null gesetzt werden.
    Länge Eine ganze 16-Bit Zahl, die die Zahl der
    Bytes im Abtastwert, die zu kopieren
    sind, anzeigt.
    Abtastwert
    beschreibungsindex Eine ganze 32-Bit Zahl, die den Index in
    die Medienabtastwertbeschreibungstabelle
    angibt.
    Versatz Eine ganze 32-Bit Zahl, die den Versatz
    vom Start des Abtastwerts angibt, von wo
    mit dem Kopieren begonnen werden soll.
    Zusätzliche Daten Ein Feld variabler Länge, das Daten
    enthält, auf die von den
    Abtastwertmoduseinträgen der
    Anweisungsspur in der Datentabelle
    gezeigt wird.
  • Anhang D – Beispiel für Format der Anweisungsspur für MPEG-2 Transport
  • Dieser Abschnitt präsentiert ein Beispiel eines einfachen Spurformats für einen Übertragung im Strom eines MPEG-2 Transports eines QuickTime Films, der elementare Ströme hält.
  • Ein MPEG-2 Transportstrom ist mit einem Multiplex eines oder mehrerer elementarer Ströme verbunden. Aus diesen Grund beschreibt eine MPEG-2 Transport Anweisungsspur, wie ein solcher Multiplex aus einer oder mehreren Medienspuren auszubilden ist. Es besteht nicht notwendigerweise eine Eins-zu-Eins-Beziehung zwischen den Medienspuren und den MPEG-2 Transport Anweisungsspuren. Jede Anweisungsspur kann Bezugnahmen auf die elementaren Ströme, die sie darstellt, enthalten. In einem Beispiel der vorliegenden Erfindung kann eine QuickTime Datei mehrere solche Anweisungsspuren enthalten, um verschiedene Multiplexe zu beschreiben.
  • Die Paketgröße ist im allgemeinen kein Thema, da alle MPEG-2 Transportpakete eine Größe von 188 Bytes aufweisen. In einem Beispiel der vorliegenden Erfindung enthält jedes Transportpaket (im MPEG-2 Transportprotokoll) Nutdaten von einer Medienspur. Dies erlaubt eine relativ einfache Anweisungsbeschreibung für jedes Transportpaket. In einem Beispiel der vorliegenden Erfindung beschreibt jede solche Anweisung, welche Kopfteildaten auf jedem Transportpaket erscheinen, und zeigt dann auf die Nutzdaten in der passenden Medienspur für das Transportpaket. Für Pakete, die keiner Medienspur entsprechen, wie PSI-Pakete, kann die Anweisung 188 Bytes von Kopfteildaten beschreiben, und jeder Medienspurbezug kann als irrelevant betrachtet werden. Für Pakete, die einer Medienspur entsprechen, können die Kopfteildaten in Bezug auf Transportkopfteile, mögliche Adaptionskopfteile, PES-Kopfteile für Transportpakete, die PES-Paket beginnen, angeben.
  • Es wird nun Bezug genommen auf die MPEG-2 Transport Anweisungsspur im Abtastwertbeschreibungsatom (des Typs 'stsd'). Dieses Atom umfasst eine Abtastwertbeschreibungstabelle, und die Einträge in dieser Tabelle unterscheiden sich auf der Basis des Medientyps. In einem Beispiel der vorliegenden Erfindung beginnen die Anweisungsstrukturen mit der in Tabelle 1 gezeigten Struktur. Die zusätzliche Datentabelle kann Einträge mit der in Tabelle 2 gezeigten Struktur enthalten.
  • In einem Beispiel der vorliegenden Erfindung wird, wenn die Anweisungsspur eine MPEG-2 Transport Anweisungsspur ist, das Datenformat in der Abtastwertbeschreibungseintrag der Anweisungsspur 'm2t' sein, und die maximale Paketgröße wird immer 188 sein. In einem solchen Beschreibungseintrag können die Typen, die unten in den Tabellen 5–7 gezeigt sind, in der zusätzlichen Datentabelle gefunden werden: Tabelle 5 – Zusätzliche Datentabelleneinträge
    Eintragslänge Datentyp Datenbeschreibung
    8 0 × 000000 Zeigt an, dass es keine weiteren Einträge in der Tabelle gibt
    9 'otyp' Beschreibt wie Versatzwerte in den Anweisungen beschrieben werden. Das eine Byte der Daten hat Werte, die unten in Figur B4 beschrieben werden. Dieser Eintrag ist in der zusätzlichen Datentabelle obligatorisch.
    9 'msns' Beschreibt die Größe der Medienabtastwertzahlen. Das ein Byte von Daten zeigt an, wie viele Bytes verwendet werden, um Medienabtastwertzahlen zu beschreiben. Wenn es nicht vorhanden ist, und wenn Medienabtastwertzahlen in den Abtastwertzahlen vorhanden sind, ist der Standardwert 4 Bytes.
    9 'msos' Beschreibt die Größe der Versatzwerte der Medienabtastwerte. Das eine Byte von Daten zeigt an, wie viele Bytes verwendet werden, um Versatzwerte der Medienabtastwerte zu spezifizieren. Wenn es nicht vorhanden ist, und wenn Versatzwerte der Medienabtastwerte in den Abtastwertdaten vorhanden sind, so ist der Standardwert 4 Bytes.
    9 'fosz' Beschreibt die Größe der Dateiversatzwerte. Das eine Byte von Daten zeigt an, wie viele Bytes verwendet werden, um die Versatzwerte in den Abtastwerten zu spezifizieren. Wenn es nicht vorhanden ist, und die Dateiversatzwerte in den Abtastwertdaten vorhanden sind, so ist der Standardwert 4 Bytes.
    variabel 'tmap' Beschreibt ein abgekürztes Abbilden der Medienspuren. Jeder 5 Byte Eintrag bildet eine 4 Byte Spur-ID in eine 1 Byte Spurreferenzzahl ab. Dies begrenzt jeden gegebenen Transport, dass er nicht mehr als 256 Medienspuren enthält, aber dies sollte kein begrenzender Fakttor sein, und die Komprimierung ist beim Begrenzen der Größe der Anweisungsspur hilfreich. Das Format dieser 5 Byte Einträge wird unten in Figur B.5 angegeben. Dieser Eintrag ist in der zusätzlichen Datentabelle obligatorisch.
    Tabelle 6 – 'otyp' Werte in der zusätzlichen Datentabelle
    Wert Beschreibung
    0 Abtastwerte werden in Form von Medienabtastwerten beschrieben.
    1 Abtastwerte werden in Form von Dateiversatzwerten beschrieben.
    Tabelle 7 – Format der Einträge in zusätzlichen Dateneintrag 'tmap'
    Länge Beschreibung
    4 Ursprüngliche Spuridentifikation
    1 Abgekürzte Spurreferenznummer, die in den Abtastwerten verwendet wird.
  • In einem Beispiel der vorliegenden Erfindung beschreibt jeder Anweisungsabtastwert ein Transportpaket.
  • Jedes Transportpaket kann als eine Menge von Kopfteildaten, gefolgt von einer Menge Nutzdaten von einer Medienspur beschrieben werden. Da MPEG-2 Transportpakete relativ klein sind, kann eine große Anzahl von Anweisungsabtastwerten erzeugt werden, und somit sollten diese Abtastwerte vorzugsweise so klein wie möglich sein. Mehrere Einträge in der zusätzlichen Datentabelle oben können verwendet werden, um die Größe der Abtastwerte zu minimieren, wobei aber solche Faktoren einige der Felder in den Abtastwerteinträgen eine variable Größe verleihen.
  • Wenn der Eintrag 'otyp' in der Datentabelle den Wert 0 aufweist, was anzeigt, dass die Nutzdaten in Form von Medienabtastwerten beschrieben werden, so können die Anweisungsabtastwerte von der folgenden Form sein, die in Tabelle 8 gezeigt ist: Tabelle 8 – Anweisungsabtastwertformat unter Verwendung von Medienabtastwertbezugswerten
    Länge Beschreibung
    1 Spurreferenznummer der Medienspur, die die Nutzdaten für dieses Paket enthält. Diese kann unter Verwendung des Eintrags 'tmap' in der zusätzlichen Datentabelle auf eine Spur-ID abgebildet werden. Wenn Anweisung 188 Bytes sofortiger Daten spezifiziert, ist dieses Feld irrelevant.
    1 Die Länge der sofortigen Daten für das Paket. Man beachte, dass diese 188 oder weniger sein muss, da Transportpakete eine Länge von 188 Bytes aufweisen.
    variabel Bytes der sofortigen Daten, die als Kopfteil für das Transportpaket zu verwenden sind. Die Anzahl der Bytes wird durch das vorherige Feld beschrieben.
    variabel Die Medienabtastwertnummer, die für die Nutzdaten zu verwenden ist. Die Standardgröße dieses Feldes ist 4 Bytes, aber sie kann durch das Vorhandensein des Eintrags 'msns' in der zusätzlichen Datentabelle modifiziert werden.
    variabel Der Medienabtastwertversatz, der für die Nutzdaten zu verwenden ist. Die Standardgröße dieses Feldes ist 4 Bytes, aber sie kann durch das Vorhandensein eines Eintrags 'msos' in der zusätzlichen Datentabelle modifiziert werden.
  • In einem Beispiel der vorliegenden Erfindung ist es nicht notwendig, die Länge der Nutzdaten für das Paket anzuzeigen, da bei MPEG-2 die Länge gleich 188 minus der Größe der Kopfteildaten für das Paket ist.
  • Wenn der Eintrag 'otyp' in der Datentabelle den Wert 1 hat, was anzeigt, dass die Nutzdaten in Form von Dateiversatzwerten beschrieben sind, können Anweisungsabtastwerte von der folgenden Form, die in Tabelle 9 gezeigt ist, sein: Tabelle 9
    Länge Beschreibung
    1 Spurreferenznummer der Medienspur, die die Nutzdaten für dieses Paket enthält. Diese kann auf eine Spur-ID unter Verwendung des Eintrags 'tmap' in der zusätzlichen Datentabelle abgebildet werden. Wenn die Anweisung 188 Bytes der sofortigen Daten spezifiziert, ist dieses Feld irrelevant.
    1 Die Länge der sofortigen Daten für das Paket. Man beachte, dass diese 188 oder weniger betragen muss, da Transportpakete eine Länge von 188 Bytes aufweisen.
    variabel Bytes der sofortigen Daten, die als Kopfteil für das Transportpaket zu verwenden sind. Die Anzahl der Bytes ist im vorherigen Feld beschrieben.
    variabel Der Dateiversatz, wenn die Nutzdaten lokalisiert werden. Dieser Versatz befindet sich in der Datei, wo die Daten für die Medienspur angeordnet sind. Die Standardgröße dieses Feldes beträgt 4 Bytes, aber sie kann durch das Vorhandensein eines Eintrags 'fosz' in der zusätzlichen Datentabelle modifiziert werden.
  • In einem Beispiel der vorliegenden Erfindung können die Anweisungsabtastwerte ihre Versatzwerte in Form von Medienabtastwerten oder in Form von Dateiversatzwerten beschreiben. Jedes davon hat Vorteile und Nachteile. Wenn die Anweisungsabtastwerte die Nutzdaten in Form von Medienabtastwerten spezifizieren, können sie empfänglicher für ein zusätzliches Editieren der Datei, die die Medienspur enthält, sein, aber es kann eine zusätzliche Verarbeitung für eine Lieferung erforderlich sein. Wenn die Anweisungsabtastwerte die Nutzdaten in Form von Dateiversatzwerten spezifizieren, kann auf die Nutzdaten relativ schnell zugegriffen werden, aber jegliches Editieren der Datei, die die Medienspur enthält, kann diese Anweisungen ungültig machen.
  • Anhang D – eine Beispieldatei
  • Nachfolgend ist eine relativ kurze Abtastwertdatei (sechs Rahmen) vorgesehen, bei der einige der relativ weniger wichtigen Felder und Objekte (hier mit einer Ellipse "..." markiert) weggelassen wurden, und mit einigen fiktiven Zahlen, um die Gesamtstruktur einer Datei zu zeigen, die bereit ist für eine Übertragung als Strom über RTP gemäß einer Ausführungsform der vorliegenden Erfindung. Die Mediendaten wurden herausgelassen; es sind nur die Metadaten gezeigt.
  • Figure 00720001
  • Figure 00730001
  • Figure 00740001
  • Figure 00750001
  • Figure 00760001
  • Figure 00770001
  • Figure 00780001
  • Figure 00790001
  • Figure 00800001
  • Figure 00810001

Claims (33)

  1. Computerlesbares Medium, das Mediendaten und Informationen enthält, die angeben, wie die Mediendaten von einem digitalen Verarbeitungssystem (694, 700) zu einem anderen digitalen Verarbeitungssystem (682) zu übertragen sind, wobei das computerlesbare Medium umfasst: – eine erste zeitbezogene Abfolge von Daten (502); und – eine zweite zeitbezogene Abfolge von Daten (504), die sich logisch auf die erste zeitbezogene Abfolge von Daten (502) beziehen, um anzugeben, wie die erste zeitbezogene Abfolge von Daten (502) gemäß definierter Paketierungs-Charakteristiken für eine Übertragung zu paketieren ist.
  2. Computerlesbares Medium nach Anspruch 1, wobei die zweite zeitbezogene Abfolge von Daten (504) Bezüge zu einer Abfolge von Angabedaten umfasst, die logische Verknüpfungen zu der ersten zeitbezogenen Abfolge von Daten (502) und Anweisungen zur Paketierung der ersten zeitbezogenen Abfolge von Daten (502) enthält.
  3. Computerlesbares Medium nach Anspruch 1, wobei die zweite zeitbezogene Abfolge von Daten (504) angibt, wie eine QuickTime-Datei zu paketieren ist.
  4. Computerlesbares Medium nach Anspruch 1, wobei die zweite zeitbezogene Abfolge von Daten (504) einen Zeitsteuerungsparameter zum Übertragen der ersten zeitbezogenen Abfolge von Daten (502) als ein Satz von Paketen einschließt.
  5. Computerlesbares Medium nach Anspruch 1, wobei die zweite zeitbezogene Abfolge von Daten (504) Anweisungen zum Bereitstellen eines Multiplexings der ersten zeitbezogenen Abfolge von Daten (502) in einen Satz von Paketen einschließt.
  6. Computerlesbares Medium nach Anspruch 1, wobei die definierten Paketierungscharakteristiken mindestens eines von einem bestimmten Netzwerkübertragungsprotokoll, einer Netzwerkbandbreite und einer Datenübertragungsrate umfassen.
  7. Computerlesbares Medium nach Anspruch 6, wobei das bestimmte Netzwerkübertragungsprotokoll ein Internet-Protokoll umfasst.
  8. Computerlesbares Medium nach Anspruch 1, wobei die erste und die zweite Abfolge voneinander getrennt gespeichert sind.
  9. Computerlesbares Medium nach Anspruch 1, umfassend mindestens eins von einem magnetischen Speichermedium, einem elektronischen Speichermedium und einem optischen Speichermedium.
  10. Verfahren zum Erzeugen von Mediendaten, die von einem digitalen Verarbeitungssystem (694, 700) zu einem anderen digitalen Verarbeitungssystem (682) zu übertragen sind, wobei das Verfahren umfasst: – Bereitstellen einer ersten und einer zweiten zeitbezogenen Abfolge von Daten (502, 504), wobei die zeitbezogenen Abfolgen von Daten (502, 504) zumindest auf einem computerlesbaren Medium gespeichert sind; und – Veranlassen, dass die zweite zeitbezogene Abfolge von Daten (504) sich logisch auf die erste zeitbezogene Abfolge von Daten (502) bezieht, um anzugeben, wie die erste zeitbezogene Abfolge von Daten (502) gemäß definierter Paketierungs-Charakteristiken für eine Übertragung zu paketieren ist.
  11. Verfahren nach Anspruch 10, wobei die zweite zeitbezogene Abfolge von Daten (504) Bezüge zu einer Abfolge von Angabedaten umfasst, die logische Verknüpfungen zu der ersten zeitbezogenen Abfolge von Daten (502) und Anweisungen zur Paketierung der ersten zeitbezogenen Abfolge von Daten (502) enthält.
  12. Verfahren nach Anspruch 10, wobei die zweite zeitbezogene Abfolge von Daten (504) angibt, wie eine QuickTime-Datei zu paketieren ist.
  13. Verfahren nach Anspruch 10, wobei die zweite zeitbezogene Abfolge von Daten (504) einen Zeitsteuerungsparameter zum Übertragen der ersten zeitbezogenen Abfolge von Daten (502) als ein Satz von Paketen einschließt.
  14. Verfahren nach Anspruch 10, wobei die zweite zeitbezogene Abfolge von Daten (504) Anweisungen zum Bereitstellen eines Multiplexings der ersten zeitbezogenen Abfolge von Daten (502) in einen Satz von Paketen einschließt.
  15. Verfahren nach Anspruch 10, wobei die definierten Paketierungscharakteristiken mindestens eines von einem bestimmten Netzwerkübertragungsprotokoll, einer Netzwerkbandbreite und einer Datenübertragungsrate umfassen.
  16. Verfahren nach Anspruch 15, wobei das bestimmte Netzwerkübertragungsprotokoll ein Internet-Protokoll umfasst.
  17. Verfahren nach Anspruch 10, wobei die erste und die zweite Abfolge voneinander getrennt gespeichert werden.
  18. Vorrichtung (710) zum Erzeugen von Mediendaten, die von einem digitalen Verarbeitungssystem (694, 700) zu einem anderen digitalen Verarbeitungssystem (682) zu übertragen sind, wobei das Verfahren umfasst: – computerlesbare Mittel zum Bereitstellen einer ersten und einer zweiten zeitbezogenen Abfolge von Daten (502, 504); und – Mittel zum Veranlassen, dass die zweite zeitbezogene Abfolge (504) von Daten sich logisch auf die erste zeitbezogene Abfolge von Daten (502) bezieht, um anzugeben, wie die erste zeitbezogene Abfolge von Daten (502) gemäß definierter Paketierungs-Charakteristiken für eine Übertragung zu paketieren ist.
  19. Vorrichtung nach Anspruch 18, wobei die zweite zeitbezogene Abfolge von Daten (504) Bezüge zu einer Abfolge von Angabedaten umfasst, die logische Verknüpfungen zu der ersten zeitbezogenen Abfolge von Daten (502) und Anweisungen zur Paketierung der ersten zeitbezogenen Abfolge von Daten (502) enthält.
  20. Vorrichtung nach Anspruch 18, wobei die zweite zeitbezogene Abfolge von Daten (504) angibt, wie eine QuickTime-Datei zu paketieren ist.
  21. Vorrichtung nach Anspruch 18, wobei die zweite zeitbezogene Abfolge von Daten (504) einen Zeitsteuerungsparameter zum Übertragen der ersten zeitbezogenen Abfolge von Daten (502) als ein Satz von Paketen einschließt.
  22. Vorrichtung nach Anspruch 18, wobei die zweite zeitbezogene Abfolge von Daten (504) Anweisungen zum Bereitstellen eines Multiplexings der ersten zeitbezogenen Abfolge von Daten (502) in einen Satz von Paketen einschließt.
  23. Vorrichtung nach Anspruch 18, wobei die definierten Paketierungscharakteristiken mindestens eines von einem bestimmten Netzwerkübertragungsprotokoll, einer Netzwerkbandbreite und einer Datenübertragungsrate umfassen.
  24. Vorrichtung nach Anspruch 23, wobei das bestimmte Netzwerkübertragungsprotokoll ein Internet-Protokoll umfasst.
  25. Vorrichtung nach Anspruch 18, wobei die erste und die zweite Abfolge voneinander getrennt gespeichert werden.
  26. Computersystem (694, 700) zum Erzeugen von Mediendaten, die von einem digitalen Verarbeitungssystem zu einem anderen digitalen Verarbeitungssystem (682) zu übertragen sind, wobei das System umfasst: – einen Speicher, der mit einer Prozessoreinheit verbunden ist, wobei der Speicher vorgesehen ist zum Bereitstellen einer ersten und einer zweiten zeitbezogenen Abfolge von Daten (502, 504) an eine Prozessoreinheit; und – wobei die Prozessoreinheit vorgesehen ist, Anweisungen auszuführen, um zu veranlassen, dass die zweite zeitbezogene Abfolge von Daten (504) sich logisch auf die erste zeitbezogene Abfolge von Daten (502) bezieht, um anzugeben, wie die erste zeitbezogene Abfolge von Daten (502) gemäß definierter Paketierungs-Charakteristiken für eine Übertragung zu paketieren ist; und – einen Anschluss, der mit der Prozessoreinheit verbunden ist, um die erste und die zweite zeitbezogene Abfolge von Daten (502, 504) für eine Übertragung bereitzustellen.
  27. Computersystem nach Anspruch 26, wobei die zweite zeitbezogene Abfolge von Daten (504) Bezüge zu einer Abfolge von Angabedaten umfasst, die logische Verknüpfungen zu der ersten zeitbezogenen Abfolge von Daten (502) und Anweisungen zur Paketierung der ersten zeitbezogenen Abfolge von Daten (502) enthält.
  28. Computersystem nach Anspruch 26, wobei die zweite zeitbezogene Abfolge von Daten (504) angibt, wie eine QuickTime-Datei zu paketieren ist.
  29. Computersystem nach Anspruch 26, wobei die zweite zeitbezogene Abfolge von Daten (504) einen Zeitsteuerungsparameter zum Übertragen der ersten zeitbezogenen Abfolge von Daten (502) als ein Satz von Paketen einschließt.
  30. Computersystem nach Anspruch 26, wobei die zweite zeitbezogene Abfolge von Daten (504) Anweisungen zum Bereitstellen eines Multiplexings der ersten zeitbezogenen Abfolge von Daten (502) in einen Satz von Paketen einschließt.
  31. Computersystem nach Anspruch 26, wobei die definierten Paketierungscharakteristiken mindestens eines von einem bestimmten Netzwerkübertragungsprotokoll, einer Netzwerkbandbreite und einer Datenübertragungsrate umfassen.
  32. Computersystem nach Anspruch 31, wobei das bestimmte Netzwerkübertragungsprotokoll ein Internet-Protokoll umfasst.
  33. Computersystem nach Anspruch 26, wobei die erste und die zweite Abfolge voneinander getrennt gespeichert werden.
DE69936570T 1998-01-15 1999-01-13 Verfahren und vorrichtung zur mediendatenübertragung Expired - Lifetime DE69936570T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US139196 1987-12-29
US7156698P 1998-01-15 1998-01-15
US71566P 1998-01-15
US09/139,196 US6744763B1 (en) 1998-01-15 1998-08-25 Method and apparatus for media data transmission
PCT/US1999/000953 WO1999037056A2 (en) 1998-01-15 1999-01-13 Method and apparatus for media data transmission

Publications (2)

Publication Number Publication Date
DE69936570D1 DE69936570D1 (de) 2007-08-30
DE69936570T2 true DE69936570T2 (de) 2008-04-10

Family

ID=26752378

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69936570T Expired - Lifetime DE69936570T2 (de) 1998-01-15 1999-01-13 Verfahren und vorrichtung zur mediendatenübertragung

Country Status (9)

Country Link
US (1) US6744763B1 (de)
EP (1) EP1048156B1 (de)
JP (1) JP4282232B2 (de)
KR (1) KR100607784B1 (de)
CN (1) CN1166143C (de)
CA (1) CA2316852C (de)
DE (1) DE69936570T2 (de)
HK (1) HK1035278A1 (de)
WO (1) WO1999037056A2 (de)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453355B1 (en) * 1998-01-15 2002-09-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6438140B1 (en) * 1998-11-19 2002-08-20 Diva Systems Corporation Data structure, method and apparatus providing efficient retrieval of data from a segmented information stream
US7468934B1 (en) 1999-07-12 2008-12-23 Ez4Media, Inc. Clock with link to the internet
US20020013852A1 (en) 2000-03-03 2002-01-31 Craig Janik System for providing content, management, and interactivity for thin client devices
JP4211153B2 (ja) 1999-09-17 2009-01-21 ソニー株式会社 記録装置および方法
KR100739357B1 (ko) 1999-09-30 2007-07-18 소니 가부시끼 가이샤 기록 장치, 기록 방법 및 기록 매체
US7073191B2 (en) * 2000-04-08 2006-07-04 Sun Microsystems, Inc Streaming a single media track to multiple clients
US20020003886A1 (en) * 2000-04-28 2002-01-10 Hillegass James C. Method and system for storing multiple media tracks in a single, multiply encrypted computer file
US7142934B2 (en) * 2000-09-01 2006-11-28 Universal Electronics Inc. Audio converter device and method for using the same
US20020065927A1 (en) 2000-09-05 2002-05-30 Janik Craig M. Webpad and method for using the same
US20020065902A1 (en) * 2000-09-05 2002-05-30 Janik Craig M. Webpad and method for using the same
US20060031550A1 (en) * 2000-09-05 2006-02-09 Universal Electronics Inc. Webpad adapted to communicate using wide area and local area communication channels
FR2814027B1 (fr) * 2000-09-14 2003-01-31 Cit Alcatel Procede de synchronisation d'un fichier multimedia
US7200357B2 (en) * 2000-10-20 2007-04-03 Universal Electronics Inc. Automotive storage and playback device and method for using the same
FR2818066B1 (fr) * 2000-12-12 2003-10-10 Eads Airbus Sa Procede et dispositif de transmission deterministe de donnees asynchrones mises en paquet
ATE329442T1 (de) * 2000-12-18 2006-06-15 Koninkl Philips Electronics Nv Zeiger auf verschlüsselte daten in einem rtp-kopf
US7155531B1 (en) 2001-06-12 2006-12-26 Network Appliance Inc. Storage methods and apparatus for streaming media data
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7054911B1 (en) 2001-06-12 2006-05-30 Network Appliance, Inc. Streaming media bitrate switching methods and apparatus
US7076560B1 (en) 2001-06-12 2006-07-11 Network Appliance, Inc. Methods and apparatus for storing and serving streaming media data
US7945688B1 (en) 2001-06-12 2011-05-17 Netapp, Inc. Methods and apparatus for reducing streaming media data traffic bursts
US6742082B1 (en) * 2001-06-12 2004-05-25 Network Appliance Pre-computing streaming media payload method and apparatus
US6941516B2 (en) 2001-08-06 2005-09-06 Apple Computer, Inc. Object movie exporter
US7281052B2 (en) * 2001-12-14 2007-10-09 International Business Machines Corporation Data tracing identifiers
US7386627B1 (en) 2002-01-29 2008-06-10 Network Appliance, Inc. Methods and apparatus for precomputing checksums for streaming media
US7412531B1 (en) 2002-01-29 2008-08-12 Blue Coat Systems, Inc. Live stream archiving method and apparatus
WO2003075524A1 (en) * 2002-03-04 2003-09-12 Fujitsu Limited Hierarchical encoded data distributor and distributing method
US7657644B1 (en) 2002-05-10 2010-02-02 Netapp, Inc. Methods and apparatus for streaming media multicast
US7120751B1 (en) 2002-08-09 2006-10-10 Networks Appliance, Inc. Dynamic streaming buffer cache algorithm selection
US7617278B1 (en) 2003-01-29 2009-11-10 Adobe Systems Incorporated Client controllable server-side playlists
US7991905B1 (en) 2003-02-12 2011-08-02 Netapp, Inc. Adaptively selecting timeouts for streaming media
US7768234B2 (en) * 2004-02-28 2010-08-03 Janik Craig M System and method for automatically synchronizing and acquiring content for battery powered devices
US9274576B2 (en) * 2003-03-17 2016-03-01 Callahan Cellular L.L.C. System and method for activation of portable and mobile media player devices for wireless LAN services
ATE446540T1 (de) 2003-09-09 2009-11-15 Koninkl Philips Electronics Nv Steuerschnittstellen-auswahl
US7652844B2 (en) * 2003-12-24 2010-01-26 Bruce Edwards System and method for protecting removeable media playback devices
US20070258595A1 (en) * 2004-03-11 2007-11-08 Universal Electronics Inc. Syncronizing Device-Specific Encrypted Data to and from Mobile Devices Using Detachable Storage Media
US7752325B1 (en) 2004-10-26 2010-07-06 Netapp, Inc. Method and apparatus to efficiently transmit streaming media
CA2489256A1 (en) * 2004-12-06 2006-06-06 Christoph Both System and method for video assisted music instrument collaboration over distance
US7496678B2 (en) * 2005-05-11 2009-02-24 Netapp, Inc. Method and system for unified caching of media content
US8620923B1 (en) * 2008-05-30 2013-12-31 Adobe Systems Incorporated System and method for storing meta-data indexes within a computer storage system
US8135839B1 (en) 2008-05-30 2012-03-13 Adobe Systems Incorporated System and method for locking exclusive access to a divided resource
US8468426B2 (en) * 2008-07-02 2013-06-18 Apple Inc. Multimedia-aware quality-of-service and error correction provisioning
US20100279418A1 (en) * 2009-05-04 2010-11-04 Loren Robert Larson Glucose meter adaptable for use with handheld devices, and associated communication network
US8412841B1 (en) 2009-08-17 2013-04-02 Adobe Systems Incorporated Media content streaming using stream message fragments
US8166191B1 (en) * 2009-08-17 2012-04-24 Adobe Systems Incorporated Hint based media content streaming
US20110066843A1 (en) * 2009-09-16 2011-03-17 Brent Newman Mobile media play system and method
JP2011082666A (ja) * 2009-10-05 2011-04-21 Sony Corp 信号伝送方法、信号送信装置及び信号受信装置
US20110321110A1 (en) * 2010-06-24 2011-12-29 Worldplay (Barbados) Inc. Systems and methods for adapting video data transmissions to communication network bandwidth variations
US9438883B2 (en) * 2012-04-09 2016-09-06 Intel Corporation Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content
EP3085099A4 (de) * 2013-12-19 2017-05-10 LG Electronics Inc. Rundfunkübertragungsvorrichtung und betriebsverfahren dafür sowie rundfunkempfangsvorrichtung und betriebsverfahren dafür

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3873777A (en) * 1972-05-23 1975-03-25 Japan Broadcasting Corp Signal transmission system for transmitting a plurality of series of signals
JPS5141287B2 (de) * 1972-09-04 1976-11-09
US4688214A (en) 1986-03-12 1987-08-18 American Telephone And Telegraph Company, At&T Laboratories Switching system control arrangements
DE4102408A1 (de) 1991-01-28 1992-08-06 Grundig Emv Verfahren zur sender- bzw. regionalkennung in gleichwellennetzen
JPH04245818A (ja) 1991-01-31 1992-09-02 Pioneer Electron Corp 情報伝送システム
US5319707A (en) * 1992-11-02 1994-06-07 Scientific Atlanta System and method for multiplexing a plurality of digital program services for transmission to remote locations
ATE237894T1 (de) 1993-06-09 2003-05-15 Btg Int Inc Verfahren und vorrichtung für ein digitales multimediakommunikationssystem
JP3507498B2 (ja) * 1993-09-10 2004-03-15 アールシーエー トムソン ライセンシング コーポレイシヨン リアルタイム音声パケットレイヤエンコーダ
US5689641A (en) 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
EP1193940A3 (de) * 1994-03-21 2004-09-01 Avid Technology, Inc. Gerät und Verfahren ausgeführt auf einem Rechner für Echtzeit Multimedia Datenübertragung in einer verteilten Rechneranordnung
US5497373A (en) 1994-03-22 1996-03-05 Ericsson Messaging Systems Inc. Multi-media interface
US5448568A (en) * 1994-04-28 1995-09-05 Thomson Consumer Electronics, Inc. System of transmitting an interactive TV signal
EP0702309A1 (de) 1994-06-24 1996-03-20 Aarhuus Stiftsbogtrykkerie S.M.B.A. Rechnergesteuertes Bildanzeigesystem, Datenträger zur Anwendung in einem solchen System und Verfahren zur Anzeige von Bildern
WO1996008095A1 (en) * 1994-09-08 1996-03-14 Virtex Communications, Inc. Method and apparatus for electronic distribution of digital multi-media information
US5625818A (en) 1994-09-30 1997-04-29 Apple Computer, Inc. System for managing local database updates published to different online information services in different formats from a central platform
WO1996017313A1 (en) * 1994-11-18 1996-06-06 Oracle Corporation Method and apparatus for indexing multimedia information streams
EP0716370A3 (de) 1994-12-06 2005-02-16 International Business Machines Corporation Ein Plattenzugangsverfahren, um Multimedia- und Videoinformation auf Wunsch über Grossraumnetze zu liefern
GB2298951B (en) 1995-03-17 1999-10-27 Olivetti Res Ltd Addition of time information
US5818441A (en) 1995-06-15 1998-10-06 Intel Corporation System and method for simulating two-way connectivity for one way data streams
US5966120A (en) 1995-11-21 1999-10-12 Imedia Corporation Method and apparatus for combining and distributing data with pre-formatted real-time video
US5859660A (en) * 1996-02-29 1999-01-12 Perkins; Michael G. Non-seamless splicing of audio-video transport streams
US6157674A (en) 1996-03-21 2000-12-05 Sony Corporation Audio and video data transmitting apparatus, system, and method thereof
US5778187A (en) 1996-05-09 1998-07-07 Netcast Communications Corp. Multicasting method and apparatus
US5838678A (en) * 1996-07-24 1998-11-17 Davis; Joseph W. Method and device for preprocessing streams of encoded data to facilitate decoding streams back-to back
US5928330A (en) * 1996-09-06 1999-07-27 Motorola, Inc. System, device, and method for streaming a multimedia file
US5956729A (en) * 1996-09-06 1999-09-21 Motorola, Inc. Multimedia file, supporting multiple instances of media types, and method for forming same
US5774666A (en) * 1996-10-18 1998-06-30 Silicon Graphics, Inc. System and method for displaying uniform network resource locators embedded in time-based medium
US6064771A (en) 1997-06-23 2000-05-16 Real-Time Geometry Corp. System and method for asynchronous, adaptive moving picture compression, and decompression
US6175871B1 (en) 1997-10-01 2001-01-16 3Com Corporation Method and apparatus for real time communication over packet networks
US6327418B1 (en) 1997-10-10 2001-12-04 Tivo Inc. Method and apparatus implementing random access and time-based functions on a continuous stream of formatted digital data
US6175872B1 (en) * 1997-12-12 2001-01-16 Gte Internetworking Incorporated Collaborative environment for syncronizing audio from remote devices
US6134243A (en) 1998-01-15 2000-10-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6453355B1 (en) * 1998-01-15 2002-09-17 Apple Computer, Inc. Method and apparatus for media data transmission

Also Published As

Publication number Publication date
HK1035278A1 (en) 2001-11-16
DE69936570D1 (de) 2007-08-30
EP1048156A2 (de) 2000-11-02
KR20010052145A (ko) 2001-06-25
WO1999037056A9 (en) 1999-11-04
CA2316852A1 (en) 1999-07-22
EP1048156B1 (de) 2007-07-18
KR100607784B1 (ko) 2006-08-03
CN1166143C (zh) 2004-09-08
JP2003526227A (ja) 2003-09-02
CA2316852C (en) 2014-01-07
WO1999037056A3 (en) 1999-09-30
CN1290445A (zh) 2001-04-04
WO1999037056A2 (en) 1999-07-22
JP4282232B2 (ja) 2009-06-17
US6744763B1 (en) 2004-06-01

Similar Documents

Publication Publication Date Title
DE69936570T2 (de) Verfahren und vorrichtung zur mediendatenübertragung
DE69925254T2 (de) Verfahren und vorichtung zur mediendatenübertragung
KR101376025B1 (ko) 미디어 데이터 전송 방법 및 장치
US7366788B2 (en) Method and apparatus for media data transmission
EP2270681B1 (de) Verfahren und vorrichtung zur mediendatenübertragung
DE60310639T2 (de) Konsistente anpassung digitaler datengrössen (&#34;digital item&#34;) in mpeg-21 multimedia-systemen
DE10297520T5 (de) Transformieren von Multimediadaten zur Abgabe an mehrere heterogene Geräte
EP1051008B1 (de) Verfahren und Vorrichtung zur Mediendatenübertragung
EP1819129B1 (de) Verfahren und Vorrichtung zur Mediendatenübertragung
AU755830B2 (en) Method and apparatus for media data transmission

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: APPLE INC., CUPERTINO, CALIF., US