DE60102831T2 - System und verfahren zur verarbeitung von mpeg-stroemen fuer die einfuegung von dateiindex - Google Patents

System und verfahren zur verarbeitung von mpeg-stroemen fuer die einfuegung von dateiindex Download PDF

Info

Publication number
DE60102831T2
DE60102831T2 DE60102831T DE60102831T DE60102831T2 DE 60102831 T2 DE60102831 T2 DE 60102831T2 DE 60102831 T DE60102831 T DE 60102831T DE 60102831 T DE60102831 T DE 60102831T DE 60102831 T2 DE60102831 T2 DE 60102831T2
Authority
DE
Germany
Prior art keywords
gop
mpeg
offset
offset table
video file
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
DE60102831T
Other languages
English (en)
Other versions
DE60102831D1 (de
Inventor
Mark John ZETTS
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE60102831D1 publication Critical patent/DE60102831D1/de
Publication of DE60102831T2 publication Critical patent/DE60102831T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4346Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream involving stuffing data, e.g. packets or bytes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/002Programmed access in sequence to a plurality of record carriers or indexed parts, e.g. tracks, thereof, e.g. for editing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/032Electronic editing of digitised analogue information signals, e.g. audio or video signals on tapes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23611Insertion of stuffing data into a multiplex stream, e.g. to obtain a constant bitrate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/2389Multiplex stream processing, e.g. multiplex stream encrypting
    • H04N21/23892Multiplex stream processing, e.g. multiplex stream encrypting involving embedding information at multiplex stream level, e.g. embedding a watermark at packet level
    • 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/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4348Demultiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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/8547Content authoring involving timestamps for synchronizing content
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers
    • G11B2220/41Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

  • Zugrunde liegende Anmeldungen
  • Diese Anmeldung beansprucht das Vorrecht der US Provisional Patent Application mit dem Titel „Apparati and Methods For Processing MPEG Streams" vom gleichen Erfinder, Seriennummer 60/232,893, eingereicht am 15. September 2000 und veröffentlicht als US-A-2002/048450.
  • Die vorliegende Erfindung liegt den gleichzeitig anhängigen US-Patentanmeldungen zugrunde mit den Titeln: „System and Method of Processing MPEG Streams For Timecode Packet Insertion" mit der Seriennummer 09/850,201, eingereicht am 7. Mai 2001 und veröffentlicht als US-A-2002/034255; „System and Method of Timecode Repair and Synchronization in MPEG Streams", Seriennummer 09/850,253, eingereicht am 7. Mai 2001 und veröffentlicht als US-A-2002/035732; und „System and Method of Processing MPEG Streams For Storyboard and Rights Metadata Insertion", Seriennummer 09/850,522, eingereicht am 7. Mai 2001 und veröffentlicht als US-A-2002/033842, die alle auf den Anmelder der vorliegenden Erfindung übertragen sind.
  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft im Allgemeinen die Komprimierung, Katalogisierung und Wiedergabe von Videofilmen und, genauer gesagt, die Verarbeitung von komprimierten Videodaten.
  • 2. Beschreibung der zugrunde liegenden Technik
  • Die Infrastruktur und der Prozess, die benötigt werden, um ein Videoarchiv im digitalen Bereich zu entwickeln und zu bedienen, sind in der Broadcast-Videoindustrie gut bekannt. Der Archivierungsprozess beginnt üblicherweise mit dem Digitalisieren und Komprimieren des analogen Videos mit Hilfe von MPEG-1- oder MPEG-2-Komprimierung, anschließend wird die komprimierte Videodatei in einen Langzeitspeicher versetzt. Um die Wiedergabequalität des Videos zu erhalten, wählen die Broadcaster normalerweise eine hohe Komprimierungsbitrate (d. h. 15–40 Mbps), die die Wiederherstellung des Originalvideos trotz des Verlusts des MPEG-Komprimierungsschemas mit einer relativ hohen Wiedergabetreue ermöglicht.
  • Muss das Video für die Betrachtung und die Nachbearbeitung verteilt werden, stellt die hohe Bitrate des komprimierten Videos jedoch beachtliche Probleme für die lokalen Rechnernetze und die Infrastruktur der Rechnerdatenstationen der Broadcaster dar. Die hohe Netzbandbreite und die Zeit, die benötigt wird, um die Daten innerhalb des Unternehmens zu übermitteln, begrenzen die Anzahl der gleichzeitig stattfindenden Übertragungen und behindern die Produktivität deutlich. Als Reaktion auf dieses Problem hinsichtlich der Bandbreite erstellen die Broadcaster eine zusätzliche Kopie des Videos mit einer viel geringeren Komprimierungsbitrate (d. h. 1,5–4 Mbps). Diese Datei mit einer niedrigen Bitrate, die „Proxy"- oder „Browse"-Datei genannt wird, ermöglicht es den Benutzern, ein Video schnell herunterzuladen oder es mit Hilfe eines Streaming-Videoservers direkt auf dem Computerbildschirm anzuschauen. Um das Anschauen von Videodaten auch außerhalb der lokalen Rechnernetze zu erleichtern, wird oft eine zweite Proxy-Datei mit einer sehr niedrigen Bitrate (56–1000 Kbps) für das Streamen über Erdleitungen mit geringer Geschwindigkeit codiert.
  • Nach der Aufnahme des Videos in das Archiv besteht der nächste Schritt des Archivierungsprozesses in der Erstellung eines Eintrags für das Video im Katalog der Videobibliothek. Dieser Eintrag enthält Metadaten, die relevante Informationen zum Video enthalten. Inhalt und Format des Videokatalogeintrags, die normalerweise bei jedem Broadcaster spezifisch sind, erleichtern das Suchen und Wiederfinden von Videoclips innerhalb der Videobibliothek des Broadcasters. Im Handel gibt es derzeit Videokatalogisierungsanwendungen (Cataloger), die automatisch Metadaten aus einer MPEG-1- oder MPEG-2-Videodatei extrahieren, wie beispielsweise den Closed Caption-Text, und den Text des eigentlichen Audioprogramms, der durch eine Technologie zur Spracherkennung ermittelt wird. Cataloger extrahieren des Weiteren Metadaten aus dem Video, indem sie Szenenänderungen analysieren und nach jedem Schnitt oder jedem größeren Szenenwechsel eine Bitmap des ersten Frames erstellen. Diese individuell als „Thumbnails" oder zusammengefasst als Storyboard bezeichneten Bitmaps werden als wichtige Metadaten betrachtet, weil sie es dem Endbenutzer ermöglichen, sehr schnell den Inhalt des Videos zu erkennen. Ohne Storyboard muss der Endbenutzer das Video anschauen oder es sich zumindest im Schnellvorlauf ansehen, um das gewünschte Videosegment zu finden.
  • Ein gemeinsames Merkmal von Videokatalogisierungsanwendungen besteht für den Endbenutzer in der Möglichkeit, beim Betrachten der Katalogeinträge und Metadaten die Proxy-Datei durch Doppelklicken auf einen beliebigen „Thumbnail" wiederzugeben. Der MPEG-Player, der innerhalb des Anwendungsfensters untergebracht ist, spielt das Video ab dem mit dem „Thumbnail" verbundenen Zeitcode. Der Player führt diese Funktion aus, indem er dem Streaming-Videoserver eine Play-from-Offset-Anforderung schickt. Eine Begrenzung der MPEG-Syntax erlaubt den willkürlichen Zugriff auf das Video nur auf der Ebene der GOP-Header (Group of Pictures, Bildsequenz). Noch genauer muss der Player für eine willkürliche Wiedergabe innerhalb einer MPEG-Datei Folgendes decodieren: einen Pack-Header, um die Systemtaktung zu erhalten, einen System-Header, um die Audio- und Videoströme zu identifizieren, einen Sequenz-Header, um das Videoformat syntaktisch zu analysieren, eine Sequenzerweiterung für weitere Videoformat-Informationen und einen GOP-Header, um an einem „I-Frame" (Intra-Frame) mit dem Decodieren zu beginnen.
  • Im Gegensatz zu anderen Block basierten Komprimierungsalgorithmen ist die Framegröße in MPEG variabel, deshalb muss zur Lokalisierung der Frames die Datei sequenziell gelesen werden. Um die Play-from-Offset-Funktion zu implementieren, müssen MPEG-Player im Allgemeinen eine grobe, auf der Multiplex-Bitrate basierende Berechnung durchführen. Um beispielsweise in einem 8 Mbps-Video die Wiedergabe bei Offset 00:00:10:15 (10 Sekunden, 15 Frames) starten zu können, muss der Player die folgende Formel anwenden:
  • Figure 00040001
  • Da diese Formel nur einen Annäherungswert darstellt und der Player keine Kenntnisse über die GOP-Grenzen besitzt, wird der Player willkürlich eine Anzahl an Bytes aus diesem Ergebnis abziehen, um sicherzustellen, dass die Wiedergabe vor dem Ziel-Frame beginnt. Dieses grobe Verfahren ist jedoch nicht zufrieden stellend, weil möglicherweise bis zu 15 Frames eines fehlerhaften Videos angeschaut werden müssen, bevor es dem Codierer gelingt, ein vollständiges, fehlerfreies Videobild zu erzeugen. Zusätzlich geht diese Formel davon aus, dass das Video mit einer konstanten Bitrate komprimiert wurde. Wurde ein Komprimierungsschema mit variabler Bitrate verwendet, besteht kein Zusammenhang zwischen Bitrate, Dateigröße und Videodauer.
  • Eine weitere konventionelle Technik zur Implementierung der Play-from-Offset-Funktion besteht darin, dass der Videoserver eine Indexdatei erstellt, die den Offset jeder GOP im Video enthält. Der Player gibt einen Zeit-Offset an den Streaming-Server weiter, und der Server durchsucht zur Feststellung des Datei-Byte-Offsets eine Tabelle. Der Nachteil dieses Verfahrens ist, dass der Server für jedes Video eine zusätzliche Datei anlegen und verwalten muss. Wenn die Video-MPEG-Datei in einen Nearline-Bandeinheitenspeicher übermittelt wird, müssen beide Dateien auf Band geschrieben und von dort wiederhergestellt werden. Dies erschwert außerdem die Übertragung von Videos zwischen Servern, die normalerweise ausgeführt wird, um einen Belastungsausgleich Aufrecht zu erhalten oder Videodateien von anderen Content-Providern zu importieren.
  • Ein weiteres Problem bei der Server basierten Implementierung der Play-from-Offset-Funktion tritt deshalb auf, weil das vom Benutzer angeforderte Bild wahrscheinlich nicht mit der GOP-Grenze übereinstimmen wird. Der Player hat keine Kenntnisse über den Zeitcode des Start-Frames, deshalb wird der Suchlauf beim ersten Bild der GOP gestartet, und der Endbenutzer ist gezwungen, in einzelnen Schritten zum gewünschten Bild zu gelangen. Dieses Vorgehen ist für die Broadcast-Videoindustrie nicht annehmbar. Von nichtlinearen Videogeräten wird erwartet, dass der Suchlauf mit minimaler Verspätung beim Ziel-Frame ist.
  • Deshalb gibt es einen Bedarf an einem System und Verfahren zur automatischen Einfügung von Dateiindexinformationen in eine vorhandene MPEG-Videodatei, damit ein MPEG-Player für die präzise Ausführung der Play-from-Offset-Funktion vorab die SMPTE-Zeitcodes und Dateioffsets der Bildsequenzen (GOP) kennt. Dieses System und Verfahren sollte in der Lage sein, ohne eine separate Indexdatei auf eine Weise zu arbeiten, die sicherstellt, dass die MPEG-Videodatei weiterhin ohne Fehler von jeder den technischen Anforderungen entsprechenden MPEG-Decoder-Engine decodierbar ist.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Der dargestellte Sachverhalt sowie weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden anhand der folgenden detaillierten Beschreibung der bevorzugten Ausführungsarten deutlicher verständlich, wobei auf mehrere Zeichnungen Bezug genommen wird.
  • Eine bevorzugte Ausführungsart der vorliegenden Erfindung ist ein Verfahren zur automatischen Einfügung einer komprimierten GOP-Offset-Tabelle in eine zuvor codierte MPEG-Videodatei für einen bildgenauen willkürlichen Zugriff auf jedes individuelle Videobild im Play-from-Offset-Modus. Dieses Verfahren erzeugt eine komprimierte GOP-Offset-Tabelle mit einem Eintrag für jeden GOP-Header von jedem Videopaket der MPEG-Videodatei und verändert die MPEG-Videodatei, indem es die komprimierte GOP-Tabelle am Anfang der MPEG-Videodatei als mindestens ein Füllpaket einfügt, wobei die Erfüllung der MPEG-Anforderungen und die komprimierten Audio-/Videodaten der MPEG-Videodatei beibehalten werden. Dieses Verfahren verfügt außerdem über einen Vorgang zur Schätzung der Anzahl der Füllpakete, die für die GOP-Offset-Tabelle benötigt werden, und begrenzt dadurch das Lesen der MPEG-Videodatei auf einen einzigen Lesevorgang. Einigen komprimierten Füllpaketen mit der GOP-Offset-Tabelle geht dabei ein Pack-Header mit einem Systemuhrbezug (System Clock Reference, SCR) voraus. Das Füllpaket beinhaltet daneben einen Standard-PES-Header, eine Offset-Tabellensignatur, ein Feld für den Start-Zeitcode und ein Feld für die GOP-Startadresse.
  • Jeder Eintrag des GOP-Headers beinhaltet des Weiteren ein Feld für die Anzahl der Frames innerhalb einer vorangegangenen GOP, und ein Feld für einen GOP-Adressen-Offset mit einer Offset-Adresse des dem GOP-Header entsprechenden Pack-Headers. Diese Felder werden vor der Decodierung der GOP-Offset-Tabelle für die Resynchronisierung eines MPEG-Decodertakts und für die Wiederherstellung des Zeitcodes und des Adressen-Offsets von jedem GOP-Header während der Dekomprimierung und Decodierung verwendet, indem die Anzahl der Frames und der Adressen-Offset jedes GOP-Header-Eintrags jeweils zum Zeitcode und zur GOP-Startadresse hinzugefügt werden, wodurch ein willkürlicher Zugriff auf jedes individuelle Videobild im Play-from-Offset-Modus ermöglicht wird. Das Verfahren verfügt außerdem über einen Schritt zur zeitlich rückwirkenden SCR-Anpassung nach dem Einfügen der GOP-Offset-Tabelle, um eine genaue Systemtaktung zu erhalten.
  • Eine weitere bevorzugte Ausführungsart der vorliegenden Erfindung ist eine Vorrichtung, die das oben genannte Verfahren der Ausführungsart der vorliegenden Erfindung implementiert.
  • Eine weitere bevorzugte Ausführungsart der vorliegenden Erfindung ist eine Vorrichtung zur Programmspeicherung, die von einem Computer gelesen werden kann und ein Programm von Anweisungen enthält, die vom Computer ausgeführt werden, um Vorgänge des oben genannten Verfahrens der Ausführungsart der vorliegenden Erfindung auszuführen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Im Folgenden wird auf die Zeichnungen Bezug genommen, in denen gleiche Referenznummern durchgängig auf entsprechende Teile verweisen:
  • 1 ist eine Darstellung eines konventionellen Video-Aufnahme-/Katalogisierungssystems gemäß dem Stand der Technik;
  • 2 stellt die Positionierung der Anwendung zur Einfügung einer GOP-Offset-Tabelle innerhalb eines vorhandenen Videokatalogisierungssystems gemäß einer bevorzugten Ausführungsart der vorliegenden Erfindung dar;
  • 3 zeigt die Formatierung einer ursprünglich codierten MPEG-Datei, in die eine GOP-Offset-Tabelle gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung eingefügt wurde;
  • 4 zeigt eine Datenstruktur eines Füllpakets mit einer komprimierten GOP-Offset-Tabelle für die Codierung und Übermittlung der GOP-Offset-Tabelleninformationen gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung;
  • 5 ist ein logisches Flussdiagramm der wichtigsten Softwareroutine einer Anwendung zur Einfügung einer GOP-Offset-Tabelle gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung;
  • 6 ist ein logisches Flussdiagramm einer Softwareroutine zur Analyse einer MPEG-Videodatei für die Schätzung der Frame- und GOP-Anzahl gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung;
  • 7A und 7B zeigen ein logisches Flussdiagramm einer Softwareroutine für die Verarbeitung einer MPEG-Datei, um den Adressen-Offset und die Größe jedes GOP zu extrahieren, gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung;
  • 8 ist eine Darstellung der Datenstruktur einer GOP-Offset-Tabelle gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung;
  • 9A und 9B zeigen den logischen Ablauf einer Softwareroutine für die Formatierung komprimierter MPEG-Pakete, die GOP-Offset-Tabelleninformationen enthalten, gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung;
  • 10 zeigt den logischen Ablauf der Softwareroutine für das Einfügen von GOP-Offset-Paketen in eine MPEG-Datei ohne Störung der vorhandenen komprimierten MPEG-Daten gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung;
  • 11A und 11B zeigen einen logischen Ablauf einer Softwareroutine, der von einem MPEG-Player genutzt wird, um die GOP-Offset-Tabelle von einem eintreffenden MPEG-Strom zu extrahieren, gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung; und
  • 12 ist eine Darstellung einer grafischen Benutzeroberfläche (Graphical User Interface, GUI) eines MPEG-Players und eines Catalogers, der für die Katalogisierung von Videos verwendet wird, um Video- und Metadatenströme anzuzeigen, gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSARTEN
  • In der folgenden Beschreibung der bevorzugten Ausführungsarten wird auf die beiliegenden Zeichnungen Bezug genommen, die ein Bestandteil der vorliegenden Erfindung sind, und in welchen durch die Art der Darstellung von spezifischen Ausführungsarten gezeigt wird, wie die Erfindung umgesetzt werden könnte. Es versteht sich, dass andere Ausführungsarten verwendet und strukturelle und funktionelle Änderungen durchgeführt werden können, ohne dass vom Geltungsbereich der vorliegenden Erfindung abgewichen wird.
  • Die vorliegende Erfindung befasst sich mit einem Verfahren, einer Vorrichtung zur Programmspeicherung und einem System zur Verarbeitung von MPEG-1- oder MPEG-2-Videodateien, um Dateiindexinformationen in Form einer GOP-Offset-Tabelle mit GOP-SMPTE-Zeitcode und GOP-Byteoffset automatisch in eine vorhandene MPEG-Datei einzufügen, um ohne Modifizierung oder Veränderung der ursprünglichen komprimierten Video-/Audiodaten eine präzise Play-from-Offset-Leistungsfähigkeit zu erreichen, während die MPEG-Übereinstimmung vollständig erhalten bleibt, so dass die normalen Aufnahme- und Katalogprozeduren des Broadcasters unverändert bleiben. Die Erfindung ist in der Lage, die GOP-Offset-Tabelle in jeden vorhandenen übereinstimmenden MPEG-1-Systemstrom, MPEG-2-Programmstrom oder MPEG-2-Transportstrom einzufügen, unabhängig vom Hersteller des MPEG-Codierers/Decoders.
  • Des Weiteren sind die bevorzugten Ausführungsarten der vorliegenden Erfindung in der Lage, die Existenz der GOP-Offset-Tabelle für MPEG-Decoder transparent zu machen, die nicht in der Lage sind, diese zu extrahieren, und die erhöhte Länge sowie die Wiedergabeverzögerung der modifizierten MPEG-Datei zu minimieren. Sie können Bitfehler, die während des Streamens eines MPEG-Videos über ein Telekommunikationsnetzwerk entstanden sind, entdecken und beheben, und können die MPEG-Videodatei auf effiziente Art verarbeiten, da die Datei nur ein einziges Mal gelesen werden muss. Des Weiteren arbeiten sie ohne den Gebrauch einer separaten Indexdatei, auf eine Art, die gewährleistet, dass die MPEG-Videodatei weiterhin ohne Fehler von jeder übereinstimmenden MPEG-Decoder-Engine decodierbar bleibt.
  • 1 ist eine Darstellung eines konventionellen Video-Aufnahme-/Katalogisierungssystems gemäß dem Stand der Technik. In 1 stellt ein Videorecorder 100 das Ausgangsvideo zur Codierung bereit. Eine Aufnahme-/Katalogisierungsanwendung 125 steuert parallel drei MPEG-Codierer 105, 115, 120, die eine hoch auflösende Videodatei und zwei Proxies erzeugen. Der hoch auflösende MPEG-Codierer 105 wird durch einen Broadcast-Video-Server 110 ergänzt. Erzeugt die Aufnahme-/Katalogisierungsanwendung 125 MPEG-Dateien 128 und damit verbundene Metadaten 135, werden die Katalogeinträge mit Hilfe einer Videobibliotheksanwendung 140 im Videobibliothekskatalog 130 erzeugt oder aktualisiert. Das Katalogisieren und Indexieren der Videodateien ermöglicht anschließend das Suchen und Wiederfinden.
  • Nach der Beendigung des Codierens werden die komprimierten Dateien auf einen Streaming-Videoserver 145 übertragen, der Daten per FTP oder Isochron-Streaming an den MPEG-Decoder/Player 160 übertragen kann. Der gesamte Inhalt des Videos wird in ein Bandarchiv 150 zur Langzeitspeicherung kopiert und bei Bedarf zurückgeholt. Der Endbenutzer findet den Inhalt im Katalog der Videobibliothek 130 mittels einer Katalogsuchmaschine 155. Die durch die Sucheingabe ermittelten Katalogeinträge werden mit Hilfe eines Catalogers/Metadata-Viewers 165 individuell geprüft. Das gesamte Video oder jeder beliebige Teil davon kann über den MPEG-Player 160 angeschaut werden.
  • 2 ist eine Darstellung eines Video-Aufnahme-/Katalogisierungssystems gemäß der bevorzugten Ausführungen der vorliegenden Erfindung. Das Verfahren und System der vorliegenden Erfindung verarbeitet eine vorhandene MPEG-1- oder MPEG-2-Videodatei und fügt eine GOP-Offset-Tabelle als Startpaket bzw. Startpakete des Stroms ein. Die GOP-Offset-Tabelle wird als MPEG-Füllpakete eingefügt (beispielsweise mit einem Startcode OxBE). Füllpakete werden normalerweise von einem Codierer erzeugt, um den Strom mit externen Null-Daten zu füllen, um eine konstante Bitrate beizubehalten. Füllpakete werden normalerweise vom MPEG-Decoder gelöscht. Die vorliegende Erfindung markiert diese eingefügten Füllpakete mit der GOP-Offset-Tabelle eindeutig mit einer Signatur, die von jedem MPEG-Decoder erkannt wird, der in der Lage ist, die GOP-Offset-Tabelle zu extrahieren.
  • Die Füllpakete mit der GOP-Offset-Tabelle werden eingefügt, ohne den MPEG-Strom erneut zu multiplexen und ohne Präsentations-Zeitstempel (Presentation Timestamps, PTS), Decoder-Zeitstempel (Decoder Timestamps, DTS), Systemuhrbezug (System Clock Reference, SCR) oder jede andere MPEG-Datenstruktur der ursprünglichen Videodatei zu modifizieren. Die resultierende Videodatei erfüllt weiterhin alle MPEG-Anforderungen, und die eingefügte GOP-Offset-Tabelle hat keine nachteilige Auswirkung auf den Betrieb anderer MPEG-Hardware oder MPEG-Softwaredecoder. Die Technik der Einfügung von GOP-Offset-Tabellen funktioniert auf jeder mit MPEG übereinstimmenden Programmstrom- oder Tansportstromdatei, unabhängig vom Hersteller des Codierers.
  • Wenn die Datei vom angeschlossenen MPEG-Player codiert wird, wird die GOP-Offset-Tabelle extrahiert und für die Zeit im Speicher gespeichert, in der die Datei das aktive Video bleibt.
  • Wenn der Benutzer an beliebige Stellen im Video springt, lokalisiert der Player den nächsten vorangegangenen GOP-Header mit Hilfe einer effizienten binären Suche, die auf den in der GOP-Offset-Tabelle gespeicherten Zeitcode Bezug nimmt. wird das Video isochron von einem Videoserver gestreamt, sendet der Player die Adresse des Ziel-GOP-Headers an den Server, der dann den aktuellen Dateilesezeiger aktualisiert und den Videostrom neu startet. Decodiert der Player eine lokal gespeicherte MPEG-Datei, veranlasst der Player eine Eigenaktualisierung des entsprechenden Dateilesezeigers.
  • Die vorliegende Erfindung besitzt Vorteile gegenüber dem Stand der Technik, da kein Bedarf an der Erzeugung und Verwaltung einer separaten Datei, die Daten-zur GOP-Indexierung enthält, besteht. Die eingebettete GOP-Offset-Tabelle wird zu einem festen Bestandteil der Proxy-Videodateien, die sich im Videoarchiv befinden. Ein weiterer Vorteil besteht darin, dass keine Modifikation der MPEG-Serversoftware erforderlich ist.
  • Wie aus 2 ersichtlich, werden gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung Proxy-Dateien, die von zwei Codierern 205, 210 mit niedriger Auflösung erzeugt wurden, auf einer Festplatte 260 eines separaten Gerätes 265 gespeichert, um von einer Anwendung zur Einfügung von GOP-Offset-Tabellen (GOP offset insertion application, GOTIA) 265 verarbeitet zu werden. Der Aufruf der GOTIA 265 wird automatisch von einem Workflow Manager 235 nach der Mitteilung einer Aufnahme-/Katalogisierungsanwendung 230, dass die Ausführung der Codierung abgeschlossen würde, ausgelöst. Wenn die Aufnahme-/Katalogisierungsanwendung 230 die Beendigung des Jobs dem Workflow Manager 235 meldet, ruft der Workflow Manager im Gegenzug die GOTIA 265 auf, die die GOP-Offset-Tabellen-Pakete in die MPEG-Videodatei einfügt und anschließend die modifizierte MPEG-Datei 258 auf einen Streaming-Videoserver 250 kopiert.
  • 2 zeigt ebenfalls einen Videorecorder 200, der ein Ausgangsvideo zur Codierung bereitstellt. Die Aufnahme-/Katalogisierungsanwendung 230 steuert parallel drei MPEG-Codierer 205, 215, 210, die eine hoch auflösende Videodatei und zwei Proxies erzeugen. In den hoch auflösenden MPEG-Codierer 215 wurde ein Broadcast-Video-Server 220 zum Senden integriert. Erzeugt die Aufnahme-/Katalogisierungsanwendung 230 Metadatendateien 245, werden in einem Videobibliothekskatalog 240 mit Hilfe einer Anwendung für Videobibliotheken 255 Katalogeinträge erzeugt oder aktualisiert. Das Katalogisieren und Indexieren von Videodateien ermöglicht das anschließende Suchen und Wiederfinden.
  • Die vollständige Proxy-Videodatei des Codierers 205, oder jeder beliebige Teil davon, sowie die in der Suchanfrage gefundenen Katalogeinträge und Metadaten können über den MPEG-Player und Metadata-Viewer 275 angeschaut werden, der eine Play-at-Offset-Anforderung an den Streaming-Videoserver 250 senden kann. Das System aus 2 kann ebenfalls einen Webbrowser-MPEG-Player-Plugin 270 als Bestandteil haben, der eine Play-at-Offset-Anforderung zum Streaming-Videoserver 250 senden und von ihm ein Streaming-Video erhalten kann, das ursprünglich vom Proxy-Codierer 210 codiert wurde.
  • 3 veranschaulicht die Formatierung einer MPEG-Datei 300 in der ursprünglichen Codierung mit Audiopaketen 305, Videopaketen 310 und Füllpaketen 315 sowie eine MPEG-Videodatei 308, die gemäß der vorliegenden Erfindung neu formatiert und in die gemäß der bevorzugten Ausführungsart der vorliegenden Erfindung eine GOP-Offset-Tabelle 340 eingefügt wurde. Deshalb ist 3 eine nicht skalierte Darstellung des MPEG-Dateiformats auf hohem Niveau, vor und nach Einfügung der GOP-Offset-Tabelle 340. Die GOP-Offset-Tabelle 340 ist als eine Reihe von Füllpaketen mit der GOP-Offset-Tabelle 345, 350 am Anfang der MPEG-Datei 308 eingefügt, damit der MPEG-Player die gesamte GOP-Offset-Tabelle 340 in seinem Speicher (nicht dargestellt) zusammensetzen kann, bevor die Videowiedergabe gestartet wird. Die GOP-Offset-Tabelle 340 ist in die Füllpakete 345, 350 eingebettet, die normalerweise von Decodern gelöscht würden. Die Füllpakete mit der GOP-Offset-Tabelle 345, 350 enthalten jedoch eine identifizierende Offset-Tabellensignatur, um sie von anderen Füllpaketen 365 zu unterscheiden, und eine Füllpaket-Sequenznummer, die zurückgesetzt wird, um das letzte Füllpaket mit der GOP-Offset-Tabelle 345, 350 zu signalisieren, wenn eine ganze Sequenz von Füllpaketen mit der GOP-Offset-Tabelle 340 erzeugt wird.
  • Die Füllpakete 345, 350 enthalten außerdem eine 32-Bit-Kontrollsumme zur Bitfehlererkennung. Wird ein Fehler entdeckt, hat der MPEG-Player die Möglichkeit, nochmals ein Playout vom Server anzufordern, damit die MPEG-Videodatei 308 mit der GOP-Offset-Tabelle 340 mit möglichst wenig Verzögerung erneut übertragen wird. Sobald die GOP-Offset-Tabelle einmal im Speicher des MPEG-Players erstellt wurde, wird sie nicht mehr erneut im MPEG-Player zusammengesetzt, selbst wenn das Video erneut von Beginn an gestartet wird. Nur das Laden einer anderen MPEG-Videodatei wird ein Löschen und erneutes Erstellen der GOP-Offset-Tabelle verursachen.
  • Wie aus 3 ersichtlich, wird die GOP-Offset-Tabelle 340 als eine Reihe von MPEG-Füllpaketen 345, 350 codiert, die am Anfang der ursprünglichen MPEG-Datei platziert sind. Um eine Erfüllung der MPEG-Anforderungen zu gewährleisten und ein genaues Decodieren zu erleichtern, beginnt die Datei 308 mit einem Pack-Header 320 und einem System-Header 325. Ein Füllpaket-Header 330, 348 wird direkt vor einigen oder allen Füllpaketen mit der GOP-Offset-Tabelle 345, 350 platziert. Ein PES-Header (Packetised Elementary Stream, Gepackter Elementarstrom) 335, 349, wird am Anfang jedes Füllpakets mit der GOP-Offset-Tabelle 345, 350 platziert. Ein in jedem neu erzeugten Datei-Pack-Header (320, 330, 348) enthaltener Systemuhrbezug (SCR) wird zeitlich rückwirkend angepasst, um eine genaue Systemtaktung zu erhalten. Der Rest der verarbeiteten MPEG-Videodatei 308 enthält die gleichen Audiopakete 355 und Videopakete 360 wie die ursprüngliche MPEG-Videodatei 300.
  • In den bevorzugten Ausführungsarten hat jedes Füllpaket mit der GOP-Offset-Tabelle 345, 350 eine Größe von 2480 Bytes, um bis zu 800 3-Byte-Einträge der komprimierten Offset-Tabelle zu puffern, trotz eines möglicherweise abweichenden Werts. Das bedeutet bei einer GOP-Länge von 15 Bildern eine Videospieldauer von 6 Minuten und 40 Sekunden. Bei einer angenommenen Streaming-Bitrate von 3 Mbps verlängert ein einziges Füllpaket mit der Offset-Tabelle 345, 350 die Downloadzeit des Videos um 6,6 Millisekunden. Der Start eines 20-minütigen Videos verzögert sich somit um weniger als 20 Millisekunden.
  • 4 veranschaulicht eine Datenstruktur eines Füllpakets mit einer komprimierten GOP-Offset-Tabelle 345, 350, die gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung zum Kodieren und Übertragen der GOP-Offset-Tabelleninformationen verwendet wird. Als erstes besitzt es einen konventionellen PES-Header 335, 349, der aus einem Füllstartcode 400, einer Paket-PES-Länge 405 und einer End-of-Header-Markierung 410 besteht. Nach dem Standard-PES-Header beinhaltet das Füllpaket mit der komprimierten GOP-Offset-Tabelle von 4 der vorliegenden Erfindung außerdem: eine Füllpaketsequenznummer 415, eine Offset-Tabellensignatur 420, ein Feld mit der Anzahl der GOP-Offset-Tabelleneinträge innerhalb dieses Füllpakets 425, ein Markierungsfeld 430, ein Hochauflösungsdelta-Feld 435, ein Feld für den Start-Zeitcode 440 und ein Feld für die GOP-Startadresse 445. Das Füllpaket mit der komprimierten GOP-Offset-Tabelle enthält des Weiteren eine komprimierte GOP-Offset-Tabelle 450 und ein Kontrollsummenfeld 455, wie aus 4 ersichtlich.
  • Die Offset-Tabellensignatur 420 ist eine eindeutige 4-Byte-Signatur, die die Füllpakete mit der GOP-Offset-Tabelle 345, 350 von den normalen Füllpaketen 365 unterscheidet, die üblicherweise vom Decoder gelöscht werden. Die Sequenznummer 415 der Füllpakete ermöglicht dem Decoder, fehlende Füllpakete mit der GOP-Offset-Tabelle 345, 350 zu ermitteln und das letzte Füllpaket mit der GOP-Offset-Tabelle zu signalisieren, das die Sequenznummer null aufweist. Auf die gleiche Weise ermöglicht das 32-Bit-Kontrollsummenfeld 455 dem Decoder, Bitfehler der Füllpakete zu ermitteln. Im Falle eines Fehlers sendet der Decoder in der vorliegenden Erfindung eine neue Anforderung zum Lesen einer MPEG-Datei an den Server, damit die fehlerhaften Füllpakete mit der GOP-Offset-Tabelle mit minimaler Verzögerung erneut geschickt werden. Die vorliegende Erfindung ermöglicht es auch, die fehlerhaften Pakete zu löschen, ohne die verbleibenden Teile der GOP-Offset-Tabelle 340 zu beeinträchtigen. Gelöschte Pakete erzeugen jedoch eine ,Lücke' in der GOP-Offset-Tabelle 340, was zu einem falschen GOP-Offset führt, falls einer der fehlenden Zeitcodes abgefragt werden sollte.
  • 4 beinhaltet ebenfalls die komprimierten Einträge der GOP-Offset-Tabelle 450, die auf 3 Bytes komprimiert werden, um die Länge der Füllpakete mit der GOP-Offset-Tabelle 345, 350 zu minimieren. Jeder dieser Einträge 450 stellt einen GOP-Header im Videopaket dar und hat zwei Felder, wie aus 4 ersichtlich wird: ein Feld, das die Anzahl der Frames innerhalb einer vorangegangenen GOP 460 anzeigt, und ein 20-Bit-Feld für den GOP-Adressen-Offset 465, bei dem der Adressen-Offset berechnet wurde, indem von der letzten Pack-Header-Adresse die vorhergehende Pack-Header-Adresse, die im Tabelleneintrag 450 für die vorhergehende GOP gefunden wurde, subtrahiert wurde. Da jedes Füllpaket vom MPEG-Decoder dekomprimiert wird, ist der Decoder in der Lage, den Zeitcode und den Adressen-Offset jeder GOP zu rekonstruieren, indem er die Anzahl der Frames 460 und den Adressen-Offset 465 jedes GOP-Eintrags jeweils zum Start-Zeitcode 440 und zur GOP-Startadresse 445 addiert. Diese Summen von jedem GOP-Zeitcode und Adressen-Offset werden als zeitliche variablen im Speicher gespeichert.
  • Analyse und Verarbeitung von MPEG-Dateien
  • 5 ist ein logisches Flussdiagramm der wichtigsten Softwareroutine der Anwendung zur Einfügung einer GOP-Offset-Tabelle gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung. Nach dem Öffnen einer MPEG-Videodatei in Schritt 500 ruft die Anwendung in Schritt 505 die Routine zur Analyse einer MPEG-Datei von 6 für die Analyse der ersten 10 Sekunden der ursprünglichen Videodatei auf, um die Anzahl der Frames und der GOP-Header zu schätzen und eine Kopie des ersten Pack-Headers und System-Headers der ursprünglichen MPEG-Videodatei zu speichern. In 6 wird der zuerst gefundene Pack-Header in Schritt 600 decodiert, und die Stream-Mulitplex-Bitrate wird in Schritt 605 extrahiert. In Schritt 610 wird der Pack-Header und in Schritt 615 der System-Header kopiert und für einen späteren Gebrauch gespeichert. Mit Hilfe der in Schritt 605 gewonnenen Multiplex-Bitrate wird die Anzahl der Video-Frames in der Videodatei (Frame-Anzahl) in Schritt 620 geschätzt, indem die Größe der Datei durch die Bitrate geteilt wird. In Schritt 625 werden die ersten 20 Sekunden des Videos analysiert, um die maximale GOP-Länge zu ermitteln und um herauszufinden, ob die GOP-Länge variabel oder fest ist. Wenn in Schritt 630 festgestellt wird, dass die GOP-Länge variabel ist, wird die GOP-Länge in Schritt 660 um 2 Frames verringert, bevor in Schritt 635 die GOP-Anzahl in der Datei geschätzt wird. Diese Zahl wird berechnet, indem die Anzahl der Video-Frames (Frame-Anzahl) durch die GOP-Länge geteilt wird. Sobald die GOP-Anzahl geschätzt wurde, wird sie in Schritt 640 durch 800 geteilt, um die Anzahl der Füllpakete zur Pufferung der GOP-Offset-Tabelleneinträge zu berechnen. Beträgt der Rest 600 oder mehr, wird die Zahl in Schritt 665 um 1 erhöht, um eine Sicherheitstoleranz zu gewährleisten. Die Routine endet mit der Berechnung der geschätzten Gesamtgröße der GOP-Offset-Tabelle in Schritt 650 und mit der Rückkehr zur Hauptroutine der Anwendung in Schritt 655. Die geschätzte Gesamtgröße der GOP-Offset-Tabelle wird berechnet, indem jede Füllpaketgröße einer GOP-Offset-Tabelle (2480) zu der Größe des Pack-Headers addiert, diese Summe mit der Anzahl der Füllpakete multipliziert und die Größe des Pack-Headers sowie die Größe des System-Headers dazu addiert wird. Der Pack-Header 320 und der System-Header 325 werden am Anfang der MPEG-Datei eingefügt, um dem MPEG-Decoder zu ermöglichen, die Datei eindeutig als MPEG-Programmstrom zu identifizieren. Anschließend wird der Pack-Header 330, 348 direkt am Anfang jedes Füllpakets mit der GOP-Offset-Tabelle 340, 350 eingefügt. Jeder PES-Header 335, 349 wird als Teil seines jeweiligen Füllpakets angesehen.
  • Um die Leistungsfähigkeit der Anwendung zu maximieren, liest die vorliegende Erfindung die MPEG-Videodatei nur ein Mal. Um das Lesen der Dateien auf einen einzigen Lesevorgang zu begrenzen, muss die GOP-Anzahl geschätzt werden, damit den Füllpaketen mit der GOP-Offset-Tabelle in der erneut verarbeiteten MPEG-Datei ausreichend Speicherkapazität zugewiesen werden kann. Die zwei Frames, die von der maximalen GOP-Länge abgezogen werden, bevor diese in die Anzahl der Frames geteilt wird, stellen einen empirisch hergeleiteten Wert dar, der für eine angebrachte Sicherheitstoleranz gegen ein Übersteigen der zugewiesenen Speicherkapazität der GOP-Offset-Tabelle sorgt. Übersteigt die tatsächliche GOP-Anzahl den geschätzten Wert stark, bricht die GOTIA die laufende Verarbeitung der MPEG-Videodatei ab und startet erneut mit einer größeren Schätzung der GOP-Anzahl.
  • Wie in 5 ersichtlich, wird die Routine zur Verarbeitung der MPEG-Datei der 7A und 7B in Schritt 510 nach der Analyse der MPEG-Datei aufgefordert, den Adressen-Offset und die Größe jeder GOP zu extrahieren und ein Array der Einträge der GOP-Adressen-Offsets zu kompilieren. 8 zeigt eine unkomprimierte Version der GOP-Offset-Tabelle. Die GOTIA erstellt diese Tabelle während der Syntaxanalyse der MPEG- Datei und speichert sie als eine temporäre Datenstruktur. Nachdem die MPEG-Datei vollständig syntaktisch analysiert wurde, wird diese Tabelle zur Erstellung einer komprimierten GOP-Offset-Tabelle von 4 verwendet, die in Füllpaketen gespeichert wird. Extrahiert der MPEG-Decoder die Füllpakete aus dem MPEG-Strom, wird die GOP-Offset-Tabelle dekomprimiert, womit die ursprüngliche Version der GOP-Offset-Tabelle wieder hergestellt wird, und anschließend gespeichert. Die Struktur von 8 enthält einen Satz mit Markierungen 800, die über das Feld 430 der Füllpakete mit der komprimierten GOP-Offset-Tabelle von 4 zum MPEG-Player weitergeleitet werden, um die GOP-Offset-Tabelle genau zu rekonstruieren.
  • Wie in 7A und 7B ersichtlich, beginnt die Routine in Schritt 700 durch das Erzeugen einer Datei für die Speicherung der verarbeiteten, modifizierten MPEG-Datei und durch das Setzen des Schreibzeigers hinter den den Paketen der GOP-Offset-Tabelle zugewiesenen Bereich. Der logische Ablauf fährt dann in Schritt 702 mit einer Schleife fort, um jedes Paket der MPEG-Datei zu verarbeiten. Zusätzlich zu den Audio- und Videopaketen gibt es noch verschiedene System- und Füllpakete, die festgestellt und ohne weitere Verarbeitung in Schritt 706 in die Datei geschrieben werden. In Schritt 704 wird die Datei sequenziell decodiert, um den Startcode eines jeden MPEG-Videopakets zu lokalisieren und zu verarbeiten. Wird in Schritt 708 herausgefunden, dass der Startcode ein Videosequenz-Header 370 ist, dann wird die Video-Frame-Rate in Schritt 712 extrahiert und in Schritt 716 gespeichert, womit entweder eine 30-Frames-pro-Sekunde-Markierung 825 oder eine 25-Frames-pro-Sekunde-Markierung 835 in einer unkomprimierten GOP-Offset-Tabelle von 8 gesetzt wird. Zusätzlich wird, wenn das Videosequenz-Paket einen Drop-Frame-Zählmodus anzeigt, entsprechend eine Drop-Frame-Markierung 820 gesetzt.
  • Nachdem die Frame-Rate in Schritt 716 gespeichert wurde, werden in Schritt 706 die Paketdaten in die verarbeitete MPEG- Datei geschrieben, und die Schleife wird wiederholt. Wenn in Schritt 720 ein Picture-Start-Header gefunden wird, erhöht sich in Schritt 724 die Bildanzahl und in Schritt 728 die Frame-Anzahl des SMPTE-Zeitcodes. Beide Werte werden als temporäre Variablen gespeichert. Dann werden in Schritt 706 die MPEG-Paketdaten in die verarbeitete MPEG-Datei geschrieben, und die Schleife wird fortgesetzt. Wenn in Schritt 732 ein Pack-Header gefunden wird, wird die geschätzte Größe der Offset-Tabelle, die in Schritt 650 in 6 erhalten wurde, zu der Pack-Header-Adresse in Schritt 736 addiert, und das Ergebnis wird in Schritt 740 als letzte Pack-Header-Adresse in einer temporären Variablen gespeichert. Wenn der nächste GOP-Header schließlich gefunden wurde, wird die letzte Pack-Header-Adresse in Schritt 780 im Feld für den zugehörigen GOP-Adressen-Offset 865 der temporären, unkomprimierten GOP-Offset-Tabelle gespeichert. Der Grund für die Aufzeichnung der letzten Pack-Header-Adresse anstelle der tatsächlichen GOP-Header-Adresse ist, dem MPEG-Decoder zu ermöglichen, seinen Takt vor der Decodierung der GOP-Offset-Tabelle zu resynchronisieren. Als nächstes werden in Schritt 706 die Paketdaten in die verarbeitete MPEG-Datei geschrieben, und die Schleife wird fortgesetzt.
  • Ist der aktuelle Startcode, der in Schritt 744 gefunden wurde, kein GOP-Header, werden in Schritt 706 die Paketdaten in die verarbeitete MPEG-Datei geschrieben, und die Schleife wird fortgesetzt. Sonst werden mit dem Zeitcode, der im GOP-Header enthalten ist, eine Reihe von Tests durchgeführt. Wenn in Schritt 748 kein Zeitcode gefunden wird, wird in Schritt 752 die Markierung 845 ,Kein ZC' von 8 gesetzt. Ist ein Zeitcode vorhanden, wird er in Schritt 756 auf Kontinuität und in Schritt 764 auf Zunahme geprüft. Die Markierung 840 ,Unterbrochener ZC' und/oder die Markierung 850 ,Nicht zunehmender ZC' von 8 werden in den Schritten 760 beziehungsweise 768 gesetzt, wenn beide Tests negativ ausfallen. In allen Fällen fährt der logische Ablauf mit Schritt 772 fort, wo der vom GOP-Header extrahierte Zeitcode in Feld 855 gespeichert und in Schritt 776 die Anzahl der in der vorherigen GOP enthaltenen Frames von der in Schritt 724 gespeicherten Variablen in Feld 860 der temporären, unkomprimierten GOP-Offset-Tabelle von 8 wiederhergestellt wird. Die Feldeinträge der GOP-Offset-Tabelle werden in Schritt 780 vervollständigt, indem die letzte Pack-Header-Adresse, die als eine temporäre Variable beibehalten wird, im Feld 865 von 8 gespeichert wird. Als nächstes wird die Variable der Bildanzahl in Schritt 784 auf null gesetzt, die Anzahl der GOP-Offset-Einträge 810 wird in Schritt 788 erhöht und die Paketdaten werden in Schritt 706 in die verarbeitete MPEG-Datei geschrieben. Die Schleife verarbeitet jedes Paket in der MPEG-Datei und hört auf, wenn in Schritt 702 das Ende der ursprünglichen MPEG-Datei erreicht wurde, woraufhin die Unterroutine in Schritt 792 die Kontrolle an die Hauptroutine der Anwendung von 5 übergibt.
  • Erzeugung eines GOP-Offset-Tabellenpakets
  • Nachdem die unkomprimierte GOP-Offset-Tabelle von 8 erstellt wurde, ruft die Hauptroutine von 5 in Schritt 515 eine Unterroutine von 9A und 9B auf, um die Füllpakete mit der komprimierten GOP-Offset-Tabelle zu formatieren. Wie in 9A und 9B gezeigt, tritt die Unterroutine in Schritt 900 in eine Schleife ein, um alle aufgezeichneten GOP-Offset-Tabelleneinträge von 8 zu komprimieren und zu paketieren, gemäß dem in 4 dargestellten komprimierten Paketformat der Offset-Tabelle. Wird in Schritt 904 herausgefunden, dass die Anzahl der verbleibenden GOP-Offset-Tabelleneinträge größer als 800 ist, wird die Anzahl der GOP-Offset-Tabelleneinträge 425 in Schritt 908 auf 800 gesetzt, und die Anzahl der verbleibenden Einträge wird in Schritt 912 um 800 verringert. Sonst wird in Schritt 916 die Anzahl der Einträge 425 auf die Anzahl der verbleibenden GOP-Offset-Tabelleneinträge gesetzt und die Anzahl der verbleibenden GOP-Einträge in Schritt 918 gelöscht. Der logische Ablauf fährt in Schritt 920 mit dem Erstellen der PES-Header 400, 405, 410 fort, fügt in Schritt 924 die Signatur 420 ein und erhöht die Sequenznummer des Pakets 415 in Schritt 928. In Schritt 932 wird eine Nebenschleife durchlaufen, um das Füllpaket mit komprimierten GOP-Offset-Einträgen aufzufüllen. Wenn der erste Eintrag in Schritt 944 verarbeitet wird, wird in Schritt 936 der GOP-Zeitcode 855 im Füllpaket von 4 im Feld 440 als Start-Zeitcode gespeichert. Die Zeitcodes aller GOP-Offset-Tabelleneinträge in diesem Füllpaket werden in der Anzahl der Frames 460 als ein Offset vom Start-Zeitcode 440 codiert. In Schritt 940 wird der erste GOP-Adressen-Offset 865 in Feld 445 als Startadressen-Offset gespeichert. Für alle anderen komprimierten Offset-Tabelleneinträge 450 in diesem Füllpaket wird das GOP-Adressen-Offset 465 als Offset berechnet, indem der vorherige GOP-Adressen-Offset 865, der im Tabelleneintrag 865 für die vorherige GOP gefunden wird, von diesem GOP-Adressen-Offset 865 subtrahiert wird.
  • Jeder GOP-Offset-Tabelleneintrag 450 wird durch eine in Schritt 948 ausgeführte Komprimierung in einen 3-Byte-GOP-Offset-Tabelleneintrag eingebaut. Wenn alle Einträge verarbeitet wurden, endet die Schleife in Schritt 932 in der Bedingung „Nein", und die Header-Markierungen 800, die in der Routine zur Verarbeitung von MPEG-Dateien von 7A und 7B gesetzt wurden, werden in Schritt 952 im Markierungsfeld 430 von 4 gespeichert. wenn in Schritt 956 das letzte Paket formatiert wird, wird die Sequenznummer des Füllpakets 415 in Schritt 960 gelöscht. Die Erstellung des Pakets wird durch Berechnung und Speicherung der Paketkontrollsumme 455 in Schritt 964 und durch Erhöhung der Füllpaketanzahl, die als temporäre Variable gespeichert wird, in Schritt 968 vervollständigt.
  • Die Hauptschleife beginnt bei 900 und endet mit der Bedingung „Nein", wenn alle GOP-Offset-Tabelleneinträge paketiert wurden. Bevor die Füllpakete in die verarbeitete MPEG-Datei geschrieben werden, wird in Schritt 972 geprüft, ob die tatsächliche Anzahl der Füllpakete mit der GOP-Offset-Tabelle den dafür reservierten Speicherplatz übersteigt. Ist dies der Fall, wird die GOTIA in Schritt 984 mit der tatsächlichen Anzahl der GOP-Header neu gestartet. Ist die Anzahl der GOP-Pakete geringer als erwartet, fällt der logische Ablauf in Schritt 976 in eine Schleife, die in Schritt 980 Dummy-Füllpakete hinzufügt, um den für die GOP-Offset-Tabelle reservierten Speicherplatz aufzufüllen. Ist die Anzahl der Pakete gleich der geschätzten Anzahl, kehrt die Unterroutine in Schritt 988 über die Bedingung „Nein" aus Schritt 976 zurück zur Hauptroutine von 5.
  • Einfügung einer GOP-Offset-Tabelle
  • Wie in 5 ersichtlich, wird in Schritt 520 die Unterroutine zur Einfügung der Füllpakete mit der GOP-Offset-Tabelle von 10 aufgefordert, die Füllpakete mit der GOP-Offset-Tabelle in die verarbeitete MPEG-Datei zu schreiben. Wie aus 10 ersichtlich, wird der Schreibzeiger der verarbeiteten MPEG-Datei in Schritt 1000 auf null zurückgesetzt, und die Pack- und System-Header, die in den Schritten 610 und 615 von 6 gespeichert wurden, werden in Schritt 1005 in die Datei geschrieben. In Schritt 1010 wird die Verzögerung des Pack-Headers, des System-Headers und der GOP-Offset-Tabelle berechnet, indem die Größe des Pack- und des System-Headers und aller Füllpakete summiert und das Ergebnis durch die Stream-Mulitplexrate geteilt wird. Dieses Ergebnis wird in eine äquivalente Anzahl von 90 kHz-Taktzyklen konvertiert und in Schritt 1015 vom im Pack-Header enthaltenen SCR subtrahiert. Die Schleife durch alle Füllpakete beginnt in Schritt 1020. Die Verzögerung für die aktuellen und nachfolgenden Füllpakete wird in Schritt 1025 berechnet und vom SCR des vorangehenden Pack-Headers in Schritt 1030 abgezogen. Die Größe des Füllpakets in Schritt 1025 beinhaltet den PES-Header. Für MPEG-Ströme mit einem geringen SCR-Startwert führt die Subtraktion zu einem Unterschreiten des 33-Bit-SCR-Registers und benötigt somit eine zusätzliche Durchführung der Modulo-Addition. Der Pack-Header und das Füllpaket werden anschließend in Schritt 1035 in die Datei geschrieben, und die Paketanzahl wird in Schritt 1040 verringert. Wenn keine Füllpakete übrig bleiben, wird die Schleife in Schritt 1020 mit der Bedingung „Nein" beendet, die verarbeitete MPEG-Datei wird in Schritt 1045 geschlossen und die Unterroutine kehrt in Schritt 1050 zum aufrufenden Programm von 5 zurück. Die Hauptroutine von 5 endet mit Schritt 525 und beendet die Anwendung.
  • MPEG-Decoder/Player
  • 11A und 11B zeigen einen logischen Ablauf einer Softwareroutine, der von einem MPEG-Player benutzt wird, um die GOP-Offset-Tabelle gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung aus einem eintreffenden MPEG-Strom zu extrahieren. Die GOP-Offset-Tabelle wird nach dem Empfang der Datei vom MPEG-Decoder/Player extrahiert, anschließend dekomprimiert sowie in einer globalen GOP-Offset-Tabelle gespeichert, auf die über einen API-Aufruf von jeder Anwendung verwiesen werden kann. Beispielsweise kann vom EDL-Erstellungsprogramm und von den Cataloger-Anwendungen, die in den Videobibliotheksanwendungen beinhaltet sind, darauf verwiesen werden. Die dekomprimierte Datenstruktur der GOP-Offset-Tabelle ist mit der in 8 dargestellten Tabelle identisch.
  • Gemäß 11A und 11B fällt die Routine in Schritt 1100 sofort in eine Schleife, um jedes Paket zu verarbeiten, sobald die Datei erhalten wurde. In Schritt 1105 wird jeder Startcode decodiert, und in Schritt 1110 geprüft um zu sehen, ob es sich bei dem Paket um ein Video- oder Audiopaket handelt. Falls dies der Fall ist, kehrt die Unterroutine in Schritt 1190 zurück, weil die Existenz eines Audio- oder Videopakets anzeigt, dass keine Füllpakete mit der GOP-Offset-Tabellen mehr vorhanden sind. Wenn das Paket gemäß Schritt 1115 kein Füllpaket ist, wird die Schleife ab Schritt 1100 über die Bedingung „Nein" wiederholt. Sonst handelt es sich bei dem Paket um ein Füllpaket, und das Paket wird in Schritt 1120 auf die Signatur und in Schritt 1125 auf die korrekte Kontrollsumme geprüft. Schlägt einer der beiden Tests fehl, wird die Schleife ab Schritt 1100 wiederholt, um das nächste Paket zu verarbeiten. Erfüllt das Füllpaket beide Bedingungen, werden die Markierungen in Schritt 1130 extrahiert und gespeichert, und der logische Ablauf geht in eine zweite Schleife, die bei Schritt 1135 beginnt, um jeden Offset-Tabelleneintrag zu verarbeiten. Bei der ersten Iteration in Schritt 1140 wird der Start-Zeitcode in Schritt 1145 vom Füllpaket-Header geladen, und der im aktuellen Füllpaket codierte Startadressen-Offset für alle GOP-Header wird in Schritt 1150 geladen. Beide werden benötigt, um den Zeitcode und die Adresse jedes komprimierten Tabelleneintrags aufzulösen. In den Schritten 1155 und 1160 wird das 20-Bit Adressen-Offset vom Paket gelesen und zu der Startadresse addiert, um ein 64-Bit-GOP-Adressen-Offset in der Tabelle zu erstellen. Der Zeitcode wird in den Schritten 1165 und 1170 auf die gleiche Weise verarbeitet, indem die Anzahl der Frames zu dem in Schritt 1145 geladenen Zeitcode addiert wird. Der Zeitcode für jeden GOP-Header-Eintrag wird im Füllpaket akkumuliert. Wenn der letzte Eintrag dekomprimiert wurde, wird die Sekundärschleife über die Bedingung „Nein" in Schritt 1135 beendet, und in Schritt 1180 wird geprüft, ob das Füllpaket das letzte ist. Wenn dies der Fall ist, wird die Beendigungsmarkierung in Schritt 1185 gesetzt, und die Routine kehrt in Schritt 1190 zurück. Sonst wiederholt sich die Primärschleife erneut ab Schritt 1100, um die verbliebenen Füllpakete mit der Offset-Tabelle zu verarbeiten.
  • MPEG-Player/Metadata-Viewer des Videoproduzenten
  • 12 ist eine Darstellung der grafischen Benutzeroberfläche (GUI) eines MPEG-Players und Metadata-Viewers 1200, der von einem Spezialisten für Videoproduktion zur Videokatalogisierung benutzt wurde, um Streaming-Videodaten und Metadaten anzuzeigen, gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung. Im Layout des in 12 dargestellten MPEG-Players und Metadata-Viewers des Videoproduzenten werden VCR-Steuerungen 1202 bereitgestellt, und das Videodisplay 1210 zeigt ein angehaltenes Video mit der aktuellen Position 00:02:26:07. Der untere Teil des Fensters enthält ein Anzeigefeld für den Katalogeintrag 1250 für den von der Videobibliotheksanwendung angeforderten Katalogeintrag.
  • Ein relativer Zeitcode 1215, absoluter Zeitcode 1220 und die Dauer 1225 des aktuellen Frames werden angezeigt. Die Schaltfläche Direktzugriff 1230 hat die Funktion, über eine Anzeige 1235 einen Zeitcode auszusuchen, um direkt zu einem gewünschten Videoclip zu gelangen. Das Fenster für die Anzeige der Storyboard-Thumbnails 1240 enthält zwölf Thumbnails. Der vierte Thumbnail in der dritten Reihe 1280, der durch Doppelklicken hervorgehoben wird, befiehlt eine Wiedergabe ab dem relativen Zeitcode 1215 von Offset 00:02:26:07 vom absoluten Zeitcode 1220 von 09:17:45:17.
  • Wenn der Endbenutzer eine Anforderung zur Betrachtung einer MPEG-Datei stellt, sendet der MPEG-Player eine Anforderung an den Videoserver, die Datei zu öffnen und mit dem Streaming ab Offset 0 zu beginnen. Dies führt dazu, dass der Videoserver die Füllpakete mit der GOP-Offset-Tabelle streamt und dem MPEG-Decoder ermöglicht, die GOP-Offset-Tabelle zu erstellen. Sobald das letzte Füllpaket mit der GOP-Offset-Tabelle erhalten wurde und die GOP-Offset-Tabelle, wie in 8 definiert, komplett erstellt wurde, ist der Player in der Lage, auf jedes beliebige Frame in der MPEG-Videodatei zuzugreifen.
  • Wenn der Endbenutzer über die Schaltfläche Direktzugriff 1230 eine Play-from-Offset-Anforderung stellt und dabei den auf der Anzeige 1235 angezeigten Offset auswählt, sendet der Player sofort eine Play-from-Offset-Anforderung an den Videoserver, um das Streaming ab dem ersten GOP-Header vor dem vom Benutzer angeforderten Zeitcode zu beginnen. Als erstes muss der Player den angeforderten Zeitcode in eine GOP-Offset-Adresse konvertieren, indem er eine Binärsuche ausführt, um den Bereich der Einträge der GOP-Offset-Tabelle 815 zu durchsuchen. Der Eintrag in der GOP-Offset-Tabelle, der dem angeforderten Zeitcode entspricht, wird durch den Vergleich des angeforderten Zeitcodes mit jedem GOP-Zeitcode 855 aus der Tabelle gefunden. Wenn der zugehörige Eintrag der GOP-Offset-Tabelle gefunden wurde, wird das GOP-Adressen-Offset 865 gelesen und zum Videoserver weitergeleitet. Ist der GOP-Zeitcode 855 nicht der angeforderte Zeitcode, subtrahiert der Player den GOP-Zeitcode 855 vom angeforderten Zeitcode, um die Anzahl der Video-Frames zu berechnen, die übersprungen werden müssen, um zu dem angeforderten Frame zu gelangen. Der Player unterdrückt eine Anzeige des Videos während des Überspringens, bis das angeforderte Frame erreicht wurde. Decodiert der Player eine lokal gespeicherte MPEG-Datei, lässt der Player den entsprechenden Dateilesezeiger sich selbst aktualisieren.
  • Wenn der Endbenutzer über die Schaltfläche Direktzugriff 1230 eine Play-from-Offset-Anforderung stellt, bevor das Video mit dem Streaming begonnen hat, und dabei das auf der Anzeige 1235 gezeigte Offset auswählt, gibt der Player zuerst die Playfrom-Offset-0-Anforderung an den Videoserver. Daraus, ergibt sich, dass der Videoserver die Füllpakete streamt, die die GOP-Offset-Tabelle enthalten, und damit dem MPEG-Decoder ermöglicht, die GOP-Offset-Tabelle zu erstellen. Sobald die Tabelle erstellt ist, gibt der Player den Play-from-Offset- Befehl sofort zurück an den Videoserver, um das Streaming ab dem ersten GOP-Header vor dem angeforderten Zeitcode zu beginnen.
  • Die vorangegangene Beschreibung der bevorzugten Ausführungsarten der Erfindung dient der Veranschaulichung und der Beschreibung. Es wird keine Vollständigkeit oder Beschränkung der Erfindung auf die präzise beschriebene Form beabsichtigt. Angesichts der obigen Darstellung sind viele Modifizierungen und Abwandlungen möglich. Es wird beabsichtigt, dass der Geltungsbereich der Erfindung nicht durch diese detaillierte Beschreibung beschränkt, sondern durch die beiliegenden Ansprüche festgelegt wird.

Claims (15)

  1. Verfahren zur automatischen Einfügung einer komprimierten GOP-Offset-Tabelle in eine zuvor codierte MPEG-Videodatei, für einen bildgenauen, willkürlichen Zugriff auf jedes individuelle Video-Frame durch einen MPEG-Player/Decoder im Play-from-Offset-Modus, welches die folgenden Schritte umfasst: (a) Erzeugung einer komprimierten GOP-Offset-Tabelle mit einem Eintrag für jeden GOP-Header von jedem Videopaket der MPEG-Videodatei, um einen genauen SMPTE-Zeitcode und Adressen-Offsets der GOP-Header zu erhalten; und (b) Modifizierung der MPEG-Videodatei durch Einfügung der komprimierten GOP-Offset-Tabelle an den Anfang der MPEG-Videodatei als mindestens ein Füllpaket, während die ursprüngliche Frame-Darstellung der MPEG-Videodatei erhalten bleibt, wodurch die Erfüllung der MPEG-Anforderungen und die komprimierten Audio-/Videodaten der MPEG-Videodatei erhalten bleiben.
  2. Verfahren gemäß Anspruch 1, das des Weiteren einen Schritt für die Schätzung der Anzahl der Füllpakete umfasst, die für die GOP-Offset-Tabelle benötigt werden, wodurch das Lesen der MPEG-Videodatei auf einen einzigen Lesevorgang begrenzt wird.
  3. Verfahren gemäß Anspruch 1, wobei einigen Füllpaketen mit der komprimierten GOP-Offset-Tabelle ein Pack-Header mit Systemuhrbezug (SCR) vorausgeht, und die Füllpakete des Weiteren Folgendes umfassen: einen Standard-PES-Header, eine Offset-Tabellensignatur, ein Feld für den Start-Zeitcode und ein Feld für die GOP-Startadresse.
  4. Verfahren gemäß Anspruch 3, wobei jeder der GOP-Header-Einträge des Weiteren Folgendes umfasst: ein Feld für die Anzahl der Frames innerhalb einer vorangegangenen GOP und ein Feld für ein GOP-Adressen-Offset mit einer Offset-Adresse des dem GOP-Header entsprechenden Pack-Headers, für die Resynchronisierung eines MPEG-Player/Decodertakts vor der Decodierung der GOP-Offset-Tabelle und für die Rekonstruktion des Zeitcodes und Adressen-Offsets jedes GOP-Headers während der Dekomprimierung und Decodierung durch den MPEG-Player/Decoder, indem die Anzahl der Frames und der Adressen-Offset jedes GOP-Header-Eintrags jeweils zum Start-Zeitcode und zur GOP-Startadresse addiert werden, und zur Ermöglichung von willkürlichem Zugriff auf jedes individuelle Video-Frame im Play-from-Offset-Modus.
  5. Verfahren gemäß Anspruch 3, das des weiteren einen Schritt für die zeitlich rückwirkende SCR-Anpassung nach der Einfügung der GOP-Offset-Tabelle umfasst, um eine genaue Systemtaktung zu erhalten.
  6. System zur automatischen Einfügung einer komprimierten GOP-Offset-Tabelle in eine zuvor codierte MPEG-Videodatei, für einen bildgenauen, willkürlichen Zugriff auf jedes individuelle Video-Frame durch einen MPEG-Player/Decoder im Play-from-Offset-Modus, welches Folgendes umfasst: einen mit einer elektronischen Speichervorrichtung für die Speicherung der MPEG-Videodatei verbundenen Computer; vom Computer ausgeführte Programmiermittel zur Erzeugung einer komprimierten GOP-Offset-Tabelle mit einem Eintrag für jeden GOP-Header von jedem Videopaket der MPEG-Videodatei, um einen genauen SMPTE-Zeitcode und die Adressen-Offsets der GOP-Header zu erhalten; und vom Computer ausgeführte Programmiermittel für die Modifizierung der MPEG-Videodatei durch Einfügung der komprimierten GOP-Offset-Tabelle an den Anfang der MPEG-Videodatei als mindestens ein Füllpaket, während die ursprüngliche Frame-Darstellung der MPEG-Videodatei erhalten bleibt, wodurch die die Erfüllung der MPEG-Anforderungen und die komprimierten Audio-/Videodaten der MPEG-Videodatei erhalten bleiben.
  7. System gemäß Anspruch 6, das des Weiteren Mittel zur Schätzung der Anzahl der Füllpakete umfasst, die für die GOP-Offset-Tabelle gebraucht werden, wodurch das Lesen der MPEG-Videodatei auf einen einzigen Lesevorgang begrenzt wird.
  8. System gemäß Anspruch 6, wobei einigen Füllpaketen mit der komprimierten GOP-Offset-Tabelle ein Pack-Header mit Systemuhrbezug (SCR) vorausgeht, und die Füllpakete des Weiteren Folgendes umfassen: einen Standard-PES-Header, eine Offset-Tabellensignatur, ein Feld für den Start-Zeitcode und ein Feld für die GOP-Startadresse.
  9. System gemäß Anspruch 8, wobei jeder der GOP-Header-Einträge des Weiteren Folgendes umfasst: ein Feld für die Anzahl der Frames innerhalb einer vorangegangenen GOP, und ein Feld für ein GOP-Adressen-Offset mit einer Offset-Adresse des dem GOP-Header entsprechenden Pack-Headers, für die Resynchronisierung eines MPEG-Player/Decodertakts vor der Decodierung der GOP-Offset-Tabelle und für die Rekonstruktion des Zeitcodes und Adressen-Offsets jedes GOP-Headers während der Dekomprimierung und Decodierung durch den MPEG-Player/Decoder, indem die Anzahl der Frames und der Adressen-Offset jedes GOP-Header-Eintrags jeweils zum Start-Zeitcode und zur GOP-Startadresse addiert werden, und zur Ermöglichung von willkürlichem Zugriff auf jedes individuelle Video-Frame im Play-from-Offset-Modus.
  10. System gemäß Anspruch 8, dass des Weiteren Mittel für die zeitlich rückwirkende SCR-Anpassung nach der Einfügung der GOP-Offset-Tabelle umfasst, um eine genaue Systemtaktung zu erhalten.
  11. Computerprogrammprodukt, das auf einem von einem Computer verwendbaren Medium gespeichert ist und computerlesbare Programmmittel enthält, um einen Computer zu Verfahrensschritten zur automatischen Einfügung einer komprimierten GOP-Offset-Tabelle in eine vorher codierte MPEG-Videodatei zu veranlassen, für einen bildgenauen, willkürlichen Zugang zu jedem individuellen Video-Frame durch einen MPEG-Player/Decoder im Play-from-Offset-Modus, wobei die MPEG-Videodatei in einer mit dem Computer verbundenen elektronischen Speichervorrichtung gespeichert ist, und wobei das Verfahren die folgenden Schritte umfasst: (a) Erzeugung einer komprimierten GOP-Offset-Tabelle mit einem Eintrag für jeden GOP-Header von jedem Videopaket der MPEG-Videodatei, um einen genauen SMPTE-Zeitcode und Adressen-Offsets der GOP-Header zu erhalten; und (b) Modifizierung der MPEG-Videodatei durch Einfügung der komprimierten GOP-Offset-Tabelle an den Anfang der MPEG-Videodatei als mindestens ein Füllpaket, während die ursprüngliche Frame-Darstellung der MPEG-Videodatei erhalten bleibt, wodurch die Erfüllung der MPEG-Anforderungen und die komprimierten Audio-/Videodaten der MPEG-Videodatei erhalten bleiben.
  12. Computerprogrammprodukt gemäß Anspruch 11, das des Weiteren einen Schritt für die Schätzung einer Anzahl von Füllpaketen umfasst, die für die GOP-Offset-Tabelle benötigt werden, wodurch das Lesen der MPEG-Videodatei auf einen einzigen Lesevorgang begrenzt wird.
  13. Computerprogrammprodukt gemäß Anspruch 11, wobei einigen Füllpaketen mit der komprimierten GOP-Offset-Tabelle ein Pack-Header mit Systemuhrbezug (SCR) vorausgeht, und die Füllpakete des Weiteren Folgendes umfassen: einen Standard-PES-Header, eine Offset-Tabellensignatur, ein Feld für den Start-Zeitcode und ein Feld für die GOP-Startadresse.
  14. Computerprogrammprodukt gemäß Anspruch 13, wobei jeder der GOP-Header-Einträge des Weiteren Folgendes umfasst: ein Feld für die Anzahl der Frames innerhalb einer vorangegangenen GOP, und ein Feld für ein GOP-Adressen-Offset mit einer Offset-Adresse des dem GOP-Header entsprechenden Pack-Headers, für die Resynchronisierung eines MPEG-Player/Decodertakts vor der Decodierung der GOP-Offset-Tabelle und für die Rekonstruktion des Zeitcodes und Adressen-Offsets jedes GOP-Headers während der Dekomprimierung und Decodierung durch den MPEG-Player/Decoder, indem die Anzahl der Frames und der Adressen-Offset jedes GOP-Header-Eintrags jeweils zum Start-Zeitcode und zur GOP-Startadresse addiert wird, und zur Ermöglichung von willkürlichem Zugriff auf jedes individuelle Video-Frame im Play-from-Offset-Modus.
  15. Computerprogrammprodukt gemäß Anspruch 13, das des Weiteren einen Schritt für die zeitlich rückwirkende SCR-Anpassung nach der Einfügung der GOP-Offset-Tabelle umfasst, um eine genaue Systemtaktung zu erhalten.
DE60102831T 2000-09-15 2001-09-13 System und verfahren zur verarbeitung von mpeg-stroemen fuer die einfuegung von dateiindex Expired - Lifetime DE60102831T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US23289300P 2000-09-15 2000-09-15
US232893P 2000-09-15
US09/860,700 US7212726B2 (en) 2000-09-15 2001-05-18 System and method of processing MPEG streams for file index insertion
US860700 2001-05-18
PCT/EP2001/010553 WO2002025949A2 (en) 2000-09-15 2001-09-13 System and method of processing mpeg streams for file index insertion

Publications (2)

Publication Number Publication Date
DE60102831D1 DE60102831D1 (de) 2004-05-19
DE60102831T2 true DE60102831T2 (de) 2005-06-23

Family

ID=26926428

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60102831T Expired - Lifetime DE60102831T2 (de) 2000-09-15 2001-09-13 System und verfahren zur verarbeitung von mpeg-stroemen fuer die einfuegung von dateiindex

Country Status (10)

Country Link
US (1) US7212726B2 (de)
EP (1) EP1329108B1 (de)
JP (1) JP3771902B2 (de)
KR (1) KR100592750B1 (de)
CN (1) CN100391260C (de)
AT (1) ATE264594T1 (de)
AU (1) AU2002213908A1 (de)
CA (1) CA2420019C (de)
DE (1) DE60102831T2 (de)
WO (1) WO2002025949A2 (de)

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721780B1 (en) * 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
US7213075B2 (en) * 2000-12-15 2007-05-01 International Business Machines Corporation Application server and streaming server streaming multimedia file in a client specific format
US7269784B1 (en) 2001-01-22 2007-09-11 Kasriel Stephane Server-originated differential caching
US7185063B1 (en) 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
US7092997B1 (en) * 2001-08-06 2006-08-15 Digital River, Inc. Template identification with differential caching
US7188214B1 (en) 2001-08-07 2007-03-06 Digital River, Inc. Efficient compression using differential caching
EP1286351B1 (de) * 2001-08-21 2012-08-08 Thomson Licensing Datei- und Inhaltsverwaltung
US7149750B2 (en) * 2001-12-19 2006-12-12 International Business Machines Corporation Method, system and program product for extracting essence from a multimedia file received in a first format, creating a metadata file in a second file format and using a unique identifier assigned to the essence to access the essence and metadata file
US7296051B1 (en) 2002-02-19 2007-11-13 Digital River, Inc. Predictive predownload of templates with delta encoding
US7487261B1 (en) 2002-02-22 2009-02-03 Digital River, Inc. Delta caching service
EP1508245A1 (de) * 2002-05-28 2005-02-23 Matsushita Electric Industrial Co., Ltd. Datenwiedergabeeinrichtung für bewegliche bilder mit verbessertem direktzugriff
WO2004019612A1 (ja) * 2002-07-12 2004-03-04 Matsushita Electric Industrial Co., Ltd. 再生装置
US20040047424A1 (en) * 2002-10-15 2004-03-11 Kumar Ramaswamy System and method for transmitting digital video files with error recovery
US20040177383A1 (en) * 2003-01-24 2004-09-09 Chyron Corporation Embedded graphics metadata
US7835437B1 (en) * 2003-03-10 2010-11-16 Ji Zhang Statistical remultiplexing of compressed video segments
US20040181545A1 (en) * 2003-03-10 2004-09-16 Yining Deng Generating and rendering annotated video files
US7606472B2 (en) * 2003-05-30 2009-10-20 Canon Kabushiki Kaisha Video stream data recording apparatus
US7349395B2 (en) * 2003-06-23 2008-03-25 Microsoft Corporation System, method, and computer program product for parsing packetized, multi-program transport stream
US8345754B2 (en) * 2003-09-07 2013-01-01 Microsoft Corporation Signaling buffer fullness
US8582659B2 (en) * 2003-09-07 2013-11-12 Microsoft Corporation Determining a decoding time stamp from buffer fullness
CN1209703C (zh) * 2003-10-16 2005-07-06 上海广电(集团)有限公司中央研究院 一种可随机访问数据流的组织方法及其对应的解码方法
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
EP1583005A3 (de) * 2004-04-02 2007-01-10 Samsung Electronics Co., Ltd. Verfahren, Vorrichtung und Speichermedium zur Verwaltung von digitalen Inhalten in Multimediageräten
US20080320008A1 (en) * 2004-06-15 2008-12-25 Lee Cheng Yu Video Recording Device
WO2006003814A1 (ja) 2004-07-01 2006-01-12 Mitsubishi Denki Kabushiki Kaisha ランダムアクセス可能な映像情報記録媒体、及び記録方法、及び再生装置及び再生方法
EP1817904A4 (de) * 2004-12-02 2009-12-30 Nokia Corp Verbesserter elektronischer service-anleitungs-container
US8340130B2 (en) * 2005-01-14 2012-12-25 Citrix Systems, Inc. Methods and systems for generating playback instructions for rendering of a recorded computer session
US20060161671A1 (en) * 2005-01-14 2006-07-20 Citrix Systems, Inc. Method and systems for capture and replay of remote presentation protocol data
US20060159432A1 (en) 2005-01-14 2006-07-20 Citrix Systems, Inc. System and methods for automatic time-warped playback in rendering a recorded computer session
US8145777B2 (en) * 2005-01-14 2012-03-27 Citrix Systems, Inc. Method and system for real-time seeking during playback of remote presentation protocols
US8200828B2 (en) 2005-01-14 2012-06-12 Citrix Systems, Inc. Systems and methods for single stack shadowing
DE602006021390D1 (de) 2005-01-14 2011-06-01 Citrix Systems Inc Verfahren und System zur adaptiven Erzeugung von Schnappschüsse des Zustandes eines Fernpräsentationsprotokolls
KR100652956B1 (ko) * 2005-01-14 2006-12-01 삼성전자주식회사 비디오 수신지연 알림방법 및 이를 적용한 방송수신장치
US7831728B2 (en) * 2005-01-14 2010-11-09 Citrix Systems, Inc. Methods and systems for real-time seeking during real-time playback of a presentation layer protocol data stream
US8230096B2 (en) * 2005-01-14 2012-07-24 Citrix Systems, Inc. Methods and systems for generating playback instructions for playback of a recorded computer session
US7996549B2 (en) * 2005-01-14 2011-08-09 Citrix Systems, Inc. Methods and systems for recording and real-time playback of presentation layer protocol data
US8296441B2 (en) 2005-01-14 2012-10-23 Citrix Systems, Inc. Methods and systems for joining a real-time session of presentation layer protocol data
US8935316B2 (en) 2005-01-14 2015-01-13 Citrix Systems, Inc. Methods and systems for in-session playback on a local machine of remotely-stored and real time presentation layer protocol data
US8812433B2 (en) * 2005-02-07 2014-08-19 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US7778976B2 (en) * 2005-02-07 2010-08-17 Mimosa, Inc. Multi-dimensional surrogates for data management
US8275749B2 (en) * 2005-02-07 2012-09-25 Mimosa Systems, Inc. Enterprise server version migration through identity preservation
US8799206B2 (en) * 2005-02-07 2014-08-05 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US7657780B2 (en) * 2005-02-07 2010-02-02 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US8161318B2 (en) * 2005-02-07 2012-04-17 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US8543542B2 (en) * 2005-02-07 2013-09-24 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
US7870416B2 (en) * 2005-02-07 2011-01-11 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US8918366B2 (en) * 2005-02-07 2014-12-23 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
US7917475B2 (en) * 2005-02-07 2011-03-29 Mimosa Systems, Inc. Enterprise server version migration through identity preservation
US8271436B2 (en) * 2005-02-07 2012-09-18 Mimosa Systems, Inc. Retro-fitting synthetic full copies of data
US8171169B2 (en) * 2005-03-14 2012-05-01 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment
CN102685562B (zh) * 2005-03-14 2016-06-08 尼尔逊媒介研究股份有限公司 用于媒体信号的压缩域编码设备和方法
US8423673B2 (en) 2005-03-14 2013-04-16 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment using compression
US20070005333A1 (en) * 2005-06-30 2007-01-04 Benard Setiohardjo Analog tape emulation
WO2007073420A1 (en) * 2005-08-24 2007-06-28 Peter Renzi Streaming video network system
US8191008B2 (en) 2005-10-03 2012-05-29 Citrix Systems, Inc. Simulating multi-monitor functionality in a single monitor environment
US8949235B2 (en) 2005-11-15 2015-02-03 Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. Methods and systems for producing a video synopsis using clustering
EP1955205B1 (de) * 2005-11-15 2012-08-29 Yissum Research Development Company Of The Hebrew University Of Jerusalem Verfahren und system zum produzieren einer videosynopse
US7683943B2 (en) * 2005-12-22 2010-03-23 Canon Kabushiki Kaisha Image recording apparatus, image reproducing apparatus, method of controlling image recording apparatus, method of controlling image reproducing apparatus, computer program, and recording medium
JP2007213772A (ja) * 2006-01-11 2007-08-23 Sony Corp 記録転送プログラム、記録転送装置及び記録転送方法
WO2007106844A2 (en) 2006-03-14 2007-09-20 Divx, Inc. Federated digital rights management scheme including trusted systems
US9083994B2 (en) * 2006-09-26 2015-07-14 Qualcomm Incorporated Method and system for error robust audio playback time stamp reporting
EP4184341A1 (de) 2007-01-05 2023-05-24 DivX, LLC Videoverteilungssystem mit progressiver wiedergabe
CN101321265B (zh) * 2007-06-07 2011-03-16 中兴通讯股份有限公司 对等网络媒体点播跨帧播放方式的实现方法及系统
KR20100106327A (ko) 2007-11-16 2010-10-01 디브이엑스, 인크. 멀티미디어 파일을 위한 계층적 및 감소된 인덱스 구조
US8107754B2 (en) * 2007-12-07 2012-01-31 Mediatek Inc. Systems and methods for randomly accessing compressed images
JP2009246801A (ja) * 2008-03-31 2009-10-22 Fujitsu Microelectronics Ltd 分割されたパケットの暗号化方法、分割暗号化パケットの復号方法、暗号化装置及びプログラム
CN102084355B (zh) * 2008-04-17 2016-11-23 索尼公司 多媒体内容的双类型重放
US20110246603A1 (en) * 2008-09-05 2011-10-06 The Chinese University Of Hong Kong Methods and devices for live streaming using pre-indexed file formats
US9060187B2 (en) 2008-12-22 2015-06-16 Netflix, Inc. Bit rate stream switching
ES2361104B1 (es) * 2009-03-31 2012-04-19 Telefónica, S.A. Terminal óptico de red. terminador óptico de l�?nea y método de transmisión/recepción de canales de televisión digital en una red óptica pasiva.
CA2782825C (en) 2009-12-04 2016-04-26 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
EP2649798A4 (de) * 2010-12-06 2017-06-07 Oracle International Corporation Medienplattform-integrationssystem
US8738163B2 (en) * 2010-12-28 2014-05-27 Channel D Corporation Proxy file pointer method for redirecting access for incompatible file formats
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US8812662B2 (en) 2011-06-29 2014-08-19 Sonic Ip, Inc. Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content
CN108989847B (zh) 2011-08-30 2021-03-09 帝威视有限公司 用于编码和流处理视频的系统和方法
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8787570B2 (en) 2011-08-31 2014-07-22 Sonic Ip, Inc. Systems and methods for automatically genenrating top level index files
US8799647B2 (en) 2011-08-31 2014-08-05 Sonic Ip, Inc. Systems and methods for application identification
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8615159B2 (en) 2011-09-20 2013-12-24 Citrix Systems, Inc. Methods and systems for cataloging text in a recorded session
KR102157107B1 (ko) * 2011-11-29 2020-09-17 스포티파이 에이비 멀티 디바이스의 보안 애플리케이션 통합을 갖춘 컨텐츠 공급자
DE102012201534B4 (de) * 2011-12-09 2018-08-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zur Zwischenspeicherung einer skalierbaren Original-Datei
DE102012201530A1 (de) * 2011-12-22 2013-06-27 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Cachevorrichtung zum zwischenspeichern
US20130179199A1 (en) 2012-01-06 2013-07-11 Rovi Corp. Systems and methods for granting access to digital content using electronic tickets and ticket tokens
WO2013146407A1 (ja) * 2012-03-26 2013-10-03 三菱電機株式会社 映像送受信システム、映像送信方法、および、送信装置
US9936267B2 (en) 2012-08-31 2018-04-03 Divx Cf Holdings Llc System and method for decreasing an initial buffering period of an adaptive streaming system
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9100687B2 (en) 2013-05-31 2015-08-04 Sonic Ip, Inc. Playback synchronization across playback devices
US9473732B2 (en) * 2013-05-31 2016-10-18 Arris Enterprises, Inc. Self correcting record pipeline
US9380099B2 (en) 2013-05-31 2016-06-28 Sonic Ip, Inc. Synchronizing multiple over the top streaming clients
US9386067B2 (en) 2013-12-30 2016-07-05 Sonic Ip, Inc. Systems and methods for playing adaptive bitrate streaming content by multicast
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
SG11201609457UA (en) 2014-08-07 2016-12-29 Sonic Ip Inc Systems and methods for protecting elementary bitstreams incorporating independently encoded tiles
WO2016112112A1 (en) 2015-01-06 2016-07-14 Sonic Ip, Inc. Systems and methods for encoding and sharing content between devices
GB2535737B (en) * 2015-02-25 2021-08-04 Advanced Risc Mach Ltd Tracing the data processing activities of a data processing apparatus
WO2016138493A1 (en) 2015-02-27 2016-09-01 Sonic Ip, Inc. Systems and methods for frame duplication and frame extension in live video encoding and streaming
CN106162299B (zh) * 2015-03-31 2020-04-17 青岛海信电器股份有限公司 一种osd动画素材数据的播放方法和装置
FR3041850B1 (fr) 2015-09-30 2018-05-25 Vogo Procede d'encodage de flux de donnees video basees sur des groupements d'images (gop)
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10129574B2 (en) 2016-05-24 2018-11-13 Divx, Llc Systems and methods for providing variable speeds in a trick-play mode
US10231001B2 (en) 2016-05-24 2019-03-12 Divx, Llc Systems and methods for providing audio content during trick-play playback
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
CN106657857B (zh) * 2017-01-16 2019-05-24 浙江大华技术股份有限公司 一种摄像机的录像回放方法、录像方法及其装置
US11482256B2 (en) 2017-01-16 2022-10-25 Zhejiang Dahua Technology Co., Ltd. Systems and methods for video replaying
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10715498B2 (en) 2017-07-18 2020-07-14 Google Llc Methods, systems, and media for protecting and verifying video files
US10735826B2 (en) * 2017-12-20 2020-08-04 Intel Corporation Free dimension format and codec
EP4398582A3 (de) 2019-03-21 2024-08-07 DivX, LLC Systeme und verfahren für multimediaschwarm
US11315606B1 (en) 2019-09-25 2022-04-26 Amazon Technologies, Inc. Timecode generation and assignment
CN112437240B (zh) * 2021-01-27 2021-04-09 南京美乐威电子科技有限公司 视频帧和时间码绑定方法、视频文件录制方法和编码器
CN115119009B (zh) * 2022-06-29 2023-09-01 北京奇艺世纪科技有限公司 视频对齐方法、视频编码方法、装置及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2785220B2 (ja) * 1992-09-22 1998-08-13 ソニー株式会社 データ符号化装置および方法、並びにデータ復号化装置および方法
JP3264290B2 (ja) 1992-09-22 2002-03-11 ソニー株式会社 復号方法および復号装置
US5991502A (en) * 1993-10-04 1999-11-23 Matsushita Electric Industrial Co., Ltd. Optical recording device which calculates distances between I-frames and records I-frame addresses in a sector
JPH08106735A (ja) 1994-10-04 1996-04-23 Sony Corp 再生装置
GB2294173B (en) * 1994-10-11 1998-12-09 Mitsubishi Electric Corp Disk media, and method of and device for recording and playing back information on or from a disk media
US6009237A (en) * 1995-02-24 1999-12-28 Hitachi Ltd. Optical disk and optical disk reproduction apparatus
DE69603587T2 (de) 1995-03-20 2000-03-30 Matsushita Electric Industrial Co., Ltd. Vorrichtung und verfahren zur aufnahme bildbetreffender informationen
US5812791A (en) 1995-05-10 1998-09-22 Cagent Technologies, Inc. Multiple sequence MPEG decoder
KR100421522B1 (ko) * 1995-08-21 2004-05-31 마츠시타 덴끼 산교 가부시키가이샤 특수재생을도입한시청형태를제작자가자유롭게코디네이트할수있는멀티미디어광디스크및그재생장치와재생방법
US6041345A (en) 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
JPH09288677A (ja) 1996-04-19 1997-11-04 Sony Corp 情報統合表示方法及び装置、情報統合表示システム
US6233389B1 (en) * 1998-07-30 2001-05-15 Tivo, Inc. Multimedia time warping system

Also Published As

Publication number Publication date
EP1329108B1 (de) 2004-04-14
AU2002213908A1 (en) 2002-04-02
US7212726B2 (en) 2007-05-01
KR100592750B1 (ko) 2006-06-26
ATE264594T1 (de) 2004-04-15
JP3771902B2 (ja) 2006-05-10
CN1459198A (zh) 2003-11-26
CA2420019C (en) 2007-02-06
KR20030061803A (ko) 2003-07-22
CN100391260C (zh) 2008-05-28
CA2420019A1 (en) 2002-03-28
EP1329108A2 (de) 2003-07-23
US20020048450A1 (en) 2002-04-25
JP2004509580A (ja) 2004-03-25
WO2002025949A2 (en) 2002-03-28
WO2002025949A3 (en) 2002-08-15
DE60102831D1 (de) 2004-05-19

Similar Documents

Publication Publication Date Title
DE60102831T2 (de) System und verfahren zur verarbeitung von mpeg-stroemen fuer die einfuegung von dateiindex
DE60210611T2 (de) Effizientes übertragen und abspielen digitaler information
US6738427B2 (en) System and method of processing MPEG streams for timecode packet insertion
DE69811386T2 (de) Verfahren und vorrichtung zur gleichzeitigen codierung und markierung von digitalen videodaten
US6760042B2 (en) System and method of processing MPEG streams for storyboard and rights metadata insertion
DE69633552T2 (de) Verfahren und vorrichtung zum bildgenauen zugriff auf digitale audiovisuelle information
DE69837726T2 (de) Verfahren und Vorrichtung zum Realisieren einer nahtlosen Wiedergabe von kontinuierlichen Medien-Zuführungen
DE60007876T2 (de) Digitales videoverarbeitungs- und schnittstellensystem für video-, audio- und zusatzdaten
DE69812994T2 (de) Verfahren und vorrichtung für nicht-sequentiellen zugang zu einem laufenden videoprogramm
DE69727372T2 (de) System und verfahren zur erzeugung von trickwiedergabe-videodatenströmen aus einem komprimierten normalwiedergabe-videodatenstrom
US7831127B2 (en) Combining video material and data
DE69900031T2 (de) Optische Scheibe, Vorrichtung und Verfahren zur Aufnahme auf einer optischen Scheibe
DE69910682T2 (de) Aufzeichnungsmedium, Datenaufzeichnungseinheit und Datenwiedergabeeinheit zum Lesen vom und Schreiben auf dem Aufzeichnungsmedium
DE69911551T2 (de) Medium zur Aufnahme von Informationen, Vorrichtung und Verfahren zur Datenaufnahme oder -wiedergabe von diesem
DE60013624T2 (de) Trickwiedergabesignalerzeugung für einen digitalen videorekorder
DE69528091T2 (de) Verfahren und Vorrichtung zum Aufzeichnen und Wiedergeben von komprimierten Videodaten
US20040240541A1 (en) Method and system for direct ingest and storage of digital video content with immediate access to content for browsing and editing
DE69903654T2 (de) Verfahren und vorrichtung zur zeitstempelung eines aufzuzeichnenden bitstroms
DE60223483T2 (de) Verfahren zum aufzeichenen eines digitalen Rundfunkprogramms und zeitbasierter Wiedergabe eines aufgezeichneten Rundfunkprogramms und zugehörige Vorrichtung
CN110740391B (zh) 一种修复mp4损坏文件的方法
US10446188B2 (en) Method and apparatus for low latency non-linear media editing using file-based inserts into finalized digital multimedia files
US20110222835A1 (en) Application Tracks in Audio/Video Containers
US7689619B2 (en) Process and format for reliable storage of data
DE10355345A1 (de) Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom
US8200067B2 (en) Processing of scalable compressed video data formats for nonlinear video editing systems

Legal Events

Date Code Title Description
8332 No legal effect for de
8370 Indication related to discontinuation of the patent is to be deleted
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7