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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B20/1251—Formatting, 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G11B27/034—Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/102—Programmed access in sequence to addressed parts of tracks of operating record carriers
- G11B27/105—Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/19—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
- G11B27/28—Indexing; 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/32—Indexing; 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/327—Table of contents
- G11B27/329—Table of contents on a disc [VTOC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/80—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N9/82—Transformation 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/8205—Transformation 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/8227—Transformation 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2537—Optical discs
- G11B2220/2562—DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/91—Television signal processing therefor
- H04N5/913—Television signal processing therefor for scrambling ; for copy protection
- H04N2005/91307—Television signal processing therefor for scrambling ; for copy protection by adding a copy protection signal to the video signal
- H04N2005/91321—Television 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/84—Television signal recording using optical recording
- H04N5/85—Television signal recording using optical recording on discs or drums
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/80—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N9/804—Transformation 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/8042—Transformation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/80—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N9/804—Transformation 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/806—Transformation 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/8063—Transformation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/80—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N9/82—Transformation 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/8205—Transformation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/80—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N9/82—Transformation 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/8205—Transformation 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/8211—Transformation 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/8216—Transformation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/80—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N9/82—Transformation 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/8205—Transformation 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/8233—Transformation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/87—Regeneration of colour television signals
- H04N9/877—Regeneration 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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
| 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)
| 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 | 株式会社东芝 | 信息记录方法以及重放方法 |
-
1997
- 1997-02-06 WO PCT/US1997/001934 patent/WO1997031374A1/en not_active Ceased
- 1997-02-06 AT AT97905815T patent/ATE243879T1/de not_active IP Right Cessation
- 1997-02-06 CA CA002218657A patent/CA2218657C/en not_active Expired - Fee Related
- 1997-02-06 ES ES97905815T patent/ES2199347T3/es not_active Expired - Lifetime
- 1997-02-06 DE DE69723003T patent/DE69723003T2/de not_active Expired - Lifetime
- 1997-02-06 EP EP97905815A patent/EP0823114B1/en not_active Expired - Lifetime
- 1997-02-06 AU AU22619/97A patent/AU690871B2/en not_active Expired
- 1997-02-06 JP JP9530188A patent/JP3016598B2/ja not_active Expired - Lifetime
-
1999
- 1999-08-03 US US09/368,067 patent/US6026446A/en not_active Expired - Lifetime
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) |