ES2291563T3 - Metodo para sellar el tiempo de presentacion en pantalla y sincronizacion de planos de objetos de video multiples. - Google Patents

Metodo para sellar el tiempo de presentacion en pantalla y sincronizacion de planos de objetos de video multiples. Download PDF

Info

Publication number
ES2291563T3
ES2291563T3 ES03013104T ES03013104T ES2291563T3 ES 2291563 T3 ES2291563 T3 ES 2291563T3 ES 03013104 T ES03013104 T ES 03013104T ES 03013104 T ES03013104 T ES 03013104T ES 2291563 T3 ES2291563 T3 ES 2291563T3
Authority
ES
Spain
Prior art keywords
vop
time
time base
base
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES03013104T
Other languages
English (en)
Inventor
Thiow Keng Tan
Sheng Mei Shen
Chak Joo Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of ES2291563T3 publication Critical patent/ES2291563T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/29Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding involving scalability at the object level, e.g. video object layer [VOL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234318Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • H04N7/52Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

Un método para codificar una base de tiempos local de un plano de objetos de vídeo (VOP) que comprende: codificar la base de tiempos local del plano de objetos de vídeo (VOP) en dos partes, siendo la primera parte una base de tiempos de módulo que indica el tiempo en unidades de resolución de un segundo que ha transcurrido desde un tiempo de referencia marcado por la base de tiempos de módulo de un plano de objetos de vídeo anterior (VOP) que está situado antes del plano de objetos de vídeo (VOP) y siendo la segunda parte un incremento de la base de tiempo que representa el incremento de tiempo desde el tiempo de referencia marcado por la base de tiempos de módulo del plano de objetos de vídeo (VOP); e insertar la base de tiempo local codificada en un flujo de bits del plano de objetos de vídeo (VOP).

Description

Método para sellar el tiempo de presentación en pantalla y sincronización de planos de objetos de vídeo múltiples.
Campo técnico
Esta invención es útil en la codificación de materiales audiovisuales digitales donde hay una necesidad de sincronizar más de un objeto audiovisual codificado independientemente para su presentación. Es especialmente adecuada cuando el muestreo temporal del material audiovisual no es el mismo.
Antecedentes técnicos
En las normas MPEG-1 y MPEG-2 el vídeo de entrada consiste de tramas de imagen muestreadas a intervalos de tiempo regulares. Esto representa la resolución temporal más fina de la entrada. La Figura 1 muestra una secuencia de vídeo con tasas de trama fijas donde las tramas de imagen se muestrean a intervalos regulares. En la representación codificada de la secuencia de vídeo usando las normas MPEG-1 y MPEG-2 el orden de presentación en pantalla de las tramas descodificadas se indica por la referencia temporal. Este parámetro aparece en la cabecera del cuadro de la sintaxis del flujo de bits. El valor de este parámetro se incrementa en uno por cada trama descodificada cuando se examina en el orden de presentación en pantalla.
En la norma H.263 es posible saltar tramas y de este modo descodificar una secuencia de vídeo de tasa de trama variable. Sin embargo el muestreo de las tramas es aún fijo. De este modo el método de referencia temporal usado en las normas MPEG-1 y MPEG-2 es aún apropiado y sólo necesita modificarse de modo que el incremento no es en pasos de 1 sino en pasos de 1 más el número de cuadros no transmitidos a la tasa de trama de entrada.
Actualmente el trabajo se hace en el área de la codificación de vídeo como separar objetos en planos de objetos de vídeo múltiples. Esto representa una nueva dimensión en la descodificación y sincronización de los objetos de vídeo respectivos. Se espera que estos planos de objetos de vídeo diferentes puedan venir de varias fuentes y puedan tener tasas de trama muy diferentes. Algunos de los objetos pueden presentarse y tener casi una tasa de muestreo temporal continua. Estos planos de objetos de vídeo se combinan en una imagen compuesta para su presentación en pantalla. Por lo tanto se requiere alguna clase de sincronización para la composición. Es posible que la tasa de presentación en pantalla de las tramas sea diferente de cualquiera de las tasas de trama de los planos de objetos de vídeo. La Figura 2 muestra un ejemplo de dos planos de objetos de vídeo que tienen tasas de tramas diferentes y variables comparados entre sí. Incluso si pudiese encontrarse una tasa de trama común entre los dos planos de objetos de vídeo, no es automático que esa tasa de trama sea la misma que la tasa de trama de salida del componedor.
De aquí en adelante nos referiremos al problema en el domino del vídeo. Sin embargo pueden extenderse los mismos principios de esta invención al dominio del audio así como a combinaciones de los dos.
De lo anterior está claro que el estado actual de la técnica no atiende la sincronización de los planos de objetos de vídeo. El estado de la técnica no proporciona una referencia temporal común cuando los diferentes planos de objetos de vídeo tienen tasas de trama diferentes que no son múltiplos entre sí.
El primer problema es cómo proporcionar un mecanismo de base de tiempo local común para cada plano de objetos de vídeo. Esta base de tiempo tendrá que ser capaz de proporcionar una granularidad temporal muy fina y al mismo tiempo ser capaz de sobrellevar la posibilidad de intervalos muy largos entre dos casos sucesivos de planos de objetos de vídeo.
El segundo problema es cómo proporcionar un mecanismo para sincronizar planos de objetos de vídeo que tienen diferentes tasas de trama.
Descripción de la invención
Los problemas anteriores pueden resolverse implementando una resolución temporal común para su uso por todas las bases de tiempo locales. Para atender el amplio rango de la granularidad temporal, la base de tiempo local se parte en dos partes diferentes. La primera parte que contiene la resolución temporal de granularidad fina que proporciona una base de tiempo corta. La segunda parte contiene una resolución temporal de granularidad gruesa que proporciona una base de tiempo larga. La base de tiempo corta está incluida en cada uno de los planos de objetos de vídeo para proporcionar una referencia temporal a los ejemplos de objetos de vídeo. La base de tiempos corta se sincroniza a continuación con la base de tiempo larga que es común a todos los planos de objetos de vídeo. Se usa para sincronizar todos los planos de objetos de vídeo diferentes a una base de tiempos común por el reloj maestro.
En las reivindicaciones se muestran métodos de acuerdo con la invención.
Breve descripción de los dibujos
La presente invención se entenderá mejor a partir de la descripción detallada dada más adelante y de los diagramas adjuntos en los que:
La Figura 1 ilustra el muestreo temporal de la técnica anterior en la que las tramas de la secuencia de vídeo se muestrean a intervalos regulares.
La Figura 2 ilustra el concepto de los planos de objetos de vídeo y la relación entre los mismos. El muestreo de los planos de objetos de vídeo puede ser irregular y el periodo del muestreo puede variar drásticamente.
La Figura 3A ilustra la invención actual donde la referencia temporal de los objetos de vídeo se indica por la base de tiempos de módulo y el incremento de tiempo de VOP. La ilustración sólo usa VOP de los tipos I y P.
La Figura 3B ilustra la invención actual donde la referencia temporal de los objetos de vídeo se indica por la base de tiempos de módulo y el incremento de tiempo de VOP. La ilustración usa VOP de los tipos I, P y B.
La Figura 4 ilustra un ejemplo de la ambigüedad que puede presentarse cuando el orden de presentación y el orden de codificación son diferentes como resultado de planos de los objetos de vídeo tipo B.
La Figura 5 ilustra una solución a la ambigüedad empleando bases de tiempo absolutas y relativas.
La Figura 6 ilustra la combinación de dos VOP y su sincronización con la base de tiempo común empleando desplazamientos de tiempo de VOP.
La Figura 7 ilustra el diagrama de flujo para la codificación de la base de tiempo.
La Figura 8 ilustra el diagrama de flujo para la multiplexación de más de un plano de objetos de vídeo.
La Figura 9 ilustra el diagrama de flujo para la desmultiplexación de más de un plano de objetos de vídeo.
La Figura 10 ilustra el diagrama de flujo para la recuperación del sello del tiempo de presentación.
La Figura 11 ilustra el diagrama de bloques para las operaciones del codificador del flujo de bits para la codificación de la base de tiempo.
La Figura 12 ilustra el diagrama de bloques para las operaciones del descodificador del flujo de bits para la descodificación de la base de tiempo.
La Figura 13 ilustra el diagrama de tiempos para formar los datos del flujo de datos.
Mejor modo de realizar la invención
Esta invención actúa para proporcionar dos formas de sincronización. La primera es una base de tiempos corta adjunta al plano de objetos de vídeo. De aquí en adelante esta base de tiempo se denominará como incremento de tiempo de VOP. El incremento de tiempo de VOP es un mecanismo de temporización para los planos de objetos de vídeo con respecto a la base de tiempo larga que está adjunta a un grupo de planos de objetos de vídeo a descodificar y componer juntos. La base de tiempo larga se denomina como base de tiempos de módulo. El incremento de tiempo de VOP y la base de tiempos de módulo se usarán conjuntamente a continuación para determinar la base de tiempo actual a usar para la composición de los planos de objetos de vídeo dentro de la secuencia compuesta final para su presentación en pantalla.
Para facilitar la edición del flujo de bits y la combinación de diferentes planos de objetos de vídeo procedentes de fuentes diferentes dentro de un nuevo grupo de planos de objetos de vídeo hay necesidad de una tercera componente para permitir una cantidad fija de desplazamiento entre la base de tiempo local y el plano de objetos de vídeo individual desde la base de tiempo común. De aquí en adelante, este desplazamiento se denominará desplazamiento de tiempo de VOP. Esto impide que los planos de objetos de vídeo diferentes tengan que sincronizarse a una granularidad equivalente al intervalo de la base de tiempos de módulo. Esta componente se mantendrá constante para cada plano de objeto de vídeo dentro del grupo de planos de objetos de vídeo que se multiplexan juntos.
En primer lugar se describe la base de tiempos de módulo.
La base de tiempos de módulo representa la resolución gruesa de la base de tiempo local. No tiene un valor como el incremento de tiempo de VOP. De hecho es más un mecanismo de sincronización para sincronizar el incremento de tiempo de VOP a la base de tiempo local del plano de objetos de vídeo. Se sitúa en el flujo de bits codificado como marcadores para indicar que el incremento de tiempo de VOP de los planos de objetos de vídeo que siguen se reseteará y que la referencia a la base de tiempo local se incrementará en una o más unidades del intervalo de la base de tiempos de módulo. En las Figura 3A, 3B, 4, 5, y 6, se muestra la base de tiempos de módulo como una serie de cero o más "1" terminada por un "0" insertado dentro de la cabecera del flujo de bits antes del incremento de tiempo de VOP. El número de "1" insertados dentro del flujo de bits depende del número de unidades de la base de tiempos de módulo que han transcurrido desde el último código del plano de objetos de vídeo de tipo I o P. En el codificador y descodificador el contador de la base de tiempos de módulo se incrementa en uno por cada "1" encontrado. El contador de la base de tiempos de módulo es finito en longitud y por lo tanto en un sistema práctico la base de tiempos de módulo se resetea a cero cuando se alcanza el valor máximo. En una secuencia de tiempo típica los planos de objetos de vídeo forman un grupo de VOP. Por lo tanto la base de tiempos de módulo usualmente se resetea al comienzo de este grupo de VOP.
A continuación se describe el incremento de tiempo de VOP.
El incremento de tiempo de VOP estará en unidades que puedan soportar el muestreo temporal más corto de los objetos de vídeo. Puede ser también la base de tiempo originaria para el objeto que se presenta. Por lo tanto representa la granularidad más fina de la resolución temporal que se requiere o que puede mantenerse.
El incremento de tiempo de VOP puede entonces indicarse por un número de longitud finita mayor o igual que la proporción del intervalo de la base de tiempo global a la resolución de la base de tiempo local. La Figura 3A muestra un ejemplo de incremento de tiempo de VOP para planos de objetos de vídeo I y P y la referencia a la base de tiempos de módulo. Se usa una base de tiempo absoluta. El incremento de tiempo de VOP se resetea cada vez que se encuentra la base de tiempos de módulo. La Figura 3B muestra otro ejemplo que usa los planos de objetos de vídeo I, P y B. La operación es la misma con la excepción de que la base de tiempos de módulo se repite en los planos de objetos de vídeo tipo B. Si la base de tiempos de módulo no se repite en el plano de objetos de vídeo B entonces se presentan ambigüedades debido a la diferencia en el orden de descodificación y presentación. Esto se describe con detalle más adelante.
Como el incremento de tiempo de VOP corresponde a la base de tiempo de presentación, se presentará un problema potencial cuando el orden de codificación es diferente del orden de presentación. Esto ocurre con los planos de objetos de vídeo tipo B. De forma similar a los cuadros B de las normas MPEG-1 y MPEG-2, los planos de objetos de vídeo B se codifican después de sus planos de objetos de vídeo I y P de referencia incluso aunque precedan a los objetos de vídeo de referencia en el orden de presentación. Como el incremento de tiempo de VOP es finito y esta relacionado con la base de tiempos de módulo, el incremento de tiempo de VOP se resetea cuando se encuentra la base de tiempos de módulo. Sin embargo, el orden de codificación de los planos de objetos de vídeo B se ha retrasado. La Figura 4 muestra la ambigüedad que puede presentarse. No es posible determinar cuándo se reseteará el incremento de tiempo de VOP. De hecho cuando una secuencia determinada de eventos codificados como en la Figura 4A, no es posible conocer cuál de las situaciones de temporización de las Figura 4B, 4C y 4D se está intentando representar. Este problema sucede por el uso de una base de tiempos de módulo compartida entre todos los diferentes tipos de objetos de vídeo junto con la diferencia entre el orden de codificación y el orden de presentación. No se puede hacer nada en el orden de codificación ya que se requiere la información de referencia por los planos de objetos de vídeo tipo B. Tampoco es deseable tener una base de tiempos de módulo independiente para el tipo diferente de predicción. Por lo tanto la solución es codificar el incremento de tiempo de VOP de los planos de objeto de vídeo B como un valor relativo a los planos de objetos de vídeo I o P anteriores y que la base de tiempos de módulo se aplique sólo a los planos de objetos de vídeo I y P y no a los planos de objetos de vídeo B. Esta solución se representa en la Figura 5.
A continuación se describe el desplazamiento de tiempo de VOP.
Junto a lo anterior se comparte la base de tiempos de módulo entre todos los planos de objetos de vídeo. Esto significa que la sincronización de los diferentes objetos de vídeo tiene una granularidad equivalente al intervalo de la base de tiempos de módulo. Esto es inaceptable especialmente en el caso en el que los planos de objetos de vídeo procedentes de diferentes grupos se combinan para formar un nuevo grupo de planos de objetos de vídeo. La Figura 6 muestra un ejemplo de dos planos de objetos de vídeo diferentes que estaban codificados con dos bases de tiempo locales diferentes que están desplazadas entre sí. De este modo cuando los planos de objetos de vídeo se multiplexan, la sincronización de los planos de objetos de vídeo está también desplazada. Se consigue una granularidad más fina permitiendo que cada plano de objetos de vídeo individual tenga un desplazamiento de tiempo de VOP. Esto significa que sólo se cambia este valor cuando los planos de objetos de vídeo se manipulan y se multiplexan. No hay necesidad de cambiar el incremento de tiempo de VOP y aún es posible multiplexar los diferentes planos de objetos de vídeo sin diferencias de temporización de granularidad gruesa. La Figura 6 describe el uso de estos desplazamientos de la base de tiempo.
La realización preferida de la invención actual involucra un método de codificar la base de tiempo para cada flujo de bits de planos de objetos de vídeo individuales, un método de multiplexar planos de objetos de vídeo diferentes en una base de tiempos común, un método de desmultiplexar el flujo de bits multiplexado en los componentes y un método de recuperar la base de tiempo a partir del flujo de bits de los componentes.
Se describe la codificación de la base de tiempo.
En la Figura 7 se muestra el diagrama de flujo de la realización de la codificación de la base de tiempo. En el codificador en primer lugar se inicializa la base de tiempo local al tiempo de arranque local en la etapa 1. El proceso se pasa a la etapa 2 en la que el codificador determina el valor actual de la base de tiempo local. En la etapa 3 la base de tiempo local obtenida se compara con la base de tiempos de módulo codificada anteriormente para ver si el intervalo ha excedido el intervalo de la base de tiempos de módulo. Si se ha excedido el intervalo se pasa el control a la etapa 4 donde se inserta el número requerido de la base de tiempos de módulo en el flujo de bits. Si no se ha excedido el intervalo entonces no es necesario un manejo especial. El procesamiento continúa entonces en la etapa 5 donde se inserta el incremento de tiempo de VOP en el flujo de bits. El objeto se codifica a continuación en la etapa 6 y se inserta en el flujo de bits. El codificador comprueba a continuación para determinar si hay más objetos a codificar en la etapa 7. Si hay más objetos a codificar el proceso se reanuda en la etapa 2 donde se obtiene la base de tiempo local. Si no hay más objetos a codificar entonces el proceso termina.
Se usa la siguiente fórmula para determinar los incrementos de tiempo de VOP absolutos y relativos para los planos de objetos de vídeo I/P y los planos de objetos de vídeo B, respectivamente.
t_{GTBn} = n x t_{GTBI} + t_{GTB0}{}\hskip0,5cm(n = 0, 1, 2, 3, ...)
(1)
t_{AVTI} = t_{TBI/P} - t_{GTBn}
(2)
t_{RVTI} = t_{ETB} - t_{ETBI/P}
(3)
donde
t_{GTBn} es la base de tiempo del codificador marcada por la enésima base de tiempos de módulo codificada,
t_{GTBI} es el intervalo de la base de tiempos de módulo predeterminada,
t_{GTB0} es el tiempo de arranque de la base de tiempo del codificador,
t_{AVTI} es el incremento absoluto de tiempo de VOP para los planos de objetos de vídeo I o P,
t_{ETBI/P} es la base de tiempo del codificador al comienzo de la codificación de los planos de objetos de vídeo I o P,
t_{RVTI} es el incremento de tiempo de VOP relativo para los planos de objetos de vídeo B, y
t_{ETBB} es la base de tiempo del codificador al comienzo de la codificación del plano de objetos de vídeo B.
A continuación se describe la multiplexación de más de un plano de objetos de vídeo.
Cuando se multiplexan juntos más de un plano de objetos de vídeo, el multiplexor examina los múltiples flujos de bits de planos de objetos de vídeo para determinar el orden de multiplexación así como la sincronización. Las operaciones involucradas se representan en la Figura 8. Los desplazamientos de tiempo de VOP para cada uno de los planos de objetos de vídeo a multiplexar se insertan en el flujo de bits en la etapa 11. Todos los flujos de bits de los planos de objetos de vídeo a multiplexar se examinan en la etapa 12 para determinar si todos los planos están en sus bases de tiempos de módulo respectivas. Si lo están entonces el procesamiento pasa a la etapa 13 donde se inserta una base de tiempos de módulo común en el flujo de bits multiplexado. El procesamiento procede a continuación a la etapa 14 donde se inserta el siguiente objeto de vídeo codificado en el flujo de bits multiplexado. En la etapa 15 se examinan de nuevo los flujos de bits de los planos de objetos de vídeo a multiplexar para ver si hay más objetos de vídeo a multiplexar. Si los hay, entonces el control pasa de nuevo a la etapa 12. En caso contrario el proceso termina.
Se describe la desmultiplexación del flujo de bits que contiene más de un plano de objetos de vídeo.
La desmultiplexación de un flujo de bits que contiene múltiples planos de objetos de vídeo se representa en la Figura 9. El proceso comienza en la etapa 21 donde se descodifican las desviaciones de tiempo de VOP y se pasan a los descodificadores para sincronización. A continuación en la etapa 22 se examina el flujo de bits multiplexado para ver si se encuentra la base de tiempos de módulo. Si se encuentra la base de tiempos de módulo entonces el proceso pasa a la etapa 23 donde la base de tiempos de módulo se inserta en todos los flujos de bits de objetos de vídeo. El procesamiento continúa a continuación con la etapa 24 donde se examina el siguiente objeto de vídeo y se inserta dentro del flujo de bits de objetos de vídeo apropiado. Finalmente, se examina de nuevo el flujo de bits multiplexado para ver si hay cualquier otro objeto de vídeo a desmultiplexar. Si lo hay, entonces el proceso pasa de nuevo a la etapa 22. De lo contrario el proceso termina.
Se describe la recuperación de la base de tiempo.
La realización de la recuperación de la base de tiempo se muestra en la Figura 10. En la recuperación de base de tiempo local, el proceso comienza en la etapa 31 donde se inicializa la base de tiempo local teniendo en cuenta el desplazamiento de tiempo de VOP descodificado por el desmultiplexor. A continuación el proceso pasa a la etapa 32 que comprueba el flujo de bits para determinar si la base de tiempos de módulo esta descodificada. Si la base de tiempos de módulo está descodificada entonces el proceso pasa a la etapa 33 donde la base de tiempo local se incrementa en el incremento de la base de tiempos de módulo. El proceso pasa a continuación a la etapa 37. Si la base de tiempos de módulo no está descodificada entonces el proceso pasa a la etapa 34 donde se examina el objeto de vídeo para determinar si es un objeto de vídeo B o no. Si lo es entonces el proceso pasa a la etapa 35 donde se calcula la base de tiempo de descodificación del objeto de vídeo B en base a la ecuación (6). El proceso pasa a continuación a la etapa 37. Si el resultado de la etapa 34 no es un objeto de vídeo B entonces el proceso pasa a la etapa 36 donde la base de tiempo de descodificación se calcula en base a la ecuación (5). El proceso procede a continuación a la etapa 37. En la etapa 37, se examina el flujo de bits para ver si hay más objetos de vídeo a descodificar. Si los hay entonces el proceso pasa de nuevo a la etapa 32. De lo contrario el procesamiento termina.
Se usa la siguiente fórmula para determinar el sello temporal de presentación de los objetos de vídeo:
t_{GTBn} = n x t_{GTBI} + t_{GTB0}{}\hskip0,5cm(n = 0, 1, 2, 3, ...)
(4)
t_{DTBI/P} = t_{AVTI} + t_{GTBn}
(5)
t_{DTBB} = t_{RVTI} + t_{DTBI/P}
(6)
donde
t_{GTBn} es la base de tiempo de descodificación marcada por la enésima base de tiempos de módulo descodificada,
t_{GTBI} es el intervalo de la base de tiempos de módulo predeterminada,
t_{GTB0} es el tiempo de comienzo de la base de tiempo de descodificación,
t_{DTBI/P} es la base de tiempo de descodificación al comienzo de la descodificación de los planos de objetos de
vídeo I o P,
t_{AVTI} es el incremento absoluto de tiempo de VOP descodificado para los planos de objetos de vídeo I o P,
t_{DTBB} es la base de tiempo de descodificación al comienzo de la descodificación del plano de objetos de vídeo B, y
t_{RVTI} es el incremento de tiempo de VOP relativo descodificado para los planos de objetos de vídeo B.
\vskip1.000000\baselineskip
Se describe la implementación del Codificador del Flujo de bits.
La Figura 11 muestra el diagrama de bloque para una implementación de un codificador del flujo de bits para codificar la base de tiempos de módulo y el incremento de tiempo de VOP. Para el propósito de esta ilustración se usa el ejemplo de la Figura 3B. Como se usa la predicción bi-direccional, el orden de codificación es diferente del orden de presentación mostrado en la Figura 3B. El orden de codificación comienza con el I-VOP seguido por el P-VOP antes del B-VOP. Esto se ilustra en los tres párrafos siguientes.
El proceso comienza en el iniciador, etapa 41, donde el codificador del flujo de bits comienza inicializando el registro de la base de tiempo local al valor inicial del código de tiempo. El mismo valor del código de tiempo se codifica en el flujo de bits. Al comienzo de la codificación del siguiente I-VOP el comparador de códigos de tiempo compara, etapa 42, el tiempo de presentación del I-VOP frente al registro de la base de tiempo local. El resultado se pasa al codificador de la base de tiempos de módulo, etapa 43. El codificador de la base de tiempos de módulo insertará en el flujo de bits el número requerido de "1" equivalente al número del incremento de la base de tiempos de módulo que ha transcurrido. Estos "1" se siguen a continuación por el símbolo "0" para señalizar el final del código de la base de tiempos de módulo. El registro de la base de tiempo local se actualiza con la base de tiempos de módulo actual. El procesamiento procede a continuación con el codificador del incremento de la base de tiempo de VOP, etapa 44, donde se codifica el resto del código de tiempo de presentación del I-VOP.
El proceso se repite a continuación con el siguiente plano de objetos de vídeo codificado que es el P-VOP. El comparador de códigos de tiempo, etapa 42, compara el tiempo de presentación del P-VOP frente al registro de la base de tiempo local. El resultado se pasa al codificador de la base de tiempos de módulo, etapa 43. El codificador de la base de tiempos de módulo insertará el número de "1" requerido equivalente al número del incremento de la base de tiempos de módulo que ha transcurrido. Estos "1" se siguen a continuación por el símbolo "0" para señalizar el final del código de la base de tiempos de módulo. El registro de la base de tiempo de B-VOP se fija al valor del registro de la base de tiempo local y el registro de la base de tiempo local se actualiza con la base de tiempos de módulo actual. El procesamiento procede a continuación al codificador del incremento de la base de tiempo de VOP, etapa 44, donde se codifica el resto del código del tiempo de presentación del P-VOP.
El proceso se repite a continuación con el siguiente plano de objetos de vídeo codificado que es el B-VOP. El comparador del código de tiempo, etapa 42, compara el tiempo de presentación del B-VOP frente al registro de la base de tiempo de B-VOP. El resultado se pasa al codificador de la base de tiempos de módulo, etapa 43. El codificador de la base de tiempos de módulo insertará el número de "1" equivalente al número del incremento de la base de tiempos de módulo que ha transcurrido. Estos "1" se siguen a continuación por el símbolo "0" para señalizar el final del código de la base de tiempos de módulo. Tanto el registro de la base de tiempo de B-VOP como el registro de la base de tiempo local no se cambian después del procesamiento del B-VOP. El procesamiento procede a continuación al codificador del incremento de la base de tiempo de VOP, etapa 44, donde se codifica el resto del código de tiempo de presentación del P-VOP.
El registro de la base de tiempo local se resetea en el siguiente I-VOP que marca el comienzo del siguiente grupo de VOP.
Se describe la implementación del Decodificador del Flujo de bits.
La Figura 12 ilustra el diagrama de bloques para la implementación del descodificador para la base de tiempos de módulo y el incremento de tiempo de VOP para recuperar el sello del tiempo de presentación. Como en la implementación del codificador se usa el ejemplo de la Figura 3B. El orden de descodificación es el mismo que el orden de codificación donde se descodifica el I-VOP seguido por el P-VOP antes del B-VOP. Esto se explica en los párrafos siguientes.
El procesamiento comienza en el iniciador, etapa 51, donde el registro de la base de tiempo local se fija al valor del código de tiempo descodificado del flujo de bits. El procesamiento procede a continuación al descodificador de la base de tiempos de módulo, etapa 52, donde se descodifica el incremento de la base de tiempos de módulo. El número total del incremento de la base de tiempos de módulo descodificado está dado por el número de "1" descodificados antes del símbolo "0". A continuación, el incremento de la base de tiempo de VOP se descodifica en el incremento de la base de tiempo de VOP, etapa 53. En el calculador de la base de tiempo, etapa 54, se recupera el tiempo de presentación del I-VOP. El valor total del incremento de la base de tiempos de módulo descodificado se suma al registro de la base de tiempo local. El incremento de la base de tiempo de VOP se añade a continuación al registro de la base de tiempo local para obtener el tiempo de presentación del I-VOP. El proceso va a continuación al descodificador del objeto de vídeo donde se descodifica el objeto de vídeo.
Para el P-VOP, el proceso se repita en el descodificador de la base de tiempos de módulo, etapa 52, donde se descodifica el incremento de la base de tiempos de módulo. El número total del incremento de la base de tiempos de módulo descodificado está dado por el número de "1" descodificados antes del símbolo "0". A continuación, se descodifica el incremento de la base de tiempo de VOP en el incremento de la base de tiempo de VOP, etapa 53. En el calculador de la base de tiempo, etapa 54, se recupera el tiempo de presentación del P-VOP. El registro de la base de tiempos de módulo de B-VOP se fija al valor en el registro de la base de tiempo local. El valor total del incremento del incremento de la base de tiempos de módulo descodificada se añade al registro de la base de tiempo local. El incremento de la base de tiempo de VOP se añade a continuación al registro de la base de tiempo local para obtener el tiempo de presentación del P-VOP. El proceso va a continuación al descodificador del objeto de vídeo donde se descodifica el objeto de vídeo.
Para el B-VOP, el proceso se repita en el descodificador de la base de tiempos de módulo, etapa 52, donde se descodifica el incremento de la base de tiempos de módulo. El número total del incremento de la base de tiempos de módulo descodificado está dado por el número de "1" descodificados antes del símbolo "0". A continuación se descodifica el incremento de la base de tiempo de VOP en el incremento de la base de tiempo de VOP, etapa 53. En el calculador de la base de tiempo, etapa 54, se recupera el tiempo de presentación del B-VOP. El valor total del incremento de la base de tiempos de módulo descodificado y el incremento de la base de tiempo de VOP se añaden al registro de la base de tiempo de B-VOP para obtener el tiempo de presentación del B-VOP. Tanto el registro de la base de tiempo de B-VOP como el registro de la base de tiempo local permanecen sin cambiar. El proceso va a continuación al descodificador del objeto de vídeo donde se descodifica el objeto de vídeo.
El registro de la base de tiempo local se resetea en el siguiente I-VOP que marca el comienzo del siguiente grupo de VOP.
Se describe un ejemplo específico.
Haciendo referencia a la Figura 13, se muestra un ejemplo de las etapas para codificar los datos comprimidos dentro de los datos del flujo de bits. Como se muestra en la fila superior de la Figura 13, los datos de vídeo comprimido de los VOP están alineados en el orden de presentación en pantalla, I1, B1, B2, P1, B3, P3 con una cabecera de GOP (grupo de cuadros) insertada al comienzo del grupo de VOP. Mientras se está presentando en pantalla, el tiempo local en el cual se efectúa la presentación en pantalla, se mide para cada VOP usando el reloj de tiempo local. Por ejemplo, el primer VOP (I1-VOP) se presenta en pantalla en 1 hora 23 minutos 45 segundos 350 milisegundos (1: 23: 45: 350) contados desde el principio de los datos de vídeo; el segundo VOP (B1-VOP) se presenta en 1: 23: 45: 750; el tercer VOP (B2-VOP) se presenta en 1: 23: 45: 150; y así sucesivamente.
Para codificar los VOP, es necesario insertar los datos del tiempo de presentación en pantalla para cada VOP. La inserción de los datos de tiempo totales incluyendo hora, minutos, segundos y milisegundos ocupa un cierto espacio de datos en la porción de la cabecera de cada VOP. El propósito de la presente invención es reducir tal espacio de datos y simplificar los datos de tiempo a insertar en cada VOP.
Cada uno de los VOP mostrados en la primera fila en la Figura 13 se almacena con los datos del tiempo de presentación en pantalla de los milisegundos del área del incremento del tiempo de VOP. Cada uno de los VOP en la primera fila se almacena también temporalmente con los datos del tiempo de presentación en pantalla de hora, minuto y segundo. La cabecera del GOP se almacena con los datos de presentación en pantalla de hora, minuto y segundo para el primer VOP (I1-VOP).
Como se muestra en la segunda fila en la Figura 13, los VOP están retardados un tiempo predeterminado usando un almacenamiento (no mostrado). Cuando se producen los VOP desde el almacenamiento, el orden de los VOP se cambia de acuerdo con la norma de predicción bi-direccional de modo que el VOP bi-direccional, es decir, el B-VOP se posicionará detrás del P-VOP al cual se referencia el B-VOP. De este modo, los VOP están alineados en el orden de I1, P1, B1, B2, P2, B3.
Como se muestra en la tercera fila de la Figura 13, en el tiempo T1, es decir, cuando se está codificando la cabecera GOP, el registro de base de tiempo local almacena los datos de hora, minuto, segundo como se almacenan en la cabecera del GOP. En el ejemplo mostrado en la Figura 13, el registro de la base de tiempo local almacena 1: 23: 45. A continuación, antes del tiempo T2, se obtienen los datos del flujo de bits para la cabecera GOP con los datos de hora, minuto, segundo insertándose tal como se muestra en la fila inferior en la Figura 13.
A continuación, en el tiempo T2, se toma el primer VOP (I1-VOP). El comparador de códigos de tiempo compara el tiempo (hora, minuto, segundo) almacenado en el registro de la base de tiempo local con el tiempo (hora, minuto, segundo) almacenado temporalmente en el primer VOP (I1-VOP). De acuerdo con el ejemplo, el resultado de la comparación es el mismo. De este modo, el comparador produce un "0" que indica que el primer VOP (I1-VOP) ocurre en el mismo segundo que el segundo que se está manteniendo en el registro de la base de tiempo local. El resultado "0" como se produce desde el comparador se añade al primer VOP (I1-VOP) en el área de la base de tiempos de módulo. Al mismo tiempo, se eliminan los datos de hora, minuto y segundo almacenados temporalmente en el primer VOP (I1-VOP). De este modo, antes del tiempo T3, los datos del flujo de datos para el primer VOP (I1-VOP) se obtienen con un "0" insertado en el área de la base de tiempos de módulo y "350" insertado en el área del incremento de tiempo de VOP.
A continuación, en el tiempo T3, se toma el segundo VOP (P1-VOP). El comparador de códigos de tiempo compara el tiempo (hora, minuto, segundo) almacenado en el registro de la base de tiempo local con el tiempo (hora, minuto, segundo) almacenado temporalmente en el segundo VOP (P1-VOP). De acuerdo con el ejemplo, el resultado de la comparación es tal que el tiempo almacenado temporalmente en el segundo VOP (P1-VOP) es un segundo mayor que el tiempo almacenado en el registro de la base de tiempo local. De este modo, el comparador produce "10" indicando que el segundo VOP (P1-VOP) ocurre en el siguiente segundo al segundo que se está manteniendo en el registro de la base de tiempo local. Si el segundo VOP (P1-VOP) ocurre en el siguiente del siguiente segundo al segundo que se está manteniendo en el registro de la base de tiempo local, el comparador producirá "110".
Después del tiempo T3, el registro de la base de tiempo de B-VOP se fija al tiempo igual al tiempo portado en el registro de la base de tiempo local inmediatamente antes del tiempo T3. En el ejemplo, el registro de la base de tiempo B-VOP se fija a 1: 23: 45. También después del tiempo T3, el registro de la base de tiempo local se incrementa al tiempo igual al tiempo almacenado temporalmente en el segundo VOP (P1-VOP). De este modo, en el ejemplo, el registro de la base de tiempo local se incrementa a 1: 23: 46.
El resultado "10" como se produce desde el comparador se añade al segundo VOP (P1-VOP) en el área de la base de tiempos de módulo. Al mismo tiempo, se eliminan los datos de hora, minuto y segundo almacenados temporalmente en el segundo VOP (P1-VOP). De este modo, antes del tiempo T4, los datos del flujo de bits para el segundo VOP (P1-VOP) se obtienen con "10" insertados en el área de la base de tiempos de módulo y "550" insertado en el área de incremento de tiempo de VOP.
A continuación, en el tiempo T4, se toma el tercer VOP (B1-VOP). El comparador de códigos de tiempo compara el tiempo (hora, minuto, segundo) almacenado en el registro de la base de tiempo B-VOP con el tiempo (hora, minuto, segundo) almacenado temporalmente en el tercer VOP (B1-VOP). De acuerdo con el ejemplo, el resultado de la comparación es el mismo. De este modo, el comparador produce un "0" indicando que el tercer VOP (B1-VOP) ocurre en el mismo segundo que el segundo que se está manteniendo en el registro de la base de tiempo de B-VOP. El resultado "0" como se produce desde el comparador se añade al tercer VOP (B1-VOP) en el área de la base de tiempos de módulo. Al mismo tiempo, se eliminan los datos de hora, minuto y segundo almacenados temporalmente en el primer VOP (I1-VOP). De este modo, antes del tiempo T5, los datos del flujo de bits para el tercer VOP (B1-VOP) se obtienen con un "0" insertado en el área de la base de tiempos de módulo y "750" insertado en el área del incremento de tiempo de VOP.
A continuación, en el tiempo T5, se toma el cuarto VOP (B2-VOP). El comparador de códigos de tiempo compara el tiempo (hora, minuto, segundo) almacenado en el registro de la base de tiempo de B-VOP con el tiempo (hora, minuto, segundo) almacenado temporalmente en el cuarto VOP (B2-VOP). De acuerdo con el ejemplo, el resultado de la comparación es tal que el tiempo almacenado temporalmente en el cuarto VOP (B2-VOP) es un segundo mayor que el tiempo almacenado en el registro de la base de tiempo de B-VOP. Entonces, el comparador produce "10" indicando que el cuarto VOP (B2-VOP) ocurre en el siguiente segundo al segundo que se mantiene en el registro de la base de tiempo de B-VOP.
Durante el procesamiento del VOP del tipo B, ni el registro de la base de tiempo local ni el registro de la base de tiempo B-VOP se incrementan independientemente del resultado que produzca el comparador.
El resultado "10" como se produce desde el comparador se añade al cuarto VOP (B2-VOP) en el área de la base de tiempos de módulo. Al mismo tiempo, se eliminan los datos de hora, minuto y segundo almacenados temporalmente en el cuarto VOP (B2-VOP). De este modo, antes del tiempo T6, los datos del flujo de bits para el cuarto VOP (B2-VOP) se obtienen con "10" insertado en el área de la base de tiempos de módulo y "150" insertado en el área del incremento de tiempo de VOP.
A continuación, en el tiempo T6, se toma el quinto VOP (P2-VOP). El comparador de códigos de tiempo compara el tiempo (hora, minuto, segundo) almacenado en el registro de la base de tiempo local con el tiempo (hora, minuto, segundo) almacenado en el quinto VOP (P2-VOP). De acuerdo con el ejemplo, el resultado de la comparación es tal que el tiempo almacenado temporalmente en el cuarto VOP (P2-VOP) es un segundo mayor que el tiempo almacenado en el registro de la base de tiempo local. Entonces, el comparador produce "10" indicando que el quinto VOP (P2-VOP) ocurre en el siguiente segundo al segundo que se está manteniendo en el registro de la base de tiempo local.
Después del tiempo T6, el registro de la base de tiempo de B-VOP se incrementa al tiempo igual que el tiempo portado por el registro de la base de tiempo local inmediatamente antes del tiempo T6. En el ejemplo, el registro de la base de tiempo de B-VOP se incrementa a 1: 23: 46. También después del tiempo T6, el registro de la base de tiempo local se incrementa al tiempo igual que el tiempo almacenado temporalmente en el quinto VOP (P2-VOP). De este modo, en el ejemplo, el registro de la base de tiempo local se incremente a 1: 23: 47.
El resultado "10" como se produce desde el comparador se añade al quinto VOP (P2-VOP) en el área de la base de tiempos de módulo. Al mismo tiempo, se eliminan los datos de hora, minuto y segundo almacenados temporalmente en el quinto VOP (P2-VOP). De este modo antes del tiempo T4, los datos del flujo de bits para el quinto VOP (P2-VOP) se obtienen con "10" insertado en el área de la base de tiempos de módulo y "350" insertado en el área del incremento de tiempo de VOP.
A partir de entonces, se realiza una operación similar para formar los datos del flujo de bits para los siguientes VOP.
Para descodificar los datos del flujo de bits, se realiza una operación opuesta a la realizada anteriormente. En primer lugar, se lee el tiempo (hora, minuto, segundo) transportado en la cabecera del GOP. El tiempo leído se almacena en el registro de la base de tiempo local.
Cuando se reciben VOP del tipo I o del tipo P, es decir un VOP distinto del tipo B, se leen los datos almacenados en el área de la base de tiempos de módulo. Si el dato leído es "0", es decir, sin nada delante del 0, no se produce ningún cambio en el registro de la base del tiempo local, y tampoco se produce ningún cambio en el registro de la base de tiempo de B-VOP. Si el dato leído es "10", el tiempo almacenado en el registro de la base de tiempo local se incrementa en un segundo. Si el dato leído es "110" el tiempo almacenado en el registro de la base de tiempo local se incrementa en dos segundos. De este modo, se determina el número de segundos que se incrementará por el número de unos insertados delante del 0. También, cuando los datos leídos son "10" o "110", el registro de la base de tiempo de B-VOP, que es una memoria, copia el tiempo que ha transportado el registro de la base de tiempo local justo antes del incremento más reciente. A continuación el tiempo (hora, minuto, segundo) transportado por el registro de la base de tiempo local se combina con el tiempo (milisegundos) portado por el área de incremento de tiempo de VOP para establecer un tiempo específico en el cual ocurrirá el VOP de tipo I o de tipo P.
Cuando se recibe una VOP del tipo B, se leen los datos almacenados en el área de la base de tiempos de módulo. Si el dato leído es "0", el tiempo transportado en el registro de la base de tiempo de B-VOP (hora, minuto, segundo) se combina con el tiempo (milisegundos) portado por área de incremento de tiempo de VOP para establecer un tiempo específico en el que ocurrirá el VOP de tipo B. Si el dato leído es "10", al tiempo portado en el registro de la base de tiempo B-VOP (hora, minuto, segundo) se añade un segundo, y a continuación el tiempo resultante de la suma se combina con el tiempo (milisegundos) portado en el área de incremento de tiempo de VOP para establecer un tiempo específico en el que ocurrirá el VOP tipo B. Si el dato leído es "110", al tiempo (hora, minuto, segundo) portado en el registro de la base de tiempo B-VOP se añaden dos segundos, y a continuación el tiempo resultante de la suma se combina con el tiempo (milisegundos) portado en el área de incremento de tiempo de VOP para establecer un tiempo específico en el que ocurrirá el VOP tipo B.
El efecto de esta invención es posibilitar la multiplexación de planos de objetos de vídeo codificados por diferentes codificadores. También facilitará la manipulación del flujo de bits basado en objetos de datos comprimidos que vienen de diferentes fuentes para crear nuevos flujos de bits. Proporciona un método de sincronización de los objetos audiovisuales.
La invención que se está describiendo de este modo, es obvio que puede variarse de muchos modos. Tales variaciones no deben considerarse como una desviación del espíritu y el alcance de la invención, y tales modificaciones que serían obvias para un especialista en la técnica se pretende que estén incluidas dentro del alcance de la siguiente reivindicación.

Claims (2)

1. Un método para codificar una base de tiempos local de un plano de objetos de vídeo (VOP) que comprende:
codificar la base de tiempos local del plano de objetos de vídeo (VOP) en dos partes, siendo la primera parte una base de tiempos de módulo que indica el tiempo en unidades de resolución de un segundo que ha transcurrido desde un tiempo de referencia marcado por la base de tiempos de módulo de un plano de objetos de vídeo anterior (VOP) que está situado antes del plano de objetos de vídeo (VOP) y siendo la segunda parte un incremento de la base de tiempo que representa el incremento de tiempo desde el tiempo de referencia marcado por la base de tiempos de módulo del plano de objetos de vídeo (VOP); e
insertar la base de tiempo local codificada en un flujo de bits del plano de objetos de vídeo (VOP).
2. Un método para codificar una base de tiempos local de un plano de objetos de vídeo codificado de forma bi-direccional predictiva (B-VOP) que comprende:
codificar la base de tiempo local del plano de objetos de vídeo codificados de forma bi-direccional predictiva (B-VOP) en dos partes, siendo la primera parte una base de tiempos de módulo que indica en unidades de resolución de un segundo el tiempo transcurrido desde el tiempo de referencia marcado por la base de tiempos de módulo de un plano de objetos de vídeo anterior (VOP) que está situado antes del plano de objetos de vídeo con codificación predictiva (B-VOP) y siendo la segunda parte un incremento de la base de tiempo que representa el incremento de tiempo desde el tiempo de referencia marcado por la base de tiempo de módulo del plano de objetos de vídeo codificados de forma bi-direccional predictiva (B-VOP); e
insertar la base de tiempo local codificada en el flujo de bits del plano de objetos de vídeo codificados de forma bi-direccional predictiva (B-VOP);
en el que el plano de objetos de vídeo anterior (VOP) es un plano de objetos de vídeo intracodificado (I-VOP) o un plano de objetos de vídeo con codificación predictiva (P-VOP) que se posiciona inmediatamente antes del plano de objetos codificados de forma bi-direccional predictiva (B-VOP).
ES03013104T 1996-07-05 1997-07-03 Metodo para sellar el tiempo de presentacion en pantalla y sincronizacion de planos de objetos de video multiples. Expired - Lifetime ES2291563T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP17643096 1996-07-05
JP8-176430 1996-07-05

Publications (1)

Publication Number Publication Date
ES2291563T3 true ES2291563T3 (es) 2008-03-01

Family

ID=16013573

Family Applications (5)

Application Number Title Priority Date Filing Date
ES97929521T Expired - Lifetime ES2158570T3 (es) 1996-07-05 1997-07-03 Un metodo para la visualizacion de las franjas horarias y la sincronizacion de multiples planos de los objetos de video.
ES01104247T Expired - Lifetime ES2169019T3 (es) 1996-07-05 1997-07-03 Sincronizacion de planos multiples de objetos video.
ES00122580T Expired - Lifetime ES2166746T3 (es) 1996-07-05 1997-07-03 Un metodo para la visualizacion de las franjas horarias y la sincronizacion de multiples planos de los objetos de video.
ES01104219T Expired - Lifetime ES2194801T3 (es) 1996-07-05 1997-07-03 Procedimiento de presentacion de la fecha y sincronizacion de multiples planos objeto de videos.
ES03013104T Expired - Lifetime ES2291563T3 (es) 1996-07-05 1997-07-03 Metodo para sellar el tiempo de presentacion en pantalla y sincronizacion de planos de objetos de video multiples.

Family Applications Before (4)

Application Number Title Priority Date Filing Date
ES97929521T Expired - Lifetime ES2158570T3 (es) 1996-07-05 1997-07-03 Un metodo para la visualizacion de las franjas horarias y la sincronizacion de multiples planos de los objetos de video.
ES01104247T Expired - Lifetime ES2169019T3 (es) 1996-07-05 1997-07-03 Sincronizacion de planos multiples de objetos video.
ES00122580T Expired - Lifetime ES2166746T3 (es) 1996-07-05 1997-07-03 Un metodo para la visualizacion de las franjas horarias y la sincronizacion de multiples planos de los objetos de video.
ES01104219T Expired - Lifetime ES2194801T3 (es) 1996-07-05 1997-07-03 Procedimiento de presentacion de la fecha y sincronizacion de multiples planos objeto de videos.

Country Status (11)

Country Link
US (6) USRE39344E1 (es)
EP (6) EP1073277A1 (es)
JP (1) JP3186775B2 (es)
KR (1) KR100274434B1 (es)
CN (5) CN1107418C (es)
DE (5) DE69719828T2 (es)
ES (5) ES2158570T3 (es)
HK (4) HK1016390A1 (es)
SG (1) SG90765A1 (es)
TW (1) TW359918B (es)
WO (1) WO1998002003A1 (es)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100417932B1 (ko) * 1997-04-01 2004-02-11 소니 가부시끼 가이샤 영상 인코더, 영상 부호화 방법, 영상 디코더 및 영상 복호화 방법
WO1999021367A1 (fr) * 1997-10-20 1999-04-29 Mitsubishi Denki Kabushiki Kaisha Codeur et decodeur d'image
DE19746611A1 (de) * 1997-10-22 1999-04-29 Bosch Gmbh Robert Verfahren zur Verbesserung der Konturcodierung von Bildsequenzen sowie Anwendung
JP2000013790A (ja) * 1998-06-19 2000-01-14 Sony Corp 画像符号化装置および画像符号化方法、画像復号装置および画像復号方法、並びに提供媒体
JP4109772B2 (ja) * 1998-12-03 2008-07-02 キヤノン株式会社 データ処理方法及びその装置
ID24586A (id) * 1998-12-21 2000-07-27 Matsushita Electric Ind Co Ltd Perangkat dan metode penyelarasan waktu dengan menggunakan modul basis waktu dan resolusi peningkatan waktu
US6299998B1 (en) * 1999-03-15 2001-10-09 Reveo, Inc. Movable anode fuel cell battery
CN100348044C (zh) * 1999-03-31 2007-11-07 松下电器产业株式会社 不同帧速率多流混合视频流的无缝译码装置
US7624337B2 (en) 2000-07-24 2009-11-24 Vmark, Inc. System and method for indexing, searching, identifying, and editing portions of electronic multimedia files
KR100884134B1 (ko) * 2000-08-15 2009-02-17 마이크로소프트 코포레이션 미디어 샘플을 타임코딩하기 위한 방법
JP2004507172A (ja) * 2000-08-16 2004-03-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マルチメディアアプリケーションを再生する方法
WO2002015591A1 (en) * 2000-08-16 2002-02-21 Koninklijke Philips Electronics N.V. Method of playing multimedia data
JP4208398B2 (ja) * 2000-10-05 2009-01-14 株式会社東芝 動画像復号再生装置、動画像復号再生方法及びマルチメディア情報受信装置
US20020089602A1 (en) 2000-10-18 2002-07-11 Sullivan Gary J. Compressed timing indicators for media samples
JP2004532540A (ja) * 2001-03-05 2004-10-21 インタービデオインコーポレイテッド 誤り耐性のある符号化のためのシステム及び方法
US6870887B2 (en) * 2001-04-09 2005-03-22 International Business Machines Corporation Method and system for synchronization between different content encoding formats
US7280738B2 (en) * 2001-04-09 2007-10-09 International Business Machines Corporation Method and system for specifying a selection of content segments stored in different formats
US20020145622A1 (en) * 2001-04-09 2002-10-10 International Business Machines Corporation Proxy content editing system
US6662176B2 (en) * 2001-05-07 2003-12-09 Hewlett-Packard Development Company, L.P. Database indexing and rolling storage method for time-stamped normalized event data
US20050075929A1 (en) * 2002-10-17 2005-04-07 Wolinsky Robert I. System and method for partitioning airtime for distribution and display of content
US7614065B2 (en) * 2001-12-17 2009-11-03 Automated Media Services, Inc. System and method for verifying content displayed on an electronic visual display
US20030229549A1 (en) 2001-10-17 2003-12-11 Automated Media Services, Inc. System and method for providing for out-of-home advertising utilizing a satellite network
EP1328127A1 (de) * 2002-01-09 2003-07-16 Beta Research GmbH Simultaneinspeisung und Synchronisation von Audio und Videodaten
US7149247B2 (en) 2002-01-22 2006-12-12 Microsoft Corporation Methods and systems for encoding and decoding video data to enable random access and splicing
CN1618235A (zh) * 2002-01-22 2005-05-18 微软公司 用于防止起始码模仿和数据填充的方法和系统
WO2003090470A2 (en) * 2002-04-19 2003-10-30 Microsoft Corporation Methods and systems for preventing start code emulation at non-byte aligned and/or bit-shifted locations
US7088776B2 (en) * 2002-07-15 2006-08-08 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding
AU2008201106C1 (en) * 2002-07-15 2011-06-09 Apple Inc. Method and bitstream for variable accuracy inter-picture timing specification for digital video encoding
AU2013204760B2 (en) * 2002-07-15 2015-12-03 Apple Inc Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding
US6728315B2 (en) 2002-07-24 2004-04-27 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US8254461B2 (en) 2002-07-24 2012-08-28 Apple Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US7613630B2 (en) * 2002-10-17 2009-11-03 Automated Media Services, Inc. System and method for editing existing footage to generate and distribute advertising content to retail locations
EP1487214A1 (en) * 2003-06-11 2004-12-15 Digital Multimedia Technologies S.P.A. A method and a system for synchronizing MHP applications in a data packet stream
US20050002459A1 (en) * 2003-07-04 2005-01-06 Protocom Technology Corporation Method for determining display order of VOPs in decoder end of MPEG image system and device for executing the same
US7839930B2 (en) * 2003-11-13 2010-11-23 Microsoft Corporation Signaling valid entry points in a video stream
US7852919B2 (en) * 2003-09-07 2010-12-14 Microsoft Corporation Field start code for entry point frames with predicted first field
US7609762B2 (en) 2003-09-07 2009-10-27 Microsoft Corporation Signaling for entry point frames with predicted first field
US8213779B2 (en) * 2003-09-07 2012-07-03 Microsoft Corporation Trick mode elementary stream and receiver system
US7924921B2 (en) * 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
CN100551038C (zh) * 2004-04-15 2009-10-14 松下电器产业株式会社 内容生成装置以及方法
DE602004009560T2 (de) * 2004-07-22 2008-08-21 Harman Becker Automotive Systems Gmbh Datenübertragungssynchronisationsschema
US8228956B2 (en) * 2005-04-19 2012-07-24 Alcatel Lucent Time stamp offset in data packet bundling
US8315308B2 (en) * 2006-01-11 2012-11-20 Qualcomm Incorporated Video coding with fine granularity spatial scalability
US20090129740A1 (en) * 2006-03-28 2009-05-21 O'brien Christopher J System for individual and group editing of networked time-based media
CA2647617A1 (en) * 2006-03-28 2007-11-08 Motionbox, Inc. System and method for enabling social browsing of networked time-based media
US8443276B2 (en) * 2006-03-28 2013-05-14 Hewlett-Packard Development Company, L.P. System and data model for shared viewing and editing of time-based media
US9812169B2 (en) * 2006-03-28 2017-11-07 Hewlett-Packard Development Company, L.P. Operational system and architectural model for improved manipulation of video and time media data from networked time-based media
US20100169786A1 (en) * 2006-03-29 2010-07-01 O'brien Christopher J system, method, and apparatus for visual browsing, deep tagging, and synchronized commenting
EP1855402A1 (en) * 2006-05-11 2007-11-14 Koninklijke Philips Electronics N.V. Transmission, reception and synchronisation of two data streams
JP4607856B2 (ja) * 2006-12-26 2011-01-05 富士通株式会社 符号化復号システム及び符号化復号方法
US7765315B2 (en) 2007-01-08 2010-07-27 Apple Inc. Time synchronization of multiple time-based data streams with independent clocks
WO2008108694A1 (en) * 2007-03-08 2008-09-12 Telefonaktiebolaget Lm Ericsson (Publ) Seeking and synchronization using global scene time
US20100274820A1 (en) * 2007-03-28 2010-10-28 O'brien Christopher J System and method for autogeneration of long term media data from networked time-based media
KR101372418B1 (ko) * 2007-10-19 2014-03-12 (주)휴맥스 비트스트림 디코딩 장치 및 방법
CA2714566A1 (en) * 2008-02-08 2009-08-13 Automated Media Services, Inc. System and method for creating an in-store media network using traditional media metrics description of
WO2010062596A1 (en) * 2008-10-28 2010-06-03 Inlet Technologies Stream synchronization for live video encoding
US20100225811A1 (en) * 2009-03-05 2010-09-09 Nokia Corporation Synchronization of Content from Multiple Content Sources
JP6605789B2 (ja) * 2013-06-18 2019-11-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 送信方法、受信方法、送信装置、および、受信装置
US10779057B2 (en) * 2015-06-08 2020-09-15 Qualcomm Incorporated Broadcast content redistribution and ad insertion
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
US10694227B2 (en) * 2017-01-13 2020-06-23 Panasonic Intellectual Property Management Co., Ltd. Video transmission system and video transmission method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3364281B2 (ja) * 1993-07-16 2003-01-08 パイオニア株式会社 時分割ビデオ及びオーディオ信号の同期方式
US5430485A (en) * 1993-09-30 1995-07-04 Thomson Consumer Electronics, Inc. Audio/video synchronization in a digital transmission system
US5467139A (en) * 1993-09-30 1995-11-14 Thomson Consumer Electronics, Inc. Muting apparatus for a compressed audio/video signal receiver
GB9424429D0 (en) * 1994-12-02 1995-01-18 Philips Electronics Uk Ltd Audio/video timing discrepancy management
US5953073A (en) * 1996-07-29 1999-09-14 International Business Machines Corp. Method for relating indexing information associated with at least two indexing schemes to facilitate the play-back of user-specified digital video data and a video client incorporating the same
US5784422A (en) 1996-08-05 1998-07-21 Transcrypt International, Inc. Apparatus and method for accurate synchronization with inbound data packets at relatively low sampling rates

Also Published As

Publication number Publication date
EP1073278B1 (en) 2001-10-31
ES2169019T3 (es) 2002-07-01
USRE39344E1 (en) 2006-10-17
DE69704481D1 (de) 2001-05-10
ES2194801T3 (es) 2003-12-01
EP1073277A1 (en) 2001-01-31
HK1060463A1 (en) 2004-08-06
EP0864228B1 (en) 2001-04-04
HK1016392A1 (en) 1999-10-29
CN1347250A (zh) 2002-05-01
DE69719828D1 (de) 2003-04-17
ES2166746T3 (es) 2002-05-01
CN1364032A (zh) 2002-08-14
KR19990044406A (ko) 1999-06-25
USRE39115E1 (en) 2006-06-06
CN1292598C (zh) 2006-12-27
CN1197579A (zh) 1998-10-28
HK1075345A1 (en) 2005-12-09
DE69707720D1 (de) 2001-11-29
DE69707929D1 (de) 2001-12-06
US6075576A (en) 2000-06-13
CN1184821C (zh) 2005-01-12
SG90765A1 (en) 2002-08-20
KR100274434B1 (ko) 2000-12-15
EP1343330B1 (en) 2007-08-15
JPH11513222A (ja) 1999-11-09
HK1016390A1 (en) 1999-10-29
EP1111934A1 (en) 2001-06-27
CN1347251A (zh) 2002-05-01
DE69738035T2 (de) 2008-04-30
WO1998002003A1 (en) 1998-01-15
TW359918B (en) 1999-06-01
DE69719828T2 (de) 2003-12-24
DE69738035D1 (de) 2007-09-27
ES2158570T3 (es) 2001-09-01
EP0864228A1 (en) 1998-09-16
EP1343330A2 (en) 2003-09-10
EP1073278A1 (en) 2001-01-31
CN1620149A (zh) 2005-05-25
EP1111933A1 (en) 2001-06-27
DE69707720T2 (de) 2002-08-08
CN1152579C (zh) 2004-06-02
EP1111934B1 (en) 2001-10-24
USRE38875E1 (en) 2005-11-15
EP1343330A3 (en) 2006-05-10
DE69704481T2 (de) 2001-10-31
CN1148971C (zh) 2004-05-05
USRE40664E1 (en) 2009-03-17
DE69707929T2 (de) 2002-06-20
USRE38923E1 (en) 2005-12-20
EP1111933B1 (en) 2003-03-12
CN1107418C (zh) 2003-04-30
JP3186775B2 (ja) 2001-07-11

Similar Documents

Publication Publication Date Title
ES2291563T3 (es) Metodo para sellar el tiempo de presentacion en pantalla y sincronizacion de planos de objetos de video multiples.
ES2259117T3 (es) Metodo y sistema para descodificar.
ES2323358T3 (es) Codificador de imagenes, metodo de codificacion de imagenes, descodificador de imagenes, metodo de descodificacion de imagenes, y medio de distribucion.
ES2266396T3 (es) Terminal audio - visual basado en objetos y estructura de flujo de bits correspondiente.
ES2226226T3 (es) Disposicion de sincronizacion para una señal de video comprimida.
ES2201839T3 (es) Codificacion de informacion auxiliar con informacion de audio condificada a base de tramas.
US20050180511A1 (en) H. 264 codec IC, DVD playback apparatus, H. 264 codec method
ES2582664T3 (es) Decodificador de datos de vídeo y procedimiento de descodificación de datos de vídeo con sincronización de la presentación de los subtítulos
SE8007125L (sv) Kretsarrangemang som formar identifiera ett ramlasningsord, serskilt for mottagningssektionen i en digital signalmultiplexer
ES2376650T3 (es) Método de resincronización para la decodificación de video.
KR980012962A (ko) 화면 합성 장치
ES2216637T3 (es) Evitar diseños de datos prohibidos en audio o video.
US4888768A (en) Frame format for video codec
JP3174042B2 (ja) B−vopの時刻復号化方法
KR100388469B1 (ko) 디코더에서의 표시타임스탬프 제어 방법
JP3769457B2 (ja) ローカル時刻符号化方法
JP3197264B6 (ja) Vopの時刻復号化方法
JP3174042B6 (ja) B−vopの時刻復号化方法
KR970057891A (ko) 운송비트열 패킷 다중화 장치
JP3401505B2 (ja) Vopの時刻符号化方法
JP2001218212A (ja) Vopの時刻復号化方法
JP3421024B2 (ja) Vopの時刻復号化方法
KR970060937A (ko) 엠펙ⅰ(mpegⅰ)의 부호/복호화 장치 및 방법
MXPA00004884A (es) Aparato y metodo para la impresion de la fecha y hora, que usa una base de tiempo de modulo y la resolucion de encrementos del tiempo