ES2199347T3 - Procedimiento para entrelazar datos para reproducir sin interrupcion versiones multiples de programas que tienen partes comunes. - Google Patents

Procedimiento para entrelazar datos para reproducir sin interrupcion versiones multiples de programas que tienen partes comunes.

Info

Publication number
ES2199347T3
ES2199347T3 ES97905815T ES97905815T ES2199347T3 ES 2199347 T3 ES2199347 T3 ES 2199347T3 ES 97905815 T ES97905815 T ES 97905815T ES 97905815 T ES97905815 T ES 97905815T ES 2199347 T3 ES2199347 T3 ES 2199347T3
Authority
ES
Spain
Prior art keywords
data
type
version
blocks
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
ES97905815T
Other languages
English (en)
Inventor
Lewis S. Ostrover
Gregory B. Thagard
Joseph E. Wall, Iii
Christopher J. 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.)
Time Warner Cable Enterprises LLC
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
Application granted granted Critical
Publication of ES2199347T3 publication Critical patent/ES2199347T3/es
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)

Abstract

UN METODO PARA DAR FORMATO A DATOS DIGITALES EN UN DISCO OPTICO (23) QUE REPRESENTA AL MENOS DOS VERSIONES DEL MISMO PROGRAMA. SECUENCIAS DE DATOS QUE SON UNICAS PARA CADA VERSION Y SECUENCIAS DE DATOS QUE SON COMUNES A LAS DOS VERSIONES QUE ESTAN ENTRELAZADAS EN UN SOLO FLUJO DE DATOS (FIG. 6). PARA CONSEGUIR LA REPRODUCCION PERFECTA DE AMBAS VERSIONES EN UN REPRODUCTOR (21) QUE ES COMPATIBLE CON EL FORMATO DEL DISCO PERO TIENE ALMACENAMIENTO EN BUFFER LIMITADO, DATOS QUE DE OTRA MANERA SERIAN COMUNES A AMBAS VERSIONES SE COLOCAN REDUNDANTEMENTE EN LAS SECUENCIAS DE DATOS QUE SON UNICAS PARA AMBAS VERSIONES.

Description

