DE69723003T2 - Verfahren zur datenverschachtelung für die kontinuierliche wiedergabe von mehreren programmversionen mit demselben material - Google Patents

Verfahren zur datenverschachtelung für die kontinuierliche wiedergabe von mehreren programmversionen mit demselben material Download PDF

Info

Publication number
DE69723003T2
DE69723003T2 DE69723003T DE69723003T DE69723003T2 DE 69723003 T2 DE69723003 T2 DE 69723003T2 DE 69723003 T DE69723003 T DE 69723003T DE 69723003 T DE69723003 T DE 69723003T DE 69723003 T2 DE69723003 T2 DE 69723003T2
Authority
DE
Germany
Prior art keywords
data
type
block
version
segments
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
DE69723003T
Other languages
English (en)
Other versions
DE69723003D1 (de
Inventor
S. Lewis OSTROVER
B. Gregory THAGARD
III Joseph E. WALL
J. Christopher COOKSON
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.)
Warner Bros Home Entertainment Inc
Original Assignee
Time Warner Entertainment Co LP
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
Priority claimed from US08/604,303 external-priority patent/US5644507A/en
Application filed by Time Warner Entertainment Co LP filed Critical Time Warner Entertainment Co LP
Publication of DE69723003D1 publication Critical patent/DE69723003D1/de
Application granted granted Critical
Publication of DE69723003T2 publication Critical patent/DE69723003T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B20/1251Formatting, e.g. arrangement of data block or words on the record carriers on discs for continuous data, e.g. digitised analog information signals, pulse code modulated [PCM] data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/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/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • 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/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8227Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being at least another television signal
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • H04N2005/91307Television signal processing therefor for scrambling ; for copy protection by adding a copy protection signal to the video signal
    • H04N2005/91321Television signal processing therefor for scrambling ; for copy protection by adding a copy protection signal to the video signal the copy protection signal being a copy protection control signal, e.g. a record inhibit signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/806Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal
    • H04N9/8063Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal using time division multiplex of the PCM audio and PCM video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8211Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being a sound signal
    • H04N9/8216Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being a sound signal using time division multiplex
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8233Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being a character code signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/87Regeneration of colour television signals
    • H04N9/877Regeneration of colour television signals by assembling picture element blocks in an intermediate memory