Procedimiento para entrelazar datos para reproducir sin interrupción versiones múltiples de programas que tienen partes comunes.
Esta invención se refiere a la reproducción de soportes de software (por ejemplo, películas cinematográficas), y más particularmente, a un método para entrelazar datos en un soporte que permita que dos versiones del mismo programa que tienen material en común sean reproducidas sin cortes.
Antecedentes de la invención
En la patente nº 5,463,565, titulada ``Data Block Format for Software Carrier and Player Therefor'', concedida el 31 de octubre de 1995 a nombre de Cookson y Ostrover, a la que se hará referencia en lo que sigue como ``la patente `565'', se describe un reproductor de disco óptico que es capaz de reproducir alguna de las dos versiones de la misma película cinematográfica. La película cinematográfica está representada en el disco como ``vídeo comprimido'' en forma de bloques de datos sucesivos en una pista sencilla, conteniendo cada bloque posiblemente información de vídeo, información de audio, información de subtítulos, y similares. La patente `565 explica cómo una enorme cantidad de datos puede ser representada en un disco no mayor que el CD de audio actual. No sólo es posible incluir pistas de sonido en múltiples idiomas, sino que es posible incluso almacenar dos versiones de la misma película cinematográfica, por ejemplo, calificada para mayores de dieciocho años y calificada autorizada con supervisión paterna.
Dos versiones de la misma película cinematográfica contienen usualmente una gran cantidad de material común. Esto es cierto especialmente para las versiones del mismo programa, calificada para mayores de dieciocho años y calificada autorizada con supervisión paterna, pero lo mismo se aplica a otros ejemplos de versiones múltiples (al menos dos) del mismo material de programa. Por ejemplo, el mismo disco podría incluir materiales de enseñanza y de pruebas, estando la materia común incluida en ambas ``versiones''. Para minimizar el almacenamiento redundante de datos, tres tipos de bloques de datos están previstos en la misma pista, en una forma entrelazada B - bloques que contienen material único para una versión, bloques que contienen material único para la otra versión, y bloques que contienen material común a ambas. Usando este tipo de almacenamiento de datos, como está ilustrado en el documento EP 0847 197 A1, es posible reproducir las escenas seleccionadas sin interrupciones de datos accediendo y decodificando intermitentemente los datos específicos para las escenas seleccionadas usando las unidades de datos entrelazados. Una serie de códigos y punteros incluidos en cada bloque permiten la reproducción de los bloques comunes cuando alguna versión está siendo reproducida y la reproducción de bloques de sólo uno de los otros dos tipos, dependiendo de qué versión ha sido seleccionada; los bloques que contienen datos únicos para la versión no seleccionada son saltados.
Cuando más de una versión de un programa va a ser derivada de un sistema de disco óptico digital, puede haber casos en los que si no limitaciones mecánicas y de la gestión de memorias intermedias impedirían la derivación sin cortes de las versiones alternativas. El término ``reproducción sin cortes'' se refiere a que siempre se dispone de suficientes datos en las memorias intermedias necesarias para permitir la reproducción continua, sin interrupciones aparentes, incluso aunque la cabeza lectora del reproductor tenga que saltar bloques de datos no seleccionados. Aunque la cabeza lectora del reproductor esté saltando una secuencia de bloques de datos no seleccionada, los datos para la versión que está siendo reproducida son proporcionados por memorias intermedias que fueron llenadas antes del inicio del salto. Pero si una secuencia de bloques de datos que debe ser saltada es muy larga, entonces la cabeza lectora puede no ser capaz de reposicionarse a sí misma a tiempo para volver a adquirir los datos para una memoria intermedia particular (vídeo, audio, etc.) que se ha vaciado durante el salto. En tal caso, cuando la cabeza lectora se reposiciona a sí misma e inicia el llenado de la(las) memoria(s) intermedia(s) vacía(s), la pantalla puede haberse borrado o la pista de sonido puede haberse detenido.
Cuanto mayores son las memorias intermedias, naturalmente, mayor es la cantidad de datos que puede ser almacenada en ellas, y mayor el tiempo permitido para un salto sin que las memorias intermedias se vacíen. Pero hay límites prácticos para los tamaños de las memorias intermedias. Por ejemplo, considérese una película cinematográfica en la que, después del material común, la reproducción se ramifica, bien en un segmento de diez minutos para una versión, o bien en un segmento de doce minutos para otra, después de lo cual ambas versiones incluirían algún material común más. De cuatro secuencias de bloques sucesivas almacenadas en el disco, la primera y la última podrían representar material común y las dos secuencias del medio podrían representar las versiones respectivas. Durante la reproducción del disco, la cabeza lectora debe saltar una secuencia de bloques que representa, o bien diez minutos, o bien doce minutos. Tal salto grande puede requerir un tiempo mayor del que una o más memorias intermedias pueden sostener. En tal caso, la reproducción no será sin cortes. No es práctico evitar este problema diciendo que las memorias intermedias deberían ser mayores porque la memoria adicional puede añadir un coste significativo al reproductor, y dentro de límites prácticos, habrá siempre algunos discos de versiones múltiples que igualmente no puedan ser reproducidos sin cortes.
Sumario de la invención
La presente invención es un método para disponer o formatear bloques de datos en un disco para conseguir la reproducción sin cortes de ambas versiones de un programa con material común como está definido en la reivindicación 1 y un medio como está definido en la reivindicación 6. Si una porción del programa que va a ser saltada es demasiado larga, es decir, si la distancia (medida en tiempo o longitud) a lo largo de la pista que debe ser saltada por la cabeza lectora es tan larga que la cabeza lectora no puede reposicionarse a sí misma a tiempo para volver a adquirir datos para la(las) memoria(s) intermedia(s) relevantes, entonces los bloques de datos sucesivos que representan las dos versiones son partidos en trozos y entrelazados en la pista. De esta forma, por ejemplo, cuando la versión B está siendo reproducida y los bloques A tienen que ser saltados, los bloques A son todos suficientemente cortos para que cuando la cabeza lectora salga de un bloque B, todas las memorias intermedias tengan datos suficientes para permitir la reproducción continua sin cortes sin que ninguna memoria intermedia se vacíe cuando la cabeza lectora se posiciona a sí misma al inicio del siguiente bloque B.
El problema con este enfoque simple es que los bloques de datos A pueden ser tan pocos o tan cortos que simplemente no puedan rellenar las memorias intermedias suficientemente para permitir los saltos de los bloques B entrelazados respectivos. Aún peor es la posibilidad de que no haya ningún bloque A. En otras palabras, entre dos bloques o secuencias de bloques sucesivos que contienen material común (C) puede haber un segmento B pero no un segmento A. Cuando se reproduce la versión A, la cabeza lectora debe saltar los bloques de datos que representan el segmento B entero, y esto puede simplemente no ser posible para realizar la reproducción sin cortes de una secuencia común a la siguiente secuencia común cuando la versión A está siendo reproducida y el material B debe ser saltado.
El principio básico de la invención en tal caso es tomar el material común que de otra forma sigue al material A y usarlo, en el ejemplo que se acaba de describir, para los bloques de datos de la versión A. Cuando está siendo reproducida la versión A, por tanto, hay material al que la cabeza lectora puede acceder antes de saltar cada secuencia sucesiva de bloques de datos de la versión B. Pero si material común es avanzado de esta forma y almacenado entrelazado con los bloques de datos de la versión B, este material común será reproducido como parte de la versión A antes incluso de que la cabeza lectora alcance el material común, y reproducir el material común desde su inicio tendrá como resultado una repetición de lo que se acaba de ver. Por esta razón, el material al inicio del segmento común que es avanzado y usado como bloques para la versión A es duplicado en bloques que representan la versión B y suprimidos del material común. De esta forma, la cabeza lectora alcanzará el inicio del material común restante que aún no ha sido reproducido independientemente de que versión esté en curso. Hay necesariamente una cierta redundancia de datos incorporados en el formateado del disco porque el material común, que realmente tiene que ser almacenado sólo una vez en un segmento común, no es almacenado realmente allí, sino que en su lugar es almacenado dos veces - una vez en cada una de las dos versiones. Pero la ligera redundancia (que se traduce en una pequeña pérdida en la capacidad de almacenamiento global) permite la reproducción sin cortes de ambas versiones independientemente de la longitud del segmento de material que tenga que ser saltado durante la reproducción de cualquier versión. Un algoritmo para controlar este ``avance de datos'' está descrito más adelante. Está diseñado para minimizar el grado de redundancia.
Breve descripción de los dibujos
Otros objetos, características y ventajas de la invención serán evidentes al considerar la siguiente descripción detallada junto con el dibujo, en el que:
Fig. 1, representa simbólicamente las clases de saltos que son necesarios cuando dos versiones del mismo programa que tienen material común están almacenadas en una pista sencilla;
Figs.2A y 2B, son iguales a las Figs. 7A y 7B respectivas en la patente `565 identificada anteriormente, siendo la Fig. 2A un diagrama de estado y leyenda que caracteriza la forma en que el reproductor de disco lee sólo aquellos bloques de datos sobre una pista del disco que son necesarios para la reproducción de una versión seleccionada de una película cinematográfica u otra presentación de vídeo, y la Fig. 2B representa la forma en la que una o dos versiones alternativas pueden ser reproducidas siguiendo las reglas ilustradas por el diagrama de estado de la Fig. 2A;
Fig. 3, es la misma que la Fig. 2 en la patente `565 identificada antes y es una representación de diagrama de bloques de un reproductor de discos (que incluye las diversas memorias intermedias cuya compresión es necesaria para apreciar la presente invención);
Fig. 4, es un diagrama simplificado a lo largo de las líneas de la Fig. 2B y muestra dos casos en los que la capacidad de la memoria intermedia no supone un problema;
Fig. 5, es un diagrama similar al de la Fig. 4 pero con cambios relativamente simples, ilustra cómo segmentos largos pueden dar lugar a la reproducción sin cortes;
Fig. 6, ilustra el método de entrelazado de la invención en el que hay suficiente material de programa en ambos segmentos A y B entre dos segmentos comunes (C);
Fig. 7, es una extensión de la Fig. 6 pero ilustra el método de entrelazado de la invención cuando uno de los dos segmentos no tiene suficiente material para permitir el entrelazado necesario;
Fig. 8, es aún otra extensión del modelo de la Fig. 7 e ilustra un caso extremo en el que el material común es codificado redundantemente sólo para permitir saltos de otro material común codificado redundantemente;
Fig. 9, ilustra todavía otra extensión del método de entrelazado de la invención y representa un caso extremo en el que todo el material común en un segmento común es codificado redundantemente en bloques de datos que representan las dos versiones diferentes;
Fig. 10, ilustra los segmentos de bloque representados por los términos \alpha y \beta (\alpha) como son usados en los diagramas de flujo que representan el método de la invención;
Figs.11A y 11B, ilustran dos relaciones matemáticas alternativas entre las variables \alpha y \beta (\alpha);
Fig. 12, ilustra un sistema que puede implementar el método de la presente invención y además muestra varias listas y materiales de fuente que van a ser descritos en detalle más adelante; y
Figs. 13A y 13B, ilustran el método preferido para codificar redundantemente el material común para conseguir la reproducción sin cortes de dos versiones del mismo material.
Descripción detallada de la realización ilustrativa de la invención El problema afrontado por la presente invención
La Fig. 1 ilustra simbólicamente los segmentos de programa sucesivos que pueden tener que ser reproducidos cuando va ser reproducida una seleccionada de dos versiones diferentes del mismo material de programa. Como se muestra, hay cinco segmentos comunes (C), todos los cuales tienen que ser reproducidos independientemente de cuál de las dos versiones A y B esté seleccionada. La fila superior, etiquetada VERSIÓN A, muestra tres segmentos que son únicos para la versión A. Los segmentos que son reproducidos en secuencia para esta versión son CACACCAC. La versión B, por otra parte, requiere la reproducción de segmentos únicos diferentes, como está representado en la fila etiquetada VERSIÓN B. En este caso, la secuencia correcta es CBCCBCBC. En ambos casos, las flechas muestran el flujo de segmento a segmento. Los segmentos C son comunes a ambas versiones. Es el uso de las secciones comunes lo que reduce sensiblemente la cantidad de almacenamiento que de otra forma sería necesaria para dos versiones diferentes.
Aunque los diversos segmentos (cada uno de los cuales puede estar representado por muchos bloques de datos sucesivos) se muestran en tres filas en la Fig. 1, típicamente todos los segmentos son registrados en una pista sencilla de un disco óptico o cualquier otro medio de almacenamiento equivalente. Los segmentos, o bloques de datos, no son almacenados en paralelo incluso aunque por claridad se muestren de esta forma en la Fig. 1. Por tanto, cuando hay segmentos alternos A y B entre dos segmentos C sucesivos, como está ilustrado en el extremo izquierdo de la Fig. 1, y también en el extremo derecho, es necesario almacenar ambos segmentos A y B entre los dos segmentos C. Cualquiera de los segmentos A o B puede ser almacenado en primer lugar, siempre que los bloques de datos A sean saltados cuando está siendo reproducida la versión B, y los bloques de datos de la versión B sean saltados cuando está siendo reproducida la versión A. Esto está ilustrado con mayor claridad en la Fig. 2B, una copia de la Fig. 7B de la patente `565 identificada antes.
La Fig. 2B muestra una porción de la pista con bloques de datos sucesivos que están etiquetados A, B o C. Se entenderá que en la práctica puede haber miles de bloques de datos en sucesión del mismo tipo, siendo la mayoría de los bloques de datos en el disco del tipo C. Sin embargo, para ilustrar la forma en que el sistema salta bloques de datos que no son necesarios, la Fig. 2B muestra como mucho sólo dos bloques del mismo tipo en sucesión. Se muestran dos secuencias en la Fig. 2B, una en la parte superior para reproducir la versión B y la otra en la parte inferior para reproducir la versión A. Si es la versión B la que está seleccionada, y se supone que de alguna manera el bloque B a la izquierda está siendo reproducido, es evidente que los dos bloques A siguientes deben ser saltados para ir al cuarto bloque, un bloque B. Después de que este bloque es reproducido, el siguiente bloque A debe ser saltado. Dos bloques C comunes son entonces reproducidos, después de lo cual debe hacerse un salto de un bloque A a otro C, El siguiente bloque, un B, es entonces reproducido, seguido por bloques B, C y B. Finalmente se hace un salto de un bloque A al último bloque mostrado en la Fig. 2B, un bloque C.
Si la versión A está siendo reproducida, por otra parte, dos bloques A sucesivos son reproducidos, hay después un salto de un bloque B, los cinco bloques siguientes -ACCAC- son reproducidos, hay a continuación un salto de dos bloques B a un bloque C, y finalmente hay un salto de otro bloque B a un A y a un C siguiente. El modelo que se produce es que hay tres clases de transiciones de un bloque a otro. En primer lugar, está la reproducción de un bloque que sigue inmediatamente a la reproducción del bloque precedente. Hay siete ejemplos de esto mostrados en la Fig. 2B - AA, BB, CC, CA, CB, AC y BC. Las dos posibilidades que están excluidas son AB y BA, puesto que los bloques únicos para las dos versiones nunca serán leídos durante la misma reproducción del disco, mucho menos uno tras otro. Aunque hay siete clases de transiciones de tipo de bloque a tipo de bloque, sólo hay realmente tres operaciones básicas - ir de un bloque de cualquier tipo al siguiente bloque adyacente de dicho tipo; un salto bien de un A a un A o C, o de un B a un B o C, o una ramificación desde un bloque C, bien a un adyacente A o B, o a un B o A en algún sitio por debajo en la línea. La mayoría de las transiciones son del primer tipo. El segundo tipo se produce cuando un A es seguido por un B (dichos dos bloques nunca puede ser reproducidos en sucesión); debe hacerse un salto del A a otro A o a un C. Advertencias similares se aplican a un B seguido por un A. El tercer tipo se produce al final de la reproducción de un bloque C, cuando ya no hay material común a ser reproducido y debe hacerse una conmutación a una versión o a la otra; el bloque siguiente es reproducido si es parte de la versión seleccionada, o algunos bloques tendrán que ser saltados si la ramificación es a un bloque en la otra versión.
La Fig. 2A muestra el diagrama de estado que define cómo y qué transiciones se hacen de un bloque a otro. Cada bloque de datos incluye una bandera indicadora de dos bits, posiblemente seguida por un campo que contiene un puntero de 20bits. (Cuando está presente un puntero, apunta siempre al número de serie de bloque de otro bloque de datos). Con referencia al código dado en la Fig. 2A, si la bandera indicadora de dos bits es 00, se trata de una indicación de que el procesamiento debería continuar con el siguiente bloque; en este caso no hay necesidad de puntero. Si la bandera indicadora de dos bits es un código 01, se trata de una indicación de que debería hacerse un salto a un bloque en la misma versión a alguna distancia, o a un bloque C algo distante. En cualquier caso, un puntero es necesario.
Los códigos 10 y 11 son usados cuando una ramificación va a ser tomada desde un bloque C común. Qué código sea usado depende de si el siguiente bloque es un A o un B. Si el bloque después del C es un A, es usado el código 10 y el puntero es hacia un B o un C más debajo de la línea. Si el código es 11, significa que el siguiente bloque es un B, y el puntero es a un A o a un C más debajo de la línea. Si el código es 11, significa que el siguiente bloque es un B, y el puntero es a un A o a un C más allá a lo largo de la pista. El sistema operativo conoce qué versión está siendo reproducida. Si está siendo reproducida la versión A y el bloque actual tiene una bandera indicadora 10, esto significa que el siguiente bloque, un A, debería ser reproducido después del presente. No es necesario el puntero. El puntero es necesario en el caso de que la versión B esté siendo reproducida. En este caso, puesto que el siguiente bloque es un A, no debería ser reproducido. El reproductor debería saltar al bloque identificado por el puntero - bien otro C, o un B único para la versión B que está siendo reproducida.
De forma similar, si la versión A está siendo reproducida y el bloque actual es un C con código 11 para su bandera indicadora, esto significa que el siguiente bloque es un B. Puesto que la versión A está siendo reproducida, el siguiente bloque no debería ser reproducido después del actual. En su lugar, se hace un salto al bloque A o C identificado por el puntero. Por otra parte, si la versión B está siendo reproducida, el sistema simplemente continúa al bloque siguiente. La leyenda en la Fig. 2A muestra si se usa o no puntero cuando las banderas indicadoras 10 y 11 son encontradas en un bloque C. La representación 10(P) es una indicación de que debería ser usado puntero y una representación 10[P] es una indicación de que el puntero debería ser ignorado. Se recordará que el código 10 es usado para un bloque C cuando el siguiente bloque es un A. Si la versión A está siendo reproducida, el puntero no es necesario. Esto es por lo que una transición del bloque C al bloque siguiente, un A, se muestra por el símbolo 10[P]. Por otra parte, si la versión B está siendo reproducida, puesto que el siguiente bloque es un A no puede ser reproducido después del C actual. En su lugar debe haber un salto al bloque identificado por el puntero, y por tanto usar la representación 10(P) - el puntero apunta, o bien a un bloque A, o bien a otro C. Advertencias similares de aplican a las representaciones 11(P) y 11[P]. En ambos casos, es un bloque C el que está siendo reproducido y el siguiente bloque es un B. Si está siendo reproducida la versión A, el siguiente bloque no debería ser reproducido y, por tanto, el símbolo 11(P) es necesario para mostrar una transición de estado. Por otra parte, si está siendo reproducida la versión B, es el bloque siguiente B el que debería ser reproducido y, por tanto, es apropiado el símbolo 11[P].
Los cuatro códigos, así como los usos (P) y [P], están representados en la Fig. 2B. Con referencia a la secuencia de transición REPRODUCIR B, la primera transición mostrada es 01(P). Se recordará que el código 01 representa un salto de un bloque de una versión a un bloque de la misma versión o a un bloque común, y es necesario un puntero. La primera transición mostrada es 01(P), un salto de un bloque B a otro bloque B. La siguiente transición en la línea REPRODUCIR B es 10 (P), un salto de un B a un C. A continuación está un ejemplo de la transición más común de todas, 00, la reproducción en orden del siguiente bloque después del bloque actual.
La cuarta transición en la línea REPRODUCIR B está representada por un símbolo 10(P). El código 10 representa una ramificación desde un bloque C cuando el siguiente bloque es un A, el ejemplo ilustrado en la Fig. 2B. En tal caso, como está indicado en la Fig. 2A, si es la versión B la que está siendo reproducida, se hace un salto al bloque identificado por el puntero, en este caso, el siguiente C.
El código 11 es usado para identificar una ramificación desde un bloque C cuando el siguiente bloque es un B. Si está siendo reproducida la versión B, el caso en consideración, el puntero no es necesario porque el siguiente bloque va a ser reproducido. Esto es por lo que el siguiente código mostrado es 11[P]. Siguen dos códigos 00 que representan transiciones obvias a bloques adyacentes, seguidos por un código 11[P], una ramificación desde un bloque C al bloque siguiente que es un B. Finalmente, se hace un salto desde este bloque B del siguiente bloque A a un bloque C. Esto requiere un código 01(P), el código usado para saltar desde un bloque de cualquier versión a un bloque de la misma versión o a un bloque común.
La secuencia REPRODUCIR A en la Fig. 2B supone que es la versión A la que está siendo reproducida. Los cuatro primeros códigos representan transiciones a los bloques adyacentes, o un salto desde un bloque de una versión a un bloque de la misma versión. El siguiente código, 10[P], es usado para mostrar una ramificación desde un bloque C a un bloque A adyacente. El puntero no es usado porque está siendo reproducida la versión A, y se emplea el código 10 porque el siguiente bloque es un bloque A. El código 00 siguiente simboliza la transición desde el bloque A a un bloque C sucesivo.
A continuación hay un salto de un bloque C a otro bloque C, saltando dos bloques B. El código 11 es usado porque éste es el código empleado cuando un bloque B sigue a un bloque C. El símbolo usado es 11(P), no 11[P], porque el puntero es necesario para ir desde un bloque C a un bloque C más debajo de la línea. De forma similar, el siguiente código es de nuevo un código 11(P) para simbolizar una ramificación desde un bloque C a un bloque A más debajo de la línea. La secuencia en la Fig. 2B termina con una transición desde un bloque A al siguiente bloque que es un C, para lo que se usa el código 00.
El diagrama de estado de la Fig. 2A resume todas las posibilidades. Considérese en primer lugar el estado en el que está siendo procesado un bloque A representado por el círculo con una A dentro de él en la parte superior izquierda. La bandera indicadora de dos bits en un bloque A es 00 si el siguiente bloque es también un A (mostrado por la transición de A de vuelta a A). Si el siguiente bloque es un B, por otra parte, entonces claramente no debería ser reproducido. Debe haber un salto desde el bloque A del B, bien a otro A o a un C. En cualquier caso, el código es 10(P). El dibujo muestra tanto un salto de B (a otro A) como un salto de B a un C. La única otra transición desde un bloque A es al siguiente bloque si se trata de un C. Esto se muestra por el código 00.
Se muestran cuatro transiciones similares para el estado B, es decir, cuando está siendo leído un bloque de datos en la versión B. El código 00 es usado si el siguiente bloque es un B o un C. El código 01(P) es usado cuando el siguiente bloque es un A, y es saltado de manera que el sistema puede a continuación leer otro B o un C.
Las transiciones desde un bloque C son más complicadas porque hay siete de ellas en lugar de sólo cuatro como para cada uno de los bloques A y B. Si el siguiente bloque es también un C, el código es un simple 00 - leer el siguiente bloque. Si el siguiente bloque es un A y debe hacerse un salto a otro C, el código 10(P) controla el salto del A. De forma similar, el código 11(P) controla un salto de un B a otro C. Se recordará que estos dos códigos son usados para controlar ramificaciones desde un bloque C, dependiendo de si el siguiente bloque es un A o un B. En cualquier caso, si el siguiente bloque no va a ser leído, éste (y bloques como él) deben ser saltados al siguiente C.
Sin embargo, después de leer un bloque C, es posible también leer un A o un B. Para leer un A, es usado uno de los códigos 11(P) o 10[P]. El código 11 es empleado cuando el siguiente bloque es un B, en cuyo caso es necesario el puntero. El código 10 es usado cuando el siguiente bloque es un A, en cuyo caso el puntero no es usado. De forma similar, para leer un bloque B a continuación, se usa o bien el código 10(P) o bien el 11[P]. Lo anterior es empleado cuando el siguiente bloque en el disco es un A, y el puntero es necesario porque este bloque debe ser saltado. Por otro lado, si el siguiente bloque es un B, el código 11 le dice al sistema que continúe a este siguiente bloque y en el curso ignore el puntero porque no es necesario.
Tal vez, el punto más importante a reconocer sea uno que no es evidente a partir de los dibujos, y es que la mayoría de los bloques contendrán banderas indicadoras 00 y no punteros. (El código 00 es el único sin un campo puntero a continuación). Esto es porque una vez que está siendo visualizado un cuadro de cualquier versión, o una vez que está siendo visualizado un cuadro del material común, lo más probable es que el cuadro siguiente sea del mismo tipo. En consecuencia, un código 00 solo realiza el trabajo. El resultado neto es que dos versiones de la misma película cinematográfica pueden ser almacenadas en el disco, teniendo el usuario la opción de reproducir cualquiera (en el supuesto de que esto sea permitido por cualquier bloqueo paterno aplicable), y sólo una fracción diminuta del estado real del disco total es ``gastada'' por los bits de verificación que controlan las transiciones desde un bloque al siguiente bloque que va a ser leído después de él. Esto está en línea con la filosofía de diseño subyacente de proporcionar una flexibilidad máxima y tantas opciones como sea posible, sin gastar bits indebidamente en el proceso.
La presente invención no se refiere a los códigos y punteros que son necesarios para saltar desde un bloque de datos de un tipo a un bloque de datos de otro. Se supone que los punteros necesarios son colocados en los bloques de datos o en una tabla apropiada almacenada en alguna parte. La presente invención se refiere a como son dispuestos (es decir formateados) en el disco bloques de datos de tipo A y tipo B. En el trabajo anterior se suponía que siempre es posible saltar desde un bloque de datos a otro sin ninguna interrupción en el material de programa que está siendo visto u oído. Sin embargo, resulta que la reproducción sin cortes no siempre es posible. Para entender por qué éste el caso debe hacerse referencia a los elementos de un reproductor típico. El reproductor de la Fig. 3 es el mismo que el de la Fig. 2 de la patente anterior.
Para una descripción completa del reproductor, debería hacerse referencia a la patente `565. Es suficiente en este punto apreciar que la información leída de los bloques de datos es colocada en las memorias intermedias 53, 55, 57 y 59 respectivas. La información es leída de las memorias intermedias en el momento en que es realmente procesada para visualización o sonido. Los saltos de los bloques de datos A o B son posibles porque, incluso aunque la cabeza lectora no esté leyendo ningún dato mientras que está teniendo lugar el salto, hay suficientes datos en todas las memorias intermedias para permitir que el material de programa continúe siendo proporcionado. Mientras que el salto ha concluido y la cabeza lectora se ha establecido en la posición de pista correcta antes de que cualquier memoria intermedia haya sido vaciada, es posible la reproducción sin cortes.
La Fig. 4 ilustra simbólicamente dos casos simples para los que la reproducción sin cortes no es un problema. En un caso, entre dos segmentos comunes hay un segmento A (uno o más bloques de datos) a ser reproducido, pero ningún segmento B. Esto significa que para reproducir la versión A, los tres grupos de bloques de datos son reproducidos continuamente uno tras otro. (Un rectángulo etiquetado A, B o C en cualquiera de los dibujos representa un segmento de material de programa sin referencia a la codificación real, o un bloque de datos sencillo del tipo particular, o un grupo de bloques de datos sucesivos del tipo particular, dependiendo del contexto). Para reproducir la versión B, se hace un salto de los bloques de datos A. Siempre que los bloques de datos A sean cortos, las memorias intermedias no son vaciadas cuando la cabeza lectora abandona el primer bloque C y entra en el segundo. El dibujo a la derecha de la Fig. 4 muestra el diseño de pista cuando uno de dos segmentos diferentes debe ser reproducido dependiendo de la versión en curso. Los dos grupos de bloques de datos, A y B, son almacenados en sucesión entre los dos bloques comunes. Dependiendo de la versión que esté siendo reproducida, bien los bloques de datos A son saltados, o bien los bloques de tipo B son saltados. Una vez más, siempre que cada secuencia sea corta, no hay problema para conseguir la reproducción sin cortes.
El problema surge en los dos casos mostrados en la Fig. 5. La única diferencia entre los casos comparables mostrados en la Fig. 4 es que aquí el segmento A en el primer caso, y los segmentos A y B en el segundo, son todos mucho más largos. Puede no ser posible saltar tales segmentos largos sin vaciar las memorias intermedias. Cómo de largo puede un segmento ser realmente saltado sin que la reproducción sea interrumpida depende de consideraciones mecánicas y del sistema de gestión de memorias intermedias empleado. Para entender la presente invención es suficiente apreciar que hay algún segmento de longitud máxima que puede ser saltado sin que resulte una interrupción en la reproducción. Dicho valor depende necesariamente de los reproductores para los que vayan a ser formateados los discos. La presente invención supone que existe tal longitud máxima, como será definida más adelante, y el método de la invención implica el uso de dicho valor.
La metodología para conseguir una reproducción sin cortes
El enfoque básico para conseguir la reproducción sin cortes se muestra en la Fig. 6, aunque se aclarará que en muchos casos la técnica mostrada en la Fig. 6 no es suficiente por sí misma. La metodología es tomar el material A y B (que puede ser pensado como material de programa o bloques de datos) entre dos bloques comunes sucesivos, y cortarlos en secciones entrelazadas más pequeñas. De esta forma nunca es necesario saltar una sección que sea tan larga como para que una o más memorias intermedias pueden ser vaciadas.
La parte superior de la Fig. 6 muestra tres pistas A, B y C. Naturalmente, hay sólo una pista en el disco. Así, lo que se muestra en la parte superior de la Fig. 6 debería ser tratado como un diagrama tiempo-línea. Cuando se reproduce la versión A, el primer bloque C es reproducido, después el bloque A, y finalmente el segundo bloque C. De forma similar, cuando se reproduce la versión B, el primer bloque C es reproducido, luego el bloque B y finalmente el segundo bloque C. Lo que se almacena en la pista sencilla, sin embargo, no es la secuencia CABC. En su lugar, los segmentos A y B son divididos en muchos segmentos más pequeños. Esto se muestra simbólicamente por las flechas de la Fig. 6. Los dos bloques C son dispuestos continuamente y entre ellos puede haber muchos bloques A y B alternos. La parte central de la Fig. 6 es un diagrama tiempo-línea comparable al mostrado en la parte superior, pero con el material único para las versiones A y B mostrado dividido en segmentos más pequeños y entrelazados. La disposición de pista final se muestra en la parte inferior del dibujo y es evidente que hay varios bloques de datos A y B alternos entre los dos bloques C. (De nuevo, hay que entender que aunque se hace referencia a ``bloques'' individuales en la descripción anterior, la descripción se aplica igualmente a bloques de datos múltiples. Incluso cada uno de los bloques cortados A y B puede ser bloques de datos múltiples. Lo que es importante es que cada uno de los ``rectángulos'' A y B incluya una cantidad de información suficientemente pequeña, ya sea medida en bloques de datos, pulgadas, segundos o cualquier otro parámetro conveniente, que permita un salto del bloque sin una interrupción aparente en la reproducción como resultado del vaciado de memoria intermedia).
El segmento B es ligeramente más largo que el segmento A. Esto significa que puede haber quedado un trocito de material de la versión B. Dicha pequeña sección es simplemente colocada en la pista después de los cuatro bloques A. Hay así cinco bloques B ``pequeños'' y solo cuatro bloques A ``pequeños''. El primer bloque dispuesto sobre la pista es un bloque B, de manera que los cuatro bloques A pueden ser entrelazados con los cinco bloques B.
El problema obvio con el enfoque simple de la Fig. 6 es que puede no haber a la vez un segmento de la versión A y un segmento de versión B entre los dos bloques comunes. Si hay sólo un segmento A, entonces no hay material B para entremezclar entre los bloques A después de que el segmento A está cortado. Recíprocamente, si sólo hay material B, y es largo, no hay forma aparente de romper tal material B con bloques de versión A, de manera que las memorias intermedias puedan ser llenadas cuando la versión A está siendo reproducida y el material B está siendo saltado. La solución al problema se muestra en la Fig. 7, que ilustra la metodología básica de la invención.
Lo que se muestra aquí es un segmento B que es más largo que un segmento A. Obviamente, la técnica mostrada en la Fig. 6 funciona satisfactoriamente incluso si los segmentos A y B son de longitud desigual, siempre que uno no sea significativamente más largo que el otro. Las longitudes de bloque en la Fig. 7 no están dibujadas a escala y no se pretende mostrar dimensiones típicas en los dibujos. La razón para esto es que un segmento muy corto de un tipo puede proporcionar datos suficientes para las memorias intermedias para permitir un salto muy largo de un segmento del otro tipo, y no hay forma de ilustrar esto de forma práctica en un dibujo. Por tanto, cuando se contemplen las diversas figuras, debe entenderse que las longitudes de bloque no son ``reales'', ni siquiera en términos relativos.
Como se muestra en la Fig. 7, el segmento A está dividido en cuatro bloques, y están entrelazados con cuatro bloques comparables derivados del segmento B más largo. Pero en lugar del segmento B ser sólo un poco más largo que el segmento A como en la Fig. 6, con el material B ``sobrante'' que sigue al último bloque A, el material B es mucho más largo en el caso de la Fig. 7. Un quinto bloque B es colocado en la pista después de los cuatro bloques A, estando este bloque etiquetado B5 en el dibujo. Se supone que todos los bloques son tan largos como sea posible. En otras palabras, todos los bloques mostrados en las figuras 6 y 7 son de longitud máxima en el sentido de que todo lo que sea más largo tendrá como resultado una reproducción que no será sin cortes. Como se muestra en el dibujo hay un poco más de material B sobrante, pero no puede ser almacenado como parte del bloque B5 porque esto tendría como resultado una longitud total que no puede ser saltada sin el posible vaciado de una o más memorias intermedias.
El material restante en el segmento B es dispuesto en la pista como se muestra por el bloque B6. Pero para que el bloque B6 sea saltado después del bloque B5 cuando la versión A está siendo reproducida debe haber algo de material de tipo A almacenado en un bloque A entre los bloques B5 y B6. Este material es necesario para que la cabeza lectora lea para rellenar las memorias intermedias antes del salto del bloque B6. El problema es que no queda material A porque ha sido usado todo en disponer los cuatro bloques al principio de la secuencia entrelazada.
Por esta razón, lo que es colocado entre los bloques B5 y B6 para la lectura durante la reproducción de la versión A es un bloque de material C1 tomado del principio del material común a la derecha del dibujo. Este material común debe ser leído durante la reproducción de ambas versiones por lo que no hay problema en avanzarlo y colocarlo después de los bloques A antes de que el material común sea alcanzado realmente. El material es simplemente recogido por la cabeza lectora cuando la versión A está siendo reproducida antes de que el material común sea alcanzado de otra forma.
Sin embargo, si el material común C1 es avanzado y colocado entre los bloques B5 y B6, y este material es leído durante la reproducción de la versión A antes de que el segmento común sea alcanzado, no debería ser leído de nuevo en el segmento C porque resultaría una reproducción duplicada del mismo material. Por tanto, el material C1 tiene que ser suprimido del material común. Pero si es suprimido del material común, entonces no será leído cuando la versión B esté siendo reproducida porque la versión B requiere todavía que todo el material común sea leído. La solución es tomar el material designado C1 y avanzarlo no sólo una vez, sino dos. El material es colocado en la secuencia de bloques que es leída durante la reproducción de la versión A, como se acaba de describir, y también en la secuencia de bloques que es única para la versión B. Esto es por lo que el bloque C1 se muestra inmediatamente después del bloque B6 en la secuencia de bloques de datos que es única para la versión B. De esta forma, el material C1 es leído como parte de la secuencia A única y la secuencia B única. Puesto que éste es leído en ambas de las secuencias únicas, ya no es necesario incluirlo en el material común que es formateado en el disco. Por esta razón, como se muestra en la parte inferior derecha de la Fig. 7, la última parte del segmento de pista global ilustrado es el ``resto'' del material común - el segmento C original, menos C1.
En un sentido, la invención puede ser pensada como que introduce ``rellenos flotantes'' en los que la cabeza lectora puede ``posarse'' pero inmediatamente abandonarlos al principio del salto al siguiente relleno flotante. El bloque C1 en la secuencia de bloques A es tal relleno flotante. Puede ser muy corto porque debe proporcionar sólo suficientes datos para las memorias intermedias para permitir un salto del bloque siguiente en la versión B. Cada relleno flotante debería ser tan corto como sea posible porque, puesto que como es ``tomado prestado'' del siguiente material común y se suprime de él, debe ser duplicado en el material que es único para la otra versión, y se desea mantener la redundancia al mínimo.
La suposición subyacente en la Fig. 7 es que el material C1, que es añadido al material único para la versión B que sigue al bloque B6, es tan corto que B6 y C1 juntos no exceden de la longitud de bloque máxima que, si fuera excedida impediría un salto sin cortes cuando la versión A está siendo reproducida y la cabeza lectora salta el bloque B6,C1. La Fig. 8 representa un caso (una ``continuación'' de la Fig. 7) en el que el segmento B es mucho más largo que el segmento A hasta el punto de que muchos trozos del material C deben ser avanzados para servir como rellenos flotantes en la secuencia de bloques que es única para la versión A. Esto, a su vez, significa que deben ser también incluidos en los bloques que son únicos para la versión B, puesto que cada vez que es avanzado material común, el resultado es necesariamente registro redundante. Lo que queda después de B5 en la Fig. 7 es tan largo en la Fig. 8 que, junto con todos los bloques C avanzados, el material B resultante excede de la longitud máxima.
Otra forma de contemplar la situación es que mientras que en la Fig. 7 el bloque B6 estaba al final del material único para la versión B y el bloque C1 podría ser añadido a éste, esto no es posible en el caso de la Fig. 8. Aquí, el segmento B es tan largo que un bloque B6 de tamaño máximo es necesario sólo para el material de la versión B. Puesto que todo el material de segmento B (incluyendo B7 y B8) debe ser reproducido antes que el material común, no es posible añadir el bloque C1 al final del bloque B6. Y una vez que el bloque B6 es registrado en la pista final, otro relleno flotante es necesario para la reproducción de la versión A. Este relleno flotante se muestra como C2 y es colocado en la pista final inmediatamente después del bloque B6. La parte siguiente del segmento única para la versión B se muestra como B7 y este material es registrado en la pista final inmediatamente después del relleno flotante C2. Todavía otro relleno flotante C3, derivado del material común, es necesario antes de que la última parte del material B, bloque B8, sea dispuesta.
Como se discutió antes, cualquier material que sea avanzado desde el segmento común y usado en los bloques de datos únicos para la versión A debe también ser almacenado en los bloques de datos únicos para la versión B. El material C1 debería venir inmediatamente después del material B8 cuando la versión B es reproducida. Esto se muestra en la Fig. 8. De forma similar, C2 debe seguir a C1, y C2 podría ser parte del bloque de datos que incluye B8 y C1, excepto que C2 no puede ser añadido al bloque que incluye B8 y C1 porque hacer esto daría un bloque combinado mayor que la longitud máxima que permite la reproducción sin cortes. Para disponer el material C2 (y C3) en los bloques únicos para la versión B, es realmente necesario introducir un cuarto relleno flotante en el material único para la versión A, material una vez más tomado del material común. Esto se muestra por el bloque pequeño C4. Pero porque C4 es ahora avanzado desde el material común, el último bloque de datos para la versión B incluye C4 que sigue a C2 y C3. Finalmente, el material común, menos los bloques C1-C4, es registrado para su lectura durante la reproducción de ambas versiones.
El asunto interesante acerca de la secuencia de la Fig. 8 es que el material común C4 es registrado dos veces en cada secuencia de bloques de datos única sólo porque es necesario incluir un último relleno flotante en la secuencia para la versión A justamente para poder registrar el material común C2 y C3 en el material que es único para la versión B. Pero el método de la invención no se ocupa de por qué el material común está siendo tomado de un segmento común y duplicado en las dos versiones únicas. El sistema simplemente avanza material siempre que es necesario para disponer un relleno flotante que permita otro salto. Y todo lo registrado para una versión debe ser registrado para la otra.
El último caso a considerar es el mostrado en la Fig. 9. Se supuso en la Fig. 8 que había un material común ilimitado que podría ser avanzado para servir como rellenos flotantes para una o ambas de las dos versiones. El último de tales segmentos en la Fig. 8 era C4. Pero en el ejemplo de la Fig. 9, el material común es mucho más corto y el segmento C4 no es ni siquiera igual a la longitud mínima requerida para un bloque de datos. Aunque así se ha hecho referencia lejana a la longitud máxima (la longitud más allá de la cual no puede hacerse un salto sin cortes), hay también una longitud mínima. Algún tiempo finito, o longitud debe ser permitido para que los datos en una secuencia de bloques de datos carguen al menos parcialmente las memorias intermedias antes de que se haga un salto. [En la práctica real, longitudes muy pequeñas pueden permitir saltos, pero los saltos pueden ser demasiado pequeños para ser prácticos. En el diagrama de flujo ilustrativo que va a ser descrito más adelante, la longitud mínima usada para comprobar el C4 ``restante'' es la definida como \alpha_{opt} incluso aunque no sea el mínimo absoluto que podría ser usado]. Simplemente no es factible disponer un bloque de datos demasiado corto si va a servir como un relleno flotante. Por consiguiente, si el material C4 restante es demasiado corto para funcionar como un bloque de datos autocontenido para la versión A, algo más debe hacerse con él. Y el material de relleno flotante requerido debe proceder de algún sitio. Lo que se hace se muestra en la Fig. 9.
A continuación del material común del que C4 es la última pieza, hay otro segmento A (que puede no tener datos), otro segmento B (que puede no tener datos, aunque al menos uno de los segmentos A y B tiene datos), y un segmento C siguiente. El trozo restante C4 del primer bloque común es simplemente transferido a ambas secuencias únicas A y B, y el material común siguiente es usado como la fuente para cualesquiera otros rellenos flotantes que sean requeridos.
Con referencia ahora a la Fig. 9, la secuencia en curso (como se muestra, por ejemplo en la Fig. 8) ya no tiene más material A; se recordará que el material C está siendo usado para cada relleno flotante que es requerido en los bloques de datos para la versión A. Así, el material C4 restante que es común a ambas versiones es simplemente añadido al inicio del siguiente material A puesto que debe ser reproducido antes que el siguiente material A. Esto se muestra en la parte inferior de la Fig. 9 donde C4 está colocado antes del siguiente material A. (Lo que se muestra en la Fig. 9 es ahora no es cómo los tres últimos segmentos A, B y C son dispuestos en el disco, sino cómo son reformulados antes de que la metodología de entrelazado de las Figs. 6 -8 sea empleada a continuación).
El mismo material C4 no es ahora dispuesto de forma similar al inicio del siguiente segmento B. La razón para esto es que hay todavía algo de material B en el segmento que está siendo procesado que aún no ha sido dispuesto en el disco. El material B que todavía debe ser procesado es el extremo de cola del segmento B que estaba siendo dispuesto, los bloques C1-C3 que tienen que seguirle y aún no han sido dispuestos, después el trocito C4 que debe ser leído después de los bloques C1-C3, y finalmente el siguiente segmento B. Así, con lo que el sistema tiene que ``funcionar'' es con tres nuevos segmentos que hacen su aparición - el siguiente segmento A con C4 en su inicio, un segmento B que consiste en B8 seguido por C1-C4 y el siguiente segmento B completo, y el siguiente segmento C. En efecto, los tres segmentos siguientes son reconstruidos no en el sentido de que el material es dispuesto en el disco como se muestra en la Fig. 9, sino en el sentido de que éste es el material que está disponible para el procesamiento posterior del tipo mostrado en las Figs. 6-8.
En resumen, el material C4 no puede ser formateado en el disco por sí mismo porque es demasiado corto. Es evidente que pertenece al inicio del siguiente segmento A porque el material común en el segmento actual está casi terminado de ser procesado y hay sólo esta última pieza a incluir con el material que debe ser reproducido para la versión A. Como para la versión B, es necesario aún procesar el bloque B8 y ha sido ya determinado que después de B8 debería seguir C1, C2 y C3. Es por esta razón que el nuevo ``abastecimiento'' para la versión B, como se muestra en la Fig. 9, consiste en B8 seguido por C1-C4 y finalmente el siguiente segmento B. Lo que se pretende mostrar en la Fig. 9 es que cualquier material que sea avanzado desde un segmento común para su registro en bloques de datos únicos para la versión A (o versión B, según sea el caso) debe ser reservado para su registro en la secuencia de bloques de datos que es única para la otra versión, pero no puede ser registrado así hasta que el material restante para dicha versión sea registrado junto con los bloques de datos comunes avanzados antes.
Cuando el procesamiento continúa, eventualmente es alcanzado un punto en el que es posible el registro del tipo mostrado en la Fig. 6 y no debe ser introducida más redundancia. Esto será evidente cuando sea analizado el diagrama de flujo.
Longitudes de bloque óptima y máxima
Antes de proceder con el diagrama de flujo que establece etapas para controlar realmente el formateado de la pista, deben ser entendidos los símbolos \alpha y \beta mostrados en la Fig. 10. El símbolo \alpha representa lo que ha sido llamado un relleno flotante. El símbolo \beta representa un bloque que tiene que ser saltado en una versión y, al leer los datos contenidos en el bloque \alpha (en la versión que está siendo reproducida) hay material en las memorias intermedias disponible para la reproducción cuando la cabeza lectora salta la sección \beta. (Términos tales como segmentos, bloques y secciones son usados de forma intercambiable puesto que un segmento o sección puede ser uno o muchos bloques). Aunque \alpha y \beta son simplemente dos longitudes sucesivas, el símbolo \beta (\alpha) representa la longitud \beta máxima que puede ser saltada sin cortes después de leer un bloque de longitud \alpha. Con referencia a la Fig. 11A, si la relación es lineal, es evidente que cuanto más larga sea la sección \alpha, más larga puede ser la sección \beta siguiente porque hay más datos disponibles en las memorias intermedias como resultado de leer más datos A. Sin embargo, incluso cuando \alpha crece, \beta no crece indefinidamente. Esto es debido a que existe un límite en cuanto al número de datos que pueden estar contenidos en las memorias intermedias. Una vez que están llenas, ello determina el segmento \beta más largo que puede ser saltado. Esto es por lo que en la Fig. 11A hay un valor máximo para \beta (\alpha) independientemente de lo grande que se haga \alpha. Una vez que las memorias intermedias están llenas, cuando la cabeza lectora abandona la sección \alpha, la longitud del salto sin cortes máxima es determinada por la capacidad de las memorias intermedias.
Si \alpha es material redundante avanzado desde un segmento C, no hay motivo para incrementar \alpha más allá del valor en el codo de la gráfica que da lugar al máximo \beta (\alpha), el valor de la ordenada a lo largo de la línea horizontal de la gráfica. El valor mínimo de \alpha que da lugar al valor máximo de \beta (\alpha) es un \alpha_{opt}. Cuando se crea un relleno flotante cuyo único propósito es permitir un salto de los bloques de datos sucesivos cuando la versión que contiene el relleno está siendo reproducida, no hay razón para usar un relleno flotante que sea más largo que \alpha_{opt}. Cada relleno flotante introducido de material común tiene como resultado redundancia, y la redundancia debería ser minimizada.
Debería advertirse que el valor máximo de \beta (\alpha) se muestra realmente como \alpha_{max}. El motivo para esto es que si el valor máximo de \beta (\alpha) representa el segmento más largo que puede ser registrado en la pista para la reproducción sin cortes, entonces dicha misma longitud se aplica a cualquiera de las dos secciones sucesivas. Cada bloque de datos de un tipo precede a un bloque de datos del otro tipo en la secuencia entrelazada, de manera que cada sección es tanto un \alpha como un \beta. Por consiguiente, puede hacerse referencia a la longitud máxima de una secuencia de bloques como \alpha_{max}, es decir, ninguna secuencia de bloques de datos única para una versión debería exceder a \alpha_{max} en longitud.
Si se supone una relación lineal entre \alpha y \beta, una característica de transferencia típica se muestra en la Fig. 11A. Cuando la longitud \alpha de un bloque de datos (o bloques de datos) aumenta, se incrementa la longitud máxima del bloque de datos \beta(\alpha) sucesivo que puede ser saltada. Sin embargo, cada bloque de datos está limitado en longitud a \alpha_{max}, supóngase por ejemplo que hay mucho más material B que tiene que ser colocado en la pista que material A antes del siguiente material común. En tal caso, el objetivo del entrelazado es tener bloques de datos A pequeños y bloques de datos B grandes. Cada bloque de datos A pequeño cuya longitud es \alpha permite que sea registrado un bloque de datos B más largo, siendo \beta(\alpha) la longitud del bloque de datos B. La longitud óptima para cada bloque de datos A es la que da la mayor razón \beta(\alpha)/\alpha. El valor óptimo de \alpha, \alpha_{opt}, es el que proporciona la razón máxima y está etiquetado en la Fig. 11A. En caso de una relación no lineal, como está representado en la Fig. 11B, el valor de \alpha_{opt} puede no estar necesariamente en el codo de la curva. En ambos casos, el objetivo es usar longitudes \alpha y \beta sucesivas que maximicen la razón \beta (\alpha_{opt})/ \alpha_{opt}. Disponer los bloques de datos usando estas longitudes agota el material más largo de la versión tan rápidamente como sea posible a la vez que minimiza la cantidad de material común que puede tener que ser avanzada para derivar los segmentos \alpha.
Las listas aplicables usadas por el hardware
La Fig. 12 ilustra cómo puede ser implementado el método de la invención. Un controlador 100, típicamente un microprocesador, controla directamente un dispositivo de registro 102. La información de entrada proporcionada al controlador es una lista de Decisión de Edición estándar que especifica la secuencia (usualmente en grupos de imágenes, o GOPs), en unidades de longitud, de las series de segmentos requeridas para las dos versiones como se muestra en la Fig. 1. El material de fuente digital real para las tres clases de segmentos (versión A, versión B y común) está en tres memorias digitales 104, 106 y 108. El controlador hace que una de las tres fuentes tenga como salida material a ser registrado a través de la puerta 110, 112 ó 114 respectiva, esto es bajo la vigilancia del controlador 100, por extensión al dispositivo de registro 102.
El controlador mantiene tres listas que identifican los siguientes datos disponibles para cada fuente. Las listas son identificadas por los símbolos R(A), R(B) y R(C). Cada lista no es nada más que la representación de uno respectivo de los segmentos A, B y C de próxima aparición, como se discutió por ejemplo con relación a los segmentos mostrados en la parte inferior de la Fig. 9. Como se discutirá con relación al diagrama de flujo, las tres listas son actualizadas durante iteraciones sucesivas. Cada lista todas las veces representa la información de próxima aparición para una de las tres clases de datos que deben ser registrados. La lista R(C) incluye todo el material común en el segmento que está siendo procesado del siguiente material a ser dispuesto hasta el final del segmento. Si el sistema está procesando segmentos A y B, R(C) representa el segmento C siguiente completo, cuyos trozos pueden tener que ser ``tomados prestados'' (avanzados, como se discutió antes). Las listas R(A) y R(B) representan segmentos A y B que están siendo procesados. Si un segmento C está siendo procesado por sí mismo, R(A) y R(B) están vacías - son actualizadas al final del segmento C en procesamiento cuando son alcanzados nuevos segmentos A y B. El controlador usa la información en la lista de Decisión de Edición para actualizar las listas ``de datos disponibles a continuación'' R(A), R(B) y R(C). Cada lista identifica en el material de fuente digital respectivo qué datos deberían ser leídos para completar el registro del segmento que está siendo procesado.
El diagrama de flujo de las Figs. 13A y 13B
Las figuras 13A y 13B representan el diagrama de flujo que implementa el formateado tratado con relación a las figuras 8-9. Con referencia a la Fig. 1, al inicio de cualquier película cinematográfica de dos versiones, hay casi siempre un segmento común - el título es el mismo en todos los casos. Por tanto, inicialmente es sólo con material común con lo que tiene que trabajar el sistema. Las tres funciones R(A), R(B) y R(C), como se discutió con relación a la Fig. 12, representan listas de los datos que están disponibles inmediatamente. ``Disponibles inmediatamente'' significa los datos que tienen que ser formateados a continuación en el disco. La lista R(C) incluye todos los datos restantes en el segmento común que está siendo procesado que todavía no han sido formateados en el disco, o todo el segmento común que sigue a segmentos A y B que están siendo ahora formateados si el procesamiento del segmento común precedente ha sido ya completado. Debe haber siempre un ``abastecimiento'' de material común que pueda ser avanzado en caso de que se requieran rellenos flotantes, y para este fin el sistema sigue en la lista R(C) la pista de todo o parte de un segmento común.
Las listas R(A) y R(B), por otra parte, pueden estar vacías. Si un segmento común está siendo dispuesto en el disco, no hay material A y B que tenga que ser procesado. Es sólo al final del procesamiento de un segmento común que nuevos segmentos A y B se hacen disponibles (uno de los cuales puede no existir, en cuyo caso su lista esta vacía - lo que se simboliza, por ejemplo, por la notación R(A)=0). No hay necesidad de mantener una lista de los siguientes segmentos A y B que deben ser procesados hasta que sean realmente alcanzados. Es necesario mantener una lista R(C) todas las veces, no obstante, incluso cuando están siendo formateados en el disco sólo segmentos A y B porque puede ser necesario usar un trozo del siguiente material común como un relleno flotante.
En la etapa S1, puesto que inicialmente sólo hay material común a ser procesado, R(A) y R(B) son ambas ajustadas a cero. Al mismo tiempo, R(C) es ajustada igual a los datos para el primer segmento común.
La variable L(X) donde X=A, B o C, representa los datos que realmente serán dispuestos en el disco en la iteración actual. (Todas las referencias para disponer datos en el disco pueden incluir una etapa intermedia de almacenar los datos formateados en cinta o en memoria, y luego - en otro momento posterior - crear realmente un maestro del que pueden hacerse copias). Hay límites al número de datos que pueden ser dispuestos; la premisa básica de la invención es que para la reproducción sin cortes hay un límite a la longitud de cualquier segmento que pueda ser necesario saltar. Pero no hay límite a la longitud de un segmento común puesto que no es necesario saltar tal segmento. Por consiguiente, en la etapa S2, L(C) se hace igual a R(C) -todo lo que esté en el primer segmento común es colocado en la lista L(C), representando L(C) los datos que van ser puestos en el disco en el ciclo actual. (Los propios datos son derivados de una de las fuentes digitales 104, 106, 108 de la Fig. 12, señalando las tres listas respectivas simplemente el material que va a ser procesado).
La siguiente subetapa en la etapa S2 es formatear L(C). Esto significa simplemente que los datos representados en L(C) son recuperados de la fuente respectiva y dispuestos en el disco.
Puesto que R(C) inicialmente representaba el primer segmento común entero y ahora todo está en el disco, R(C) debe ser reajustado a 0. Esto se hace en la última subetapa. Al final de la etapa S2, todas las tres listas están vacías. Las dos primera etapas se reducen a nada más que formatear el primer segmento común, es decir, colocar todos los datos que representan el primer segmento común de una película cinematográfica en el disco usando cualesquiera códigos, punteros, formateado de bloques de datos etc. que sean empleados en el sistema particular en consideración.
Con las tres listas ahora vacías, éstas deben ser rellenadas a partir de la lista Decisión de Edición (véase la Fig. 12). En la etapa S3, la última subetapa es la más fácil de entender. Con el procesamiento de un segmento común que acabe de ser concluido, R(C) es rellenada con datos para el siguiente segmento común. Pero hay segmentos A y B precedentes también. Aunque la primera vez que es ejecutada la etapa S3 no hay ``historia'' anterior a tener en cuenta, éste no es siempre el caso. Esto complica lo que se almacena en R(A) y R(B).
Con referencia a la Fig. 9, en la parte inferior se muestra cómo se desarrollan las siguientes listas de datos disponibles. Puede haber un trocito de R(C) (C4 en la Fig. 9) que quede del segmento C actual que está siendo procesado. Este trozo tiene que ser añadido a las listas R(A) y R(B). Sólo entonces se añade a R(A) el siguiente segmento A y el siguiente segmento B se añade a R(B). Por tanto, como se muestra en la etapa S3, cuando las listas son actualizadas introduciendo nuevos segmentos del material de programa, R(A) ha añadido a su ``contenido'' de entonces la R(C) ``que queda'' y el nuevo material. Advertencias similares se aplican a R(B). En cuanto a R(C), puesto que ahora está ``perdiendo'' lo que quedaba en ella, es simplemente ajustada igual al siguiente segmento C.
En la etapa S4 se hace una comprobación de si hay algún dato más a ser procesado. Si no hay más datos, entonces el procesamiento se detiene - todos los datos que representan ambas versiones de una película cinematográfica de dos horas, por ejemplo, han sido dispuestos en el disco (o, como se mencionó antes, en almacenamiento intermedio en el formato y secuencia correctos). Naturalmente, la respuesta a la pregunta en la etapa S4 será la negativa la primera vez que sea formulada, pero esta etapa es ejecutada justamente después del inicio de cada una de las iteraciones sucesivas. Eventualmente, no quedarán segmentos A, B ni C y el procesamiento llegará a un fin.
Como se indica en el diagrama de flujo entre las etapas S4 y S5, el resto del diagrama de flujo supone que R(B) es mayor que R(A). En otras palabras, de dos segmentos en versiones diferentes que están siendo procesados simultáneamente, se supone que el segmento de la versión B es mayor que el segmento A. Si lo inverso es cierto, la notación en el diagrama de flujo debería ser invertida. Es más fácil comprender la metodología suponiendo que hay más datos B que datos A para los dos segmentos correspondientes en las diferentes versiones que explicar la metodología en términos más generales. Todo lo que se requiere en la práctica real es, tras la actualización inicial de las tres listas, incluir una prueba de cuál entre R(A) y R(B) es mayor, y tratar a la mayor como R(B) en el diagrama de flujo y a la menor como R(A).
Independientemente de las longitudes relativas de R(A) y R(B), puesto que R(B) es más larga, parecería que la cantidad máxima de datos para el segmento B debería ser dispuesta al inicio de cada iteración. Puede haber tanto material B que los saltos necesarios puedan no permitir la reproducción sin cortes sin introducir rellenos flotantes con la correspondiente redundancia, así al principio de cada iteración ciertamente tiene sentido ``desembarazarse'' de tanto material B como sea posible. Como se discutió antes con relación a las figuras 10 y 11, la longitud máxima de una secuencia de bloques de datos es el valor máximo de \beta (\alpha) que puede escribirse como \beta (\alpha)_{max} y es lo mismo que \alpha_{max}. Por consiguiente, estos muchos datos de la lista R(B) pueden ser colocados en L(B) para su disposición inmediata. De hecho, el segmento entero representado en R(B) puede ser dispuesto si no excede de \alpha_{max}. Esto es determinado en la etapa S5. Si R(B) es suficientemente pequeña para ser formateado en su totalidad, entonces también lo es R(A) que es más pequeña. L(A) y L(B) son ajustadas respectivamente a R(A) y R(B). Después de que están formateados en el disco, el siguiente segmento común representado por R(C) puede ser dispuesto, con lo que L(C) es ajustada igual a R(C). Los tres segmentos son entonces formateados y las tres listas son anuladas. Se retorna entonces a la etapa S3 en la que las listas son rellenadas.
Más tarde o más temprano, tres nuevos segmentos serán procesados, para lo cual no son posibles las disposiciones simples de la etapa S(6) porque R(B) es mayor que \beta (\alpha)_{max}. En este punto debe ser empleado entrelazado. Tiene sentido formatear primero un bloque \beta, y de longitud máxima, para disminuir cualquier desequilibrio en R(A) y R(B). Pero, si es dispuesto un bloque B grande, y hay entonces material insuficiente en R(A) para un bloque A, el entrelazado no puede ni siquiera comenzar. Así, en la etapa S7 es realizada una prueba para ver si hay suficiente material disponible para un bloque A.
La pregunta es cuánto material debería ser dispuesto en cada bloque de versión A. Como se explicó antes, cuando el segmento B es mucho mayor que el segmento A correspondiente, durante cada iteración algo de material en el siguiente segmento común es transferido a R(A), de manera que un relleno flotante puede ser dispuesto en el disco para su lectura durante la reproducción de la versión A. Para minimizar la redundancia resultante (puesto que el relleno flotante se repite en los bloques únicos para la versión B), debería ser procesado tanto material R(B) para tan poco material R(A) que tenga que ser ``tomado prestado''. La razón R(B)/R(A) ideal es \beta (\alpha_{opt})/ \alpha_{opt}, llamada ``Q'' en el diagrama de flujo como será evidente, así \alpha_{opt} debería estar disponible, si es necesario, para un bloque A. Por tanto, antes de que sea formateado el primer bloque B de longitud \beta(\alpha), se hace una comprobación de que estará disponible suficiente material para un bloque A de longitud \alpha_{opt} que seguirá al primer bloque B de longitud \beta(\alpha)_{max} y precederá al siguiente bloque B de longitud \beta(\alpha_{opt}). [Debería advertirse que si la función \beta(\alpha) es lineal como en la Fig. 11A, el primer bloque de longitud \beta(\alpha)_{max} es de la misma longitud \beta(\alpha_{opt}) que los otros]. La pregunta es cuánto material está realmente disponible para el siguiente bloque A. Con referencia a las figuras 7-9, lo que está disponible para un bloque A es lo que queda en la lista R(A) más lo que pueda ser avanzado (tomado prestado) de R(C). Así, en la etapa S7, la suma es comparada con la cantidad de datos que se requerirán para un bloque A - \alpha_{opt}. Si hay insuficientes datos, ni siquiera es dispuesto el primer bloque B. En lugar de ello se retorna a la etapa S3, de manera que las tres listas pueden ser cambiadas - R(A) y R(B) son ambas incrementadas en la pequeña cantidad de datos disponible para el siguiente segmento común y luego cada una de ellas tiene sus segmentos siguientes respectivos añadidos. Puesto que los segmentos A y B han sido extendidos, R(C) es simplemente ajustada igual al siguiente segmento C.
Por otra parte, si en la etapa S7 se determina que hay suficiente material disponible (la suma de R(A) y R(C) no es menor que \alpha_{opt}), en la etapa S8 el primer bloque B - de longitud máxima - es dispuesto finalmente, y R(B) es reducida por la cantidad de datos así procesados.
Empezando en la etapa S9, comienzan las iteraciones sucesivas, durante las cuales pueden ser dispuestos pares de bloques A, B de longitudes óptimas \alpha_{opt}, \beta (\alpha_{opt}). Pero la razón óptima no es siempre lo que se necesita, como se explicará ahora.
Una prueba es realizada en la etapa S10 para determinar si la razón actual R(B)/R(A) es menor o igual que Q. Puesto que la división por 0 no es posible, en la etapa S9 se hace una comprobación para ver si R(A) es 0. Si lo es, se trata de una indicación de que hay material B que tiene que ser procesado sin material A correspondiente, y en tal caso el objetivo es disponer tanto material B como sea posible mientras que se mantienen los rellenos flotantes - que representan redundancia cuando no hay material A correspondiente - al mínimo. En la etapa S11, L(A) es ajustada igual a \alpha_{opt} y L(B) es ajustada igual a \beta(\alpha_{opt}). Con referencia a la Fig. 11A, cuando un relleno flotante tiene una longitud de \alpha_{opt}, \beta(\alpha) es igual al valor máximo. En otras palabras, usando \alpha_{opt} como la longitud de un relleno flotante, la siguiente sección (que contiene datos B) puede ser lo más larga posible respecto a la longitud de la sección A. La idea es maximizar la razón \beta(\alpha)/\alpha de manera que se gaste mucho material B mientras que se usa tan poco material A como sea posible.
En la etapa S10, suponiendo que R(A) no es igual a 0, se forma la razón de los datos restantes en las dos listas R(B) y R(A), y es comparada con Q. Q es la razón \beta/\alpha ideal, \beta (\alpha_{opt})/ \alpha_{opt}, y representa el máximo de datos que pueden ser dispuestos con el menor ``coste'' en redundancia si tiene que ser tomado prestado algo de material R(C). Si la razón R(B)/R(A) es menor o igual que Q, esto significa que el material A y B puede ser dispuesto sin tomar prestados más rellenos flotantes del siguiente segmento C - hay suficiente material A para hacer el trabajo. Como se muestra en la etapa S12, los siguientes datos A que son dispuestos, L(A), es ajustada igual a \alpha_{opt} y el siguiente material B que es dispuesto, L(B), es ajustada igual a la misma longitud \alpha_{opt} multiplicada por la razón de los datos restantes en las dos listas. De esta forma, cuando el proceso continúa, \alpha_{opt} es tomado siempre de la lista R(A) para el emplazamiento en el disco seguido por una cantidad de datos tomada de la lista R(B) que es menor que \beta (\alpha_{opt}) pero que tendrá como resultado que la lista B se esté vaciando al mismo tiempo que es vaciada la lista A. La diferencia entre las etapas S11 y S12 es que mientras que los datos L(A) colocados en el disco para la versión más corta son ajustados siempre a \alpha_{opt}, los datos tomados de la lista más larga para L(B) puede no ser los máximos que podrían ser usados para un salto sin cortes. Si hay una gran cantidad de datos B, entonces L(B) = \beta (\alpha_{opt}). Pero si hay menos, entonces menos datos son tomados de la lista R(B) como se muestra en la etapa S12.
Cuando se alcanza la etapa S13, el sistema ha determinado los valores para L(A) y L(B). La longitud de L(A) se hace siempre igual a \alpha_{opt} y los datos son tomados de la lista R(A); L(A) es ajustada sin ni siquiera comprobar que hay datos disponibles en la lista R(A) porque en la etapa S7 se determinó que, si es necesario, R(C) tiene suficientes datos. En la etapa S13, se hace una comprobación para ver si hay suficientes datos en R(A) por sí misma para satisfacer el requisito L(A). La prueba en la etapa S13 comprueba si los datos restantes en R(A) son al menos igual a \alpha_{opt}. Si hay suficientes datos en R(A) para satisfacer el requisito L(A), entonces la etapa S14 es saltada. Si no, la etapa S14 es ejecutada. Es en esta etapa en la que el material del siguiente segmento C es avanzado y tratado como datos únicos para la versión A para ser dispuestos como un relleno flotante en la secuencia de bloques de datos que es leída durante la reproducción de la versión A. Por las razones discutidas con relación a las Figs. 7-9 es también necesario tomar el mismo material derivado del siguiente segmento C e incluirlo en el material que es único para la versión B - el principio de operación básico de la invención es que cuando material es avanzado desde una sección C para su uso como un relleno flotante de material A, ese mismo material debe ser incluido en los datos que son únicos para la versión B. Después, en la etapa S13 se comprueba si R(A) está vacía o, incluso si tiene algunos datos no tiene suficientes para cumplir el requisito L(A), la diferencia \Delta entre R(A) y L(A) es formada. En la segunda subetapa, \Delta es añadida a R(A) de manera que R(A) tiene ahora suficientes datos para satisfacer el requisito L(A). A continuación, la misma cantidad de datos tomados de la lista R(C) es añadida a la lista R(B) porque debe ser incluida en el material único para la versión B. Finalmente, el material avanzado desde el segmento C es suprimido de la lista R(C) porque ya habrá sido dispuesto - dos veces - durante el procesamiento de los datos A y B.
Las subetapas de la etapa S14 están simbolizadas en las Figs. 7 y 8 que muestran el material C que está siendo avanzado e incluido en la secuencia única para cada versión. Aquí es donde entra la redundancia- una sección de material común es suprimida, pero es registrada dos veces en su lugar. Éste es el precio que debe ser pagado para derivar un relleno flotante que de otra forma no existiría, sirviendo el relleno flotante como un punto de salto para saltar el bloque de datos siguiente que es único para la versión B.
Por tanto, en las etapas S13 y S14 se determina si existe suficiente material en R(A) para soportar L(A); si no es así, entonces R(A) es incrementada (junto con R(B)) en la etapa S14, y al mismo tiempo R(C) es disminuida. Una clase diferente de comprobación y posible corrección es necesaria para L(B). La cantidad de datos a ser colocados en el disco en un bloque único para la versión B es determinada en la etapa S11 o S12. En la etapa S15 se hace una comprobación para ver si hay suficientes datos en la lista R(B) para soportar L(B). Si lo hay, se hace un salto a la etapa S17. Por otra parte, si R(B) es menor que L(B), entonces no quedan suficientes datos en el segmento B que está siendo procesado para soportar el último bloque, representado por L(B) que se supone que va a ser colocado en el disco. Sin embargo, no es necesario incrementar R(B) en tal caso. L(B) simplemente se hace más corta en la etapa S16; L(B) es ajustada igual a R(B), siendo procesados los datos restantes para el segmento B actual. Cualquier sistema práctico tiene una longitud de bloque mínima. Cuando se llega a la longitud de bloque para la versión que tiene menos datos en el par de segmentos A,B que está siendo procesado, siempre es usada una longitud igual a \alpha_{opt}, como se explicó con relación a las etapas S11 y S12. Dicha longitud excederá necesariamente a la longitud mínima, siendo la longitud mínima que se ve en la Fig. 11A menor que \alpha_{opt}. Pero no es necesaria una longitud mínima para el último bloque que es único para la versión B. Esto es debido a que este bloque es colocado en la pista inmediatamente antes de los siguientes datos comunes. La cabeza lectora cuando se reproduce la versión B, salta al inicio de último bloque de datos B corto y lee a través de este bloque y continúa al siguiente bloque C. Y cuando la versión A está siendo reproducida, el salto se hace al inicio del material común, justo después del bloque B corto. Puesto que no es tomado un salto desde el último bloque B no hay requisito de longitud mínima. Por consiguiente, en lugar de incrementar R(B) en la etapa S16 para adaptar L(B), lo que sería análogo a lo que se hizo en la etapa S14 para la versión A, L(B) es simplemente reducida en la etapa S16 a igualar a los datos restantes en la lista R(B).
Cuando se alcanza S17, R(A) ha sido incrementada, si es necesario, en la etapa S14 con un trocito de datos C, y los dos bloques de datos para ahora ser colocados en el disco, L(A) y L(B) han sido también determinadas. En la etapa S17, R(A) y R(B) son ambas reducidas por las respectivas cantidades de datos que están siendo colocados en el disco, y los datos en L(A) y los datos en L(B) son formateados.
La forma más fácil de entender el procesamiento desde este punto es considerar el caso usual en el que hay segmentos alternos A y B a ser procesados. Si B empieza mucho mayor que A, L(A) y L(B) son ajustadas en la etapa S11 para maximizar la cantidad de material B que es colocada en el disco respecto al material A en el bloque precedente. De esta forma, la razón R(B)/R(A) se mantiene decreciente. Eventualmente, si la desigualdad en la etapa S12 se satisface, entonces en la etapa S12, L(B) es ajustada a un valor menor del que tiene en la etapa S11 durante el procesamiento restante de los segmentos A y B en consideración. La razón usada para ajustar L(B) en la etapa S12 está diseñada de manera que las listas R(A) y R(B) son vaciadas simultáneamente. En tal caso, en la etapa S18, R(A) y R(B) serán ambas vaciadas durante la misma iteración. Por otra parte, si B empieza mucho mayor que A - por ejemplo, puede no haber segmento A correspondiente a un segmento B - entonces incluso maximizando la razón de los datos dispuestos para el par \beta,\alpha en la etapa S11 puede no tener como resultado que R(A) y R(B) se anulen ambas en la misma iteración. Lo que ocurre en tal caso es que R(A) se reduce a 0, suponiendo que no empezó allí en el primer lugar con el procesamiento de un segmento B que no tiene segmento A correspondiente, y requiere más tiempo que R(B) se vacíe hasta el punto en el que no queden datos en la lista (representado por R(B)=0 en la etapa S18). Por tanto, R(A) es vaciada siempre, o bien durante la misma iteración con R(B), o bien en una iteración anterior, pero nunca durante una iteración que siga al vaciado de R(B).
Consideremos en primer lugar el caso en el que R(A) es vaciada en primer lugar. Se recordará que R(A) es incrementada en cada iteración durante la etapa S14 para que haya suficientes datos en la lista para cumplir el requisito L(A). Pero en la misma etapa R(A) es vaciada una vez más cuando los datos son almacenados en el disco. En tal caso, el sistema debe continuar disponiendo bloques de información de los datos B mientras que se toma prestado del segmento C para los rellenos flotantes A (y también añadiendo el material tomado prestado a la lista R(B) que debe ser procesado). Aunque cualquier ejecución de la etapa S18 revela que R(A) =0, puesto que R(B) no es 0 se hace una ramificación a la etapa S19. En este punto en el procesamiento, hay todavía material B del que hay que ocuparse, y posiblemente material A también. Pero antes de que pueda empezar la siguiente iteración, debe asegurarse que queda suficiente material C en la lista R(C) para satisfacer el siguiente requisito L(A). En otras palabras, si un bloque A tiene que ser colocado en el disco y el material para el relleno flotante tiene que proceder al menos parcialmente del segmento C que está siendo procesado, entonces deben quedar suficientes datos en el segmento C para realizar esto. La prueba en la etapa S19 es, por tanto, la misma que en la etapa S7. Si queda suficiente material en R(C) para satisfacer el requisito \alpha_{opt}, es decir la suma de R(A) + R(C) no es menor de \alpha_{opt}, entonces se retorna a la etapa S9. Puesto que hay suficientes datos disponibles, la iteración continúa con las etapas S9-S12, y la derivación de L(A) y L(B).
Por otra parte, supóngase que R(A) + R(C) es menor que \alpha_{opt}. Esto significa que no hay suficientes datos en R(C) para permitir tomar prestada de una cantidad que cuando sea añadida a R(A) iguale a \alpha_{opt} durante la etapa S14. Se vuelve al inicio del bucle de procesamiento principal, etapa S3, que implementa lo que se muestra en la Fig. 9. El último bit del material C, C4 en la Fig. 9, es añadido al final del material A y B precedente que queda por procesar. Esto puede hacerse porque el material C precedente (C1, C2 y C3 en la Fig. 9) ya ha sido colocado en el extremo de cola de los segmentos A y B precedentes que están siendo procesados. Incluso en el caso del segmento B que no ha sido completamente dispuesto, todo lo que es necesario es colocar el último bit del segmento C al final de lo que ya está en la lista R(B). Colocar C4 al final de R(A) y R(B) actuales es equivalente a combinar el segmento A actual (si queda algo en él) con el segmento A siguiente, y el segmento B actual con el siguiente segmento B, puesto que de todo el material C que los separa ya se ha dado cuenta. Así, como se muestra en la Fig. 9, C4 es añadido al principio del siguiente segmento A, y es añadido al final del segmento B actual (R(B), que incluye los bloques C1-C3 precedentes de R(C) que fueron añadidos a R(B)), a continuación de lo cual es añadido el siguiente segmento B a R(B). Finalmente, R(C) se hace simplemente el siguiente segmento C.
El procesamiento continúa volviendo el bucle exterior a la etapa S3 y el bucle interior a la etapa S9. Eventualmente, el procesamiento cesa cuando en la etapa S4 se determina que no hay más datos.
La invención ha sido descrita en términos de una realización ilustrativa que tiene sólo dos versiones de un programa. Pero el método de la invención tiene una utilidad mucho más general. Por ejemplo, considérese un disco multimedia cuyo tema es las presidencias americanas y, después de la reproducción de un segmento sobre guerras en general, puede hacerse una ramificación a un segmento sobre cualquier presidente durante cuya administración América estuvo en guerra. Los segmentos sobre Roosevelt y Truman puede contener temas en común en sus comienzos y en algún lugar más y ambos segmentos pueden estar lejos del segmento del que se ha sacado la ramificación. El material común puede ser registrado redundantemente como se describió antes para crear rellenos flotantes para saltos sin cortes para estos dos segmentos de vídeo, aunque lo mismo se hace para todavía otros segmentos de vídeo de presidentes emparejados. No hay razón para restringir los saltos a sólo dos clases de materiales -puede haber docenas o incluso cientos, y en ambas direcciones, si se permite la ramificación extensiva basada en las selecciones del usuario. De forma similar, tres o más segmentos de vídeo que compartan material común pueden tener dicho material común registrado tres o más veces en rellenos flotantes asociados a los tres o más segmentos de vídeo individuales si es necesario permitir la ramificación sin cortes. El denominador común en todos los casos es que el material que es común a al menos dos programas o dos segmentos de programa es registrado de forma redundante - a costa del ``estado real'' - para permitir que tenga lugar la reproducción sin cortes.
Aunque el enfoque aquí ha sido reducir la redundancia al mínimo, es permisible algo de holgura. No es necesario aprovechar cualquier milímetro posible de capacidad de bits. Por tanto, aunque la invención ha sido descrita con referencia a una realización particular, hay que entender que esta realización es meramente ilustrativa de la aplicación de los principios de la invención. Pueden hacerse numerosas modificaciones en ella y pueden ser concebidas otras disposiciones dentro del alcance de la invención según está definida en las reivindicaciones.

Claims (9)

1. Método para formatear en un medio reproducible datos digitales que representan al menos dos versiones de un programa de película cinematográfica que comprende las etapas de entrelazado en una corriente de datos sencilla de secuencias de datos que son únicas para cada versión y secuencias de datos que son comunes a las dos; y, para conseguir la reproducción sin cortes de ambas versiones en un reproductor que es compatible con el medio pero que tiene almacenamiento de memorias intermedias limitado, colocar redundantemente datos que si no serían comunes a ambas versiones en las secuencias de datos que son únicas para ambas versiones citadas, en el que la longitud de los bloques de datos de cada versión está limitada de acuerdo con la longitud de almacenamiento de las memorias intermedias.
2. Método según la reivindicación 1, en el que los datos representan al menos dos versiones de programa A y B de material de fuente, siendo el medio reproducible en un reproductor que tiene un sistema de gestión de memorias intermedias de datos predefinido; representando los datos segmentos de tipo A del material de fuente de la versión A, segmentos de tipo B del material de fuente de la versión B, y segmentos de tipo C del material de fuente común a ambas al menos dos versiones citadas; y en el que los datos van a ser entrelazados en dicho medio para representar segmentos pareados de tipo A y B dispuestos entre segmentos de tipo C sucesivos, siendo leídos los datos que representan segmentos de tipo C independientemente de que versión del material de fuente esté siendo reproducida y siendo los datos que representan sólo segmentos de tipo A o sólo segmentos de tipo B leídos dependiendo de qué versión del material de fuente esté siendo reproducida; comprendiendo el entrelazado las etapas de:
(a)
donde sea posible, dividir los datos que representan cada segmento de tipo A y cada segmento de tipo B de un par en series sencillas de bloques de datos entrelazados (A_{1}, A_{2},...,A_{n}; B_{1}, B_{2},...,B_{n}) y limitar las longitudes de los bloques de datos de tipo A y tipo B individuales para permitir que el reproductor en el que es reproducido el medio salte los bloques de datos de tipo A sin interrupciones cuando está siendo reproducida la versión B del material de fuente y que salte los bloques de datos de tipo B sin interrupciones cuando esté siendo reproducida la versión A del material de fuente, y estando seguidos los bloques de datos de tipo A y tipo B entrelazados por bloques de datos que representan exactamente el segmento de tipo C siguiente; y
(b)
evitar interrupciones durante la reproducción cuando uno de los segmentos de un par de tipo A y tipo B es mucho más largo que el otro, suprimiendo el material del segmento de tipo C que sigue al par (C_{1}, C_{2},...C_{n}) y representándolo redundantemente en cada una de las dos series entrelazadas de bloques de datos de tipo A y tipo B precedentes.
3. Método según la reivindicación 1 ó 2, caracterizado porque la serie de bloques de datos entrelazados empieza y termina con un bloque de datos que representa al más largo de los dos segmentos en el par respectivo.
4. Método según una cualquiera de las reivindicaciones 1 a 3, caracterizado porque dentro de una serie de bloques de datos entrelazados que representa un par de segmentos uno de los cuales es mucho más largo que el otro, la razón de las longitudes de los bloques adyacentes en un par es tal que el grado de redundancia es mínimo.
5. Método según una cualquiera de las reivindicaciones 1 a 4, caracterizado porque una serie entrelazada de bloques de datos es formada manteniendo dos listas que representan material de tipo A y de tipo B, y determinando bloques de datos a ser entrelazados de dichas listas; y extendiendo ambas listas citadas para representar algún material de tipo C siguiente cuando sea necesario para introducir redundancia y evitar interrupciones en la reproducción.
6. Medio reproducible formateado con datos digitales que representan al menos dos versiones de un programa de vídeo cinematográfico que comprende una corriente de datos sencilla que contiene secuencias de datos entrelazados que son únicas para cada versión y secuencias de datos que son comunes a las dos; y para conseguir la reproducción sin cortes de ambas versiones en un reproductor que es compatible con el medio pero que tiene almacenamiento de memoria intermedia limitado, los datos que si no estarían en una secuencia común son colocados en su lugar redundantemente en ambas secuencias de datos que son únicas para dichas dos versiones, en el que la longitud de los bloques de datos de cada versión está limitada de acuerdo con la longitud de almacenamiento de la memoria intermedia.
7. Medio según la reivindicación 6, en el que los datos digitales representan al menos dos versiones de programa A y B de material de fuente, siendo el medio reproducible en un reproductor que tiene un sistema de gestión de memorias intermedias de datos predefinido;
(a)
representando los datos en el medio segmentos de tipo A del material de fuente de la versión A (A_{1}, A_{2}, ..., A_{n}), segmentos de tipo B del material de fuente de la versión B (B_{1}, B_{2}, ...B_{n}) y segmentos de tipo C del material de fuente común a ambas al menos dos versiones citadas, estando el medio adaptado para ser reproducido en un reproductor que lee los datos que representan segmentos de tipo C independientemente de qué versión de material de fuente esté siendo reproducida y los datos que representan sólo segmentos de tipo A o sólo segmentos de tipo B dependiendo de qué versión del material de fuente esté siendo reproducida;
(b)
siendo los datos entrelazados en dicho medio para representar segmentos pareados de tipo A y tipo B dispuestos entre segmentos de tipo C (C_{1}, C_{2},...,C_{n}) sucesivos, los datos que representan cada segmento de tipo A y cada segmento de tipo B en un par son divididos en una serie sencilla de bloques de datos entrelazados, estando las longitudes de los bloques de datos del tipo A y el tipo B individuales limitadas para permitir que el reproductor en el que está siendo reproducido el medio salte los bloques de datos de tipo A sin interrupciones cuando está siendo reproducida la versión B del material de fuente y salte los bloques de datos de tipo B sin interrupciones cuando sea reproducida la versión A del material de fuente;
(c)
siendo las series de bloques de datos entrelazados del tipo A y del tipo B seguidas por bloques de datos que representan justamente el siguiente segmento de tipo C; y donde uno de los segmentos de un par de tipo A y tipo B es mucho más largo que el otro y si no daría lugar a una interrupción durante la reproducción, el material que es común a ambas versiones está ausente del segmento de tipo C que sigue al par y en su lugar está representado redundantemente en cada una de las dos series de bloques de datos entrelazadas de tipo A y tipo B precedentes.
8. Medio según una cualquiera de las reivindicaciones 6 a 7, caracterizado porque una serie de bloques entrelazados empieza y termina con un bloque de datos que representa al más largo de los dos segmentos en el par respectivo.
9. Medio según una cualquiera de las reivindicaciones 6 a 8, caracterizado porque dentro de una serie de bloques de datos entrelazados que representan un par de segmentos uno de los cuales es mucho más largo que el otro, la razón de longitudes de los bloques adyacentes en un par es tal que el grado de redundancia es mínimo.
ES97905815T 1996-02-21 1997-02-06 Procedimiento para entrelazar datos para reproducir sin interrupcion versiones multiples de programas que tienen partes comunes. Expired - Lifetime ES2199347T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US604303 1996-02-21
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
US730328 1996-10-15
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