Description

  • Beschreibung
  • Die Erfindung bezieht sich auf das Abspielen von Softwareträgern (beispielsweise kinematographischen Bildern), und insbesondere bezieht sich die Erfindung auf ein Verfahren zur Datenverschachtelung auf einem Träger für die kontinuierliche Wiedergabe von mehreren Programmversionen mit demselben Material.
  • Hintergrund der Erfindung
  • In der Patentschrift Nr. 5 463 565 mit dem Titel „Data Block Format for Software Carrier and Player Therefor", erteilt am 31. Oktober 1995 in Namen von Cookson and Ostrover (dieses wird im Folgenden als das „'565-Patent" bezeichnet) ist ein optischer Disk-Player beschrieben, der in der Lage ist, eine von zwei Versionen der gleichen bewegten Bilder wiederzugeben. Die bewegten Bilder werden auf der Disk als „compressed video" in Form aufeinanderfolgender Datenblöcke in einer einzelnen Spur repräsentiert, wobei jeder Block möglicherweise eine Video-Information, eine Audio-Information, eine subtile Information und dergleichen enthält. Das '565-Patent beschreibt, wie eine große Datenmenge auf einer Disk repräsentiert werden kann, die nicht größer ist als die heutzutage geläufigen Audio-CDs. Es ist nicht nur möglich, Tonspuren in mehreren Sprachen anzubringen, sondern es ist sogar möglich, zwei Versionen des gleichen kinematographischen Films zu speichern, z. B. einen R-Standard und einen PG-Standard.
  • Zwei Versionen des gleichen kinematographischen Films enthalten gewöhnlich eine große Menge von gemeinsamem Material. Dies gilt insbesondere für R-Standard- und PG-Standard-Versionen des gleichen Programms, aber das Gleiche trifft zu für andere Beispiele von Mehrfach-Versionen (wenigstens zwei) des gleichen Programmmaterials. Beispielsweise könnte die gleiche Disk Lehr- und Testmaterialien mit einem Buchthema enthalten, das beiden Versionen gemeinsam ist. Um die redundante Speicherung von Daten zu minimieren; werden drei Typen von Datenblöcken in der gleichen Spur in einer verschachtelten Weise B vorgesehen, wobei Blöcke vorhanden sind, die Material enthalten, das der einen Version eigen ist und Blöcke, die Material enthalten, das der anderen Version eigen ist, wobei schließlich noch Blöcke vorgesehen sind, die Material enthalten, das beiden Versionen eigen ist. Durch Benutzung dieser Art von Datenspeichern, wie dies in der EP 0 847 197 A1 beschrieben ist, wird es möglich, die gewählten Szenen ohne Datenunterbrechungen zu reproduzieren, indem intermittierend auf die Daten zugegriffen und diese dekodiert werden, die für gewählte Szenen spezifisch sind, wobei verschachtelte Dateneinheiten benutzt werden. Eine Reihe von Codes und Markierungen, die in jedem Block enthalten sind, ermöglichen ein Abspielen der gemeinsamen Blöcke, wenn eine der Versionen abgespielt wird und es werden dabei nur die Blöcke des einen der zwei Typen abgespielt, je nachdem, welche Version gewählt wurde. Die Blöcke, die Daten enthalten, die der nicht gewählten Version zugeordnet sind, werden übersprungen.
  • Wenn mehr als eine Programmversion von einem optischen digitalen Disk-System abgenommen werden soll, können Umstände auftreten, wo mechanische und Puffer-Management-Begrenzungen sonst die kontinuierliche Abspielung der alternativen Versionen verhindern könnten. Der Ausdruck „kontinuierliches Abspielen" bezieht sich auf genügende Daten, die jeweils in den notwendigen Puffern verfügbar sind, um eine kontinuierliche Abspielung ohne erkennbare Unterbrechungen zu erzeugen, selbst wenn der Wiedergabekopf über nicht gewählte Datenblöcke springen muss. Während der Wiedergabekopf über eine nicht gewählte Sequenz von Datenblöcken springt, werden Daten für die abzuspielende Version durch Puffer geliefert, die ergänzt wurden, bevor der Start eines Sprunges beginnt. Wenn jedoch eine Folge von Datenblöcken, die übersprungen werden muss, sehr lang ist, dann kann der Lesekopf möglicherweise nicht in der Lage sein, sich selbst schnell genug in die richtige Stellung zurück zu bewegen, um Daten für einen speziellen Puffer (Video, Audio usw.) zu beschaffen, der während des Sprunges geleert wurde. In einem solchen Fall kann in der Zeit, in der der Lesekopf sich repositioniert und beginnt, den leeren Speicher wieder zu füllen, der Schirm dunkelgesteuert sein oder die Tonspur kann angehalten sein.
  • Je größer die Puffer, desto größer ist natürlich die Datenmenge, die darin gespeichert werden kann und desto länger wird die zulässige Zeit für einen Sprung, ohne dass die Puffer erschöpft sind. Es gibt jedoch praktische Grenzen für die Größe der Puffer, wenn man beispielsweise einen kinematographischen Film betrachtet, wo nach einem gemeinsamen Material die Abspielung abzweigt, entweder nach einem 10-Minuten-Segment für eine Version eines 12-Minuten-Segmentes für ein weiteres, gefolgt von beiden Versionen, die einiges gleiches Material enthalten. Von vier aufeinanderfolgenden Blocksequenzen, die auf der Disk gespeichert sind, könnten die erste und letzte Sequenz gemeinsames Material enthalten, und die beiden mittleren Sequenzen könnten jeweils die Versionen enthalten. Beim Abspielen der Disk muss der Lesekopf über eine Blocksequenz springen, die entweder 10 Minuten oder 12 Minuten beträgt. Ein derart großer Sprung kann eine längere Zeit erfordern als einer oder mehrere der Puffer durchhalten können. In einem solchen Fall erfolgt die Abspielung nicht kontinuierlich. Es ist nicht praktikabel, dieses Problem dadurch zu vermeiden, dass man sagt, dass die Puffer größer sein sollten, weil die zusätzlichen Puffer in hohem Maße zu den Kosten des Abspielgerätes beitragen könnten und innerhalb praktischer Grenzen gibt es immer gewisse Mehrfach-Versions-Disks, die gerade nicht kontinuierlich abgespielt werden können.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung besteht in einem Verfahren zur Initialisierung oder Formatierung von Datenblocks auf einer Disk zur kontinuierlichen Abspielung beider Versionen eines Programms mit gemeinsamem Material, wie dies im Patentanspruch 1 definiert ist, und die Erfindung betrifft weiter ein Medium, wie dies im Patentanspruch 6 definiert ist. Wenn ein Teil eines zu überspringenden Programms zu lang ist, d. h. wenn der Abstand (gemessen zeitlich oder in der Länge) längs der Spur, über die der Lesekopf springen muss, so groß ist, dass sich der Lesekopf nicht selbst rechtzeitig repositionieren kann, um wieder Daten aus dem relevanten Puffer aufzunehmen, dann werden aufeinanderfolgende Datenblöcke, die die zwei Versionen repräsentieren, in Stücke zerhackt und in der Spur verschachtelt. Auf diese Weise werden, beispielsweise wenn die Version B abgespielt wird und die Blöcke A übersprungen werden müssen, die A-Blöcke alle so kurz, dass, wenn der Lesekopf einen B-Block ausliest, die Puffer alle genug Daten besitzen, um ein kontinuierliches Abspielen zu ermöglichen, ohne dass irgendein Puffer in der Zeit aufgebraucht wird, in der der Lesekopf sich selbst am Start des nächsten B-Blockes positioniert.
  • Das Problem bei dieser einfachen Anordnung besteht darin, dass die A-Datenblöcke nur so wenige sein können oder so kurz sein können, dass sie gerade die Puffer nicht genügend ergänzen können, um ein Überspringen der jeweiligen verschachtelten B-Blöcke zu ermöglichen. Noch schlechter ist die Gefahr, dass überhaupt kein A-Block vorhanden ist. In anderen Worten ausgedrückt: zwischen zwei aufeinanderfolgenden Blöcken oder Sequenzen von Blöcken, die gemeinsames (C) Material enthalten, kann ein B-Segment, aber kein A-Segment vorhanden sein. Wenn die Version A abgespielt wird, muss der Lesekopf über die Datenblöcke springen, die das gesamte B-Segment repräsentieren, und es kann gerade nicht möglich sein, ein kontinuierliches Abspielen von einer gemeinsamen Sequenz nach der nächsten Sequenz zu ermöglichen, wenn die Version A abgespielt wird und das B-Material übersprungen werden muss.
  • Das Grundprinzip der Erfindung besteht darin, dass in einem solchen Fall das gemeinsame Material, das sonst dem A-Material folgt, genommen wird, um es, wie in dem gerade für die A-Version-Datenblöcke beschrieben, zu benutzen. Wenn daher die A-Version abgespielt wird, dann gibt es Material, zu dem der Lesekopf Zugriff hat, bevor er über jede folgende Sequenz der B-Version-Datenblöcke springt. Wenn aber gemeinsames Material auf diese Weise vorgezogen und verschachtelt mit den B-Version-Datenblöcken gespeichert wird, dann wird dieses gemeinsame Material als Teil der Version A abgespielt, noch bevor der Lesekopf das gemeinsame Material erreicht, und um das gemeinsame Material von Anbeginn an abzuspielen, würde dies in einer Wiederholung des gerade Gesehenen resultieren. Aus diesem Grunde wird das Material am Start des gemeinsamen Segmentes, das vorgeschoben und als Blöcke für die A-Version benutzt wird, in Blöcken dupliziert, die die B-Version repräsentieren und vom gemeinsamen Material gelöscht. Auf diese Weise wird der Lesekopf den Start des verbleibenden gemeinsamen Materials erreichen, das noch nicht abgespielt war, und zwar unabhängig davon, welche Version gerade abgespielt wird. Es ist notwendig, eine gewisse Datenredundanz in die Disk-Formatierung einzubauen, weil gemeinsames Material, welches wirklich nur einmal in einem gemeinsamen Segment gespeichert war, in der Tat dort nicht gespeichert und stattdessen zweimal gespeichert wurde, nämlich einmal für jede der beiden Versionen. Die geringe Redundanz (die zu einem geringen. Verlust der Gesamt-Speicherkapazität führt) ermöglicht jedoch ein kontinuierliches Abspielen beider Versionen, unabhängig davon, wie lang ein Materialsegment ist, das während des Abspielens einer Version übersprungen werden muss. Ein Algorithmus zur Steuerung dieses „Datenvorschubs" wird weiter unten beschrieben. Er ist so ausgebildet, dass das Ausmaß der Redundanz minimiert wird.
  • Kurzbeschreibung der Zeichnungen
  • Weitere Ziele, Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung von Ausführungsbeispielen anhand der Zeichnung. In der Zeichnung zeigen:
  • 1 zeigt schematisch die Art der Sprünge, die erforderlich sind, wenn zwei Versionen des gleichen Programms, die gemeinsames Material besitzen, in einer einzigen Spur gespeichert werden;
  • 2A und 2B sind die gleichen Darstellungen wie die entsprechenden 7A und 7B des oben erwähnten '565-Patentes, wobei 2A ein Status-Diagramm und eine Erläuterung enthält, wodurch die Art und Weise charakterisiert wird, in der ein Disk-Player nur jene Datenblöcke auf einer Diskspur ausliest, die erforderlich sind, um eine gewählte Version eines Kinofilms oder einer anderen Video-Präsentation abzuspielen und wobei 2B die Art und Weise angibt, auf die eine von zwei verschiedenen Versionen abgespielt werden kann, indem die Regeln benutzt werden, die im Status-Diagramm nach 2A angegeben sind;
  • 3 entspricht der 2 in dem oben erwähnten '565-Patent und die Figur ist ein Blockschaltbild des Disk-Players (mit verschiedenen Puffern, deren Verständnis erforderlich ist, um die vorliegende Erfindung zu verstehen);
  • 4 ist ein vereinfachtes Diagramm längs der Linien gemäß 2B, und es werden zwei Fälle gezeigt, bei denen eine Pufferkapazität kein Problem ergibt;
  • 5 ist ein der 4 entsprechendes Diagramm, aber mit relativ einfachen Änderungen, und es wird gezeigt, wie lange Segmente ein Abspielen verursachen können, das nicht kontinuierlich verläuft;
  • 6 veranschaulicht das Verschachtelungs-Verfahren gemäß der Erfindung, wo ausreichend Programmmaterial sowohl in den A- als auch in den B-Segmenten zwischen zwei gemeinsamen C-Segmenten vorhanden ist;
  • 7 ist eine Fortsetzung von 6, jedoch wird hier das Verschachtelungs-Verfahren gemäß der Erfindung veranschaulicht, wenn eines der beiden Segmente nicht genügend Material aufweist, um die notwendige Verschachtelung zuzulassen;
  • 8 ist eine weitere Fortführung nach 7, und es wird hier ein extremer Fall veranschaulicht, bei dem gemeinsames Material redundant kodiert ist, um Sprünge über anderes redundant kodiertes gemeinsames Material zu ermöglichen;
  • 9 veranschaulicht eine weitere Erstreckung des Verschachtelungs-Verfahrens gemäß der Erfindung, und es wird ein extremer Fall gezeigt, bei dem das gemeinsame Material in einem gemeinsamen Segment redundant in Datenblöcken kodiert ist, die die beiden unterschiedlichen Versionen repräsentieren;
  • 10 veranschaulicht die Blocksegmente, die durch die Ausdrücke α und β(α) repräsentiert werden, wie diese in den Ablaufdiagrammen benutzt werden, die das Verfahren der Erfindung beschreiben;
  • die 11A und 11B veranschaulichen zwei alternative mathematische Beziehungen zwischen den Variablen α und β(α);
  • 12 veranschaulicht ein System, mit welchem das Verfahren der vorliegenden Erfindung ausgeführt werden kann, und es sind weiter verschiedene Listen und Quellmaterialien gezeigt, die im Einzelnen weiter unten beschrieben werden;
  • 13A und 13B veranschaulichen das bevorzugte Verfahren zur Redundant-Kodierung gemeinsamen Materials, um eine unterbrechungslose Abspielung von zwei Versionen des gleichen Materials zu gewährleisten.
  • Detaillierte Beschreibung des Ausführungsbeispiels der Erfindung
  • Das Problem, auf das die vorliegende Erfindung gerichtet ist
  • 1 veranschaulicht symbolisch aufeinanderfolgende Programmsegmente, die abzuspielen sind, wenn eine ausgewählte von zwei unterschiedlichen Versionen des gleichen Programmmaterials abgespielt werden soll. Wie dargestellt, gibt es fünf gemeinsame C-Segmente, die alle abgespielt werden müssen, gleichgültig, ob die Version A oder die Version B gewählt wurde. Die obere Zeile, die mit VERSION A gekennzeichnet ist, zeigt drei Segmente, die der Version A eigen sind. Die Segmente, die für diese Version nacheinander abgespielt werden müssen, sind CACACCAC . Die Version B erfordert andererseits das Abspielen unterschiedlicher eigener Segmente, wie dies in der mit VERSION B gekennzeichneten Zeile angegeben ist. Hier ist die korrekte Reihenfolge CBCCBCBC. In beiden Fällen zeigen die Pfeile die Flussrichtung von Segment zu Segment. Die C-Segmente sind beiden Versionen gemeinsam. Die gemeinsamen Segmente vermindern weitgehend den Speicherbedarf, der sonst für zwei unterschiedliche Versionen erforderlich wäre.
  • Obgleich die verschiedenen Segmente (von denen jedes durch zahlreiche aufeinanderfolgende Datenblöcke repräsentiert werden kann) in 1 in drei Zeilen dargestellt sind, werden im typischen Falle sämtliche Segmente in einer einzigen Spur auf einer optischen Disk oder auf irgendeinem anderen äquivalenten Speichermedium aufgezeichnet. Die Segmente oder die Datenblöcke sind nicht parallel zueinander gespeichert, obgleich zur Veranschaulichung dies in 1 in der Weise dargestellt ist. Wenn daher alternierende Segmente A und B zwischen zwei aufeinanderfolgenden C-Segmenten vorhanden sind, wie dies am linken Ende von 1 und auch am rechten Ende dargestellt ist, dann ist es notwendig, sowohl die A-Segmente als auch die B-Segmente zwischen den beiden C-Segmenten zu speichern. Es können entweder die A-Segmente oder die B-Segmente zuerst gespeichert werden, solange die A-Datenblöcke übersprungen werden, wenn die Version B abgespielt wird und die B-Versions-Datenblöcke übersprungen werden, wenn die A-Version abgespielt wird. Dies ist deutlicher aus 2B ersichtlich, und diese Figur stellt eine Kopie der 7B des oben erwähnten '565-Patentes dar.
  • 2B zeigt einen Teil der Spur mit aufeinanderfolgenden Datenblöcken, die mit A, B oder C bezeichnet sind. Es ist klar, dass in der Praxis Tausende von Datenblöcken der gleichen Type aufeinanderfolgen können, wobei die meisten der Datenblöcke auf der Disk von der Type C sind. Um jedoch die Art und Weise zu veranschaulichen, wie das System über die Datenblöcke springt, die nicht erforderlich sind, zeigt 2B nur zwei Blöcke der gleichen Type aufeinanderfolgend. In 2B sind zwei Sequenzen dargestellt, eine oben zum Abspielen der Version B und die andere unten zum Abspielen der Version A. Wenn es die Version B ist, die ausgewählt wurde und angenommen wird, dass irgendwie der B-Block auf der linken Seite abgespielt wird, dann wird klar, dass die nächsten beiden A-Blöcke übersprungen werden müssen, um auf den vierten Block, einen B-Block, überzugehen. Nachdem dieser Block abgespielt ist, muss der nächste A-Block übersprungen werden. Zwei gemeinsame C-Blöcke werden dann abgespielt, wonach ein Sprung über einen A-Block auf einen weiteren C-Block durchgeführt werden muss. Dann wird der nächste Block, ein B-Block, abgespielt, gefolgt von B-, C- und B-Blöcken. Zum Schluss wird ein Sprung über einen A-Block nach dem letzten Block durchgeführt, der in 2B ersichtlich ist, nämlich einen C-Block.
  • Wenn andererseits die Version A abgespielt werden soll, dann werden zwei aufeinanderfolge A-Blöcke abgespielt, und es gibt dann einen Sprung über einen B-Block, und es werden die nächsten fünf Blöcke ACCAC abgespielt, und dann gibt es einen weiteren Sprung über zwei B-Blöcke nach einem C-Block, und schließlich gibt es einen Sprung über einen weiteren B-Block nach einem A-Block und einen folgenden C-Block. Das Übergangsmuster ist, dass drei verschiedene Übergänge von einem Block auf einen anderen vorhanden sind. Zuerst erfolgt ein Abspielen eines Blockes unmittelbar nach dem Abspielen des vorherigen Blockes. Es gibt sieben Beispiele hiervon, die in 2B dargestellt sind: AA, BB, CC, CA, CB, AC und BC. Die beiden auszuschließenden Möglichkeiten sind AB und BA, da Blöcke, die beiden Versionen gleich sind, nicht während der gleichen Disk-Abspielung ausgelesen werden, sondern eine nach der anderen. Es gibt sieben Möglichkeiten des Übergangs von Blocktype zu Blocktype, und es gibt in Wirklichkeit gerade drei Grundoperationen, die von einem Block nach irgendeiner Type des nächst benachbarten Blockes jener Type folgen; ein Sprung von einem A nach einem A oder C oder ein Sprung von einem B nach einem B oder C oder ein Abzweig von einem C-Block, entweder nach einem benachbarten A-Block oder einem benachbarten B-Block oder nach B oder A irgendwo hinten in der Linie. Die meisten Übergänge sind von der ersten Type. Die zweite Type tritt auf, wenn ein A von einem B gefolgt wird (von denen zwei Blöcke niemals aufeinanderfolgend abgespielt werden können). Ein Sprung muss von dem A-Block nach einem weiteren A-Block oder auf einen C-Block vorgenommen werden. Ähnliche Bemerkungen treffen für B-Blöcke zu, denen ein A-Block folgt. Die dritte Type tritt am Ende des Abspielens eines C-Blocks auf, wenn kein weiteres gemeinsames Material abzuspielen ist und eine Schaltung nach einer Version oder der anderen Version durchgeführt werden muss. Der nächste Block wird abgespielt, wenn er ein Teil der gewählten Version ist, oder es müssen einige Blöcke übersprungen werden, wenn die Abzweigung nach einem Block in der anderen Version führt.
  • 2A zeigt das Zustands-Diagramm, welches definiert, wie und wann Übergänge von einem Block nach einem anderen vorgenommen werden. Jeder Datenblock umfasst eine Zwei-Bit-Zeigermarkierung, möglicherweise gefolgt durch ein Feld, das einen 20-Bit-Zeiger enthält (wenn ein Zeiger vorhanden ist, dann ist er immer auf die serielle Block-Nummer eines weiteren Datenblockes gerichtet). Es wird auf den Code in 2A Bezug genommen. Wenn die Zwei-Bit-Zeigermarkierung gleich 00 ist, dann ist das eine Anzeige dafür, dass die Verarbeitung mit dem nächsten Block fortgesetzt werden sollte; in diesem Fall besteht kein Bedarf nach einem Zeiger. Wenn die Zwei-Bit-Zeigermarkierung ein 01-Code ist, dann ist dies eine Anzeige dafür, dass ein Sprung nach einem Block in der gleichen Version in einiger Entfernung durchgeführt werden sollte oder nach einem C-Block in einem gewissen Abstand hiervon. In jedem Fall ist dabei ein Zeiger erforderlich.
  • Die Codes 10 und 11 werden benutzt, wenn ein Abzweig von einem gemeinsamen C-Block vorgenommen wird. Welcher Code benutzt wird, hängt davon ab, ob der nächste Block ein A oder ein B ist. Wenn der Block nach dem C ein A ist, dann wird der Code 10 benutzt und der Zeiger ist auf ein B oder ein C weiter hinten in der Zeile gerichtet. Wenn der Code 11 ist, bedeutet dies, dass der nächste Block ein B ist und der Zeiger ist auf ein A oder ein C weiter längs der Spur gerichtet. Das Betriebssystem weiß, welche Version abgespielt wird. Wenn die Version A abgespielt wird und der gegenwärtige Block eine 10-Zeigermarkierung besitzt, bedeutet dies, dass der nächste Block, ein A, nach dem gegenwärtigen Block abgespielt werden sollte. Es besteht kein Bedarf nach einem Zeiger. Der Zeiger ist notwendig, wenn die Version B abgespielt wird. In diesem Falle sollte keine Abspielung erfolgen, da der nächste Block ein A ist. Das Abspielgerät sollte auf den Block springen, der durch den Zeiger angegeben wird – entweder auf einen weiteren Block C oder einen B-Block, der nur für die abzuspielende Version B gültig ist.
  • In gleicher Weise bedeutet dies, dass der nächste Block ein B ist, wenn die Version A abgespielt wird und der gegenwärtige Block ein C mit dem Code 11 für die Zeigermarkierung ist. Da die Version A abgespielt wird, sollte der nächste Block nicht abgespielt werden, nachdem der gegenwärtige beendet ist. Stattdessen wird ein Sprung nach dem A-Block oder dem C-Block vorgenommen, der durch den Zeiger identifiziert ist. Andererseits geht das System einfach auf den nächsten Block weiter, wenn die Version B abgespielt wird. Die Legende in 2A zeigt, ob der Zeiger benutzt wird oder nicht, wenn 10- und 11-Zeigermarkierungen in einem B-Block gefunden wurden. Die Repräsentation 10(P) ist eine Anzeige, dass der Zeiger benutzt werden sollte, und eine Repräsentation 10[P] ist eine Anzeige, dass der Zeiger ignoriert werden sollte. Hierbei ist zu wiederholen, dass der 10-Code für einen C-Block benutzt wird, wenn der nächste Block ein A ist. Wenn die Version A abgespielt wird, ist der Zeiger nicht erforderlich, weil ein Übergang vom C-Block nach dem folgenden Block ein A ist, wie dies durch das Symbol 10[P] gekennzeichnet ist. Wenn andererseites die Version B abgespielt wird, kann keine Abspielung erfolgen, da der nächste Block ein A ist. Stattdessen muss ein Sprung nach dem Block erfolgen, der durch den Zeiger angegeben wird, und so wird die Repräsentation 10(P) benutzt – der Zeiger zeigt entweder auf einen A-Block oder einen weiteren C-Block. Eine ähnliche Bemerkung gilt für die Repräsentationen 11(P) und 11[P]. In beiden Fällen ist es ein C-Block, der abgespielt wird, und der nächste Block ist ein B-Block. Wenn die Version A abgespielt wird, dann sollte der nächste Block nicht abgespielt werden, und demgemäß wird das Symbol 11(P) gefordert, um einen Übergangszustand anzuzeigen. Wenn andererseits die Version B abgespielt wird, ist es der folgende B-Block, der abgespielt werden sollte, und demgemäß ist das Symbol 11[P] zutreffend.
  • Die vier Codes sowie die Belegungen (P) und [P] sind in 2B angegeben. Unter Bezugnahme auf die Übergangs-Abspielsequenz B ist der erste Übergang 01(P). Dabei muss wiederum berücksichtigt werden, dass der 01-Code einen Sprung von einem Block einer Version nach einem Block der gleichen Version oder einem gemeinsamen Block repräsentiert, und es ist ein Zeiger erforderlich. Der erste gezeigte Übergang ist 01(P) und ein Sprung von einem B-Block nach einem anderen B-Block. Der nächste Übergang auf der B-Abspiellinie ist 10(P) und ein Sprung von B auf ein C. Das Nächste ist ein Beispiel des häufigsten Übergangs von allen, 00, d. h. die nachfolgende Abspielung des nächsten Blockes nach dem gegenwärtigen Block.
  • Der vierte Übergang der B-Abspiellinie wird durch ein 10(P)-Symbol repräsentiert. Der 10-Code repräsentiert einen Abzweig von einem C-Block, wenn der nächste Block ein A ist, und dieses Beispiel ist in 2B dargestellt. In einem solchen Fall wird, wenn die Version B abgespielt wird, ein Sprung nach einem Block vorgenommen, der durch den Zeiger identifiziert wird, und zwar in diesem Falle zu dem nächsten Block C.
  • Der 11-Code wird benutzt, um eine Abzweigung von einem C-Block zu identifizieren, wenn der nächste Block ein B ist. Wenn die Version B abgespielt wird, dann ist bei der betrachteten Situation der Zeiger nicht erforderlich, weil der nächste Block abgespielt wird. Das bedeutet, warum der nächste Code, wie dargestellt, 11[P] ist. Daraus folgen zwei 00-Code, die eindeutige Übergänge nach benachbarten Blöcken repräsentieren, gefolgt von einem 11[P]-Code, einem Abzweig von einem C-Block nach dem folgenden Block, der ein B-Block ist. Schießlich wird ein Sprung von diesem B-Block über den nächsten A-Block nach einem C-Block vorgenommen. Dies erfordert einen 01(P)-Code, und der Code wird benutzt, um von einem Block irgendeiner Version auf einen Block der gleichen Version oder einen gemeinsamen Block zu springen.
  • Die A-Abspielfolge in 2B nimmt an, dass es die Version A ist, die abgespielt wird. Die ersten vier Codes repräsentieren Übergänge auf benachbarte Blöcke oder einen Sprung von einem Block einer Version nach einem Block der gleichen Version. Der nächste Code 10[P] wird benutzt, um eine Abzweigung von einem C-Block nach einem benachbarten A-Block anzugeben. Der Zeiger wird nicht benutzt, da die Version A abgespielt wird, und der Code 10 wird benutzt, weil der nächste Block ein A-Block ist. Der nächste 00-Code symbolisiert den Übergang von einem A-Block auf einen folgenden C-Block.
  • Das Nächste ist ein Sprung von einem C-Block auf einen weiteren C-Block, wobei zwei B-Blöcke übersprungen werden. Der 11-Code wird benutzt, weil dies ein Code ist, der benutzt wird, wenn ein B-Block einem C-Block folgt. Das benutzte Symbol ist 11(P) und nicht 11[P], weil der Zeiger erforderlich ist, um von einem C-Block nach einem C-Block zu gelangen, der weiter unten in der Zeile liegt. In gleicher Weise ist der nächste Code wiederum ein 11(P)-Code, um eine Abzweigung von einem C-Block nach einem A-Block zu symbolisieren, der weiter unten in der Zeile liegt. Die Folge in 2 erstreckt sich mit einem Übergang von einem A-Block nach dem nächsten Block, der ein C-Block ist und für den der Code 00 benutzt wird.
  • Das Status-Diagramm nach 2A fasst alle Möglichkeiten zusammen. Es wird zunächst der Status betrachtet, bei dem ein A-Block verarbeitet wird, was durch den Kreis mit A in der linken oberen Hälfte repräsentiert wird. Eine Zwei-Bit-Zeigermarkierung in einem A-Block ist 00, wenn der nächste Block auch ein A ist (dargestellt durch den Übergang von A zurück auf A). Wenn der nächste Block ein B ist, dann sollte er natürlich nicht abgespielt werden. Es muss ein Sprung von dem A-Block über den B-Block, entweder auf einen weiteren A-Block oder auf einen C-Block, erfolgen. In jedem Fall ist der Code 10(P). Die Zeichnung zeigt sowohl einen Sprung über B (nach einem weiteren A) als auch einen Sprung über B auf ein C.
  • Der einzige andere Übergang von einem A-Block nach dem nächsten Block erfolgt, wenn dies ein C-Block ist. Dies wird durch den Code 00 dargestellt.
  • Es gibt vier ähnliche dargestellte Übergänge für den Status B, d. h. wenn ein Datenblock der Version B ausgelesen wird. Der 00-Code wird benutzt, wenn der nächste Block ein B oder ein C ist. Der 01(P)-Code wird benutzt, wenn der nächste Block ein A ist, und es wird übersprungen, so dass das System als Nächstes ein weiteres B oder ein C lesen kann.
  • Die Übergänge von einem C-Block sind komplizierter, weil es sieben von ihnen gibt und nicht nur vier für jeden der A- und B-Blöcke. Wenn der nächste Block auch ein C ist, dann ist der Code einfach 00, d. h. lese den nächsten Block. Wenn der nächste Block ein A-Block ist und ein Sprung nach einem weiteren C durchgeführt werden muss, dann steuert der Code 10(P) den Sprung über den A-Block. In gleicher Weise steuert der Code 11(P) einen Sprung über einen B-Block auf einen weiteren C-Block. Es ist daran zu erinnern, dass diese beiden Code benutzt werden, um Abzweigungen von einem C-Block zu steuern in Abhängigkeit davon, ob der nächste Block ein A oder ein B ist. In jedem Fall darf der nächste Block nicht ausgelesen werden und er muss (ebenso wie gleiche Blöcke) über den nächsten C-Block springen.
  • Jedoch ist es nach dem Auslesen eines C-Blocks auch möglich, einen A-Block oder einen B-Block auszulesen. Um einen A-Block auszulesen, wird einer der Code 11(P) oder 10[P] benutzt. Der 11-Code wird benutzt, wenn der nächste Block ein B ist, und in diesem Falle ist der Zeiger erforderlich. Der 10-Code wird benutzt, wenn der nächste Block ein A ist, und in diesem Fall wird der Zeiger nicht benötigt. In gleicher Weise wird, um den nächsten B-Block auszulesen, entweder der Code 10(P) oder 11[P] benutzt. Ersterer wird benutzt, wenn der nächste Block auf der Disk ein A ist und der Zeiger ist erforderlich, weil dieser Block übersprungen werden muss. Wenn andererseits der nächste Block ein B ist, dann teilt der Code 11 dem System mit, nach diesem nächsten Block zu gehen und in diesem Prozess den Zeiger zu ignorieren, weil dieser nicht benötigt wird.
  • Vielleicht der wichtigste Punkt, der berücksichtigt werden muss, ist einer, der aus den Zeichnungen nicht klar wird, und dieser Punkt besteht darin, dass die meisten Blöcke 00-Zeigermarken enthalten und keine Zeiger. (Der 00-Code ist der einzige ohne ein folgendes Zeigerfeld.) Der Grund dafür liegt darin, weil dann, wenn ein Bild irgendeiner Version abgespielt wird oder wenn ein Bild eines gemeinsamen Materials wiedergegeben wird, es höchst wahrscheinlich ist, dass das nächste Bild von der gleichen Type ist. Infolgedessen übernimmt ein 00-Code allein diese Aufgabe. Das Gesamtergebnis besteht darin, dass zwei Versionen des gleichen Kinobildes auf der Disk gespeichert werden können, wobei der Benutzer die Option hat, eine davon abzuspielen (vorausgesetzt, dass dies durch irgendeine anwendbare parentale Verriegelung zugelassen wird), und nur eine winzige Fraktion des gesamten Disk-Inhalts wird durch organisatorische Bits „verschwendet", die Übergänge von einem Block nach dem nächsten Block steuern, der danach auszulesen ist. Dies ist in Übereinstimmung mit der zugrunde liegenden Konstruktionsphilisophie einer maximalen Flexibilität und dem Ziel, so viele Optionen wie möglich zur Verfügung zu haben, ohne in dem Prozess unnötig Bits zu verschwenden.
  • Die vorliegende Erfindung befasst sich nicht mit den Codes und den Zeigern, die erforderlich sind, um von einem Datenblock eines Typs nach einem Datenblock eines anderen Typs zu gelangen. Es wird angenommen, dass die notwendigen Zeiger in den Datenblöcken plaziert sind oder dass sie in einer geeigneten Tabelle irgendwo gespeichert sind. Die vorliegende Erfindung zeigt, wie A- und B-Type-Datenblöcke auf der Disk abgelegt (d. h. eingeteilt) werden. Bei der früheren Anordnung wurde angenommen, dass es immer möglich ist, von einem Datenblock zu einem anderen zu springen ohne eine sichtbare oder hörbare Unterbrechung des Programms. Es hat sich jedoch gezeigt, dass ein nahtloses Abspielen nicht immer möglich ist. Um zu verstehen, warum dies der Fall ist, wird auf die Elemente eines typischen Abspielgerätes Bezug genommen. Das Abspielgerät gemäß 3 ist das gleiche wie das gemäß 2 des früheren Patentes.
  • Zur vollständigen Beschreibung des Abspielgerätes wird auf das '565-Patent Bezug genommen. Es genügt an dieser Stelle zu bemerken, dass die Information, die von den Datenblöcken ausgelesen wird, in jeweiligen Puffern 53, 55, 57 und 59 plaziert wird. Die Information wird aus den Puffern zu jenem Zeitpunkt ausgelesen, der tatsächlich verarbeitet wird, um Bild oder Ton darzustellen. Sprünge über A- oder B-Datenblöcke sind möglich, weil, selbst wenn der Lesekopf nicht alle Daten ausliest, während der Sprung durchgeführt wird, genügend Daten in all den Puffern vorhanden sind, damit das Programm fortgesetzt und beendet werden kann. Solange der Sprung durchgeführt wird und der Lesekopf auf der richtigen Spur positioniert ist, bevor jeder Puffer entleert wurde, ist ein nahtloses Abspielen möglich.
  • 4 veranschaulicht symbolisch zwei einfache Fälle, bei denen ein nahtloses Abspielen kein Problem ist. In dem einen Fall befindet sich zwischen zwei gemeinsamen Segmenten ein A-Segment (einer oder mehrere Datenblöcke), das abgespielt wird, aber es ist kein B-Segment vorhanden. Das bedeutet, dass zur Abspielung der A-Version die drei Gruppen von Datenblöcken kontinuierlich nacheinander abgespielt werden. (Ein Rechteck, das mit A, B oder C in irgendeiner der Zeichnungen bezeichnet ist, repräsentiert ein Programmmaterialsegment ohne Bezugnahme auf die akutelle Kodierung oder einen einzelnen Datenblock der speziellen Type oder eine Gruppe aufeinanderfolger Datenblöcke der speziellen Type, abhängig von dem Kontext.) Um die Version B abzuspielen, wird ein Sprung über die A-Datenblöcke vorgenommen. Solange die A-Datenblöcke kurz sind, werden die Puffer nicht entleert, während der Lesekopf den ersten C-Block verlässt und in den zweiten eintritt. Die Zeichnung auf der rechten Seite von 4 zeigt die Spurauslegung, wenn eines von zwei unterschiedlichen Segmenten abgespielt werden muss in Abhängigkeit von der jeweiligen Version. Die beiden Gruppen von Datenblöcken A und B sind aufeinanderfolgend zwischen zwei gemeinsamen Blöcken gespeichert. In Abhängigkeit von der abgespielten Version werden entweder die A-Datenblöcke übersprungen oder die B-Datenblöcke werden übersprungen. Wiederum besteht kein Problem bei der nahtlosen Abspielung, solange jede Sequenz kurz ist.
  • Das Problem, das in den beiden Fällen auftritt, ist in 5 dargestellt. Der einzige Unterschied zwischen den vergleichbaren Fällen gemäß 4 besteht darin, dass das A-Segment im ersten Fall und die A- und B-Segmente im zweiten Fall alle sehr viel länger sind. Deshalb ist es nicht möglich, über derart lange Segmente zu springen, ohne die Puffer zu entleeren. Wie lang ein Segment tatsächlich übersprungen werden kann, ohne dass die Abspielung unterbrochen wird, hängt von mechanischen Bedingungen und dem benutzten Puffer-Managementsystem ab. Zum Verständnis der vorliegenden Erfindung reicht es aus festzustellen, dass es Segmente mit einer maximalen Länge gibt, die übersprungen werden können, ohne dass eine Unterbrechung der Abspielung erfolgt. Der Wert hängt notwendigerweise von dem Abspielgerät ab, für das die Disks formatiert sind. Bei der vorliegenden Erfindung wird angenommen, dass es eine solche maximale Länge gibt, wie diese weiter unten definiert wird, und das erfindungsgemäße Verfahren berücksichtigt die Benutzung dieses Wertes.
  • Methodologie zum Erreichen einer nahtlosen Abspielung
  • Das Grundprinzip zur Erlangung einer nahtlosen Abspielung ist in 6 dargestellt, obgleich es offensichtlich ist, dass in vielen Fällen die Technik gemäß 6 selbst nicht ausreichend ist. Die Methodologie besteht darin, das Material der A- und B-Blöcke (dies kann als Programmmaterial oder Datenblöcke angesehen werden) zwischen zwei aufeinanderfolgenden gemeinsamen Blöcken zu nehmen und dies Material in kleinere verschachtelte Abschnitte zu unterteilen. Auf diese Weise wird es nicht mehr notwendig, über eine Sektion zu springen, die so lang ist, dass ein Puffer oder mehrere Puffer entleert werden.
  • Der obere Teil von 6 zeigt drei Spuren A, B und C. Natürlich befindet sich nur eine Spur auf der Disk. Das, was im oberen Teil von 6 dargestellt ist, sollte als Zeit-Zeilen-Diagramm betrachtet werden. Wenn die Version A abgespielt wird, dann wird zunächst der erste C-Block abgespielt, dann der A-Block und schließlich der zweite C-Block. Wenn die Version B abgespielt wird, dann wird in gleicher Weise zunächst der C-Block abgespielt, dann der B-Block und schließlich der zweite C-Block. Was in der einzigen Spur jedoch gespeichert wird, ist nicht die Folge CABC. Stattdessen werden die A-Segmente und die B-Segmente in zahlreiche kleinere Segmente unterteilt. Dies wird symbolisch durch die Pfeile in 6 angedeutet. Die beiden C-Blöcke werden kontinuierlich abgelegt und zwischen diesen können zahlreiche alternierende A- und B-Blöcke vorhanden sein. Der Mittelteil von 6 ist ein Zeit-Zeilen-Diagramm, vergleichbar mit dem oben dargestellten, aber mit dem Material, das den A- und B-Versionen eigen ist, wie dies geteilt in kleinere Segmente und verschachtelt dargestellt ist. Die Endspurauslegung ist am unteren Teil der Zeichnung dargestellt, und es ist klar, dass es mehrere altemierende A- und B-Datenblöcke zwischen den beiden C-Blöcken gibt. (Wiederum muss festgestellt werden, dass, während individuelle „Blöcke" in der vorstehenden Beschreibung erwähnt sind, sich die Beschreibung auch auf Mehrfach-Datenblöcke bezieht. Selbst jeder der zerhackten A- und B-Blöcke kann ein Mehrfach-Datenblock sein. Wichtig dabei ist, dass jedes A- und R-"Rechteck" eine genügend kleine Informationsmenge enthält, gemessen in Datenblöcken, Zoll, Sekunden oder anderen zweckmäßigen Parametern, die ein Überspringen des Blockes ermöglichen, ohne eine merkliche Unterbrechung beim Abspielen infolge der Entleerung eines Puffers.) Das B-Segment ist etwas länger als das A-Segment. Dies bedeutet, dass ein kleines Stück des Materials der B-Version übrig bleibt. Dieser kleine Teil wird einfach in der Spur hinter den vier A-Blöcken plaziert. Es gibt demgemäß fünf „kleine" B-Blöcke und nur vier „kleine" A-Blöcke. Der erste Block, der auf der Spur liegt, ist ein B-Block, so dass die vier A-Blöcke mit den fünf B-Blöcken verschachtelt werden können.
  • Das offensichtliche Problem im Hinblick auf die einfache Annäherung gemäß 6 besteht darin, dass nicht beide A-Versions-Segmente und B-Versions-Segmente zwischen den zwei gemeinsamen Blöcken sein können. Wenn nur ein A-Segment vorhanden ist, dann gibt es kein B-Material, das zwischen A-Blöcke verteilt werden könnte, nachdem das A-Segment aufgeteilt ist. Wenn umgekehrt nur B-Material vorhanden ist und dies lang ist, besteht scheinbar keine Möglichkeit, das B-Material mit A-Versions-Blöcken aufzubrechen, so dass die Puffer ergänzt werden können, wenn die A-Version abgespielt wird und das B-Material übersprungen wird. Die Lösung dieses Problems ist in 7 dargestellt, wo die Grund-Methodologie der Erfindung ersichtlich ist.
  • Wie aus 7 ersichtlich, wird ein A-Segment in vier Blöcke unterteilt, und sie sind verschachtelt mit vier vergleichbaren Blöcken, die vom längeren B-Segment erhalten wurden. Anstatt, dass das B-Segment nur ein wenig länger ist als das A-Segment wie in 6 dargestellt, wobei das „belassene" B-Material dem letzten A-Block folgt, ist gemäß 7 das B-Material sehr viel länger. Es wird ein fünfter B-Block auf der Spur nach den vier A-Blöcken plaziert, und dieser Block wird mit B5 in der Zeichnung bezeichnet. Es wird angenommen, dass all die Blöcke so lang als möglich sind. Mit anderen Worten ausgedrückt: alle in 6 und 7 dargestellten Blöcke haben die maximale Länge. in dem Sinne, dass irgendeine Verlängerung zu einem Abspielen führen würde, das nicht nahtlos verläuft. Wie in der Zeichnung dargestellt, bleibt ein wenig B-Material übrig, aber es kann nicht als Teil des Blockes B5 gespeichert werden, weil dies zu einer Gesamtlänge führen würde, die nicht übersprungen werden kann, ohne dass einer oder mehrere Puffer entleert würden.
  • Das übrige Material im B-Segment wird in der Spur abgelegt, wie durch die Blöcke B6 dargestellt. Um aber den Block B6 nach dem Block B5 zu überspringen, wenn die Version A abzuspielen ist, muss etwas Material der A-Type in einem A-Block zwischen den Blöcken B5 und B6 gespeichert werden. Dieses Material ist notwendig, damit der Lesekopf eine Ablesung vornehmen kann, um die Puffer zu ergänzen, bevor der Sprung über den Block B6 erfolgt. Das Problem besteht darin, dass kein A-Material übrig bleibt, weil sämtliches Material benutzt wurde beim Ablegen der vier Blöcke zu Beginn der Verschachtelungs-Sequenz.
  • Aus diesem Grunde ist das, was zwischen die Blöcke B5 und B6 plaziert wird, um eine Auslesung beim Abspielen der Version A zu ermöglichen, ein Block aus einem Material C1, abgenommen vom Beginn des gemeinsamen Materials auf der rechten Seite der Zeichnung. Dieses gemeinsame Material muss während der Abspielung beider Versionen ausgelesen werden, so dass es kein Problem gibt, dieses vorzuschieben und nach den Blöcken A zu plazieren, bevor das gemeinsame Material tatsächlich erreicht ist. Das Material wird einfach durch den Lesekopf abgenommen, wenn die A-Version abgespielt wird, bevor das gemeinsame Material sonst erreicht werden könnte.
  • Wenn jedoch gemeinsames Material C1 vorgeschoben und zwischen die Blöcke B5 und B6 plaziert wird und wenn dieses Material während der Abspielung der A-Version ausgelesen wird, bevor das gemeinsame Segment erreicht ist, würde es nicht wieder im C-Segment ausgelesen, weil dies zu einer Doppelabspielung des gleichen Materials führen würde. Deshalb muss das Material C1 vom gemeinsamen Material gelöscht werden. Wenn es jedoch vom gemeinsamen Material gelöscht wird, wird es nicht ausgelesen, wenn die B-Version abgespielt, wird, weil die B-Version immer noch fordert, dass das gemeinsame Material ausgelesen wird. Die Lösung besteht darin, dass das mit C1 bezeichnete Material genommen und nicht nur einmal, sondern zweimal vorgeschoben wird. Das Material wird in der Blocksequenz plaziert, die während der Abspielung der A-Version ausgelesen wird, wie dies gerade beschrieben wurde und ebenso in der Blocksequenz, die der Version B eigen ist. Dies geschieht, weil der C1-Block unmittelbar hinter dem Block B6 in der Datenblocksequenz liegt, die der Version B eigen ist. Auf diese Weise wird das C1-Material als Teil der einheitlichen A-Folge und der einheitlichen B-Folge ausgelesen. Da eine Auslesung in beiden einheitlichen Sequenzen erfolgt, ist es nicht mehr notwendig, dies in dem gemeinsamen Material einzuschließen, das auf der Disk eingegeben wird. Aus diesem Grunde ist, wie unten rechts in 7 angegeben, der letzte Teil des dargestellten Gesamtspursegmentes der „Rest" des gemeinsamen Materials – das ursprüngliche C-Segment minus C1.
  • In einem gewissen Sinne kann die Erfindung als Einführung von Ausfüllblocks betrachtet werden, wobei der Lesekopf „landen" kann, aber diesen unmittelbar zu Beginn des Sprunges nach dem nächsten Ausfüllblock verlässt. Der Block C1 in der A-Blockfolge ist ein solcher Ausfüllblock. Er kann sehr kurz sein, da er nur genug Daten für die Puffer liefern muss, damit ein Sprung über den folgenden Block in der B-Version möglich ist. Jeder Ausfüllblock sollte so kurz als möglich sein, weil er in dem Material, das der anderen Version eigen ist, dupliziert werden muss und er vom nächsten gemeinsamen Material „geborgt" wird und dann gelöscht wird, und es ist zweckmäßig, die Redundanz auf ein Minimum zu begrenzen.
  • Die der 7 zugrunde liegende Annahme besteht darin, dass das C1-Material, welchem das Material zugefügt wurde, das der Version B eigen ist, die dem Block B6 folgt, so kurz ist, dass B6 und C1 zusammen nicht die maximale Blocklänge überschreiten, die bei Überschreitung einen nahtlosen Sprung verhindern würde, wenn die Version A abgespielt wird und der Lesekopf über den B6,C1-Block springt. 8 zeigt einen Fall (eine „Fortsetzung" von 7), bei dem das B-Segment so viel länger ist als das A-Segment, dass viele Stücke des C-Materials vorgeschoben werden müssen, um als Ausfüllblöcke in der Blockfolge zu dienen, die der Version A eigen ist. Dies bedeutet wiederum, dass sie auch in den Blöcken enthalten sein müssen, die der Version B eigen sind, da sämtliches gemeinsame Zeitmaterial vorgeschoben wird und dies notwendigerweise zu einer redundanten Aufzeichnung führt. Was nach B5 in 7 verbleibt, ist so lang in 8, dass, zusammen mit all den vorgeschobenen C-Blöcken, das resultierende B-Material die maximale Länge überschreitet.
  • Eine andere Möglichkeit, die Situation zu betrachten, besteht darin dass, während in 7 der Block B6 am Ende des Materials stand, die der Version B eigen war und der Block C1 angeheftet werden konnte, dies im Falle von 8 nicht möglich ist. Hier ist das B-Segment so lang, dass ein maximal bemessener Block B6 gerade für das Material der B-Version erforderlich ist. Da sämtliche B-Segment-Materialen (einschließlich B7 und B8) vor dem gemeinsamen Material abgespielt werden müssen, ist es nicht möglich, den Block C1 an das Ende des Blockes B6 anzuheften, und da ein Block B6 in der Endspur aufgezeichnet wird, ist ein weiterer Ausfüllblock erforderlich, um die Version A abzuspielen. Dieser Ausfüllblock ist als C2 dargestellt und er wird in der Endspur unmittelbar hinter dem Block B6 angeordnet. Der nächste Teil des Segmentes, der der Version B eigen ist, wird als B7 dargestellt, und dieses Material wird in der Endspur unmittelbar hinter dem Ausfüllblock C2 aufgezeichnet. Es ist ein weiterer Ausfüllblock C3 erforderlich, der von dem gemeinsamen Material abgeleitet wurde, bevor der letzte Teil des B-Materials, nämlich der Block B8, abgelegt wird.
  • Wie oben erwähnt, muss sämtliches Material, das von dem gemeinsamen Segment vorgeschoben und in den Datenblöcken benutzt wird, die der Version A eigen sind, auch in den Datenblöcken gespeichert werden, die der Version B eigen sind. Das Material C1 könnte unmittelbar nach dem Material B8 folgen, wenn die Version B abgespielt wird. Dies ist in 8 dargestellt. In gleicher Weise muss C2 C1 folgen und C2 könnte ein Teil des Datenblocks sein, der B8 und C1 aufweist, außer dass C2 nicht an den Block angeheftet werden kann, der B8 und C1 enthält, weil dies einen kombinierten Block ergeben würde, der größer ist als die maximale Länge, die ein nahtloses Abspielen ermöglicht. Um das Material C2 (und C3) in den Blöcken niederzulegen, die der Version B eigen sind, ist es tatsächlich erforderlich, einen vierten Ausfüllblock in das Material einzufügen, das der Version A eigen ist. Dieses Material wird wiederum von dem gemeinsamen Material abgenommen. Dies ist durch den kleinen Block C4 veranschaulicht. Weil aber C4 nunmehr von dem gemeinsamen Material vorgeschoben ist, enthält der letzte Datenblock für die Version B C4, was auf C2 und C3 folgt. Schließlich wird das gemeinsame Material, vermindert um die Blöcke C1–C4, aufgezeichnet, um bei der Abspielung beider Versionen ausgelesen zu werden.
  • Interessant gemäß der Folge nach 8 ist, dass das gemeinsame Material C4 zweimal in jeder eigenen Datenblocksequenz nur deshalb aufgezeichnet wird, weil es notwendig ist, einen letzten Ausfüllblock in der Folge für die Version A einzufügen, um in der Lage zu sein, gemeinsames Material C2 und C3 in dem Material aufzuzeichnen, das der Version B eigen ist. Das erfindungsgemäße Verfahren betrifft sich jedoch nicht selbst, weil gemeinsames Material aus einem gemeinsamen Segment herausgenommen und in zwei einheitliche Versionen dupliziert wurde. Das System schiebt einfach Material immer dann vor, wenn es erforderlich ist, um einen Ausfüllblock einzusetzen, der einen weiteren Sprung ermöglicht. Und irgendetwas, das für die eine Version aufgezeichnet wird, muss auch für die andere Version aufgezeichnet werden.
  • Der letzte Fall, der zu betrachten ist, ist jener, der in 9 dargestellt ist. In 8 wurde angenommen, dass es unbegrenztes gemeinsames Material gab, das vorgeschoben werden konnte, um als Ausfüllblock für eine oder beide Versionen zu dienen. Das letzte derartige Segment in 8 war das Segment C4. In dem Beispiel nach 9 ist das gemeinsame Material sehr viel kürzer, und das Segment ist nicht einmal gleich der minimalen Länge, die für einen Datenblock erforderlich ist. Deshalb wurde so weit Bezug genommen auf die maximale Länge (die Länge, über die ein nahtloser Sprung nicht stattfinden kann), und es gibt aber auch eine minimale Länge. Es muss den Daten eine gewisse endliche Zeit oder Länge in einer Folge von Datenblöcken zugebilligt werden, um wenigstens teilweise die Puffer zu füllen, bevor ein Sprung durchgeführt wird. (In der Praxis erlauben sehr kleine Längen Sprünge, aber die Sprünge können für die Praxis zu klein sein. In dem unten beschriebenen Flussdiagramm ist die minimale Länge, die benutzt werden kann, um den „Rest" C4 zu testen, eine solche, die mit αopt definiert wird, obgleich dies nicht das absolute Minimum ist, das benutzt werden könnte.) Es ist gerade nicht möglich, zu kurze Datenblöcke niederzulegen, wenn diese als Ausfüllblöcke dienen sollen. Wenn infolgedessen das verbleibende C4-Material zu kurz ist, um als in sich abgeschlossener Datenblock für die Version A zu wirken, muss etwas Anderes damit geschehen, und das erforderliche Ausfüllblockmaterial muss von igendwo herkommen. Was dabei geschieht, ist in 9 dargestellt.
  • Nach dem gemeinsamen Material, von dem C4 das letzte Stück ist, folgt ein weiteres A-Segment (das keine Daten haben kann), ein weiteres B-Segment (welches keine Daten haben kann, obgleich wenigstens eines der A- oder B-Segmente Daten besitzt) und ein folgendes C-Segment. Das verbleibende Stück C4 des gemeinsamen Blocks wird einfach auf beide einheitlichen Sequenzen A und B übertragen, und das nächste gemeinsame Material wird als Quelle für einen weiteren Ausfüllblock benutzt, der erforderlich ist.
  • Gemäß 9 besitzt die weitere Folge (wie beispielsweise in 8 dargestellt) kein A-Material mehr; dabei muss man sich vergegenwärtigen, dass das C-Material für jeden Ausfüllblock benutzt wurde, der im Datenblock für die Version A erforderlich war. So wird das verbleibende C4-Material, das beiden Versionen gemeinsam ist, einfach hinzugefügt, um das nächste A-Material zu starten, da es vor dem nächsten A-Material abgespielt werden muss. Dies ist unten in 9 dargestellt, wo C4 vor dem nächsten A-Material plaziert ist. (Was in 9 dargestellt ist, ist nicht, wie die letzten drei Segmente A, B und C auf der Disk abgelegt worden, sondern wie sie erneut formuliert werden, bevor die Verschachtelungsmethode gemäß 6 bis 8 das nächste Mal benutzt wird.)
  • Das gleiche C4-Material wird nicht einfach zu Beginn des nächsten B-Segmentes abgelegt. Der Grund hierfür besteht darin, dass immer noch etwas B-Material im Segment verarbeitet wird, das bisher nicht auf der Disk abgelegt wurde. Das B-Material, das verarbeitet werden muss, ist das Schwanzende des B-Segmentes, das abgelegt wurde, die Blöcke C1 bis C3, die ihm folgten und nicht abgelegt wurden und dann das kleine Stück C4, das nach den Blöcken C1 bis C3 ausgelesen werden muss und schließlich das nächste B-Segment. Was das System nunmehr „verarbeiten" muss, sind drei neue aufkommende Segmente – das nächste A-Segment mit C4 am Start; ein B-Segment, das aus B8 besteht, gefolgt von C1–C4 und dem nächsten vollen B-Segment; und das folgende C-Segment. Die nächsten drei Segmente werden nicht in dem Sinne rekonstruiert, dass das Material auf der Disk wie in 9 abgelegt wird, sondern in dem Sinne, dass dies das Material ist, das für die folgende Verarbeitung der Type gemäß 6 bis 8 verfügbar ist.
  • Zusammenfassend kann das C4-Material nicht durch sich selbst auf der Disk formatiert werden, weil es zu kurz ist. Es scheint, dass es zum Start des nächsten A-Segmentes gehört, weil das gemeinsame Material in dem gegenwärtigen Segment schon fertig zur Bearbeitung ist und es gerade dieses eine Stück ist, um das Material einzufügen, das für die Version A abgespielt werden muss. Wie bei der Version B ist es auch notwendig, den Block B8 zu verarbeiten, und es wurde bereits bestimmt, dass nach dem Block B8 C1, C2 und C3 folgen sollten. Aus diesem Grund besteht die neue „Zuführung" für die B-Version, wie in 9 dargestellt, aus B8, gefolgt von C1 bis C4 und schließlich aus dem nächsten B-Segment. Wenn die 9 zeigen soll, dass irgendwelches Material, das von einem gemeinsamen Segment vorgeschoben werden soll, um in Datenblöcken aufgezeichnet zu werden, die der Version A (oder der Version B) eigen sind, muss dieses reserviert werden zur Aufzeichnung in der Datenblockfolge, die der jeweils anderen Version eigen ist, aber es kann keine Aufzeichnung erfolgen, bis das Material, das für jene Version bleibt, mit den früher vorgeschobenen gemeinsamen Datenblöcken aufgezeichnet ist.
  • Wenn die Verarbeitung fortschreitet, wird schließlich ein Punkt erreicht, bei dem die Aufzeichnung der Type gemäß 6 möglich ist und keine weitere Redundanz eingeführt werden muss. Dies wird bei Betrachtung und Analyse des Flussdiagramms klar.
  • Optimale und maximale Blocklängen
  • Bevor das Flussdiagramm weiter behandelt wird, das die weiteren Schritte angibt, um die Formatierung der Spur zu steuern, müssen die Symbole α und β gemäß 10 verständlich gemacht werden. Das Symbol α repräsentiert das, was bisher mit „Ausfüllblock" bezeichnet wurde. Das Symbol β repräsentiert einen Block, der in einer Version übersprungen werden muss, und durch Lesen der Daten, die im Block α enthalten sind (in der abzuspielenden Version) ergibt sich ein Material in den Puffern, das verfügbar ist zur Abspielung, wenn der Lesekopf über den Abschnitt β springt (Die Ausdrücke wie Segmente, Blöcke und Abschnitte werden austauschbar benutzt, da ein Segment oder ein Abschnitt ein Block oder mehrere Blöcke umfassen kann.) Während α und β einfach zwei aufeinanderfolgende Längen sind, repräsentiert das Symbol β(α) die maximale Länge β, über die ein nahtloser Sprung durchgeführt werden kann, nachdem ein Block der Länge α ausgelesen wurde. Es wird auf 11A Bezug genommen. Wenn die Beziehung linear ist, dann ist es klar, dass, je länger der Abschnitt α ist, desto länger der folgende Abschnitt β sein kann, weil dort mehr Daten in den Puffern verfügbar sind als Ergebnis der Auslesung mehrerer Daten. Sogar wenn jedoch α wächst, dann wächst β nicht auf Unendlich. Der Grund dafür besteht darin, weil es eine Grenze gibt, wieviele Daten in den Puffern enthalten sein können. Wenn diese einmal voll sind, dann bestimmt dies das längste β-Segment, das übersprungen werden kann. Das ist der Grund dafür, warum in 11A ein Maximalwert für β(α) vorhanden ist, unabhängig davon, wie groß α wird. Wenn die Puffer einmal voll sind, während der Lesekopf den Abschnitt α verlässt, wird die Länge des maximalen nahtlosen Sprungs durch die Kapazität der Puffer bestimmt.
  • Wenn α ein redundantes Material ist, das von einem C-Segment vorgeschoben wird, gibt es keinen Grund, α über den Wert am Knick der graphischen Darstellung zu vergrößern, der den maximalen Anstieg auf β(α) angibt, d. h. der Wert der Ordinate längs der horizontalen Linie der graphischen Darstellung. Der niedrigste Wert von α, der einen Anstieg auf den maximalen Wert von β(α) liefert, ist ein αopt Wenn ein Ausfüllblock erzeugt wird, dessen einziger Zweck darin besteht, einen Sprung über die folgenden Datenblöcke zu ermöglichen, wenn die Version, die den Block enthält, abgespielt wird, dann gibt es keinen Grund, einen Ausfüllblock zu benutzen, der länger ist als αopt. Jeder Ausfüllblock, der von einem gemeinsamen Material ausgefüllt ist, führt zu einer Redundanz, und derartige Redundanzen sollten minimiert werden.
  • Es sollte beachtet werden, dass der maximale Wert von β(α) tatsächlich als αmax angegeben ist. Der Grund dafür besteht darin, dass dann, wenn der maximale Wert von β(α) das längste Segment repräsentiert, das auf der Spur für eine nahtlose Abspielung aufgezeichnet wurde, die gleiche maximale Länge für die beiden aufeinanderfolgenden Abschnitte gilt. Jeder Datenblock einer Type geht in der verschachtelten Sequenz vor einem Datenblock der anderen Type, so dass jeder Abschnitt sowohl ein α als auch ein β ist. Infolgedessen kann die maximale Länge einer Blocksequenz als αmax bezeichnet werden, d. h. keine Datenblocksequenz, die einer Version eigen ist, sollte in der Länge αmax überschreiten.
  • Unter der Annahme einer linearen Beziehung zwischen α und β ist in 11A eine typische Übertragungscharakteristik dargestellt. Wenn die Länge von α eines Datenblocks (oder von Datenblöcken) ansteigt, dann vergrößert sich auch die maximale Länge des folgenden Datenblockes β(α), der übersprungen werden kann. Jeder Datenblock ist jedoch in der Länge auf αmax begrenzt, beispielsweise unter der Annahme, dass mehr B-Material als A-Material auf der Spur vorhanden ist, bevor das nächste gemeinsame Material folgt. In diesem Fall ist das Ziel der Verschachtelung darin zu sehen, dass kleine A-Datenblöcke und große B-Datenblöcke erhalten werden. Jeder kleine A-Datenblock, dessen Länge α ist, ermöglicht die Aufzeichnung eines längeren B-Datenblockes, wobei die Länge des B-Datenblockes β(α) ist. Die optimale Länge für jeden A-Datenblock ist jene, die das größte Verhältnis von B(α)/α ergibt. Der optimale Wert von α – αopt ist jener, der das maximale Verhältnis liefert und der in 11A angegeben ist. Im Falle einer nicht-linearen Beziehung, wie dies in 11B dargestellt ist, muss der Wert von αopt nicht notwendigerweise der Knick der Kurve sein. In beiden Fällen besteht das Ziel darin, aufeinanderfolgend α- und β-Längen zu benutzen, die das Verhältnis β(αopt)/αopt maximieren. Beim Ablegen dieser diese Längen benutzenden Datenblöcke wird das Material längerer Version so schnell als möglich ausgenutzt, während der Anteil des gemeinsamen Materials vermindert wird, das möglicherweise vorgeschoben wurde, um die α-Segmente zu erhalten.
  • Die anwendbaren Listen, die durch die Hardware benutzt werden
  • 12 veranschaulicht, wie das erfindungsgemäße Verfahren durchgeführt werden kann. Ein Steuergerät 100, im typischen Fall ein Mikroprozessor, steuert direkt eine Aufzeichnungsvorrichtung 102. Die dem Steuergerät zugeführte Eingangsinformation ist eine Standard-Edit-Decision-List, die die Folge spezifiziert (gewöhnlich in Gruppen von Bildern oder GOPs), und zwar in Einheitslängen der Serien von Segmenten, die für die beiden Versionen erforderlich sind, wie dies in 1 dargestellt ist. Das tatsächliche digitale Quellmaterial für die drei Arten von Segmenten (Version A, Version B und gemeinsame Version) befinden sich in drei Digitalspeichern 104, 106 und 108. Das Steuergerät veranlasst eine der drei Quellen, Material auszugeben, welches über die entsprechenden Gatter, ebenfalls unter Steuerung des Steuergerätes 100, aufgezeichnet wird, um die Aufzeichnungsvorrichtung 102 auszudehnen.
  • Das Steuergerät enthält drei Listen, die die nächst verfügbaren Daten für jede Quelle identifizieren. Die Listen werden durch die Symbole R(A), R(B) und R(C) identifiziert. Jede Liste ist nicht mehr als die Repräsentatation eines jeweiligen ankommenden A-, B- oder C-Segmentes, wie beispielsweise in Verbindung mit den Segmenten am unteren Teil von 9 diskutiert. Wie in Verbindung mit dem Flussdiagramm erläutert, werden die drei Listen während aufeinanderfolgender Iterationen aktualisiert. Jede Liste repräsentiert jederzeit eine aufkommende Information für eine der drei Arten von Daten, die aufgezeichnet werden müssen. Die Liste R(C) enthält sämtliches gemeinsame Material in dem zu behandelnden Segment von dem nächsten abzulegenden Material bis zum Ende des Segmentes. Wenn das System A-Segmente und B-Segmente verarbeitet, repräsentiert R(C) das volle folgende C-Segment, von dem Stücke „ausgeborgt" wurden (vorgeschoben wie oben erwähnt). Die Listen R(A) und R(B) repräsentieren A-Segmente und B- Segmente, die verarbeitet werden sollen. Wenn ein C-Segment durch sich selbst verarbeitet wird, sind R(A) und R(B) leer. Sie werden am Ende der C-Segment-Verarbeitung aktualisiert, wenn neue A-Segmente und B-Segmente erreicht werden. Das Steuergerät benutzt die Information auf der Edit-Decision-List, um die „nächst verfügbaren Daten"-Listen R(A), R(B) und R(C) zu aktualisieren. Jede Liste identifiziert das jeweilige digitale Quellmaterial, das die Daten auslesen sollte, um die Aufzeichnung des zu verarbeitenden Segmentes zu vervollständigen.
  • Flussdiagramm gemäß 13A und 13B
  • Die 13A und 13B zeigen das Flussdiagramm, das die Formatierung enthält, wie dies oben in Verbindung mit den 6 bis 9 beschrieben wurde. Gemäß 1 befindet sich fast immer am Start irgendeines Kinofilms mit zwei Versionen ein gemeinsames Segment – der Titel ist in allen Fällen der gleiche. Demgemäß befindet sich anfänglich nur gemeinsames Material, mit dem das System arbeiten muss. Die drei Funktionen R(A), R(B) und R(C), wie diese in Verbindung mit 12 diskutiert wurden, repräsentieren Listen von Daten, die unmittelbar verfügbar sind. Unter „unmittelbar verfügbar" werden die Daten verstanden, die als Nächstes auf der Disk formatierbar sind. Die R(C)-Liste umfasst alle der übrigen Daten in dem gemeinsamen Segment, die zu verarbeiten sind und die bisher nicht auf der Disk formatiert wurden oder das vollständige gemeinsame Segment, das dem A-Segment und dem B-Segment folgt, die formatiert werden, wenn die Verarbeitung der vorhergehenden gemeinsamen Segmente bereits vollendet ist. Es muss stets eine „Zuführung" von gemeinsamem Material vorhanden sein, das vorgeschoben werden kann, falls Ausfüllblöcke erforderlich sind, und zu diesem Zweck hält das System die Spur in der Liste R(C) von allen Teilen des gemeinsamen Segmentes.
  • Die R(A)- und R(B)-Listen können andererseits leer sein. Wenn ein gemeinsames Segment auf der Disk aufgelegt wird, gibt es kein A- und B-Material, das zu verarbeiten ist. Nur am Ende der Verarbeitung eines gemeinsamen Segmentes werden neue A- und B-Segmente verfügbar (eines von diesen kann nicht existent sein und in diesem Falle ist die Liste leer – beispielsweise symbolisiert durch die Bezeichnung R(A) = 0). Es besteht keine Notwendigkeit, eine Liste der nächsten A- und B-Segmente aufrecht zu erhalten, die verarbeitet werden müssen, bis sie tatsächlich erreicht sind. Es besteht jedoch eine Notwendigkeit, eine R(C)-Liste ständig aufrecht zu erhalten, selbst dann, wenn nur A- und B-Segmente auf der Disk formatiert werden, weil es notwendig sein kann, ein Stück des folgenden gemeinsamen Materials als Ausfüllblock zu benutzen.
  • Bei dem Schritt S1 werden R(A) und R(B) beide auf Null gesetzt, da anfänglich nur gemeinsames Material zu verarbeiten ist. Gleichzeitig wird R(C) gesetzt für die Daten für das erste gemeinsame Segment.
  • Die Variable L(X) (wobei X = A, B oder C) repräsentiert die Daten, die tatsächlich auf der Disk während der gegenwärtigen Iterationsstufe abgelegt werden. (Alle Referenzen zur Ablage von Daten auf die Disk können eine Zwischenstufe aufweisen, in der die formatierten Daten auf einem Band oder einem Speicher gespeichert werden und dann – zu einem späteren Zeitpunkt – eine Masterkopie erzeugt wird, von der Kopien gezogen werden können.) Es gibt Grenzen, wieviele Daten abgelegt werden können; die Grundprämisse der Erfindung besteht darin, dass zum nahtlosen Abspielen eine Grenze der Länge eines jeden Segmentes besteht, über das ein Sprung notwendig werden kann. Es gibt jedoch keine Grenze bezüglich der Länge eines gemeinsamen Segmentes, das keinen Sprung über ein solches Segment erfordert. Infolgedessen wird der Schritt S2, L(C) gleich R(C) – alles, was in dem ersten gemeinsamen Segment in der Liste L(C) plaziert ist, wobei L(C) die Daten repräsentiert, die auf der Disk während des gegenwärtigen Zyklus abgelegt werden. (Die Daten selbst werden aus der digitalen Quelle 104, 106, 108 gemäß 12 abgelegt und die drei jeweiligen Listen weisen einfach auf das Material hin, das zu behandeln ist.)
  • Der nächste Unterschritt im Schritt S2 ist die Formatierung L(C). Dies bedeutet einfach, dass die Daten, die in L(C) repräsentiert sind, von der jeweiligen Quelle abgezogen und auf der Disk abgelegt werden.
  • Da R(C) anfänglich die gesamten ersten gemeinsamen Segmente repräsentiert und nun alles auf der Disk befindlich ist, muss R(C) auf Null zurückgesetzt werden. Dies geschieht in dem letzten Unterschritt. Am Ende des Schrittes S2 sind alle drei Listen leer. Die ersten zwei Schritte gehen zurück auf nicht mehr als die Formatierung des ersten gemeinsamen Segmentes, d. h. die Plazierung sämtlicher Daten, die das erste gemeinsame Segment des Kinofilms auf der Disk repräsentieren unter Benutzung von Kodierungen, Zeigern, Datenblöcken und eine Formatierung, die in dem jeweiligen betrachteten System benutzt wird.
  • Wenn nunmehr die drei Listen leer sind, müssen sie aus der Edit-Decision-List (vergleiche 12) ergänzt werden. Im Schritt S3 ist der letzte Unterschritt am Leichtesten zu verstehen. Mit der Verarbeitung eines gemeinsamen Segmentes, das gerade vollendet wurde, wird R(C) mit Daten ergänzt, die für das nächste gemeinsame Segment maßgebend sind. Es gibt jedoch vorhergehende A- und B-Segmente. Während der zeitlich erste Schritt S3 durchgeführt wird, gibt es keine frühere „Geschichte", die berücksichtigt werden müsste, aber dies ist nicht immer der Fall. Dies kompliziert, das was in R(A) und. R(B) gespeichert wird.
  • In 9 ist unten dargestellt, wie die nächst verfügbaren Datenlisten entwickelt werden. Es kann dort ein kleines Stück von R(C) (C4 in 9) sein, das vom gegenwärtigen C-Segment verbleibt, das verarbeitet wird. Dieses Stück muss an die R(A)- und R(B)-Listen angefügt werden. Nur dann wird das nächste A-Segment an R(A) angefügt und das nächste B-Segment wird an R(B) angefügt. Immer dann, wenn die Listen aktualisiert werden, indem die neuen Segmente des Programmmaterials erbracht werden, wurde, wie aus dem Schritt S3 ersichtlich, R(A) dann zu seinem „Gehalt" sowohl das „Überbleibsel" R(C) als auch das neue Material hinzugefügt. Ähnliche Bemerkungen gelten für R(B). Wie für R(C) wird es einfach gleich dem nächsten C-Segment gesetzt, da nunmehr „verlorengeht", was darin belassen wurde.
  • Im Schritt S4 wird eine Probe durchgeführt, ob irgendwelche weiteren Daten zu verarbeiten sind. Wenn es dort keine weiteren Daten gibt, dann wird die Verarbeitung angehalten – sämtliche Daten, die beide Versionen eines Zwei-Stunden-Kinofilms repräsentieren, wurden beispielsweise auf der Disk aufgetragen oder, wie oben erwähnt, in Zwischenspeichern in dem richtigen Format und der Folge). Natürlich wird die Antwort auf die Frage im Schritt S4 negativ beim ersten Abfragen sein, aber dieser Schritt wird kurz nach dem Start jeder folgenden Iteration durchgeführt. Schließlich gibt es keine A-, B- und C-Segmente mehr, und die Verarbeitung gelangt zu einem Ende.
  • Wie auf dem Flussdiagramm zwischen den Schritten S4 und S5 angedeutet, wird beim Rest des Flussdiagramms angenommen, dass R(B) größer ist als R(A). In anderen Worten: die beiden Segmente in unterschiedlichen Versionen werden gleichzeitig verarbeitet. Es wird angenommen, dass das Segment der Version B größer ist als das Segment A. Wenn das Gegenteil der Fall ist, dann sollte die Darstellung im Flussdiagramm umgekehrt werden. Es ist leichter, die Methodologie zu verstehen, wenn man annimmt, dass mehr B-Daten als A-Daten für die zwei entsprechenden Segmente in den unterschiedlichen Versionen vorhanden sind, als wenn man die Methodologie in allgemeineren Audrücken erklärt. Alles, was in der tatsächlichen Praxis erforderlich ist, nachdem eine ursprüngliche Aktualisierung der drei Listen erfolgt ist, besteht darin, einen Test durchzuführen, ob R(A) oder R(B) größer ist und die größere Version als R(B) im Flussdiagramm zu behandeln und die kleinere als R(A).
  • Unabhängig davon, wie die relativen Längen von R(A) und R(B) sind, würde es scheinen, dass die maximale Datenmenge für das B-Segment zu Beginn jeder Iteration niedergelegt werden sollte, da R(B) länger ist. Es kann so viel B-Material vorhanden sein, dass die erforderlichen Sprünge keine nahtlose Abspielung ermöglichen, ohne Ausfüllblöcke mit der begleitenden Redundanz einzuführen, so dass zu Beginn einer jeden Iteration es bestimmt Sinn macht, so viel B-Material als möglich „loszuwerden". Wie oben in Verbindung mit den 10 und 11 beschrieben, ist die maximale Länge einer Folge von Datenblöcken der maximale Wert von β(α), was geschrieben werden kann als β(α)max, und dies ist das Gleiche wie (α)max. Demgemäß können diese vielen Daten von der R(B)-Liste in L(B) zur unmittelbaren Ablage plaziert werden. Tatsächlich kann das gesamte Segment, das in R(B) repräsentiert ist, abgelegt werden, wenn es (α)max nicht überschreitet. Dies wird im Schritt S5 bestimmt. Wenn R(B) klein genug ist, um insgesamt formatiert zu werden, so ist R(A) kleiner. L(A) und L(B) werden auf R(A) bzw. R(B) gesetzt. Nachdem sie auf der Disk formatiert sind, kann das nächste gemeinsame Segment, das durch R(C) repräsentiert ist, abgelegt werden, so dass L(C) gleichgesetzt wird R(C). Alle drei Segmente werden dann formatiert und die drei Listen werden genullt. Dann wird eine Rückführung auf den Schritt S3 vorgenommen, wo die Listen ergänzt werden.
  • Früher oder später werden die neuen Segmente verarbeitet, für die die einfachen Ablagen des Schrittes 6 nicht möglich sind, weil R(B) größer ist als β(α)max. An dieser Stelle muss eine Verschachtelung vorgenommen werden. Es gibt einen Sinn, einen β-Block zuerst zu formatieren und mit einer maximalen Länge vorzusehen, damit ein Ungleichgewicht in R(A) und R(B) vermindert wird. Wenn jedoch ein großer B-Block abgelegt wird und nicht genügend Material in R(A) für einen A-Block vorhanden ist, dann kann die Verschachtelung nicht beginnen. So wird im Schritt S7 ein Test durchgeführt, um herauszufinden, ob genügend Material für einen A-Block verfügbar ist.
  • Die Frage ist, wieviel Material in jedem Block der Version A abgelegt werden sollte. Wie oben erwähnt, wird, wenn das B-Segment sehr viel größer ist als das entsprechende A-Segement, während jeder Iteration ein Teil des Materials in dem nächsten gemeinsamen Segment auf R(A) übertragen, so dass ein Ausfüllblock auf der Disk eingefügt werden kann, um während der Abspielung der Version A ausgelesen zu werden. Um die resultierende Redundanz zu verringern (da der Ausfüllblock sich in den Blöcken, die der Version B eigen sind, wiederholt), sollte soviel R(B)-Material für so wenig R(A)-Material verarbeitet werden, das „ausgeborgt" wurde. Das ideale Verhältnis R(B)/R(A) ist β(αopt)/αopt, was im Flussdiagramm mit „Q" bezeichnet ist, wie dies erkennbar wird, so dass αopt verfügbar werden sollte, wenn es für einen A-Block benötigt wird. Demgemäß wird, bevor der erste B-Block der Länge β(α) formatiert wird, eine Überprüfung durchgeführt, dass genug Material für einen A-Block der Länge αopt verfügbar ist, das dem ersten B-Block der Länge β(α)max folgt, und dies wird dem nächsten B-Block der Länge β(αopt) vorausgeschickt. (Hierbei sollte berücksichtigt werden, dass dann, wenn die β(α)-Funktion linear ist wie in 1 A, der erste Block der Länge β(α)max die gleiche Länge β(αopt) hat wie die anderen.) Die Frage ist, wieviel Material tatsächlich für den nächsten A-Block verfügbar ist. Gemäß 7 bis 9 ist das, was für einen A-Block verfügbar ist, das, was in der Liste R(A) belassen ist; zusätzlich zu dem, was von R(C) vorgeschoben (geborgt) werden kann. So wird im Schritt S7 die Summe mit dem Betrag der Daten verglichen, die für einen A-Block erforderlich sind – αopt. Falls unzureichende Daten vorhanden sind, wird nicht einmal der erste B-Block abgelegt. Stattdessen erfolgt eine Rückführung nach dem Schritt S3, so dass alle drei Listen geändert werden können – R(A) und R(B) werden beide um den kleinen Betrag von Daten vergrößert, die für das nächste gemeinsame Segment verfügbar sind und dann werden sie dem jeweils nächsten Segment zugefügt. Da die A- und B-Segmente ausgedehnt wurden, wird R(C) einfach gleichgesetzt dem nächsten C-Segment.
  • Wenn andererseits im Schritt S7 festgestellt wird, dass genügend Material verfügbar ist (die Summe von R(A) und R(C) ist nicht geringer als αopt), dann wird im Schritt S8 der erste B-Block – maximaler Länge – endgültig niedergelegt und R(B) wird um den Anteil der so verarbeiteten Daten reduziert.
  • Beginnend mit dem Schritt S9 beginnen auf einanderfolgende Iterationen, während A,B-Blockpaare optimaler Längen αopt, β(αopt) abgelegt werden können. Aber das optimale Verhältnis ist nicht immer das, was benötigt wird, wie dies im Folgenden erläutert wird.
  • Im Schritt S10 wird ein Test durchgeführt, um zu bestimmen, ob das gegenwärtige Verhältnis R(B)/R(A) kleiner oder gleich ist Q. Da eine Division durch 0 nicht möglich ist, wird im Schritt S9 eine Überprüfung durchgeführt, um zu sehen, ob R(A) gleich 0 ist. Wenn dies der Fall ist, ist dies ein Zeichen dafür, dass es B-Material gibt, das mit keinem entsprechenden A-Material vorausgehen muss, und in einem solchen Fall besteht das Ziel darin, soviel B-Material als möglich abzulegen und die Ausfüllblöcke auf einem Minimum zu halten – diese repräsentieren eine Redundanz, wenn kein entsprechendes A-Material vorhanden ist –. Im Schritt S11 wird L(A) gleich αopt gesetzt und L(B) wird gleich β(α)opt gesetzt. Wenn gemäß 11A ein Ausfüllblock eine Länge von αopt hat, ist β(α) gleich dem Maximalwert. In anderen Worten ausgedrückt: durch Benutzung von αopt als Länge des Ausfüllblockes kann der folgende Abschnitt (der B-Daten enthält) der längst mögliche sein, relativ zur Länge des A-Abschnitts. Der Gedanke besteht darin, das Verhältnis β(α)/α zu maximieren, so dass so viel B-Material als möglich und so wenig A-Material als möglich benutzt werden kann.
  • Im Schritt S10 wird unter der Annahme, dass R(A) nicht gleich 0 ist, das Verhältnis der Daten gebildet, die in den beiden Listen R(B) und R(A) erzeugt werden, und dieses Verhältnis wird mit Q verglichen. Q ist das ideale β/α-Verhältnis, β(α)optopt und es repräsentiert die größten Daten, die „auf Kosten" der geringsten Redundanz abgelegt werden können, wenn irgendwelches R(C)-Material geborgt wurde. Wenn das Verhältnis R(B)/R(A) kleiner oder gleich Q ist, bedeutet dies, dass das A- und B-Material abgelegt werden kann, ohne irgendwelche Ausfüllblöcke von dem folgenden Segment ausborgen zu müssen – es gibt genug A-Material, um diese Arbeit durchzuführen. Wie im Schritt S12 dargestellt, werden die nächsten A-Daten, die abgelegt werden, L(A) gleich αopt gesetzt und das nächste B-Material wird abgelegt, L(B) wird gleich der gleichen Länge αopt gesetzt, multipliziert mit dem Verhältnis der verbleibenden Daten in den beiden Listen. Auf diese Weise wird, wenn das Verfahren fortgesetzt wird, αopt immer aus der Liste R(A) zur Plazierung auf der Disk entnommen, gefolgt von einer Datenmenge, die von der Liste R(B) entnommen wird, was kleiner ist als β(αopt), aber dazu führt, dass die B-Liste zur gleichen Zeit mit der Erschöpfung der A-Liste leer wird. Die Differenz zwischen den Schritten S11 und S12 besteht darin, dass, während die Daten L(A), die auf der Disk für die kürzere Version plaziert werden, immer gleich αopt eingestellt werden, die Daten, die der längeren Liste von L(B) entnommen werden, nicht das Maximum sein müssen, das für einen nahtlosen Sprung benutzt werden könnte. Wenn ein großer Teil von B-Daten vorhanden ist, dann wird L(B) = β(αopt). Wenn jedoch weniger Daten vorhanden sind, dann werden weniger Daten aus der Liste R(B) entnommen, wie im Schritt S12 dargestellt.
  • Wenn der Zeitschritt S13 erreicht ist, dann hat das System die Werte von L(A) und L(B) bestimmt. Die Länge von L(A) wird immer gleich αopt gemacht und die Daten werden von der R(A)-Liste entnommen; L(A) wird gesetzt, sogar ohne zu überprüfen, ob irgendwelche Daten in der R(A)-Liste verfügbar sind, weil im Schritt S7 bestimmt wurde, dass, falls erforderlich, R(C) genug Daten enthält. Im Schritt S13 wird eine Überprüfung durchgeführt, um zu sehen, ob genug Daten in R(A) selbst vorhanden sind, um das L(A)-Erfordernis zu erfüllen. Der Test im Schritt S13 überprüft, ob die Daten, die in R(A) verbleiben, wenigstens gleich αopt sind. Wenn genügend Daten in R(A) vorhanden sind, um das L(A)-Erfordernis zu erfüllen, dann wird der Schritt S14 übersprungen. Andernfalls wird der Schritt S14 durchgeführt. In diesem Schritt wird jenes Material von dem nächsten C-Segment vorgeschoben und in Form von Daten verarbeitet, die der Version A eigen sind, um als Ausfüllblock in der Datenblockfolge abgelegt zu werden, die während des Abspielens der Version A ausgelesen wird. Aus der in Verbindung mit den 7 bis 9 diskutierten Gründen ist es außerdem notwendig, das gleiche Material zu nehmen, das von dem nächsten C-Segment erhalten wird und dieses in dem Material einzufügen, das für die Version B eigen ist – das Grundbetriebsprinzip der Erfindung besteht darin, dass immer dann, wenn Material von einem C-Abschnitt zur Benutzung in einem A-Material-Ausfüllblock vorgeschoben wird, das gleiche Material in den Daten aufgenommen werden muss, das der Version B eigen ist. Nachdem die Überprüfung im Schritt S13 durchgeführt wurde, ob R(A) leer ist oder selbst wenn R(A) einige Daten aufweist, nicht genug Daten hat, um die L(A)-Forderung zu erfüllen, wird die Differenz Δ zwischen R(A) und L(A) gebildet. In dem zweiten Unterschritt wird Δ R(A) hinzugefügt, so dass R(A) nunmehr genug Daten besitzt, um die L(A)-Forderung zu erfüllen. Als Nächstes wird die gleiche Datenmenge, die von der R(C)-Liste abgenommen wurde, der R(B)-Liste hinzugefügt, um eine Einfügung in dem Material zu bewirken, das der Version B eigen ist. Schließlich wird das Material, welches vom C-Segment vorgeschoben wurde, von der R(C)-Liste gelöscht, weil es bereits zweimal abgelegt wurde während der Verarbeitung der A-Daten und der B-Daten.
  • Die Unterschritte des Schrittes S14 sind in 7 und 8 symbolisiert, wo gezeigt wird, dass das C-Material vorgeschoben wurde und die eigene Folge für jede Version einschließt. Dies ist, wo die Redundanz ankommt – ein Abschnitt des gemeinsamen Materials wird gelöscht, aber es wird stattdessen zweimal aufgezeichnet. Dies ist der Preis, der gezahlt werden muss, um einen Ausfüllblock abzuleiten, der sonst nicht existieren würde, und dieser Ausfüllblock dient als Absprungpunkt zur Überspringung des folgenden Datenblocks, der der Version B eigen ist.
  • So wird in den Schritten S13 und S14 bestimmt, ob genug Material in R(A) enthalten ist, um L(A) zu stützen; wenn dies nicht der Fall ist, dann wird R(A) (längs R(B)) im Schritt S14 vergrößert und gleichzeitig wird R(C) verkleinert. Für L(B) ist eine unterschiedliche Überprüfung und mögliche Korrektur erforderlich. Die Datenmenge, die auf der Disk in einem der Version B eigenen Block untergebracht werden soll, wird während des Schrittes S11 oder S12 bestimmt. Im Schritt S15 wird eine Überprüfung durchgeführt, um zu sehen, ob genug Daten in der R(B)-Liste vorhanden sind, um L(B) zu stützen. Wenn dies der Fall ist, wird ein Sprung nach dem Schritt S17 durchgeführt. Wenn andererseits R(B) kleiner ist als L(B), dann sind nicht genügend Daten in dem B-Segment verblieben, die verarbeitet werden können, um den letzten Block zu stützen, der durch L(B) repräsentiert ist und der auf der Disk plaziert werden soll. Es besteht jedoch keine Notwendigkeit, R(B) in einem solchen Fall zu vergrößern. L(B) wird einfach kürzer im Schritt S16 gemacht; L(B) wird gleich R(B) gesetzt, und die Daten, die in dem gegenwärtigen B-Segment verbleiben, werden verarbeitet. Jedes praktikable System besitzt eine minimale Blocklänge. Wenn eine Blocklänge für eine Version auftritt, die weniger Daten in dem A-, B-Segmentpaar zu verarbeiten hat, dann wird immer eine Länge gleich αopt benutzt, wie dies in Verbindung mit den Schritten S11 und S12 erläutert wurde. Jene Länge überschreitet notwendigerweise die minimale Länge, und die minimale Länge ist, wie aus 11A ersichtlich, kleiner als αopt. Es besteht jedoch keine Notwendigkeit für eine minimale Länge für den letzten Block, der der Version B eigen ist. Der Grund dafür besteht darin, dass dieser Block auf der Spur unmittelbar vor den folgenden gemeinsamen Daten plaziert ist. Wenn der Lesekopf die Version B abspielt, springt er nach dem Start des letzten kurzen B-Datenblockes und liest diesen Block und setzt weiter auf dem nächsten Datenblock fort. Und wenn die Version A abgespielt wird, dann wird ein Sprung unmittelbar nach dem kurzen B-Block nach dem Start des gemeinsamen Materials vorgenommen. Da kein Sprung vom letzten B-Block vorgenommen wird, besteht kein Erfordernis bezüglich einer minimalen Länge. Infolgedessen wird, anstatt R(B) im Schritt S16 zu vergrößern, um eine Anpassung an L(B) zu erreichen, was analog zu dem wäre, was im Schritt S14 für die A-Version durchgeführt wurde, L(B) einfach im Schritt S16 verringert, um die übrigen Daten in der R(B)-Liste gleich zu machen.
  • Wenn der Zeitschritt S17 erreicht ist, wurde R(A), falls erforderlich, im Schritt S14 durch einen kleinen Anteil von C-Daten vergrößert, und die beiden Datenblöcke, die nunmehr auf der Disk plaziert werden, L(A) und L(B), wurden ebenfalls im Schritt S17 bestimmt, wobei R(A) und R(B) beide durch die jeweiligen Datenmengen vermindert wurden, die auf der Disk plaziert wurden, und die Daten in L(A) und die Daten in L(B) werden formatiert.
  • Die einfachste Möglichkeit, die Verarbeitung von diesem Gesichtspunkt aus zu verstehen, besteht darin, den allgemeinen Fall zu betrachten, bei dem abwechselnd Segmente A und B verarbeitet werden. Wenn B sehr viel größer beginnt als A, dann werden L(A) und L(B) im Schritt S11 so eingestellt, dass die Menge von B-Material, die auf der Disk plaziert wird, relativ zu dem A-Material in dem vorhergehenden Block maximiert wird. Auf diese Weise wird das Verhältnis R(B)/R(A) abnehmend gehalten. Wenn schließlich die Ungleichung im Schritt S10 erfüllt ist, dann wird im Schritt S12 L(B) auf einen kleineren Wert eingestellt als er im Schritt S11 während der übrigen Verarbeitung der betrachteten A- und B-Segmente eingestellt wurde. Das bei der Einstellung von L(B) im Schritt S12 benutzte Verhältnis ist so ausgebildet, dass die R(A)- und die R(B)-Listen gleichzeitig gelöscht werden. In jenem Fall werden im Schritt S18 R(A) und R(B) beide während der gleichen Iteration gelöscht. Wenn andererseits B-Starts so viel größer sind als A – wenn beispielsweise kein A-Segment entsprechend einem B-Segment vorhanden ist –, muss sogar eine Maximierung des Verhältnisses der Daten, die für das β,α-Paar im Schritt S11 ausgelegt wurden, nicht dazu führen, dass R(A) und R(B) beide in der gleichen Iteration genullt werden. Was in einem solchen Fall geschieht, ist, dass R(A) auf 0 vermindert wird unter der Annahme, dass es nicht dort an der ersten Stelle mit der Verarbeitung des B-Segmentes startet, das kein entsprechendes A-Segment hat und es für R(B) länger dauert, bis zu einem Punkt gelöscht zu werden, wo keine Daten in der Liste mehr vorhanden sind (repräsentiert durch R(B) = 0 im Schritt S 18). So wird R(A) immer gelöscht, entweder während der gleichen Iteration mit R(B) oder in einer früheren Iteration, aber niemals während einer Iteration, die der Löschung von R(B) folgt.
  • Zunächst soll der Fall betrachtet werden, in dem R(A) zuerst gelöscht wird. Dabei muss berücksichtigt werden, dass R(A) in jeder Iteration während des Schrittes S14 vergrößert wird, so dass genug Daten in der Liste vorhanden sind, um die L(A)-Forderung zu erfüllen. Im gleichen Schritt wird jedoch L(A) wiederum gelöscht, da die Daten auf der Disk gespeichert sind. In einem solchen Fall muss das System fortfahren, Stücke von B-Daten abzulegen, während vom C-Segment für die A-Ausfüllblöcke ausgeborgt wird (und auch das ausgeborgte Material zu der R(B)-Liste hinzugefügt wird, das verarbeitet werden muss). Während jeder Durchführung des Schrittes S18 zeigt sich, dass R(A) = 0; da R(B) nicht 0 ist, wird eine Abzweigung zum Schritt S19 hergestellt. An dieser Stelle bei der Verarbeitung ist noch B-Material vorhanden, das sorgfältig behandelt werden muss, und vorzugsweise ist außerdem auch A-Material vorhanden. Bevor jedoch die nächste Iteration beginnen kann, muss gewährleistet werden, dass genug C-Material in der R(C)-Liste verbleibt, um die nächste L(A)-Forderung zu befriedigen. In anderen Worten ausgedrückt: wenn ein A-Block auf der Disk plaziert wurde und das Material für den Ausfüllblock wenigstens teilweise vom C-Segment genommen und dann verarbeitet wurde, müssen genügend Daten in dem C-Segment hierfür verbleiben, damit eine Durchführung erfolgen kann. Der Test in Schritt S19 ist demgemäß der gleiche wie der Test im Schritt S7. Wenn genug Material in R(C) verblieben ist, um die αopt-Forderung zu erfüllen, d. h. wenn die Summe von R(A) + R(C) nicht kleiner ist als αopt, dann erfolgt eine Rückführung nach dem Schritt S9. Da dort genügend verfügbare Daten vorhanden sind, setzt sich die Iteration mit den Schritten S9 bis S12 und die Ableitung von L(A) und L(B) fort.
  • Wenn andererseits angenommen wird, dass R(A) + R(C) kleiner als αopt, ist, bedeutet dies, dass nicht genügend Daten in R(C) vorhanden sind, um ein Ausborgen einer Menge zu ermöglichen, die bei Hinzufügung zu R(A) gleich αopt während des Schrittes S14 wird. Es wird eine Rückführung nach dem Beginn der Hauptverarbeitungsschleife, d. h. nach dem Schritt S3 durchgeführt, was das in 9 Ersichtliche implementiert. Das letzte Bit des C-Materials, C4 in 9, wird dem Ende des vorangehenden A-Materials und B-Materials hinzugefügt, das verblieben ist, um verarbeitet zu werden. Dies kann geschehen, weil das vorangehende C-Material (C1, C2 und C3 in 9) bereits am Hinterende der vorangehenden A- und B-Segmente plaziert war, die verarbeitet werden. Selbst wenn das B-Segment nicht voll niedergelegt wurde, ist es nur erforderlich, das letzte Bit des C-Segmentes am Ende von dem zu plazieren, was bereits in der R(B)-Liste vorhanden ist. Die Plazierung von C4 am Ende des gegenwärtigen R(A) und R(B) läuft auf das Gleiche hinaus wie eine Vermischung des gegenwärtigen A-Segmentes (wenn irgendwas in diesem verblieben ist) mit dem folgenden A-Segment und einer Vermischung des gegenwärtigen B-Segmentes mit dem folgenden B-Segment, da sämtliches C- Material, das sie trennt, bereits berücksichtigt wurde. Wie in 9 dargestellt, wird C4 zu Beginn des nächsten A-Segmentes hinzugefügt und es wird am Ende des gegenwärtigen B-Segmentes hinzugefügt (R(B), das die vorhergehenden R(C)-Blöcke C1 bis C3 enthält, die zu der R(B) hinzugefügt wurden), worauf das nächste B-Segment zu R(B) hinzugefügt wird. Schließlich wird R(C) einfach das nächste C-Segment.
  • Die Verarbeitung wird fortgesetzt, wobei die äußere Schleife nach dem Schritt S3 zurückkehrt und die innere Schleife nach dem Schritt S9. Schließlich hört die Verarbeitung auf, wenn im Schritt S4 bestimmt wird, dass keine weiteren Daten vorhanden sind.
  • Die Erfindung wurde vorstehend in Verbindung mit einem illustrativen Ausführungsbeispiel beschrieben, das nur zwei Versionen von einem Programm besitzt. Das erfindungsgemäße Verfahren ist aber sehr viel weiter nützlich anwendbar. Beispielsweise soll eine Multimedia-Disk betrachtet werden, deren Gegenstand „amerikanische Präsidenten" sind, und nach Abspielen eines Segmentes mit Kriegen allgemein kann ein Abzweig nach einem Segment getroffen werden nach irgendeinem Präsidenten, in dessen Administration Amerika im Krieg war. Die Segmente von Roosevelt und Truman können gemeinsame Gegenstände zu Beginn und irgendwo enthalten, und beide Segmente können weit weg sein von dem Segment, von dem die Abzweigung getroffen wurde. Gemeinsames Material kann redundant aufgezeichnet werden, wie oben beschrieben wurde, um Ausfüllblöcke für nahtlose Sprünge für diese beiden Videosegmente zu erzeugen, während die gleiche Sache noch für andere gepaarte Präsidenten-Videosegmente geschehen kann. Es besteht kein Grund, die Sprünge nur über zwei Arten von Materialen zu begrenzen – es können Dutzende oder sogar Hunderte sein, und zwar in beiden Richtungen, wenn extensive, auf Wahl des Benutzers vorgenommene Abzweigungen erlaubt sind. In gleicher Weise können drei oder mehrere Videosegmente, die gemeinsames Material benutzen, dieses gemeinsame Material dreimal oder mehrfach in Ausfüllblöcken aufgezeichnet haben, die den drei oder mehreren individuellen Videosegmenten zugeordnet sind, wenn es notwendig ist, eine nahtlose Abzweigung zuzulassen. Der gemeinsame Nenner ist in allen Fällen jenes Material, das wenigstens zwei Programmen oder zwei Programmsegmenten gemeinsam und redundant aufgezeichnet ist – auf Kosten eines „realen Besitzes" –, um eine nahtlose Abspielung stattfinden zu lassen.
  • Das Augenmerk wurde hierbei darauf gelegt, die Redundanz auf ein Minimum zu vermindern, jedoch ist ein gewisser Spielraum zulässig. Es ist nicht notwendig, jeden möglichen Millimeter der Bit-Kapazität auszuquetschen. Die Erfindung wurde beschrieben unter Bezugnahme auf ein spezielles Ausführungsbeispiel, es ist jedoch klar, dass dieses Ausführungsbeispiel nur illustrativ für die Anwendung der Prinzipien der Erfindung ist. Es können zahlreiche Modifikationen und andere Anordnungen getroffen, wenn diese in den Rahmen der Erfindung fallen, wie dies in den Ansprüchen definiert ist.

Claims (9)

  1. Verfahren zur Initialisierung von digitalen Daten auf einem abspielbaren Medium, welche Daten wenigstens zwei Versionen eines Bewegtbild-Programms repräsentieren, wobei das Verfahren die folgenden Schritte aufweist: es werden in einem einzigen Datenstrom Datensequenzen verschachtelt, die eindeutig sind für jede Version und Datensequenzen, die zweien davon gemeinsam sind; und um eine kontinuierliche Wiedergabe beider Versionen auf einem Abspielgerät zu erreichen, das mit dem Medium kompatibel ist, jedoch einen begrenzten Pufferspeicher besitzt, werden redundant Daten, die im Übrigen beiden Versionen gemeinsam sind, in den Datensequenzen plaziert, die eindeutig für beide Versionen sind, wobei die Länge der Datenblöcke jeder Version gemäß der Pufferspeicherlänge begrenzt ist.
  2. Verfahren nach Anspruch 1, bei welchem die Daten wenigstens zwei Programmversionen A und B von Quellenmaterial repräsentieren und das Medium auf einem Abspielgerät abspielbar ist, das ein vorbestimmtes Datenpuffer-Managementsystem aufweist; die Daten repräsentieren A-Typ-Segmente von A-Versions-Quellenmaterial, B-Typ-Segmente von B-Versions-Quellenmaterial und C-Typ-Segmente von Quellenmaterial, das gemeinsam beiden der wenigstens zwei Versionen ist, wobei Daten auf dem Medium verschachtelt werden, um A-Typ- und B-Typ-gepaarte Segmente zu repräsentieren, die zwischen aufeinanderfolgenden C-Typ-Segmenten angeordnet sind, wobei die die C-Typ-Segmente repräsentierenden Daten unabhängig davon ausgelesen werden, welche Version von Quellenmaterial abgespielt wird, während Daten, die nur A-Typ- oder B-Typ-Segmente repräsentieren, in Abhängigkeit davon ausgelesen werden, welche Version des Quellenmaterials abgespielt wird; und wobei die Verschachtelung die folgenden Schritte umfasst: (a) wenn möglich, werden Daten, die jedes A-Typ-Segment und jedes B-Typ-Segment in einem Paar repräsentieren, in einer einzigen Reihe von verschachtelten Datenblöcken (A1, A2 ... An; B1, B2 ... Bn) aufgeteilt, und es wird die Länge der einzelnen A-Typ- und B-Typ-Datenblöcke begrenzt, damit das Abspielgerät, auf dem das Medium abgespielt wird, A-Typ-Datenblöcke ohne Unterbrechung überspringen kann, wenn die Version B von Quellenmaterial abgespielt wird und damit das Abspielgerät die B-Typ-Datenblöcke ohne Unterbrechung überspringen kann, wenn die Version A des Quellenmaterials abgespielt wird und wobei den verschachtelten A-Typ- und B-Typ-Datenblöcken Datenblöcke folgen, die nur das folgende C-Typ-Segment repräsentieren; (b) um Unterbrechungen während des Abspielens dann zu vermeiden, wenn eines der Segmente des A-Typ- oder des B-Typ-Paares sehr viel länger ist als das andere, wird Material von dem C-Typ-Segment gelöscht, das dem Paar (C1, C2 ... Cn) folgt, und dieses wird redundant in jeder der beiden vorhergehenden A-Typ- und B-Typ-verschachtelten Reihen der Datenblöcke repräsentiert.
  3. Verfahren nach den Ansprüchen 1 oder 2, dadurch gekennzeichnet, dass die Reihen verschachtelter Datenblöcke mit einem Datenblock beginnen und enden, der das längere der beiden Segmente in dem jeweiligen Paar repräsentiert.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass innerhalb einer Reihe von verschachtelten Datenblöcken, die ein Paar von Segmenten repräsentieren, von denen das eine sehr viel größer ist als das andere, das Verhältnis der Längen der benachbarten Blöcke in einem Paar derart ist, dass das Ausmaß der Redundanz ein Minimum ist.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass eine verschachtelte Reihe von Datenblöcken dadurch erzeugt wird, dass zwei Listen, die A-Typ- und B-Typ-Material repräsentieren, aufrecht erhalten und Datenblöcke bestimmt werden, die von den Listen verschachtelt sind und dass beide Listen so ausgedehnt werden, dass ein folgendes C-Typ-Material repräsentiert wird, wenn es notwendig ist, eine Redundanz einzuführen, um Unterbrechungen beim Abspielen zu verhindern.
  6. Abspielbares Medium, initialisiert mit digitalen Daten, die wenigstens zwei Versionen eines Bewegtbild-Programms repräsentieren, das einen einzigen Datenstrom von verschachtelten Datensequenzen enthält, die eindeutig sind für jede Version und das außerdem Datensequenzen enthält, die den beiden davon gemeinsam sind; und um eine kontinuierliche Wiedergabe beider Versionen auf einem Abspielgerät zu erreichen, das mit dem Medium kompatibel ist, jedoch einen begrenzten Pufferspeicher besitzt, werden Daten, die sonst in einer gemeinsamen Sequenz wären, redundant in beiden Datensequenzen plaziert, die eindeutig den beiden Versionen sind, wobei die Länge der Datenblöcke jeder Version gemäß der Pufferspeicherlänge begrenzt ist.
  7. Medium nach Anspruch 6, bei welchem die digitalen Daten wenigstens zwei Programmversionen A und B des Quellenmaterials repräsentieren und das Medium auf einem Abspielgerät abspielbar ist, das ein vordefiniertes Datenpuffer-Managementsystem aufweist; (a) die Daten auf dem Medium repräsentieren: A-Typ-Segmente von A-Versions-Quellenmaterial (A1, A2 ... An), B-Typ-Segmente von B-Versions-Quellenmaterial (B1, B2 ... Bn) und C-Typ-Segmente von Quellenmaterial, das beiden der wenigstens zwei Versionen gemeinsam ist, wobei das Medium auf einem Abspielgerät abspielbar ist, das Daten ausliest, die C-Typ-Segmente repräsentieren, unabhängig davon, welche Version des Quellenmaterials abgespielt wird und Daten ausliest, die nur A-Typ- oder nur B-Typ-Segmente repräsentieren, in Abhängigkeit davon, welche Version des Quellenmaterials abgespielt wird; (b) es werden Daten auf dem Medium verschachtelt, um A-Typ- und B-Typgepaarte Segmente zu repräsentieren, die zwischen aufeinanderfolgenden C-Typ-Segmenten (C1, C2 ... Cn) angeordnet sind, wobei Daten, die jedes A-Typ-Segment und jedes B-Typ-Segment in einem Paar repräsentieren, in eine einzige Reihe von verschachtelten Datenblöcken aufgeteilt werden, wobei die Längen der einzelen A-Typ- und B-Typ-Datenblöcke begrenzt ist, damit das Abspielgerät, auf dem das Medium abgespielt wird, A-Typ-Datenblöcke ohne Unterbrechung überspringen kann, wenn die Version B des Quellenmaterials abgespielt wird und B-Typ-Datenblöcke ohne Unterbrechung überspringen kann, wenn die Version A des Quellenmaterials abgespielt wird; (c) wobei Serien von verschachtelten A-Typ- und B-Typ-Datenblöcken Datenblöcken folgen, die nur das folgende C-Typ-Segment repräsentieren und wobei eines der Segmente eines A-Typ- und B-Typ-Paares sehr viel länger ist als das andere und sonst während des Abspielens zu einer Unterbrechung führen würde, und wobei Material, das beiden Versionen gemeinsam ist, bei dem C-Typ-Segment fehlt, das dem Paar folgt und stattdessen redundant in jedem der beiden vorhergehenden A-Typ- und B-Typ-Verschachtelungsserien der Datenblöcke repräsentiert wird.
  8. Medium nach den Ansprüchen 6 oder 7, dadurch gekennzeichnet, dass die Serien verschachtelter Datenblöcke mit einem Datenblock beginnen und enden, der das längere der beiden Segmente in dem jeweiligen Paar repräsentiert.
  9. Medium nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, dass innerhalb einer Serie verschachtelter Datenblöcke, die ein Paar von Segmenten repräsentieren, eines der Segmente sehr viel größer ist als das andere, und das Verhältnis der Längen benachbarter Blöcke in einem Paar ist derart, dass das Ausmaß der Redundanz ein Minimum wird.
DE69723003T 1996-02-21 1997-02-06 Verfahren zur datenverschachtelung für die kontinuierliche wiedergabe von mehreren programmversionen mit demselben material Expired - Lifetime DE69723003T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US604303 1990-10-29
US08/604,303 US5644507A (en) 1996-02-21 1996-02-21 Method for interleaving data for seamless playback of multiple program versions having common material
US08/730,328 US6006273A (en) 1996-02-21 1996-10-15 Method for interleaving data for seamless playback of multiple program versions having common material
US730328 1996-10-15
PCT/US1997/001934 WO1997031374A1 (en) 1996-02-21 1997-02-06 Method for interleaving data for seamless playback of multiple program versions having common material

Publications (2)

Publication Number Publication Date
DE69723003D1 DE69723003D1 (de) 2003-07-31
DE69723003T2 true DE69723003T2 (de) 2004-05-27

Family

ID=27084635

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69723003T Expired - Lifetime DE69723003T2 (de) 1996-02-21 1997-02-06 Verfahren zur datenverschachtelung für die kontinuierliche wiedergabe von mehreren programmversionen mit demselben material

Country Status (9)

Country Link
US (1) US6026446A (de)
EP (1) EP0823114B1 (de)
JP (1) JP3016598B2 (de)
AT (1) ATE243879T1 (de)
AU (1) AU690871B2 (de)
CA (1) CA2218657C (de)
DE (1) DE69723003T2 (de)
ES (1) ES2199347T3 (de)
WO (1) WO1997031374A1 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381126B2 (en) * 1992-12-14 2013-02-19 Monkeymedia, Inc. Computer user interface with non-salience deemphasis
US5623588A (en) * 1992-12-14 1997-04-22 New York University Computer user interface with non-salience deemphasis
US8370746B2 (en) * 1992-12-14 2013-02-05 Monkeymedia, Inc. Video player with seamless contraction
US5726627A (en) 1995-05-16 1998-03-10 Roger A. Kane Security system with intermittent alarm location detection
KR100322853B1 (ko) 1996-01-08 2002-06-24 니시무로 타이죠 정보기록매체및기록방법및재생장치
US20030093790A1 (en) 2000-03-28 2003-05-15 Logan James D. Audio and video program recording, editing and playback systems using metadata
US6931451B1 (en) * 1996-10-03 2005-08-16 Gotuit Media Corp. Systems and methods for modifying broadcast programming
AU755744B2 (en) * 1998-03-19 2002-12-19 Koninklijke Philips Electronics N.V. Recording/reproduction and/or editing of real time information on/from a disc like record carrier
RU99126806A (ru) * 1998-03-19 2001-10-27 Конинклейке Филипс Электроникс Н.В. (Nl) Запись/воспроизведение и/или редактирование информации в реальном времени на дискообразном носителе записи
JPH11296997A (ja) * 1998-04-10 1999-10-29 Pioneer Electron Corp 情報記録媒体及び再生装置
JP3357288B2 (ja) * 1998-04-10 2002-12-16 パイオニア株式会社 情報記録媒体及び再生装置
US10051298B2 (en) 1999-04-23 2018-08-14 Monkeymedia, Inc. Wireless seamless expansion and video advertising player
US6393158B1 (en) 1999-04-23 2002-05-21 Monkeymedia, Inc. Method and storage device for expanding and contracting continuous play media seamlessly
US20070300258A1 (en) * 2001-01-29 2007-12-27 O'connor Daniel Methods and systems for providing media assets over a network
EP1276323A1 (de) * 2001-07-13 2003-01-15 France Telecom Verfahren zum Senden von Multimediasignalen zu mehreren Terminals
US20030093515A1 (en) * 2001-11-14 2003-05-15 Kauffman Marc W. Quality of service control of streamed content delivery
US7889968B2 (en) * 2002-06-24 2011-02-15 Lg Electronics Inc. Recording medium having data structure for managing reproduction of multiple reproduction path video data for at least a segment of a title recorded thereon and recording and reproducing methods and apparatuses
RU2334286C2 (ru) 2002-06-28 2008-09-20 Эл Джи Электроникс Инк. Носитель записи со структурой данных для управления записью и воспроизведением записанных на нем данных нескольких каналов и способы и устройства записи и воспроизведения
US20070240185A1 (en) * 2005-08-26 2007-10-11 Weaver Timothy H Methods, apparatuses, and computer program products for delivering audio content on demand
US20070250875A1 (en) * 2005-08-26 2007-10-25 Weaver Timothy H Methods, apparatuses, and computer program products for delivering one or more television programs for viewing during a specified viewing interval
JP4709017B2 (ja) 2006-01-12 2011-06-22 ソニー株式会社 イヤホン装置
US7735101B2 (en) 2006-03-28 2010-06-08 Cisco Technology, Inc. System allowing users to embed comments at specific points in time into media presentation
CN103024604B (zh) * 2012-12-28 2015-06-17 合一网络技术(北京)有限公司 一种用于实现ts文件无缝连接的装置及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434678A (en) * 1993-01-11 1995-07-18 Abecassis; Max Seamless transmission of non-sequential video segments
CA2141607A1 (en) * 1992-08-10 1994-02-17 Charlie Kellner System and method of selecting among multiple data streams
DE69319353T3 (de) * 1993-10-29 2001-06-13 Toshiba Kawasaki Kk Aufzeichnungsmedium, wiedergabeverfahren und wiedergabegerät für mehrfachszenen
US5463565A (en) * 1993-10-29 1995-10-31 Time Warner Entertainment Co., L.P. Data block format for software carrier and player therefor
US5487077A (en) * 1994-05-23 1996-01-23 International Business Machines Corporation Location dependent variable error correction processing for multi-track recording media using variable length coding means
TW436777B (en) * 1995-09-29 2001-05-28 Matsushita Electric Ind Co Ltd A method and an apparatus for reproducing bitstream having non-sequential system clock data seamlessly therebetween
MX9801212A (es) * 1995-09-29 1998-04-30 Matsushita Electric Ind Co Ltd Metodo y dispositivo para grabar y reproducir una corriente de bits intercalada sobre y desde un medio.
TW305043B (de) * 1995-09-29 1997-05-11 Matsushita Electric Ind Co Ltd
KR100322853B1 (ko) * 1996-01-08 2002-06-24 니시무로 타이죠 정보기록매체및기록방법및재생장치

Also Published As

Publication number Publication date
ATE243879T1 (de) 2003-07-15
CA2218657C (en) 2000-04-18
CA2218657A1 (en) 1997-08-28
JP3016598B2 (ja) 2000-03-06
EP0823114A4 (de) 1998-11-18
ES2199347T3 (es) 2004-02-16
EP0823114A1 (de) 1998-02-11
AU2261997A (en) 1997-09-10
DE69723003D1 (de) 2003-07-31
US6026446A (en) 2000-02-15
JPH10509548A (ja) 1998-09-14
WO1997031374A1 (en) 1997-08-28
AU690871B2 (en) 1998-04-30
EP0823114B1 (de) 2003-06-25

Similar Documents

Publication Publication Date Title
DE69723003T2 (de) Verfahren zur datenverschachtelung für die kontinuierliche wiedergabe von mehreren programmversionen mit demselben material
DE69534267T2 (de) Aufnahme und Wiedergabe eines MPEG-Informationssignals auf/von einem Aufnahmeträger
DE4345611B4 (de) Wiedergabe-Gerät
DE2828263A1 (de) Anordnung zur speicherung und wiedergabe von video-daten auf einer video-speicherplatte
DE3012134C2 (de)
EP0276753B1 (de) Verfahren und Vorrichtung zur digitalen Nachrichtenübertragung und/oder -aufzeichnung und -wiedergabe
AT394290B (de) Magnetband-aufzeichnungsgeraet
DE69530263T2 (de) Verfahren und Gerät zur Aufzeichnung und Verarbeitung von Daten
DE69632664T2 (de) Dekodierung von Informationsseiten, die Titelinformation und Seitendaten umfassen
DE2205893C2 (de) Anlage zur automatischen Montage von Fernsehinformationen
DE2734337A1 (de) Aufbereitungssystem
DE2024183A1 (de) System zur Herstellung polychromatischer Bildinformationen
DE3132840C2 (de)
DE3003134A1 (de) Verfahren und vorrichtung zum edieren von auf einem aufzeichnungstraeger aufgezeichneten digitalsignalen
DE3321842A1 (de) Adressanzeigeeinrichtung, insbesondere fuer plattenspieler
DE69729152T2 (de) Datensynchronisierungssystem für mehrfach-speicher-matrixen, die feldbezogene daten verarbeiten
DE19581534B4 (de) Datenübertragungsgerät und Verfahren
DE3918768C2 (de) Schneidanordnung für eine Vielzahl von Videobandrecordern und dabei anwendbares Schneidverfahren
EP0801388A1 (de) Editieranordnung
DE69932407T2 (de) Aufnahmevorrichtung zur aufnahme eines digitalen informationssignals auf einem aufnahmeträger
DE3034716C2 (de) Magnetband mit Schrägspuraufzeichnung zeitlich komprimierter Ton- und Bildinformationssignalteile sowie Aufnahme- und Wiedergabevorrichtung hierfür
DE3337544C2 (de)
DE2342636A1 (de) Verfahren und vorrichtung zur verringerung der bandbreite eines videohochfrequenzsignals
DE3340121A1 (de) Einschreib- und auslesevorrichtung zum steuern des einschreibens und auslesens von bildelementdaten in oder aus einer speicherschaltung
DE3304796C2 (de)

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: WARNER BROS. ENTERTAINMENT INC., BURBANK, CALIF.,

8327 Change in the person/name/address of the patent owner

Owner name: WARNER HOME VIDEO INC., BURBANK, CALIF., US