Publications (1)

Publication Number Publication Date
ES2199347T3 true ES2199347T3 (es) 2004-02-16

Family

ID=27084635

Family Applications (1)

Application Number Title Priority Date Filing Date
ES97905815T Expired - Lifetime ES2199347T3 (es) 1996-02-21 1997-02-06 Procedimiento para entrelazar datos para reproducir sin interrupcion versiones multiples de programas que tienen partes comunes.

Country Status (9)

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

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080158261A1 (en) * 1992-12-14 2008-07-03 Eric Justin Gould Computer user interface for audio and/or video auto-summarization
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
US5726627A (en) 1995-05-16 1998-03-10 Roger A. Kane Security system with intermittent alarm location detection
CN1104724C (zh) 1996-01-08 2003-04-02 株式会社东芝 信息记录方法以及重放方法
US6931451B1 (en) * 1996-10-03 2005-08-16 Gotuit Media Corp. Systems and methods for modifying broadcast programming
US20030093790A1 (en) 2000-03-28 2003-05-15 Logan James D. Audio and video program recording, editing and playback systems using metadata
KR20010012762A (ko) * 1998-03-19 2001-02-26 요트.게.아. 롤페즈 기록매체와 같은 디스크 상에/디스크로부터 실시간 정보를기록/재생하는 장치 및/또는 편집하는 장치
CN1272207A (zh) * 1998-03-19 2000-11-01 皇家菲利浦电子有限公司 在/从盘形记录载体上记录/再现和/或编辑实时信息
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 (en) * 2001-07-13 2003-01-15 France Telecom Method for broadcasting multimedia signals towards a plurality of 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
CN1565031B (zh) 2002-06-28 2010-09-29 Lg电子株式会社 一种用于管理多个路径数据的记录和再现的方法及装置
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
EP0654157A1 (en) * 1992-08-10 1995-05-24 Digital Pictures, Inc. System and method of selecting among multiple data streams
US5463565A (en) * 1993-10-29 1995-10-31 Time Warner Entertainment Co., L.P. Data block format for software carrier and player therefor
EP0677842B2 (en) * 1993-10-29 2001-01-10 Kabushiki Kaisha Toshiba Multi-scene recording medium, reproduction method and reproduction apparatus
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 Industrial Co Ltd A method and an apparatus for reproducing bitstream having non-sequential system clock data seamlessly therebetween
TW305043B (es) * 1995-09-29 1997-05-11 Matsushita Electric Industrial Co Ltd
DE69614889T2 (de) * 1995-09-29 2002-04-11 Matsushita Electric Industrial Co., Ltd. Bitstromgenerierungsverfahren, optische Scheibe, Wiedergabe-Einrichtung und -Verfahren zur Aufnahme und Wiedergabe eines verschachtelten Bitstroms auf und von einer optischen Scheibe
CN1104724C (zh) * 1996-01-08 2003-04-02 株式会社东芝 信息记录方法以及重放方法

Also Published As

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

Similar Documents

Publication Publication Date Title
ES2199347T3 (es) Procedimiento para entrelazar datos para reproducir sin interrupcion versiones multiples de programas que tienen partes comunes.
US5644507A (en) Method for interleaving data for seamless playback of multiple program versions having common material
JP2829963B2 (ja) ディジタルデータ記録/再生装置
ES2354841T3 (es) Método y aparato para la codificación y la descodificación de datos y soporte de grabación de datos codificados.
ES2204722T3 (es) Dispositivo de dvd para la lectura y la grabacion pseudo-simultaneas, con funciones de pausa de presentacion y de fin de pausa que suponen una velocidad de rotacion variable.
ES2275596T3 (es) Aparato y metodos para grabar y reproducir datos de informacion.
KR100310211B1 (ko) 레코딩매체,레코딩및/또는재생장치와그방법
ES2204387T3 (es) Soporte de informacion informatico para ser reproducido en un sistema para autenticar soportes.
KR100301012B1 (ko) 광 디스크 기록/재생 장치 및 그 방법 및 정보 구조
CN100477766C (zh) 音频/视频信息记录再现装置及方法
USRE41082E1 (en) Information recorder, recording method, and recording media
ES2243317T3 (es) Edicion precisa de imagenes sin descodificacion y recodificacion de cadena de bits mpeg para dvd registrable.
EP1236349A2 (en) Method for editing source video to slow motion or fast motion on the recordable media
JP2011138602A (ja) レコーダブルdvd編集のための削除及び削除の取り消し
HU228529B1 (en) Data allocation in dvd recording
ES2257807T3 (es) Metodo y dispositivo para grabar informacion en un soporte.
ES2364374T3 (es) Método y aparato de descodificación de datos.
KR100373467B1 (ko) 어드레스 발생 회로
ES2286024T3 (es) Metodo de administracion para un medio de disco.
ES2247723T3 (es) Metodo y dispositivo para conectar informacion de audio digital muestreada a velocidad variable a una cadena de bloques de tamaño uniforme, y medio unitario producido de esta manera por medio de una interconexion que permite la escritura.
ES2235990T3 (es) Grabacion con pausas multiples en un medio de disco regrabable.
US6032117A (en) Reproduction device outputting combined sequence of user-specific and user independent voice message data
RU2289860C2 (ru) Носитель записи для хранения информации о записи/воспроизведении в реальном масштабе времени
RU2300148C2 (ru) Носитель записи для хранения информации о записи/воспроизведении в реальном масштабе времени, способ и устройство для записи и воспроизведения в реальном масштабе времени и способ обработки файлов с их использованием
JPH0234556B2 (es)