ES2323358T3 - Codificador de imagenes, metodo de codificacion de imagenes, descodificador de imagenes, metodo de descodificacion de imagenes, y medio de distribucion. - Google Patents

Codificador de imagenes, metodo de codificacion de imagenes, descodificador de imagenes, metodo de descodificacion de imagenes, y medio de distribucion. Download PDF

Info

Publication number
ES2323358T3
ES2323358T3 ES01115561T ES01115561T ES2323358T3 ES 2323358 T3 ES2323358 T3 ES 2323358T3 ES 01115561 T ES01115561 T ES 01115561T ES 01115561 T ES01115561 T ES 01115561T ES 2323358 T3 ES2323358 T3 ES 2323358T3
Authority
ES
Spain
Prior art keywords
time
vop
image
base
layer
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
ES01115561T
Other languages
English (en)
Inventor
Yoichi Yagasaki
Teruhiko Suzuki
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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Application granted granted Critical
Publication of ES2323358T3 publication Critical patent/ES2323358T3/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
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • 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
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • 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
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/93Regeneration of the television signal or of selected parts thereof
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Numerical Control (AREA)

Abstract

Un método de codificación de imágenes para producir una cadena de bytes codificados al codificar una imagen formada por una secuencia de objetos, dicho método comprende las etapas de: codificar un objeto que sea un plano de objetos intra-vídeo (I-VOP) por intracodificación; codificar un objeto que sea una VOP de predicción (P-VOP) por, intracodificación o por codificación de predicción hacia delante, cualquiera de las dos; codificar un objeto que sea una VOP de predicción bidireccional (B-VOP) por intracodificación, codificación de predicción hacia delante, codificación de predicción hacia atrás o codificación de predicción bidireccional; agrupar dichas VOP en uno o más grupos (GOV), teniendo asociado cada grupo un orden de presentación, de acuerdo con el cual se presenta una pluralidad de VOP del correspondiente grupo al reproducir la imagen y añadir un código de tiempo de grupo que representa un tiempo absoluto correspondiente a un punto de sincronismo asociado con un primer objeto en el orden de presentación del grupo correspondiente, comprendiendo el código de tiempo del grupo un valor de horas_código_tiempo que representa una unidad horaria de tiempo, un valor de minutos_código_tiempo que representa una unidad en minutos de tiempo, y un valor de segundos_código_tiempo que representa una unidad en segundos de tiempo del punto de sincronismo; generar (S3-S7; S43-S47) información de tiempo con precisión de segundos (tiempo_base_módulo) indicativo de un valor del tiempo en unidades de segundos como información que representa una hora de presentación de cada VOP en el grupo; generar (S8; S48) una información detallada del tiempo (incremento_tiempo_VOP) indicativo de un valor del tiempo en unidades de precisión más precisas que un segundo como información que representa una hora de presentación de cada VOP en el grupo; y añadir (36) dicha información de tiempo con precisión de segundos (tiempo_base_módulo) y dicha información detallada del tiempo (incremento_tiempo_VOP) a dicho código de tiempo de grupo como información indicativa de la hora de presentación de dichos VOPs.

Description

Codificador de imágenes, método de codificación de imágenes, descodificador de imágenes, método de descodificación de imágenes, y medio de distribución.
Campo técnico
La presente invención está relacionada con un codificador de imágenes, un método de codificación de imágenes, un descodificador de imágenes, un método de descodificación de imágenes y con medios de distribución. Más en particular, la invención está relacionada con un codificador de imágenes, un método de codificación de imágenes, un descodificador de imágenes, un método de descodificación de imágenes y medios de distribución adecuados para su uso, por ejemplo, en el caso en que se graben datos de imágenes dinámicas en medios de almacenamiento, tales como un disco magneto-óptico, una cinta magnética, etc., y también se regeneren y se presenten los datos grabados en una pantalla, o en el caso en que los datos de imágenes dinámicas se transmitan desde un lado transmisor a un lado receptor, a través de un camino de transmisión, y, en el lado receptor, los datos de imágenes dinámicas recibidos se presenten, se editen y se graben, como en los sistemas de videoconferencia, sistemas videotelefónicos, equipos de radiodifusión, y sistemas multimedia de recuperación de base de datos.
Técnica anterior
Por ejemplo, como en los sistemas de videoconferencia y en los sistemas videofónicos, en sistemas que transmiten datos de imágenes dinámicas a un lugar remoto, los datos de imágenes son comprimidos y codificados aprovechando la ventaja de la correlación entre líneas y la correlación entre fotogramas, con el fin de aprovechar eficientemente los caminos de transmisión.
Como sistema representativo de codificación de imágenes dinámicas de alta eficiencia, hay un sistema de codificación de imágenes dinámicas para los medios de almacenamiento, basándose en el estándar del Grupo de Expertos de Imágenes en Movimiento (MPEG). Este estándar MPEG ha sido estudiado por la Organización Internacional para la Estandarización (ISO) - IEC/JTC1/SC2/WG11 y ha sido propuesto como una propuesta de estándar. El estándar MPEG ha adoptado un sistema híbrido que usa una combinación de codificación de predicción de compensación del movimiento y una codificación de transformada discreta del coseno (DCT).
El estándar MPEG define algunos perfiles y niveles con el fin de dar soporte a una amplia gama de aplicaciones y funciones. El estándar MPEG está basado principalmente en el Perfil Principal y en el Nivel Principal (MP@ML).
La figura 1 ilustra el ejemplo de constitución de un codificador MP@ML en el sistema MPEG estándar.
Los datos de imágenes a codificar son introducidos en una memoria 31 de fotogramas y almacenados temporalmente. Un detector 32 de vectores de movimiento lee los datos de imágenes almacenados en la memoria 31 de fotogramas, por ejemplo, en una unidad macrobloque constituida por 16 ( 16 píxeles y detecta los vectores de movimiento.
En este caso, el detector 32 de vectores en movimiento procesa los datos de imágenes de cada fotograma como cualquiera de una imagen intracodificada (imagen-I), una imagen de codificación de predicción hacia delante (imagen-P) o una imagen de codificación de predicción bidireccional (imagen-B). Obsérvese que ha sido predeterminada la manera cómo se procesan las imágenes-I, -P y -B de fotogramas introducidas (es decir, las imágenes se procesan como imagen-I, imagen-B, imagen-P, imagen-B, imagen-P,...., imagen-B, e imagen-P, en el orden mencionado).
Es decir, en el detector 32 de vectores de movimiento, se hace referencia a una fotograma de referencia predeterminado en los datos de imágenes almacenados en la memoria 31 de fotogramas, y un pequeño bloque de 16 píxeles (16 líneas (macrobloque)) en el fotograma actual para ser codificado, está adaptado con un conjunto de bloques del mismo tamaño en el fotograma de referencia. Con la adaptación de bloques, se detecta el vector de movimiento del macrobloque.
En este caso, en el estándar MPEG, los modos de predicción para una imagen incluyen cuatro clases: intracodificación, codificación de predicción hacia delante, codificación de predicción hacia atrás, y codificación de predicción bidireccional. Una imagen-I es codificada por intracodificación. Una imagen-P es codificada por intracodificación o por codificación de predicción hacia delante. Una imagen-B es codificada por intracodificación, codificación de predicción hacia delante, codificación de predicción hacia atrás, o codificación de predicción bidireccional.
Es decir, el detector 32 del vector de movimiento fija el modo de intracodificación en una imagen-I como modo de predicción. En este caso, el detector 32 del vector de movimiento entrega el modo de predicción (modo de intracodificación) a una unidad 36 de codificación de longitud de palabra variable (VLC) y a un compensador 42, sin detectar el vector de movimiento.
El detector 32 del vector de movimiento efectúa también la predicción hacia delante de una imagen-P y detecta el vector de movimiento. Además, en el detector 32 del vector de movimiento, un error de predicción originado al efectuar una predicción hacia delante se compara con la dispersión, por ejemplo, de macrobloques a codificar (macrobloques en la imagen-P). Como resultado de la comparación, cuando la dispersión de los macrobloques es menor que el error de predicción, el detector 32 del vector de movimiento fija un modo de intracodificación como modo de predicción y lo entrega a la unidad 36 de VLC y al compensador 42 de movimiento. Además, si el error de predicción originado por efectuar la predicción hacia delante es menor, el detector 32 de movimiento fija un modo de codificación de predicción hacia delante como modo de predicción. El modo de codificación de predicción hacia delante, junto con el vector de movimiento detectado, es entregado a la unidad 36 de VLC y al compensador 42 de
movimiento.
El detector 32 del vector de movimiento realiza además la predicción hacia delante, la predicción hacia atrás y la predicción bidireccional para una imagen-B, y detecta los respectivos vectores de movimiento. Después, el detector 32 de vectores de movimiento detecta el error mínimo entre los errores de predicción en la predicción hacia delante, en la predicción hacia atrás y en la predicción bidireccional (en adelante denominado el error mínimo de predicción cuando se necesite), y compara el error mínimo de predicción con la dispersión, por ejemplo, de macrobloques a codificar (macrobloques en la imagen-B). Como resultado de la comparación, cuando la dispersión de los macrobloques es menor que el error mínimo de predicción, el detector 32 del vector de movimiento fija un modo de intracodificación como modo de predicción, y lo entrega a la unidad 36 de VLC y al compensador 42 de movimiento. Además, si el error mínimo de predicción es menor, el detector 32 del vector de movimiento fija como modo de predicción un modo de predicción en el cual se obtuvo el error mínimo de predicción. El modo de predicción, junto con el correspondiente vector de movimiento, es entregado a la unidad 36 de VLC y al compensador 42 de movimiento.
Si el compensador 42 de movimiento recibe el modo de predicción y el vector de movimiento desde el detector 32 del vector de movimiento, el compensador 42 de movimiento leerá los datos de imágenes codificados y previamente descodificados localmente, almacenados en la memoria 41 de fotogramas, de acuerdo con el modo de predicción recibido y el vector de movimiento. Estos datos de imágenes leídos son suministrados a las unidades aritméticas 33 y 40 como datos de imagen pronosticados.
La unidad aritmética 33 lee desde la memoria 31 el mismo macrobloque que los datos de imágenes leídos desde la memoria 31 de fotogramas por el detector 32 del vector de movimiento, y calcula la diferencia entre el macrobloque y la imagen pronosticada que fue suministrada desde el compensador 42 de movimiento. Este valor diferencial es suministrado a la unidad 34 de DCT.
Por otra parte, en el caso en que se reciba solamente un modo de predicción desde el detector 32 del vector de movimiento, es decir, el caso en el que el modo de predicción sea un modo de intracodificación, el compensador 42 de movimiento no entrega una imagen pronosticada. En este caso, la unidad aritmética 33 (así como la unidad aritmética 40) entrega a la unidad 34 de DCT el macrobloque leído desde la memoria 31 de fotogramas, sin procesarlo.
En la unidad 34 de DCT, se aplica la DCT a los datos de salida de la unidad aritmética 33, y los coeficientes resultantes de la DCT son suministrados al cuantificador 35. En el cuantificador 35, se fija un paso de cuantificación (escala de cuantificación), en correspondencia con la cantidad de datos almacenados de la memoria intermedia 37 (que es la cantidad de los datos almacenados en una memoria intermedia 37) (realimentación de memoria intermedia). En el paso de cuantificación, se cuantifican los coeficientes de la DCT desde la unidad 34 de DCT. Los coeficientes de la DCT cuantificados, (en adelante denominados coeficientes cuantificados cuando se necesiten), junto con el paso de cuantificación fijado, son suministrados a la unidad 36 de VLC.
En la unidad 36 de VLC, los coeficientes cuantificados suministrados por el cuantificador 35 son transformados en códigos de palabras de longitud variable, tales como los códigos Huffman, y entregados a la memoria intermedia 37. Además, en la unidad 36 de VLC, el paso de cuantificación desde el cuantificador 35 es codificado por la codificación de palabras de longitud variable, y de igual manera, se codifica el modo de predicción (que indica si es una intracodificación (intracodificación de predicción de imágenes), codificación de predicción hacia delante, codificación de predicción hacia atrás, o codificación de predicción bidireccional), y el vector de movimiento del detector 32 del vector de movimiento. Los datos codificados resultantes son entregados a la memoria intermedia 37.
La memoria intermedia 37 almacena temporalmente los datos codificados suministrados desde la unidad 36 de VLC, suavizando con ello la cantidad de datos almacenados. Por ejemplo, los datos suavizados son entregados a un camino de transmisión o grabados en un medio de almacenamiento, como una cadena de bytes codificados.
La memoria intermedia 37 entrega también a la salida la cantidad de datos almacenados al cuantificador 35. El cuantificador 35 fija un paso de cuantificación en correspondencia con la cantidad de datos almacenados que entrega esta memoria intermedia 37. Es decir, cuando hay una posibilidad de que la capacidad de la memoria intermedia 37 se desborde, el cuantificador 35 aumenta el tamaño del paso de cuantificación, reduciendo con ello la cantidad de datos de coeficientes cuantificados. Cuando hay una posibilidad de que la capacidad de la memoria intermedia 37 pase a un estado de subdesbordamiento, el cuantificador 35 reduce el tamaño del paso de cuantificación, aumentando con ello la cantidad de datos de los coeficientes cuantificados. De esta manera, se impide el desbordamiento y el subdesbordamiento de la memoria intermedia 37.
Los coeficientes cuantificados y el paso de cuantificación, entregados por el cuantificador 35, no son suministrados solamente a la unidad 36 de VLC, sino también a un cuantificador inverso 38. En el cuantificador inverso 38, los coeficientes cuantificados desde el cuantificador 35 son cuantificados inversamente de acuerdo con el paso de cuantificación proporcionado por el cuantificador 35, por lo que los coeficientes cuantificados son transformados en coeficientes DCT. Los coeficientes DCT son proporcionados a una unidad DCT inversa (unidad IDCT) 39. En la IDCT 39, se aplica una DCT inversa a los coeficientes DCT y los datos resultantes son suministrados a la unidad aritmética 40.
Además de los datos de salida de la unidad 39 de IDCT, los mismos datos de la imagen pronosticada suministrados a la unidad aritmética 33 son suministrados desde el compensador 42 de movimiento a la unidad aritmética 40, como se ha descrito anteriormente. La unidad aritmética 40 añade los datos de salida (predicción residual (datos diferenciales)) de la unidad 39 de IDCT y los datos de la imagen pronosticada del compensador 42 de movimiento, descodificando con ello localmente los datos de imagen originales. Los datos de imagen descodificados localmente son entregados a la salida. (Sin embargo, en el caso en que el modo de predicción sea un modo de intracodificación, los datos de salida de la IDCT 39 son transferidos a través de la unidad aritmética 40 y suministrados a la memoria 41 de fotogramas, como datos de imagen descodificados localmente, sin ser procesados). Obsérvese que estos datos de imagen descodificados son consistentes con los datos de imagen descodificados que se obtienen en el lado del
receptor.
Los datos de imagen descodificada obtenidos en la unidad aritmética 40 (datos de imagen descodificados localmente) son suministrados a la memoria 41 de fotogramas y almacenados en ella. De ahí en adelante, los datos de imagen descodificados son empleados como datos de imagen de referencia (fotograma de referencia) con respecto a una imagen a la cual se aplica la intracodificación (codificación de predicción hacia delante, codificación de predicción hacia atrás o codificación de predicción bidireccional).
A continuación, la figura 2 ilustra el ejemplo de constitución de un descodificador MP@ML en el sistema estándar MPEG que descodifica la salida de datos codificados desde el codificador de la figura 1.
La cadena de bytes codificados (datos codificados) transmitidos a través de un camino de transmisión, son recibidos por un receptor (no ilustrado), o la cadena de bytes codificados (datos codificados) grabados en un medio de almacenamiento son regenerados por un regenerador (no ilustrado). La cadena de bytes recibidos o regenerados es suministrada y almacenada en una memoria intermedia 101.
Una unidad de VLC inversa (Unidad VLC (descodificador de palabras de longitud variable)) 102, lee los datos codificados en la memoria intermedia 101 y efectúa la descodificación de palabras de longitud variable, separando con ello los datos codificados en el vector de movimiento, modo de predicción, paso de cuantificación, y coeficientes de cuantificación en una unidad macrobloque. Entre ellos, el vector de movimiento y el modo de predicción son suministrados a un compensador 107 de movimiento, mientras que el paso de cuantificación y los coeficientes cuantificados del macrobloque son suministrados a un cuantificador inverso 103.
En el cuantificador inverso 103, los coeficientes cuantificados del macrobloque, suministrados desde la unidad 102 de IVLC, son inversamente cuantificados de acuerdo con el paso de cuantificación suministrado desde la misma unidad 102 de IVLC. Los coeficientes DCT resultantes son suministrados a una unidad 104 de IDCT. En la IDCT 104, se aplica una DCT inversa a los coeficientes DCT del macrobloque, suministrados desde el cuantificador inverso 103, y los datos resultantes son suministrados a una unidad aritmética 105.
Además de los datos de salida de la unidad IDCT 104, los datos de salida del compensador 107 de movimiento son suministrados también a la unidad aritmética 105. Es decir, en el compensador 107 de movimiento, como en el caso del compensador 42 de movimiento de la figura 1, los datos de imagen descodificados previamente, almacenados en la memoria 106 de fotogramas, son leídos de acuerdo con el vector de movimiento y el modo de predicción suministrado desde la unidad 102 de IVLC, y son suministrados a la unidad aritmética 105 como datos de imagen pronosticados. La unidad aritmética 105 suma los datos de salida (predicción residual (valor diferencial)) de la unidad 104 de IDCT y los datos de imagen pronosticada del compensador 107 de movimiento, descodificando con ello los datos de imagen originales. Estos datos de imagen descodificados son suministrados a la memoria 106 de fotogramas y almacenados en ella. Obsérvese que en el caso en que los datos de salida de la unidad 104 de IDCT sean datos intracodificados, los datos de salida son transferidos a través de la unidad aritmética 105 y suministrados a la memoria 106 de fotogramas como datos de imagen descodificados, sin ser procesados.
Los datos de imagen descodificados almacenados en la memoria 106 de fotogramas, son empleados como datos de imagen de referencia para los siguientes datos de imagen a descodificar. Además, los datos de imagen descodificados son suministrados, por ejemplo, a una pantalla (no ilustrada) y presentados como una imagen de salida reproducida.
Obsérvese que en el estándar MPEG-1 y en el estándar MPEG-2, una imagen-B no es almacenada en la memoria 41 de fotogramas del descodificador (figura 1) y la memoria 106 de fotogramas del descodificador (figura 2), porque no se emplea como datos de imagen de referencia.
El codificador y el descodificador antes mencionados ilustrados en las figuras 1 y 2, están basados en el estándar MPEG-1/2. Actualmente, un sistema para codificar vídeo en una unidad del objeto de vídeo (VO) de una secuencia de objetos que constituyen una imagen está siendo estandarizado como estándar MPEG-4 por el ISO-IEC/JTC1/SC29/WG11.
\newpage
A propósito, como el estándar MPEG-4 está siendo estandarizado bajo la suposición de que se utiliza principalmente en el campo de las comunicaciones, no prescribe el grupo de imágenes (GOP) prescrito en el estándar MPEG-1/2. Por tanto, en el caso en el que el estándar MPEG-4 se utilice en medios de almacenamiento, será difícil el acceso aleatorio eficaz.
De acuerdo con un aspecto, la presente invención proporciona un método de codificación de imágenes para producir una cadena de bytes codificados al codificar una imagen formada por una secuencia de objetos, dicho método comprende las etapas de:
codificar un objeto que sea un plano de objetos intra-vídeo (I-VOP) por intracodificación;
codificar un objeto que sea una VOP de predicción (P-VOP) por, intracodificación o por codificación de predicción hacia delante, cualquiera de las dos;
codificar un objeto que sea una VOP de predicción bidireccional (B-VOP) por intracodificación, codificación de predicción hacia delante, codificación de predicción hacia atrás o codificación de predicción bidireccional;
agrupar dichas VOP en uno o más grupos (GOV), teniendo asociado cada grupo un orden de presentación, de acuerdo con el cual se presenta una pluralidad de VOP del correspondiente grupo al reproducir la imagen y añadir un código de tiempo de grupo que representa un tiempo absoluto correspondiente a un punto de sincronismo asociado con un primer objeto en el orden de presentación del grupo correspondiente, comprendiendo el código de tiempo del grupo un valor de horas_código_tiempo que representa una unidad horaria de tiempo, un valor de minutos_código_tiempo que representa una unidad en minutos de tiempo, y un valor de segundos_código_tiempo que representa una unidad en segundos de tiempo del punto de sincronismo;
generar información de tiempo con precisión de segundos (tiempo_base_módulo) indicativo de un valor del tiempo en unidades de segundos como información que representa una hora de presentación de cada VOP en el grupo;
generar una información detallada del tiempo (incremento_tiempo_VOP) indicativo de un valor del tiempo en unidades de precisión más precisas que un segundo como información que representa una hora de presentación de cada VOP en el grupo; y
añadir dicha información de tiempo con precisión de segundos (tiempo_base_módulo) y dicha información detallada del tiempo (incremento_tiempo_VOP) a dicho código de tiempo de grupo como información indicativa de la hora de presentación de dichos VOPs.
\vskip1.000000\baselineskip
En las reivindicaciones que se adjuntan, se detallan otros diversos aspectos respectivos de la invención.
La presente invención ha sido hecha a la vista de tales circunstancias, y los modos de realización de la invención tienen como objetivo hacer posible un acceso aleatorio eficiente.
Breve descripción de los Dibujos
La figura 1 es un diagrama de bloques que ilustra un ejemplo de constitución de un codificador convencional;
La figura 2 es un diagrama de bloques que ilustra un ejemplo de constitución de un descodificador convencional;
La figura 3 es un diagrama de bloques que ilustra un ejemplo de constitución de un modo de realización de un codificador al cual se aplica la presente invención;
La figura 4 es un diagrama para explicar que la posición y el tamaño de un objeto de vídeo (VO) varían con el tiempo;
La figura 5 es un diagrama de bloques que ilustra un ejemplo de constitución de las secciones 31 a 3N de codificación de VOP de la figura 3;
La figura 6 es un diagrama para explicar la escalabilidad espacial;
La figura 7 es un diagrama para explicar la escalabilidad espacial;
La figura 8 es un diagrama para explicar la escalabilidad espacial;
La figura 9 es un diagrama para explicar la escalabilidad espacial;
La figura 10 es un diagrama para explicar un método para determinar los datos del tamaño y los datos de compensación de un plano del objeto de vídeo (VOP);
La figura 11 es un diagrama de bloques que ilustra el ejemplo de constitución de la sección 25 de codificación de la capa base de la figura 5;
La figura 12 es un diagrama de bloques que ilustra el ejemplo de constitución de la sección 23 de codificación de la capa de refuerzo de la figura 5;
La figura 13 es un diagrama para explicar la escalabilidad espacial;
La figura 14 es un diagrama para explicar la escalabilidad del tiempo;
La figura 15 es un diagrama de bloques que ilustra el ejemplo de constitución de un modo de realización de un descodificador al cual se aplica la presente invención;
La figura 16 es un diagrama de bloques que ilustra otro ejemplo de constitución de las secciones 72_{1} a 72_{N} de descodificación de VOP de la figura 15;
La figura 17 es un diagrama de bloques que ilustra el ejemplo de constitución de la sección 95 de descodificación de la capa base de la figura 16;
La figura 18 es un diagrama de bloques que ilustra el ejemplo de constitución de la sección 93 de descodificación de la capa de refuerzo de la figura 16;
La figura 19 es un diagrama que ilustra la sintaxis de una cadena de bytes obtenida mediante la codificación escalable;
La figura 20 es un diagrama que ilustra la sintaxis de VS;
La figura 21 es un diagrama que ilustra la sintaxis de VO;
La figura 22 es un diagrama que ilustra la sintaxis de VOL;
La figura 23 es un diagrama que ilustra la sintaxis de VOP;
La figura 24 es un diagrama que ilustra la relación entre base_tiempos_módulo y el tiempo incremento_tiempo_
VOP;
La figura 25 es un diagrama que ilustra la sintaxis de una cadena bytes, de acuerdo con la presente invención;
La figura 26 es un diagrama que ilustra la sintaxis de un GOV;
La figura 27 es un diagrama de bloques que ilustra la constitución de un código_tiempo;
La figura 28 es un diagrama que ilustra un método de codificación del código_tiempo de la capa GOV y la base_tiempos_módulo y el incremento_tiempo_VOP del primer I-VOP del GOV;
La figura 29 es un diagrama que ilustra un método de codificación del código_tiempo de la capa GOV y también la base_tiempos_módulo y el incremento_tiempo_VOP del B-VOP situado antes del primer I-VOP del GOV;
La figura 30 es un diagrama que ilustra la relación entre la base_tiempos_módulo y el incremento_tiempo_VOP, cuando no cambian las definiciones de los mismos;
La figura 31 es un diagrama que ilustra un proceso de codificación de la base_tiempos_módulo y del incremento_tiempo_VOP del B-VOP, basándose en un primer método;
La figura 32 es un diagrama de flujo que ilustra un proceso de codificación de la base_tiempos_módulo y del incremento_tiempo_VOP del I/P-VOP, basándose en un primer método y un segundo método;
La figura 33 es un diagrama de flujo que ilustra un proceso de codificación de la base_tiempos_módulo y del incremento_tiempo_VOP del B-VOP, basándose en un primer método;
La figura 34 es un diagrama de flujo que ilustra un proceso de descodificación de la base_tiempos_módulo y del incremento_tiempo_VOP del I/P-VOP, codificados por el primer y segundo métodos;
La figura 35 es un diagrama de flujo que ilustra un proceso de descodificación de la base_tiempos_módulo y del incremento_tiempo_VOP del B-VOP, codificados por el primer método;
La figura 36 es un diagrama que ilustra un proceso de codificación de la base_tiempos_módulo y del incremento_tiempo_VOP del B-VOP, basándose en un segundo método;
La figura 37 es un diagrama de flujo que ilustra el proceso de codificación de la base_tiempos_módulo y del incremento_tiempo_VOP del B-VOP, basándose en el segundo método;
La figura 38 es un diagrama de flujo que ilustra un proceso de descodificación de la base_tiempos_módulo y del incremento_tiempo_VOP del B-VOP, codificados por el segundo método;
La figura 39 es un diagrama para explicar la base_tiempos_módulo; y
La figura 40 es un diagrama de bloques que ilustra el ejemplo de constitución de otro modo de realización de un codificador y un descodificador, a los cuales se aplica la presente invención.
\vskip1.000000\baselineskip
Mejor modo de llevar a cabo la invención
Se describirán a continuación con detalle los modos de realización de la presente invención, con referencia a los dibujos.
La figura 3 muestra el ejemplo de constitución de un modo de realización de un codificador, al cual se aplica la presente invención.
Los datos de imagen (datos dinámicos) que han de ser codificados, son introducidos en una sección 1 de constitución de objetos de vídeo (VO). En la sección 1 de constitución de VO, la imagen está constituida, para cada objeto, por una secuencia de VO. La secuencia de los VO es entregada a las secciones 21 a 2N de constitución de VOP. Es decir, en la sección 1 de constitución de VO, en el caso en que se generen N objetos de vídeo (VO#1 a VO#N), los VO#1 a VO#N son entregados a las secciones 21 a 2N de constitución de VOP, respectivamente.
Más específicamente, por ejemplo, cuando los datos de imagen a codificar están constituidos por una secuencia de un segundo plano F1 y un primer plano F2 independientes, la sección 1 de constitución de VO entrega el primer plano F2, por ejemplo, a la sección 21 de constitución de VOP como VO#1 y también entre el segundo plano F1 a la sección 22 de constitución de VOP como VO#2.
Obsérvese que, en el caso en que los datos de imagen a codificar sean, por ejemplo, una imagen previamente sintetizada por el segundo plano F1 y el primer plano F2, la sección 1 de constitución de VO divide la imagen en el segundo plano F1 y el segundo plano F2, de acuerdo con un algoritmo predeterminado. El segundo plano F1 y el primer plano F2 son entregados a las correspondientes secciones 2n de constitución de VOP (donde n = 1, 2,... y N). Las secciones 2n de constitución de VOP generan planos VO (VOP) desde las salidas de la sección 1 de constitución de VO. Es decir, por ejemplo, se extrae un objeto desde cada fotograma. Por ejemplo, el rectángulo mínimo que rodea el objeto (en adelante denominado rectángulo mínimo, cuando se necesite), se considera que es el VOP. Obsérvese que, en este momento, las secciones 2n de constitución de VOP generan el VOP, de manera que el número de píxeles horizontales y el número de píxeles verticales son múltiplos de 16. Si las secciones 2n de constitución de VO generan VOP, los VOP son entregados a las secciones 3n de codificación de VOP, respectivamente.
Más aún, las secciones 2n de constitución de VOP detectan los datos de tamaño (tamaño del VOP) que indican el tamaño de un VOP (por ejemplo, longitudes horizontal y vertical) y datos de compensación (compensación de VOP) que indican la posición del VOP en un fotograma (por ejemplo, coordenadas en que la parte superior izquierda de un fotograma es el origen). Los datos del tamaño y los datos de compensación son suministrados también a las secciones 3n de codificación de VOP.
Las secciones 3n de codificación de VOP codifican las salidas de las secciones 2n de constitución de VOP, por ejemplo, con un método basado en el estándar MPEG o en el estándar H.263. Las cadenas de bytes resultantes son entregadas a una sección 4 de multiplexación que multiplexa las cadenas de bytes obtenidas desde las secciones 31 a 3N de codificación de VOP. Los datos multiplexados resultantes son transmitidos por ondas terrestres o a través de un camino 5 de transmisión, tal como una línea por satélite, una red CATV, etc. Alternativamente, los datos multiplexados son grabados en un medio 6 de almacenamiento, tal como un disco magnético, un disco magneto-óptico, un disco óptico, una cinta magnética, etc.
En este caso, se hará una descripción del objeto de vídeo (VO) y del plano del objeto de vídeo (VOP).
En el caso de una imagen sintetizada, cada una de las imágenes que constituyen la imagen sintetizada es denominada VO, mientras que VOP significa un VO en un momento dado.
Es decir, por ejemplo, en el caso de una imagen sintetizada F3, constituida por las imágenes F1 y F2, cuando la imagen F1 y F2 están dispuestas en forma de serie temporal, son VO. La imagen F1 o F2 en un momento dado es un VOP. Por tanto, puede decirse que el VO es un conjunto de VOP del mismo objeto, en momentos diferentes.
Por ejemplo, si se supone que la imagen F1 es el segundo plano y también que la imagen F2 es el primer plano, la imagen F3 sintetizada se obtendrá sintetizando las imágenes F1 y F2 con una señal clave para extraer la imagen F2. El VOP de la imagen F2 en este caso se supone que incluye la señal clave además de los datos de imagen (señal de luminancia y señal de diferencia de color) que constituyen la imagen F2.
Un fotograma de una imagen no varía ni en tamaño ni en posición, pero hay casos en los que el tamaño o la posición de un VO cambian. Es decir, incluso en el caso en que un VOP constituya el mismo VO, hay casos en los que el tamaño y la posición varían con el tiempo.
Específicamente, la figura 4 ilustra una imagen sintetizada constituida por la imagen F1 (segundo plano) y la imagen F2 (primer plano).
Por ejemplo, supóngase que la imagen F1 es una imagen obtenida fotografiando una cierta escena natural, y que toda la imagen es un solo VO (por ejemplo, VO#0). Supóngase también que la imagen F2 es una imagen obtenida fotografiando una persona que está caminando y que el rectángulo mínimo que rodea a la persona es un solo VO (por ejemplo, VO#1).
En este caso, como el VO#0 es la imagen de una escena, básicamente tanto la posición como el tamaño no cambian como en un fotograma de imagen normal. Por otra parte, como el VO#1 es la imagen de una persona, la posición o el tamaño cambiarán si la persona se desplaza a derecha e izquierda o se desplaza hacia este lado o lado de profundidad de la figura 4. Por tanto, aunque la figura 4 muestra a VO#0 y VO#1 al mismo tiempo, hay casos en los que la posición o el tamaño del VO varían con el tiempo.
Por tanto, la cadena de bytes de salida de las secciones 3n de codificación de VOP de la figura 3, incluyen información de la posición (coordenadas) y del tamaño de un VOP en una sistema de coordenadas absolutas predeterminado, además de los datos que indican un VOP codificado. Obsérvese en la figura 4, que el vector que indica la posición del VOP de VO#0 (imagen F1) en un cierto instante, está representado por OST0 y también un vector que indica la posición del VOP de VO#1 (imagen F2) en un cierto instante, está representado por OST1.
A continuación, la figura 5 ilustra el ejemplo de constitución de las secciones 3n de codificación de VOP de la figura 3, que realizan la escalabilidad. Es decir, el estándar MPEG introduce un método de codificación escalable que efectúa la escalabilidad, que comprende distintos tamaños de imagen y velocidad de fotogramas. Las secciones 3n de codificación de VOP ilustradas en la figura 5 están construidas de manera que se puede realizar tal
escalabilidad.
El VOP (datos de imagen), los datos del tamaño (tamaño de VOP), y los datos de compensación (compensación de VOP de las secciones 2n de constitución de VOP, son suministrados todos ellos a una sección 21 de estratificación de imágenes.
La sección 21 de estratificación de imágenes genera una o más capas de datos de imágenes desde el VOP (se realiza la estratificación del VOP). Es decir, por ejemplo, en el caso de realizar la codificación de la escalabilidad espacial, los datos de imagen introducidos en la sección 21 de estratificación de imágenes, tal como están, son entregados como una capa de refuerzo de los datos de imagen. Al mismo tiempo, se reduce el número de píxeles que constituyen los datos de imagen (se reduce la resolución) haciendo más pequeños los píxeles, y los datos de imagen reducidos en el número de píxeles son entregados como una capa base de los datos de imagen.
Obsérvese que un VOP de entrada puede ser empleado como una capa base de datos y también el VOP incrementado en número de píxeles (resolución) por algún otro método, puede ser empleado como una capa de refuerzo de datos.
Además, aunque el número de capas puede hacerse igual a 1, este caso no puede efectuar la escalabilidad. En este caso, las secciones 3n de codificación de VOP están constituidas, por ejemplo, solamente por una sección 25 de codificación de capa base.
Además, el número de capas puede hacerse igual a 3 o más. Pero en este modo de realización, se describirá por simplicidad el caso de dos capas.
Por ejemplo, en el caso de efectuar la codificación de la escalabilidad temporal, la sección 21 de estratificación de imágenes entrega datos de imagen alternativamente, por ejemplo, como datos de capa base o datos de capa de refuerzo, en correspondencia con el tiempo. Es decir, por ejemplo, cuando se supone que los VOP que constituyen un cierto VO son introducidos en orden, VOP0, VOP1, VOP2, VOP3,.. , la sección 21 de estratificación de imágenes entrega como salida VOP0, VOP2, VOP4, VOP6,.., como datos de la capa base y VOP1, VOP3, VOP5, VOP7,.., como datos de la capa de refuerzo. Obsérvese que, en el caso de escalabilidad temporal, los VOP así empequeñecidos son entregados meramente como datos de la capa base y datos de la capa de refuerzo, y el aumento o reducción de los datos de la imagen (conversión de resolución) no se realiza (pero es posible realizar el aumento o la reducción).
También, por ejemplo, en el caso de realizar la codificación de la escalabilidad de la relación de señal a ruido (SNR), los datos de imagen introducidos en la sección 21 de estratificación de imágenes, tal como están, son entregados como datos de la capa de refuerzo o datos de la capa base. Es decir, en este caso, los datos de la capa base y los datos de la capa de refuerzo son consistentes entre sí.
En este caso, para la escalabilidad espacial en el caso en que se realice una operación de codificación para cada VOP, hay, por ejemplo, las tres clases siguientes.
Es decir, por ejemplo, si se supone ahora que una imagen sintetizada consistente en las imágenes F1 y F2, tal como la ilustrada en la figura 4, es introducida como un VOP, en la primera escalabilidad espacial, el VOP de entrada completo (figura 6(A)) se considera que es una capa de refuerzo, como se ilustra en la figura 6, y el VOP reducido completo (figura 6(B)) se considera que es una capa base.
También, en la segunda escalabilidad espacial, como se ilustra en la figura 7, se extrae un objeto que constituye parte de un VOP de entrada (figura 7(A) (que se corresponde con la imagen F2)). El objeto extraído se considera que en una capa de refuerzo, mientras que todo el VOP reducido (figura 7(B)) se considera que es una capa base. (Tal extracción se realiza, por ejemplo, de la misma manera que en el caso de las secciones 2n de constitución de los VOP. Por tanto, el objeto extraído es también un solo VOP).
Más aún, en la tercera escalabilidad, como se ilustra en las figuras 8 y 9, se extraen los objetos (VOP) que constituyen un VOP de entrada, y se genera una capa de refuerzo y una capa base para cada objeto. Obsérvese que la figura 8 muestra una capa de refuerzo y una capa base generadas a partir del segundo plano (imagen F1) que constituye el VOP ilustrado en la figura 4, mientras que la figura 9 muestra una capa de refuerzo y una capa base generadas a partir del primer plano (imagen F2) que constituye el VOP ilustrado en la figura 4.
Se ha predeterminado cuál de las escalabilidades antes mencionado es la que se emplea. La sección 21 de estratificación de imágenes, realiza la estratificación de un VOP, de manera que se puede realizar la codificación de acuerdo con una escalabilidad predeterminada.
Más aún, la sección 21 de estratificación de imágenes calcula (o determina) los datos del tamaño y los datos de compensación de las capas base y de refuerzo generadas, a partir de los datos del tamaño y los datos de compensación del VOP de entrada (en adelante denominados, respectivamente, datos iniciales del tamaño y datos iniciales de compensación, cuando se necesite). Los datos de compensación indican la posición de una capa base o de refuerzo en un sistema de coordenadas absolutas predeterminado del VOP, mientras que los datos del tamaño indican el tamaño de la capa base o de la de refuerzo.
En este caso, se describirá un método par determinar los datos de compensación (información de posición) y los datos del tamaño de los VOP en las capas base y de refuerzo, por ejemplo, en el caso en que se efectúe la segunda escalabilidad antes mencionada (figura 7).
En este caso, por ejemplo, los datos de compensación de una capa base, FPOS_B, como se ilustra en la figura 10(A), se determinan de manera que, cuando los datos de imagen de la capa base se amplíen (sobremuestreo) basándose en la diferencia entre la resolución de la capa de refuerzo, es decir, cuando la imagen de la capa base se amplíe con una relación de magnificación tal que el tamaño sea consistente con el de la imagen de la capa de refuerzo (que es la recíproca de la relación de desmagnificación porque la imagen de la capa base se genera reduciendo la imagen de la capa de refuerzo) (en adelante denominado magnificación FR, cuando se necesite), los datos de compensación de la imagen ampliada en el sistema de coordenadas absolutas es consistente con los datos iniciales de compensación. Los datos del tamaño de la capa base, FSZ_B, se determinan igualmente de manera que los datos del tamaño de una imagen ampliada, obtenidos cuando la imagen de la capa base es ampliada con la magnificación FR, sean consistentes con los datos iniciales del tamaño. Es decir, los datos de compensación FPOS_B se determinan de manera que es FR veces ellos mismos, o consistentes con los datos iniciales de compensación. Además, los datos del tamaño FSZ_B se determinan de la misma manera.
Por otra parte, para los datos de compensación FPOS_E de una capa de refuerzo, las coordenadas de la esquina superior izquierda del rectángulo mínimo (VOP) que rodea un objeto extraído de un VOP de entrada, por ejemplo, se computan basándose en los datos iniciales de compensación, como se ilustra en la figura 10(B), y este valor se determina como datos de compensación FPOS_E. También, los datos de tamaño FPOS_E de la capa de refuerzo se determinan con las longitudes horizontal y vertical, por ejemplo, del rectángulo mínimo que rodea un objeto extraído de un VOP de entrada.
Por tanto, es este caso, los datos de compensación FPOS_B y los datos de tamaño FPOS_B de la capa base son transformados primero de acuerdo con la magnificación FR. (Los datos de compensación FPOS_B y los datos de tamaño FPOS_B tras la transformación son denominados datos de compensación FPOS_B transformados y datos de tamaño FPOS_B de tamaño, respectivamente). Después, en una posición correspondiente a los datos de compensación FPOS_B transformados en el sistema de coordenadas absolutas, considérese un fotograma de una imagen del tamaño correspondiente a los datos de tamaño transformados FSZ_B. Si se dispone una imagen ampliada, obtenida ampliando los datos de imagen en la capa base FR veces, en la posición correspondiente antes mencionada (figura 10(A)) y además, si se dispone igualmente la imagen de la capa de refuerzo en el sistema de coordenadas absolutas, de acuerdo con los datos de compensación FPOS-E y los datos de tamaño FPOS_E de la capa de refuerzo (figura 10(B)), los píxeles que constituyen la imagen ampliada y los píxeles que constituyen la imagen en la capa de refuerzo quedarán dispuestos de manera que los píxeles mutuamente correspondientes están situados en la misma posición. Es decir, por ejemplo, en la figura 10, la persona en la capa de refuerzo y la persona de la imagen ampliada quedarán dispuestas en la misma posición.
Aún en el caso de la primera escalabilidad y de la tercera escalabilidad, los datos de compensación FPOS_B, los datos de compensación FPOS_E, los datos de tamaño FSZ_B, y los datos de tamaño FSZ_E se determinan igualmente de manera que los píxeles mutuamente correspondientes que constituyen una imagen ampliada en la capa base y una imagen en una capa de refuerzo, quedan situadas en la misma posición en el sistema de coordenadas absolutas.
Volviendo a la figura 5, los datos de imagen, los datos de compensación FPOS_E y los datos de tamaño FSZ_E de la capa de refuerzo, generados en la sección 21 de estratificación de imágenes, son retardados por un circuito 22 de retardo en el periodo de proceso de una sección 25 de codificación de la capa base, que se describirán más adelante, y son suministrados a una sección 23 de codificación de la capa de refuerzo. También los datos de imagen, los datos de compensación FPOS_B y los datos de tamaño, FSZ_B, de la capa base, son suministrados a la sección 25 de codificación de la capa base. Además, se proporciona la magnificación FR a la sección 23 de codificación de la capa de refuerzo y a la sección 24 de transformación de la resolución, a través del circuito 25 de retardo.
En la sección 25 de codificación de la capa base, se codifican los datos de imagen de la capa base. Los datos codificados resultantes (cadena de bytes) incluyen los datos de compensación FPOS_B y los datos de tamaño FSZ_B, y son suministrados a la sección 26 de multiplexación.
Además, la sección 25 de codificación de la capa base descodifica los datos codificados localmente y entrega los datos de imagen descodificados localmente en la capa base a la sección 24 de transformación de la resolución. En la sección 24 de transformación de la resolución, los datos de imagen de la capa base procedentes de la sección 25 de codificación de la capa base son devueltos al tamaño original ampliando (o reduciendo) los datos de imagen de acuerdo con la magnificación FR. La imagen ampliada resultante es entregada a la sección 23 de codificación de la capa de refuerzo.
Por otra parte, en la sección 23 de codificación de la capa de refuerzo, se codifican los datos de imagen de la capa de refuerzo. Los datos codificados resultantes (cadena de bytes) incluyen los datos de compensación FPOS_E y los datos de tamaño FSZ_E, y son suministrados a la sección 26 de multiplexación. Obsérvese que en la sección 23 de codificación de la capa de refuerzo, la codificación de los datos de imagen de la capa de refuerzo se realiza empleando como imagen de referencia, la imagen ampliada suministrada desde la sección 24 de transformación de la resolución.
La sección 26 de multiplexación multiplexa las salidas de la sección 23 decodificación de la capa de refuerzo y de la sección 25 de codificación de la capa base, y entrega la cadena de bytes multiplexada.
Obsérvese que los datos de tamaño FSZ_B, los datos de compensación FPOS_B, el vector de movimiento (MV), el COD de señalización, etc., de la capa base, son suministrados desde la sección 25 de codificación de la capa base a la sección 23 de codificación de la capa de refuerzo, y que la sección 23 de codificación de la capa de refuerzo está construida de manera que realiza el proceso, haciendo referencia a los datos suministrados que se necesiten. Los detalles se describirán más adelante.
A continuación, la figura 11 muestra el ejemplo de constitución detallada de la sección 25 de codificación de la capa base, de la figura 5. En la figura 11, se aplican las mismas referencias numéricas a las partes que corresponden a la figura 1. Es decir, básicamente la sección 25 de codificación de la capa base está constituida como el codificador de la figura 1.
Los datos de imagen de la sección 21 de estratificación de imágenes (figura 5), es decir, el VOP de la capa base, como en la figura 1, son suministrados a la memoria 31 de fotogramas y almacenados en ella. En un detector 32 del vector de movimiento, se detecta el vector de movimiento en una unidad macrobloque.
Pero los datos de tamaño FSZ_B y los datos de compensación FPOS_B del VOP de una capa base son suministrados al detector 32 del vector de movimiento de la sección 25 de codificación de la capa base, que a su vez detecta el vector de movimiento de un macrobloque, basándose en los datos de tamaño suministrados FSZ_B y en los datos de compensación FPOS_B.
Es decir, como se ha descrito anteriormente, el tamaño y la posición de un VOP varía con el tiempo (fotograma). Por tanto, al detectar el vector de movimiento, hay una necesidad de fijar un sistema de coordenadas de referencia para la detección y de detectar el movimiento en el sistema de coordenadas. Por eso, en el detector 32 del vector de movimiento de este caso, el sistema de coordenadas absolutas antes mencionado se emplea como sistema de coordenadas de referencia, y se dispone un VOP a codificar y un VOP de referencia en el sistema de coordenadas absolutas, de acuerdo con los datos de tamaño FSZ_B y los datos de compensación FPOS_B, por lo que se detecta el vector de movimiento.
Obsérvese que el vector de movimiento detectado (MV), junto con el modo de predicción, son suministrados a una unidad 36 de VLC y al compensador 42 de movimiento, y también son suministrados a la sección 23 de codificación de la capa de refuerzo (figura 5).
Aún en el caso de realizar la compensación del movimiento, existe también la necesidad de detectar el movimiento en un sistema de coordenadas de referencia, como se ha descrito anteriormente. Por tanto, los datos del tamaño FSZ_B y los datos de compensación FPOS_B son suministrados al compensador 42 de movimiento.
Un VOP cuyo vector de movimiento fue detectado, se cuantifica como en el caso de la figura 1, y los coeficientes cuantificados son suministrados a la unidad 36 de VLC. Además, como en el caso de la figura 1, los datos de tamaño FSZ_B y los datos de compensación FPOS_B de la sección 21 de estratificación de imágenes, son suministrados a la unidad 36 de VLC además de los coeficientes cuantificados, el paso de cuantificación, el vector de movimiento y el modo de predicción. En la unidad 36 de VLC, los datos suministrados son codificados por medio de una codificación de palabras de longitud variable.
Además de la codificación antes mencionada, el VOP cuyo vector de movimiento fue detectado, es descodificado localmente como en el caso de la figura 1 y almacenado en la memoria 41 de fotogramas. Esta imagen descodificada se emplea como imagen de referencia, como se ha descrito previamente, y además es entregada a la sección 24 de transformación de la resolución (figura 5).
Obsérvese que, a diferencia del estándar MPEG-1 y del estándar MPEG-2, en el estándar MPEG-4 se emplea también una imagen-B (B-VOP) como imagen de referencia. Por esta razón, se descodifica también localmente una imagen-B y se almacena en la memoria 41 de fotogramas. (Sin embargo, se emplea actualmente una imagen-B solamente en una capa de refuerzo, como imagen de referencia).
Por otra parte, como se ha descrito en la figura 1, la unidad 36 de VLC determina si el macrobloque de una imagen-I, imagen-P o imagen-B (I-VOP, P-VOP o B-VOP) está hecho como macrobloque omitido. La unidad 36 de VLC fija señalizadores COD y MODB que indican el resultado de la determinación. Los señalizadores COD y MODB son codificados también mediante la codificación de palabras de longitud variable y se transmiten. Además, el señalizador COD es suministrado a la sección 23 de codificación de la capa de refuerzo.
A continuación, la figura 12 muestra el ejemplo de constitución de la sección 23 de codificación de la capa de refuerzo de la figura 5. En la figura 12, se aplican las mismas referencias numéricas a las partes correspondientes a la figura 11 o 1. Es decir, básicamente la sección 23 de codificación de la capa de refuerzo está constituida como sección 25 de codificación de la capa base de la figura 11 o del codificador de la figura 1, excepto que se proporciona de nuevo la memoria 52 de fotogramas.
Los datos de imagen de la sección 21 de estratificación de imágenes (figura 5), es decir, el VOP de la capa de refuerzo, como en el caso de la figura 1, son suministrados a la memoria 31 de fotogramas y almacenados en ella. En el detector 32 del vector de movimiento, se detecta el vector de movimiento como una unidad macrobloque. Incluso en este caso, como en el caso de la figura 11, los datos del tamaño FSZ_E y los datos de compensación POS_E son suministrados al detector 32 del vector de movimiento, además del VOP de la capa de refuerzo, etc. En el detector 32 del vector de movimiento, como en el caso antes mencionado, la posición adoptada por el VOP de la capa de refuerzo en el sistema de coordenadas absolutas, se reconoce basándose en los datos de tamaño FSZ_E y en los datos de compensación FPOS_E, y se detecta el vector de movimiento del macrobloque.
En este caso, en los detectores 32 del vector de movimiento de la sección 23 de codificación de la capa de refuerzo y la sección 25 de codificación de la capa base, los VOP son procesados de acuerdo con una secuencia predeterminada, como se describe en la figura 1. Por ejemplo, la secuencia se fija como sigue.
Es decir, en el caso de escalabilidad espacial, como se ilustra en la figura 13(A) o 13(B), se procesan los VOP en una capa de refuerzo o en una capa base, por ejemplo, en el orden P, B, B, B, ... o I, P, P, P, ...
Y en este caso, se codifica la primera imagen-P (P-VOP) de la capa de refuerzo, por ejemplo empleando como imagen de referencia el VOP de la capa base presente al mismo tiempo que la imagen-P (en este caso, imagen-I (I-VOP)). También se codifica la segunda imagen-B (B-VOP) en la capa de refuerzo, por ejemplo, empleando como imágenes de referencia la imagen de la capa de refuerzo inmediatamente antes de esa y también el VOP de la capa base presente al mismo tiempo que la imagen-B. Es decir, en este ejemplo, la imagen-B de la capa de refuerzo, como la imagen-P de la capa base, se emplea como imagen de referencia para codificar otro VOP.
Para la capa base, se efectúa la codificación, por ejemplo, como en el caso del estándar MPEG-1, del estándar MPEG-2, o del estándar H.263.
La escalabilidad de la SNR se procesa de la misma manera que la escalabilidad espacial antes mencionada, porque es la misma que la escalabilidad espacial cuando la magnificación FR de la escalabilidad espacial es 1.
En el caso de escalabilidad temporal, es decir, por ejemplo, en el caso en que un VO esté constituido por VOP0, VOP1, VOP2, VOP3, ... , y se considere también que VOP1, VOP3, VOP5, VOP7, ... estén en una capa de refuerzo (figura 14(A)) y VOP0, VOP2, VOP4, VOP6, ... estén en una capa base (figura 14(B)), como se ha descrito anteriormente, los VOP de las capas de refuerzo y base se procesan, respectivamente, en el orden B, B, B, ... y en el orden I, P, P, P, ..., como se ilustra en la figura 14.
Y en este caso, se codifica el primer VOP1 (imagen-B) en la capa de refuerzo, por ejemplo empleando el VOP0 (imagen-I) y el VOP2 (imagen-P) de la capa base, como imágenes de referencia. El segundo VOP3 (imagen-B) de la capa de refuerzo es codificado, por ejemplo, empleando como imágenes de referencia el primer VOP1 codificado (imagen-B) de la capa de refuerzo, inmediatamente antes de ese, y del VOP4 (imagen-P) de la capa base presente en el instante (fotograma) próximo al VOP3. El tercer VOP5 (imagen-B) de la capa de refuerzo, como en la codificación del VOP3, se codifica, por ejemplo, empleando como imágenes de referencia el segundo VOP3 codificado (imagen-B) de la capa de refuerzo inmediatamente antes de ese, y del VOP6 (imagen-P) de la capa base, que es una imagen presente en el instante (fotograma) siguiente al VOP5.
Como se ha descrito anteriormente, para los VOP en una capa (en este caso, en la capa de refuerzo), los VOP de otra capa (capa escalable) (en esta caso, capa base) pueden ser empleados como imágenes de referencia para codificar una imagen-P y una imagen-B. En el caso en que se codifique así un OP en una capa, empleando un VOP de otra capa como imagen de referencia, es decir, como este modo de realización, en el caso en que se emplee como imagen de referencia un VOP de la capa base como imagen de referencia al codificar un VOP de la capa de refuerzo de manera predecible, el detector 32 del vector de movimiento de la sección 23 de codificación de la capa de refuerzo (figura 12) está construido de manera que fija y entrega el señalizador id_capa_ref que indica que se emplea un VOP de la capa base para codificar un VOP de la capa base de manera predecible. (En el caso de 3 o más capas, el señalizador id_capa_ref representa una capa a la cual pertenece un VOP, empleado como imagen de referencia).
Además, el detector 32 del vector de movimiento de la sección 23 de codificación de la capa de refuerzo está construido de manera que fija y entrega el señalizador código_selecc_ref (información de imagen de referencia) de acuerdo con el señalizador id_capa_ref para un VOP. El señalizador código_selecc_ref (información de la imagen de referencia) indica qué capa y qué VOP de la capa son empleados como imagen de referencia al efectuar la codificación de predicción hacia delante o la codificación de predicción hacia atrás.
Más específicamente, por ejemplo, en el caso en el que se codifique una imagen-P en una capa de refuerzo, empleando como imagen de referencia un VOP que pertenezca a la misma capa como una imagen descodificada (localmente descodificada) inmediatamente antes de la imagen-P, el señalizador código_selecc_ref se fija en 00. Además, en el caso en que se codifique una imagen-P empleando como imagen de referencia un VOP que pertenezca a una capa (en este caso una capa base (capa de referencia)), distinta de una imagen presentada inmediatamente antes de la imagen-P, el señalizador código_selecc_ref se fija en 01. Además, en el caso en que se codifique la imagen-P empleando como imagen de referencia un VOP que pertenezca a una capa diferente de la imagen a presentar inmediatamente después de la imagen-P, el señalizador código_selecc_ref se fija en 10. Más aún, en el caso en que la imagen-P se codifique empleando como imagen de referencia un VOP que pertenezca a una capa diferente que está presente al mismo tiempo como imagen-P, el señalizador código_selecc_ref se fija en 11.
Por otra parte, por ejemplo, en el caso en que una imagen-P en la capa de refuerzo se codifique empleando como imagen de referencia para la predicción hacia delante, un VOP que pertenezca a una capa diferente, que está presente al mismo tiempo como imagen-B, y también empleando como imagen de referencia para la predicción hacia atrás, un VOP que pertenezca a la misma capa que una imagen descodificada inmediatamente antes de la imagen-B, el señalizador código_selecc_ref se fija en 00. Además, en el caso en que se codifique una imagen de la capa de refuerzo, empleando como imagen de referencia para la predicción hacia delante, un VOP que pertenezca a la misma capa que la imagen-B y también empleando como imagen de referencia para la predicción hacia atrás un VOP que pertenezca a una capa diferente de la imagen presentada inmediatamente antes de la imagen-B, el señalizador código_selecc_ref se fija en 01. Además, en el caso en que la imagen-B de la capa de refuerzo se codifique empleando como imagen de referencia para la predicción hacia delante, un VOP que pertenezca a la misma capa que una imagen descodificada inmediatamente antes de la imagen-B y también empleando como imagen de referencia para la predicción hacia atrás, un VOP que pertenezca a una capa diferente de una imagen a presentar inmediatamente después de la imagen-B, el señalizador código_selecc_ref se fija en 10. Más aún, en el caso en que la imagen-B de la capa de refuerzo se codifique empleando como imagen de referencia para la predicción hacia delante, un VOP que pertenezca a una capa diferente de la imagen presentada inmediatamente antes de la imagen-B, y también empleando como imagen de referencia para la predicción hacia atrás, un VOP que pertenezca a una capa diferente de una imagen a presentar inmediatamente después de la imagen-B, el señalizador código_selecc_ref se fija en 11.
En este caso, la codificación de predicción ilustrada en las figuras 13 y 14, es meramente un solo ejemplo. Por tanto, es posible dentro de la gama antes mencionada, fijar libremente qué capa y qué VOP se emplean como imagen de referencia para la codificación de predicción hacia delante, la codificación de la predicción hacia atrás o la codificación de predicción bidireccional.
En el caso antes mencionado, aunque los términos escalabilidad espacial, escalabilidad temporal y escalabilidad de SNR se han empleado por conveniencia de la explicación, se hace difícil discriminar la escalabilidad espacial, la escalabilidad temporal y la escalabilidad de SNR entre sí, en el caso en que una imagen de referencia para una codificación de predicción se fije por el señalizador código_selecc_ref. Es decir, hablando a la inversa, el empleo del señalizador código_selecc_ref hace innecesaria la discriminación antes mencionada entre las escalabilidades.
En este caso, si se hace una correlación entre la escalabilidad antes mencionada y el señalizador código_selecc_ref, la correlación será, por ejemplo, como sigue. Es decir, con respecto a la imagen-P, como en el caso en que el señalizador código_selecc_ref es 11, es un caso en el que se emplea el VOP al mismo tiempo en la capa indicada por el señalizador id_capa_ref como imagen de referencia (para la predicción hacia delante), este caso corresponde a la escalabilidad espacial o la escalabilidad de SNR. Y los casos distintos al caso en que el señalizador código_selecc_ref es 11, se corresponde con la escalabilidad temporal.
Además, con respecto a una imagen-B, el caso de que el señalizador código_selecc_ref es 00 sea también el caso en el que un VOP se emplea al mismo tiempo en la capa indicada por el señalizador id_capa_ref como imagen de referencia para la predicción hacia delante, de manera que este caso se corresponde a la escalabilidad espacial o a la escalabilidad de SNR. Y los casos distintos al caso en el que el señalizador código_selecc_ref es 00, se corresponden con la escalabilidad temporal.
Obsérvese que, en el caso en que con el fin de codificar un VOP en una capa de refuerzo de manera predecible, se emplea un VOP al mismo tiempo en una capa (en este caso, capa base) distinta de la capa de refuerzo, como imagen de referencia, no hay movimiento entre ellos, de manera que el vector de movimiento se hace siempre 0 ((0,0)).
Volviendo a la figura 12, se fija el señalizador id_capa_ref y el señalizador código_selecc_ref, antes mencionados, en el detector 32 del vector de movimiento de la sección 23 de codificación de la capa de refuerzo, y se suministran al compensador 42 de movimiento y a la unidad 36 de VLC.
Además, el detector 32 del vector de movimiento detecta un vector de movimiento no haciendo referencia solamente a la memoria 31 de fotogramas, de acuerdo con el señalizador id_capa_ref y el señalizador código_selecc_ref, sino también haciendo referencia a la memoria 52 de fotograma, cuando se necesite.
En este caso se suministra, una imagen ampliada descodificada localmente en la capa base, desde la sección 24 de transformación de la resolución (figura 5) a la memoria 52 de fotogramas. Es decir, en la sección 24 de transformación de la resolución, el VOP descodificado localmente en la capa base se amplía, por ejemplo, mediante un denominado filtro de interpolación, etc. Con esto, se genera una imagen ampliada que es FR veces el tamaño del VOP, es decir, una imagen ampliada del mismo tamaño que el VOP de la capa de refuerzo, correspondiente al VOP de la capa base. La imagen generada es suministrada a la sección 23 de codificación de la capa de refuerzo. La memoria 52 de fotogramas almacena la imagen ampliada suministrada desde la sección 24 de transformación de la resolución de esta manera.
Por tanto, cuando la magnificación FR es 1, la sección 24 de transformación de la resolución no procesa el VOP descodificado localmente procedente de la sección 25 de codificación de la capa base. El VOP descodificado localmente procedente de la sección 25 de codificación de la capa base, tal como está, es suministrado a la sección 23 de codificación de la capa de refuerzo.
Los datos del tamaño FSZ_B y los datos de compensación FPOS_B son suministrados desde la sección 25 de codificación de la capa base, al detector 32 del vector de movimiento, y también se suministra la magnificación FR desde el circuito 22 de retardo (figura 5) al detector 32 del vector de movimiento. En el caso en que la imagen ampliada almacenada en la memoria 52 de fotogramas se emplee como imagen de referencia, es decir, en el caso en que, con el fin de codificar un VOP en una capa de refuerzo de manera predecible, se emplea un VOP de la capa base al mismo tiempo que el VOP de la capa de refuerzo, como imagen de referencia (en este caso, el señalizador código_selecc_ref se hace igual a 11 para una imagen-P y 00 para una imagen-B), el detector 32 del vector de movimiento multiplica los datos del tamaño FSZ_B y los datos de compensación FPOS_B correspondientes a la imagen ampliada, por la magnificación FR. Y, basándose en el resultado de la multiplicación, el detector 32 del vector de movimiento reconoce la posición de la imagen ampliada en el sistema de coordenadas absolutas, detectando con ello el vector de movimiento.
Obsérvese que se suministra el vector de movimiento y el modo de predicción en una capa base, al detector 32 del vector de movimiento. Estos datos se utilizan en el caso siguiente. Es decir, en el caso en que el señalizador código_selecc_ref para una imagen-B de una capa de refuerzo sea 00, cuando la magnificación FR es 1, es decir, en el caso de la escalabilidad SNR (en este caso, como se emplea un VOP de la capa de refuerzo para codificar la capa de refuerzo de manera predecible, la escalabilidad de SNR utilizada en este caso difiere en este aspecto de la prescrita en el estándar MPEG-2), las imágenes de la capa de refuerzo y de la capa base son las mismas. Por tanto, cuando se efectúa la codificación de predicción de una imagen-B en una capa de refuerzo, el detector 32 del vector de movimiento puede emplear el vector de movimiento y el modo de predicción en una capa base que están presentes al mismo tiempo que la imagen-B, tal como son. Por eso, en este caso, el detector 32 del vector de movimiento no procesa la imagen-B de la capa de refuerzo, sino que adopta el vector de movimiento y el modo de predicción de la capa base, tal como están.
En este caso, en la sección 23 de codificación de la capa de refuerzo, no se entrega un vector de movimiento ni un modo de predicción desde el detector 32 de vector de movimiento a la unidad 36 de VLC. (Por tanto, no se transmiten). Esto es debido a que el lado receptor puede reconocer el vector de movimiento y el modo de predicción de una capa de refuerzo, a partir del resultado de la descodificación de una capa base.
Como se ha descrito anteriormente, el detector 32 del vector de movimiento detecta un vector de movimiento empleando un VOP en una capa de refuerzo y en una imagen ampliada como imágenes de referencia. Además, como se ilustra en la figura 1, el detector 32 del vector de movimiento fija un modo de predicción que hace mínimo el error de predicción (o dispersión). Además, el detector 32 del vector de movimiento fija y entrega información necesaria, tal como el señalizador código_selecc_ref, el señalizador id_capa_ref, etc.
En la figura 12, el señalizador COD indica si un macrobloque que constituye una imagen-I o una imagen-P en la capa base es un macrobloque de omisión, y se suministra el señalizador COD desde la sección 25 de codificación de la capa base al detector 32 del vector de movimiento, a la unidad 36 de VLC y al compensador 42 de movimiento.
El macrobloque, cuyo vector de movimiento fue detectado, es codificado de la misma manera que en el caso antes mencionado. Como resultado de la codificación, se entregan los códigos de longitud variable desde la unidad 36 de VLC.
La unidad 36 de VLC de la sección 23 de codificación de la capa de refuerzo, como en el caso de la sección 25 de codificación de la capa base, se construye de manera que fija y entrega señalizadores COD y MODB. En este caso, el señalizador COD, como se ha descrito anteriormente, indica si un macrobloque en una imagen-I o una imagen-P es un macrobloque de omisión, mientras que el señalizador MOD-B indica si un macrobloque de una imagen-B es un macrobloque de omisión.
Los coeficientes cuantificados, el paso de cuantificación, el vector de movimiento, el modo de predicción, la magnificación FR, el señalizador código_selecc_ref, el señalizador id_capa_ref, los datos del tamaño FSZ_E y los datos de compensación FPOS_E son suministrados también a la unidad 36 de VLC. En la unidad 36 de VLC, éstos son codificados por una codificación de palabras de longitud variable y entregados como salida.
Por otra parte, después de que se ha codificado un macrobloque cuyo vector de movimiento se ha detectado, también se descodifica localmente como se ha descrito anteriormente, y es almacenado en la memoria 41 de fotogramas. Y en el compensador 42 de movimiento, como en el caso del detector 32 del vector de movimiento, se efectúa la compensación del movimiento empleando como imágenes de referencia un VOP descodificado localmente en una capa de refuerzo, almacenado en la memoria 41 de fotogramas, y un VOP descodificado localmente y ampliado en una capa base, almacenado en la memoria 52 de fotogramas. Con esta compensación, se genera una imagen pronosticada.
Es decir, además del vector de movimiento y del modo de predicción, el señalizador código_selecc_ref, el señalizador id_capa_ref, la magnificación FR, los datos del tamaño FSZ_B, los datos del tamaño FSZ_E, los datos de compensación FPOS_B y los datos de compensación FPOS_E son suministrados al compensador 42 de movimiento. El compensador 42 de movimiento reconoce una imagen de referencia que ha de ser compensada en movimiento, basándose en los señalizadores código_selecc_ref e id_capa_ref. Además, en el caso en que se emplee como imagen de referencia un VOP descodificado localmente en una capa de refuerzo, o se emplee una imagen ampliada como imagen de referencia, el compensador 42 de movimiento reconoce la posición y el tamaño de la imagen de referencia en el sistema de coordenadas absolutas, basándose en los datos de tamaño FSZ_E y FPOS_E, o los datos de tamaño FSZ_B y los datos de compensación FPOS_B. El compensador 42 de movimiento genera una imagen pronosticada empleando la magnificación FR, cuando se necesite.
A continuación, la figura 15 muestra el ejemplo de constitución de un modo de realización de un descodificador que descodifica la cadena de bytes entregada desde el codificador de la figura 3.
Este descodificador recibe la cadena de bytes suministrada por el codificador de la figura 3, a través del camino 5 de transmisión o el medio 6 de almacenamiento. Es decir, la cadena de bytes, entregada desde el codificador de la figura 3 y transmitido a través del camino 5 de transmisión, es recibida por el receptor (no ilustrado).
Alternativamente, la cadena de bytes grabada en el medio 6 de almacenamiento, es regenerada por un regenerador (no ilustrado). La cadena de bytes recibida o regenerada, es suministrada a una sección 71 de multiplexación inversa.
La sección 71 de multiplexación inversa recibe la cadena de bytes (cadena de vídeo (VS) descrita más adelante) introducida en ella. Además, en la sección 71 de multiplexación inversa, la cadena de bytes introducida es separada en cadenas de bytes VO#1, VO#2, ... Las cadenas de bytes son suministradas a las correspondientes secciones 72n de descodificación de VOP, respectivamente. En las secciones 72n de descodificación de VOP; el VOP (datos de imagen) que constituyen un VO, los datos de tamaño (tamaño de VOP), y los datos de compensación (compensación de VOP), son descodificados a partir de la cadena de bytes suministrada desde la sección 71 de multiplexación inversa. Los datos descodificados son suministrados a una sección 73 de reconstrucción de imágenes.
La sección 73 de reconstrucción de imágenes reconstruye el mensaje original, basándose en las respectivas salidas de las secciones 72_{1} a 72_{N} de descodificación de VOP. Esta imagen reconstruida es suministrada, por ejemplo, a un monitor 74 y presentada en él.
A continuación, la figura 16 muestra el ejemplo de constitución de la sección 72_{N} de descodificación de VOP de la figura 15, que efectúa la escalabilidad.
La cadena de bytes suministrada desde la sección 71 de multiplexación inversa (figura 15) es introducida en una sección 91 de multiplexación inversa, en la cual la cadena de bytes de entrada es separada en una cadena de bytes de un VOP en una capa de refuerzo, y una cadena de bytes de un VOP en una capa base. La cadena de bytes de un VOP en una capa de refuerzo es retardada por un circuito 92 de retardo, en un periodo de proceso en la sección 95 de descodificación de la capa base, y es suministrada a la sección 93 de descodificación de la capa de refuerzo. Además, la cadena de bytes de un VOP en una capa base es suministrada a la sección 95 de descodificación de la capa base.
En la sección 95 de descodificación de la capa base, la cadena de bytes de la capa base es descodificada, y la imagen descodificada resultante de una capa base es suministrada a la sección 94 de transformación de la resolución. Además, en la sección 95 de descodificación de la capa base, se suministra la información necesaria para descodificar un VOP en una capa de refuerzo, obtenida descodificando la cadena de bytes de una capa base, a la sección 93 de descodificación de la capa de refuerzo. La información necesaria incluye datos de tamaño FSZ_B, datos de compensación FPOS_B, vector de movimiento (MV), modo de predicción, señalizador COD, etc.
En la sección 93 de descodificación de la capa de refuerzo, la cadena de bytes en una capa de refuerzo, suministrada a través del circuito 92 de retardo, es descodificada haciendo referencia a las salidas de la sección 95 de descodificación de la capa base, y de la sección 94 de transformación de la resolución, según se necesite. La imagen descodificada resultante de una capa de refuerzo, los datos de tamaño FSZ-E, y los datos de compensación FPOS_E, son entregados como salida. Además, en la sección 93 de descodificación de la capa de refuerzo, la magnificación FR, obtenida descodificando la cadena de bytes de una capa de refuerzo, es entregada como salida a la sección 94 de transformación de la resolución. En la sección 94 de transformación de la resolución, como en el caso de la sección 24 de transformación de la resolución de la figura 5, la imagen descodificada en una capa base es transformada empleando la magnificación FR suministrada desde la sección 93 de descodificación de la capa de refuerzo. Una imagen ampliada, obtenida con esta transformación, es suministrada a la sección 93 de descodificación de la capa de refuerzo. Como se ha descrito anteriormente, la imagen ampliada se emplea para descodificar la cadena de bytes de una capa de refuerzo.
A continuación, la figura 17 muestra el ejemplo de constitución de la sección 95 de descodificación de la capa base de la figura 16. En la figura 17, se aplican las mismas referencias numéricas a las partes correspondientes al caso del descodificador de la figura 2. Es decir, básicamente la sección 95 de descodificación de la capa base está constituida de la misma manera que el descodificador de la figura 2.
La cadena de bytes de una capa base procedente de la sección 91 de multiplexación inversa, es suministrada a una memoria intermedia 101 y almacenada temporalmente. Una unidad 102 de IVLC lee la cadena de bytes de la memoria intermedia 101, en correspondencia con un estado de proceso de bloques de la siguiente etapa, según se necesite, y se descodifica la cadena de bytes mediante una descodificación de palabras de longitud variable, y se separa en coeficientes cuantificados, un vector de movimiento, un modo de predicción, un paso de cuantificación, datos de tamaño FSZ_B, datos de compensación FPOS_B, y el señalizador COD. Los coeficientes cuantificados y el paso de cuantificación son suministrados a un cuantificador inverso 103. El vector de movimiento y el modo de predicción son suministrados a un compensador 107 de movimiento, y a la sección 93 de descodificación de la capa de refuerzo (figura 16). Además, los datos de tamaño FSZ_B y los datos de compensación FPOS_B son suministrados al compensador 107 de movimiento, a la sección 73 de reconstrucción de imágenes (figura 15), y a la sección 93 de descodificación de la capa de refuerzo, mientras que el señalizador COD es suministrado a la sección 93 de descodificación de la capa de refuerzo.
El cuantificador inverso 103, la unidad 104 de IDCT, la unidad aritmética 105, la memoria 106 de fotogramas, y el compensador 107 de movimiento realizan procesos similares correspondientes al cuantificador inverso 38, la unidad 39 de IDCT, la unidad aritmética 40, la memoria 41 de fotogramas y el compensador 42 de movimiento de la sección 25 de codificación de la capa base de la figura 11, respectivamente. Con esto, se descodifica el VOP de una capa base. El VOP descodificado es suministrado a la sección 73 de reconstrucción de imágenes, a la sección 93 de descodificación de la capa de refuerzo y la sección 94 de transformación de la resolución (figura 16).
A continuación, la figura 18 muestra el ejemplo de constitución de la sección 93 de descodificación de la capa de refuerzo de la figura 16. En la figura 18, se aplican las mismas referencias numéricas a las partes correspondientes al caso de la figura 2. Es decir, básicamente, la sección 93 de descodificación de la capa de refuerzo está constituida de la misma manera que el descodificador de la figura 2, excepto que se proporciona una nueva memoria 112 de
fotogramas.
La cadena de bytes de una capa de refuerzo procedente de la sección 91 de multiplexación inversa, es suministrada a una IVLC 102 a través de una memoria intermedia 101. La unidad 102 de IVLC descodifica la cadena de bytes de una capa de refuerzo, mediante una descodificación de palabras de longitud variable, separando con ello la cadena de bytes en coeficientes cuantificados, un vector de movimiento, un modo de predicción, un paso de cuantificación, datos de tamaño FSZ_E, datos de compensación FPOS_E, magnificación FR, señalizador id_capa_ref, señalizador código_selecc_ref, señalizador COD y señalizador MODB. Los coeficientes cuantificados y el paso de cuantificación, como en el caso de la figura 17, son suministrados a un cuantificador inverso 103. El vector de movimiento y el modo de predicción son suministrados al compensador 107 de movimiento. Además, los datos de tamaño FSZ_E y los datos de compensación FPOSE son suministrados al compensador 107 de movimiento y a la sección 73 de reconstrucción de imágenes (figura 15). El señalizador COD, el señalizador MOD, señalizador id_capa_ref y el señalizador código_selecc_ref son suministrados al compensador 107 de movimiento. Además, la magnificación FR es suministrada al compensador 107 de movimiento y a la sección 94 de transformación de la resolución (figura 16).
Obsérvese que el vector de movimiento, el señalizador COD, los datos del tamaño FSZ_B y los datos de compensación FPOS_B de una capa base son suministrados desde la sección 95 de descodificación de la capa base (figura 16) al compensador 107 de movimiento, además de los datos antes mencionados. Además, se suministra una imagen ampliada desde la sección 94 de transformación de la resolución a la memoria 112 de fotogramas.
El cuantificador inverso 103, la unidad 104 de IDCT, la unidad aritmética 105, la memoria 106 de fotogramas, el compensador 107 de movimiento y la memoria 112 de fotogramas realizan procesos similares correspondientes al cuantificador inverso 38, a la unidad 39 de IDCT, a la unidad aritmética 40, a la memoria 41 de fotogramas, al compensador 42 de movimiento y a la memoria 52 de fotogramas de la sección 23 de codificación de la capa de refuerzo de la figura 12, respectivamente. Con esto, se descodifica el VOP de una capa de refuerzo. El VOP descodificado se suministra a la sección 73 de reconstrucción de imágenes.
En este caso, en las secciones 72n de descodificación de VOP que tienen la sección 93 de descodificación de la capa de refuerzo y la sección 95 de descodificación de la capa base, constituidas como se ha descrito anteriormente, se obtienen tanto la imagen descodificada, los datos de tamaño FSZ_E y los datos de compensación FPOS_E de una capa de refuerzo (en adelante denominados datos de la capa de refuerzo, cuando se necesite), como la imagen descodificada, los datos de tamaño FSZ_B y los datos de compensación FPOS_B de la capa base (en adelante denominados datos de la capa base, cuando se necesiten). En la sección 73 de reconstrucción de imágenes, se reconstruye una imagen a partir de los datos de la capa de refuerzo o de los datos de la capa base, por ejemplo, de la manera siguiente.
Es decir, por ejemplo, en el caso en que se realice la primera escalabilidad espacial (figura 6) (es decir, en el caso en que todo el VOP de entrada se haga una capa de refuerzo y todo el VOP reducido se haga una capa base), cuando se descodifican tanto los datos de la capa base, como los datos de la capa de refuerzo, la sección 73 de reconstrucción de imágenes dispone la imagen descodificada (VOP) de la capa de refuerzo, de tamaño correspondiente a los datos de tamaño FSZ_E en la posición indicada por los datos de compensación FPOS_E, basándose solamente en los datos de la capa de refuerzo. También, por ejemplo, cuando tiene lugar un error en la cadena de bytes de una capa de refuerzo, o cuando el monitor 74 procesa solamente una imagen de baja resolución y, por tanto, solamente se descodifican los datos de la capa base, la sección 73 de reconstrucción de imágenes dispone la imagen descodificada (VOP) de una capa de refuerzo de tamaño correspondiente a los datos de tamaño FSZ_B, en la posición indicada por los datos de compensación FPOS_B, basándose solamente en los datos de capa base.
También, por ejemplo, en el caso de que se realice la segunda escalabilidad espacial (figura 7), (es decir, en el caso en que parte de un VOP de entrada se haga una capa de refuerzo y todo el VOP reducido se haga una capa base), cuando se descodifican tanto los datos de la capa base como los datos de la capa de refuerzo, la sección 73 de reconstrucción de imágenes amplía los datos descodificados de la capa base, del tamaño correspondiente a los datos de tamaño FSZ_B, de acuerdo con la magnificación FR y genera la imagen ampliada. Además, la sección 73 de reconstrucción de imágenes amplía FR veces los datos de compensación FPOS_B y coloca la imagen ampliada en la posición correspondiente al valor resultante. Y la sección 73 de reconstrucción de imágenes dispone la imagen descodificada de la capa de refuerzo con el tamaño correspondiente al tamaño de los datos FSZ_E en la posición indicada por los datos de compensación FPOS_E.
En este caso, la parte de la imagen descodificada de una capa de refuerzo se presenta con mayor resolución que la parte restante.
Obsérvese que en el caso en que se dispone la imagen descodificada de una capa de refuerzo, la imagen descodificada y una imagen ampliada se sintetizan mutuamente.
Además, aunque no está ilustrado en la figura 16 (figura 15), se suministra la magnificación FR desde la sección 93 de descodificación de la capa de refuerzo (secciones 72n de descodificación de VOP) a la sección 73 de reconstrucción de imágenes, además de los datos antes mencionados. La sección 73 de reconstrucción de imágenes genera una imagen ampliada empleando la magnificación FR suministrada.
Por otra parte, en el caso en que se realice la segunda escalabilidad espacial, cuando se descodifican solamente los datos de la capa base, se reconstruye una imagen de la misma manera que el caso antes mencionado, donde se realiza la primera escalabilidad espacial.
Además, en el caso en que se realice la tercera escalabilidad espacial, (figuras 8 y 9), (es decir, en el caso en que cada uno de los objetos que constituyen un VOP de entrada se haga una capa de refuerzo y el VOP que excluye los objetos se haga una capa base), se reconstruye una imagen de la misma manera que el caso antes mencionado en el que se realiza la segunda escalabilidad espacial.
Como se ha descrito anteriormente, los datos de compensación FPOS_B y los datos de compensación FPOS_E se construyen de manera que los píxeles mutuamente correspondientes, que constituyen la imagen ampliada de una capa base y una imagen de una capa de refuerzo, se disponen en la misma posición en el sistema de coordenadas absolutas. Por tanto, al reconstruir una imagen de la manera antes mencionada, se puede obtener una imagen precisa (sin compensación de la posición).
A continuación, se describirá la sintaxis de la salida de la cadena de bytes codificados por el codificador de la figura 3, por ejemplo, con el modelo de verificación de vídeo (versión 6.0) del estándar MPEG-4 (en adelante denominado VM-6.0 cuando se necesite), como ejemplo.
La figura 19 muestra la sintaxis de una cadena de bytes codificados en VM-6.0.
La cadena de bytes codificados está constituida por clases de sesión de vídeo (VS). Cada VS está constituido por una o más clases de objetos de vídeo (VO). Cada VO está constituido por una o más clases de capas de objetos (VOL). (Cuando una imagen no está estratificada, está constituida por un solo VOL. En el caso en que la imagen esté estratificada, está constituida por las VOL correspondientes al número de capas). Cada VOL está constituida por clases de planos de objetos de vídeo (VOP).
Obsérvese que las VS son una secuencia de imágenes y equivalentes, por ejemplo, con un solo programa o película.
Las figuras 20 y 21 muestran la sintaxis de una VS y la sintaxis de un VO. El VO es una cadena de bytes correspondiente a una imagen completa o a una secuencia de objetos que constituyen una imagen. Por tanto, las VS están constituidas por un conjunto de tales secuencias. (Por tanto, las VS son equivalentes, por ejemplo, a un solo programa).
La figura 22 muestra la sintaxis de una VOL.
La VOL es una clase para la escalabilidad antes mencionada y está identificada por un número indicado con un id_capa_objeto_vídeo. Por ejemplo, el id_capa_objeto_vídeo para una VOL de una capa base se hace 0, mientras que el id_capa_objeto_vídeo para una VOL de una capa de refuerzo se hace 1. Obsérvese que, como se ha descrito anteriormente, el número de capas escalables no está limitado a 2, sino que puede ser un número arbitrario que incluye 1, 3 o más.
Además, si una VOL es una imagen completa o parte de una imagen, está identificada por la forma_capa_objeto_
vídeo. Esta forma_capa_objeto_vídeo es un señalizador para indicar la forma de una VOL y se fija como sigue.
Cuando la forma de una VOL es rectangular, a la forma_capa_objeto_vídeo se le da, por ejemplo, el valor 00. Además, cuando una VOL está en forma de un corte de zona por medio de una clave dura (una señal binaria que adopta el valor 0 o 1), a la forma_capa_objeto_vídeo se le da, por ejemplo, el valor 01. Además, cuando una VOL está en forma de corte de zona por medio de una clave blanda (una señal que puede adoptar un valor continuo (escala de grises) en una gama de 0 a 1) (cuando se sintetiza con una clave blanda), a la forma_capa_objeto_vídeo se le da el valor, por ejemplo, de 10.
En este caso, cuando a la forma_capa_objeto_vídeo se le da el valor 00, la forma de un VOP es rectangular y también la posición y tamaño de una VOL en el sistema de coordenadas absolutas no varían con el tiempo, es decir, son constantes. En este caso, los tamaños (longitud horizontal y longitud vertical) están indicados por la anchura_capa_objeto_vídeo y por la altura_capa_objeto_vídeo. La anchura_capa_objeto_vídeo y la altura_capa_objeto_
vídeo son ambas señalizadores de longitud fija de 10 bytes. En el caso en que la forma_capa_objeto_vídeo sea 00, se transmite primero solamente una vez. (Esto es debido a que, en el caso en el que la forma_capa_objeto_vídeo sea 00, como se ha descrito anteriormente, el tamaño de una VOL en el sistema de coordenadas absolutas es constante).
Además, si una VOL es una capa base o una capa de refuerzo, está indicada por la escalabilidad que es un señalizador de 1 byte. Cuando una VOL es una capa base, a la escalabilidad se le da, por ejemplo, el valor 1. En cualquier caso distinto a ese, a la escalabilidad se le da, por ejemplo, el valor 0.
Además, en el caso en que una VOL emplee una imagen en una VOL distinta a sí misma como imagen de referencia, la VOL a la cual pertenece la imagen de referencia se representa por id_capa_ref, como se ha descrito anteriormente. Obsérvese que el id_capa_ref se transmite solamente cuando una VOL es una capa de refuerzo.
En la figura 22, el factor_n_muestreo_ver y el factor_m_muestreo_ver indican un valor correspondiente a la longitud horizontal de un VOP en una capa base y un valor correspondiente a la longitud horizontal de un VOP en una capa de refuerzo, respectivamente. La longitud horizontal de una capa de refuerzo a una capa base (magnificación de la resolución horizontal), viene dada por la ecuación siguiente:
factor_n_muestreo_hor / factor_m_muestreo_hor.
En la figura 22, el factor_n_muestreo_hor y el factor_m_muestreo_hor indican un valor correspondiente a la longitud vertical de un VOP en una capa base y un valor correspondiente a la longitud vertical de un VOP en una capa de refuerzo, respectivamente. La longitud vertical de una capa de refuerzo a una capa base (magnificación de la resolución vertical) viene dada por la ecuación siguiente:
factor_n_muestreo_ver / factor_m_muestreo_ver.
A continuación, la figura 23 muestra la sintaxis de un VOP.
Los tamaños (longitud horizontal y longitud vertical) de un VOP están indicados, por ejemplo, por anchura_VOP y altura_VOP, que tienen una longitud fija de 10 bytes. Además, las posiciones de un VOP en el sistema de coordenadas absolutas están indicadas, por ejemplo, por ref_mc_espacial_horizontal_VOP y por ref_mc_vertical_VOP de longitud fija de 10 bytes. La anchura_VOP y la altura_VOP, representan la longitud horizontal y la longitud vertical de un VOP, respectivamente. Éstas son equivalentes a los datos de tamaño FSZ_B y los datos de tamaño FSZ_E descritos anteriormente. Las ref_mc_espacial_horizontal_VOP y la ref_mc_vertical_VOP representan las coordenadas horizontal y vertical (coordenadas x e y) de un VOP, respectivamente. Éstas son equivalentes a los datos de compensación FPOS_B y los datos de compensación FPOS_E descritos anteriormente.
La anchura_VOP, la altura_VOP, la ref_mc_horizontal_VOP y la ref_mc_vertical_VOP se transmiten solamente cuando la forma_capa_objeto_vídeo no es 00. Es decir, cuando la forma_capa_objeto_vídeo es 00, como se ha descrito anteriormente, el tamaño y la posición de un VOP son ambos constantes, de manera que no hay necesidad de transmitir la anchura_VOP, la altura_VOP, la ref_mc_espacial_horizontal_VOP y la ref_mc_vertical_VOP. En este caso, en el lado del receptor, se dispone un VOP de manera que la esquina superior izquierda es consistente, por ejemplo, con el origen del sistema de coordenadas absolutas. Además, los tamaños son reconocidos a partir de la anchura_capa_objeto_vídeo y de la altura_capa_objeto_vídeo descritas en la figura 22.
En la figura 23, el código_selecc_ref, como se describe en la figura 19, representa una imagen que se emplea como una imagen de referencia, y está prescrita por la sintaxis de un VOP.
A propósito, en VM-6.0, el tiempo de presentación de cada VOP (equivalente a un fotograma convencional) se determina por la base_tiempos_módulo y por el incremento_tiempo_módulo (figura 23), de la manera siguiente:
Es decir, la base_tiempos_módulo representa el tiempo del codificador en la base de tiempos local, con una ``precisión de un segundo (1000 milisegundos). La base_tiempos_módulo se representa como un marcador transmitido en la cabecera del VOP, y está constituido por un número necesario de unos y un 0. El número de "1" consecutivos que constituyen la base_tiempos_módulo seguido por un "0" es el periodo acumulativo desde el punto de sincronización (tiempo con la precisión de un segundo) marcado por la última base_tiempos_módulo codificada/descodificada. Por ejemplo, cuando la base_tiempos_módulo indica un 0, el periodo acumulativo desde el punto de sincronización marcado por la última base_tiempos_módulo codificada/descodificada es 0 segundos. Además, cuando la base_tiempos_módulo indica 10, el periodo acumulativo desde el punto de sincronización marcado por la última base_tiempos_módulo codificada/descodificada es 1 segundo. Además, cuando la base_tiempos_módulo indica 110, el periodo acumulativo desde el punto de sincronización marcado por la última base_tiempos_módulo codificada/descodificada es 2 segundos. Por tanto, el número de unos en la base_tiempos_módulo es el número de segundos desde el punto de sincronización marcado por la última base_tiempos_módulo codificada/descodificada.
Obsérvese que, para la base_tiempos_módulo, el VM-6.0 especifica que:
Este valor representa la base de tiempos local en la unidad de resolución de un segundo (1000 milisegundos). Se representa como un marcador transmitido en la cabecera del VOP. El número de unos consecutivos seguidos de un 0 indica que ha transcurrido el número de segundos desde el punto de sincronización marcado por la última base_tiempos_módulo codificada/descodificada.
El incremento_tiempo_VOP representa el tiempo del codificador en la base de tiempos local dentro de la precisión de 1 ms. En VM-6.0, para los I-VOP y P-VOP, el incremento_tiempo_VOP es el tiempo desde el punto de sincronización marcado por la última base_tiempos_módulo codificada/descodificada. Para los B-VOP, el incremento_tiempo_VOP es el tiempo relativo desde el último I- o P-VOP codificado/descodificado.
Obsérvese que, para el incremento_tiempo_VOP, el VM-6.0 especifica que:
Este valor representa la base de tiempos local en unidades de milisegundos. Para los I- y P-VOP, este valor es el incremento_tiempo_VOP absoluto desde el punto de sincronización marcado por la última base_tiempos_módulo. Para los B-VOP, este valor es el incremento_tiempo_VOP relativo desde el último I- o P-VOP codificado/descodificado.
Y el VM-6.0 especifica que:
En el codificador, se utilizan las fórmulas siguientes para determinar los incrementos_tiempo_VOP absoluto y relativo para los I/P-VOP y B-VOP, respectivamente.
Es decir, VM-6.0 prescribe que, en el codificador, los tiempos de presentación para los I/P-VOP y B-VOP son, respectivamente, codificados por las fórmulas siguientes:
1
donde tGTB(n) representa el tiempo del punto de sincronización (como se ha descrito anteriormente, con precisión de un segundo) marcado por la base_tiempos_módulo enésima codificada, tEST representa el tiempo del codificador en el inicio de la codificación del VO (el tiempo absoluto en el cual se inició la codificación del VO), tAVT1 representa el incremento_tiempo_VOP para el I o P-VOP, tETB(I/P) representa el tiempo del codificador en el inicio de la codificación del I o P-VOP (el tiempo absoluto en el cual se inició la codificación del VOP), tRVTI representa el incremento_tiempo_VOP para el B-VOP, y tETB(B) representa el tiempo del codificador en el inicio de la codificación del B-VOP.
Obsérvese que, para el tGTB(n), tEST, tAVT1, tETB (I/P), tRVTI y tETB(B) de las fórmulas (1), el VM-6.0 especifica que:
tGTB(n) es la base de tiempos del codificador marcada por la enésima base_tiempos_módulo codificada, tEST es el tiempo de inicio de la base de tiempos del codificador, tAVTI es el incremento_tiempo_VOP absoluto para el I o el P-VOP, tETB(I/P) es la base de tiempos del codificador en el inicio de la codificación del I o P-VOP, tRVTI es el incremento_tiempo_VOP relativo para el B-VOP, y tETB(B) es la base de tiempo del codificador en el inicio de la codificación del B-VOP.
Además, el VM-6.0 especifica que:
En el descodificador, se utilizan las fórmulas siguientes para determinar la base de tiempos recuperada de los I/P-VOP y B-VOP, respectivamente.
Es decir, VM-6.0 prescribe que en el lado del descodificador, los tiempos de presentación para los I/P-VOP y los B-VOP son descodificados, respectivamente, por las fórmulas siguientes:
2
donde tGTB(n) representa el tiempo del punto de sincronización marcado por la base_tiempos_módulo enésima descodificada, tDST representa el tiempo del descodificador en el inicio de la descodificación del VO (el tiempo absoluto en el cual se inició la descodificación del VO), tDTB (I/P) representa el tiempo del descodificador al inicio de la descodificación del I-VOP o P-VOP, tAVTI representa el incremento_tiempo_VOP para el I-VOP o el P-VOP, tDTB(B) representa el tiempo del descodificador al inicio de la descodificación del B-VOP (el tiempo absoluto en el cual se inició la descodificación del VOP), tRVTI representa el incremento_tiempo_VOP para el B_VOP.
Obsérvese que, para el tGTB(N), tDST, tDTB(I/P), tAVTI, tDTB(B) y tRVTI de las fórmulas (2), el VM-6.0 especifica que:
tGTB(n) es la base de tiempos de codificación marcada por la base_tiempos_módulo enésima descodificada, tDST es el tiempo de inicio de la base de tiempos de descodificación, tDTB(I/P) es la base de tiempos de descodificación al inicio de la descodificación de I o P-VOP, tAVTI es el incremento_tiempo_VOP absoluto de descodificación para el I- o el P-VOP, tDTB(B) es la base de tiempos de descodificación en el inicio de la descodificación del B-VOP, y tRTVI es el incremento_tiempo_VOP relativo descodificado para el B-VOP.
La figura 24 muestra la relación entre la base_tiempos_módulo y el incremento_tiempo_VOP, basado en la definición anterior.
En la figura, un VO está constituido por una secuencia de VOP, tal como I1 (I-VOP), B2 (B-VOP), B3, P4 (P-VOP), B5, P6, etc. Supóngase ahora que el tiempo de inicio de codificación descodificación (tiempo absoluto) del VO es t0, la base_tiempos_módulo representará tiempo (punto de sincronización), tal como t0 + 1 seg. t0 + 2 seg. etc., debido a que el tiempo transcurrido desde el tiempo t0 de inicio está representado con una precisión dentro de un segundo. En la figura 24, aunque el orden de presentación es I1, B2, B3, P4, B5, P6, etc., el orden de codificación/descodificación es I1, P4, B2, B3, P6, etc.
En la figura 24 (igual que las figuras 28 a 31 y la figura 36 que se describirán más adelante), el incremento_tiempo_VOP para cada VOP está indicado por un número (en unidades de milisegundos) encerrados dentro de un cuadrado. La conmutación de puntos de sincronización indicada por la base_tiempos_módulo está indicada por una marca \ding{116}. En la figura 24, por tanto, los incrementos_tiempo_VOP para el I1, B2, B3, P4, B5 y P6 son 350 ms, 400 ms, 800 ms, 550 ms, 400 ms y 350 ms, y en P4 y P6, se conmuta el punto de sincronización.
Ahora, en la figura 24, el incremento_tiempo_VOP para la I1 es 350 ms. El tiempo de codificación/descodificación de la I1, por tanto, es el tiempo 350 ms después del punto de sincronización marcado por la última base_tiempos_
módulo codificada/descodificada. Obsérvese que, inmediatamente después del inicio de la codificación/descodificación de la I1, el tiempo t0 de inicio (tiempo de inicio de la codificación/descodificación) se convierte en un punto de sincronización. El tiempo de codificación/descodificación de la I1, por tanto, será el tiempo t0 + 350 ms después de los 350 ms desde el tiempo t0 de inicio (tiempo de inicio de la codificación/descodificación).
Y el tiempo de codificación/descodificación de la B2 o B3 es el tiempo del incremento_tiempo_VOP que ha transcurrido desde la última I-VOP o P-VOP codificada/descodificada. En este caso, como el tiempo de codificación/descodificación de la última I1 codificada/descodificada es t0 + 350 ms, el tiempo de codificación/descodificación de B2 o B3 es el tiempo t0 + 750 ms o t0 + 1200 ms después de 400 ms u 800 ms.
A continuación, para la P4, se conmuta en P4 el punto de sincronización indicado por la base_tiempos_módulo. Por tanto, el punto de sincronización es el tiempo t0 + 1 seg. Como resultado, el tiempo de codificación/descodificación de la P4 es el tiempo (t0 + 1) seg + 550 ms después de los 350 ms desde el tiempo t0 + 1 seg.
El tiempo de codificación/descodificación de la B5 es el tiempo del incremento_tiempo_VOP que ha transcurrido desde el último I-VOP o P-VOP codificado/descodificado. En este caso, como el tiempo de codificación/descodifica-
ción de la última P4 codificada/descodificada es (t0 + 1) seg. + 550 ms, el tiempo de codificación/descodificación de la B5 es el tiempo (t0 + 1) seg. + 950 ms después de los 400 ms.
A continuación, para la P6, se conmuta el punto de sincronización de P6 indicado por la base_tiempos_módulo. Por tanto, el punto de sincronización es el tiempo t0 + 2 seg. Como resultado, el tiempo de codificación/descodificación de la P6 es el tiempo (t0 + 2) seg. + 350 ms después de los 350 ms desde el tiempo t0 + 2 seg.
Obsérvese que en VM-6.0, la conmutación de los puntos de sincronización indicados por la base_tiempos_módulo está permitida solamente para las I-VOP y las P-VOP y no está permitida para las B-VOP.
Además, el VM-6.0 especifica que para las I-VOP y las P-VOP, el incremento_tiempo_VOP es el tiempo desde el punto de sincronización marcado por la última base_tiempos_módulo codificada/descodificada, mientras que para las B-VOP, el incremento_tiempo_VOP es el tiempo relativo desde el punto de sincronización marcado por el último I-VOP o P-VOP codificado/descodificado. Esto es principalmente por la razón siguiente. Es decir, un B-VOP es codificado de manera predecible empleando como imagen de referencia el I-VOP o P-VOP dispuestos a través del B-VOP en orden de aparición. Por tanto, la distancia temporal al I-VOP o al P-VOP se fija en el incremento_tiempo_VOP para el B-VOP, de manera que el peso, con relación al I-VOP o el P-VOP que se emplee como imagen de referencia para efectuar la codificación predecible, se determina a partir del B-VOP sobre la base de la distancia temporal al I-VOP o al P-VOP dispuestos a través del B-VOP. Esta es la razón principal.
A propósito, la definición del incremento_tiempo_VOP de la antes mencionada VM-6.0 tiene una desventaja. Es decir, en la figura 24, el incremento_tiempo_VOP para un B-VOP no es el tiempo relativo desde el último I-VOP o P-VOP codificado/descodificado, inmediatamente antes del B-VOP, sino el tiempo relativo desde el último I-VOP o P-VOP presentado. Esto es por la razón siguiente. Por ejemplo, considérese B2 o B3. El I-VOP o el P-VOP que se codifica/descodifica inmediatamente antes de B2 o B3, es la P4 desde el punto de vista del orden de codificación/descodificación antes mencionado. Por tanto, cuando se supone que el incremento_tiempo_VOP para un B-VOP es el tiempo relativo desde el I-VOP o P-VOP codificado/descodificado inmediatamente antes del B-VOP, el incremento_tiempo_VOP para B2 o B3 es el tiempo relativo desde el momento de codificación/descodificación de la P4, y se convierte en un valor negativo.
Por otra parte, en el estándar MPEG-4, el incremento_tiempo_VOP es 10 bytes. Si el incremento_tiempo_VOP tiene solamente un valor igual o mayor que 0, puede expresar un valor en la gama de 0 a 1023. Por tanto, la posición entre puntos de sincronización contiguos puede ser representada en unidades de milisegundos con el punto de sincronización temporal anterior (en la dirección de la izquierda de la figura 24) como referencia.
Sin embargo, si se permite que el incremento_tiempo_VOP tenga no solamente un valor igual o mayor que 0, sino también un valor negativo, la posición entre puntos de sincronización contiguos será representada con el punto de sincronización temporal anterior como referencia, o será representada con el siguiente punto de sincronización temporal como referencia. Por esta razón, el proceso de cálculo del tiempo de codificación o del tiempo de descodificación de un VOP se hace complicado.
Por tanto, como se ha descrito anteriormente, para el incremento_tiempo_VOP, el VM-6.0 especifica que:
Este valor representa la base de tiempos local en unidades de milisegundos. Para I- y P-VOP, este valor es el incremento_tiempo_VOP absoluto desde el punto de sincronización marcado por la última base_tiempos_módulo. Para el B-VOP, este valor es el incremento_tiempo_VOP relativo desde el último I- o P-VOP codificado/descodi-
ficado.
Sin embargo, la última frase "Para los B-VOP este valor es el incremento_tiempo_VOP relativo desde el último I- o P-VOP codificado/descodificado", debe cambiarse por "Para los B-VOP, este valor es el incremento_tiempo_VOP relativo desde el último I- o P-VOP presentado". Con esto, el incremento_tiempo_VOP no debe ser definido como el tiempo relativo desde el último I- o P-VOP codificado/descodificado, sino que debe definirse como el tiempo relativo desde el último I- o P-VOP presentado.
Definiendo el incremento_tiempo_VOP de esta manera, la base de cálculo del tiempo de codificación/descodifica-
ción para un B-VOP es el tiempo de presentación del I/P-VOP (I-VOP o P-VOP) que tienen un tiempo de presentación anterior al B-VOP. Por tanto, el incremento_tiempo_VOP para un B-VOP tiene siempre un valor positivo, siempre que no se presente una imagen de referencia I-VOP para el B-VOP antes del B-VOP. Por tanto, los incrementos_tiempo_VOP para los I/P-VOP tienen también un valor positivo en todo momento.
Además, en la figura 24, la definición del VM-6.0 se cambia también de manera que el tiempo representado por la base_tiempos_módulo y por el incremento_tiempo_VOP no es el tiempo de codificación/descodificación de un VOP, sino que es el tiempo de presentación de un VOP. Es decir, en la figura 24, cuando se considera el tiempo absoluto en una secuencia de VOP, el tEST(I/P) de las fórmulas (1) y el tDTB(I/P) de las fórmulas (2) representan tiempos absolutos presentes en una secuencia de I-VOP o de P-VOP, respectivamente, y el tEST(B) de las fórmulas (1) y el tDTB(B) de las fórmulas (2) representan los tiempos absolutos presentes en una secuencia de B-VOP, respectivamente.
A continuación, en el VM-6.0, no se codifica el tiempo de inicio tEST de la base de tiempos del codificador de las fórmulas (1), sino que se codifica la base_tiempos_módulo y el incremento_tiempo_VOP como información diferencial entre el tiempo de inicio tEST de la base de tiempos del codificador y el tiempo de presentación de cada VOP (tiempo absoluto que representa la posición de un VOP presente en una secuencia de VOP). Por esta razón, en el lado del descodificador, el tiempo relativo entre los VOP puede determinarse empleando la base_tiempos_módulo y el incremento_tiempo_VOP, pero el tiempo absoluto de presentación de cada VOP, es decir, la posición de cada VOP en una secuencia de VOP, no puede ser determinada. Por tanto, solamente la base_tiempos_módulo y el incremento_tiempo_VOP no pueden efectuar el acceso una cadena de bytes, es decir, el acceso aleatorio.
Por otra parte, si se codifica meramente el tiempo de inicio tEST de la base de tiempos del codificador, el descodificador puede descodificar el tiempo absoluto de cada VOP, empleando el tEST codificado. Sin embargo, al descodificar en la cabecera de la cadena de bytes codificados, el tiempo de inicio tEST de la base de tiempos del codificador y también la base_tiempos_módulo y el incremento_tiempo_VOP que son la información de tiempo relativo de cada VOP, existe la necesidad de controlar el tiempo absoluto acumulativo. Esto es problemático, de manera que no puede llevarse a cabo un acceso aleatorio eficaz.
Por tanto, en el modo de realización de la presente invención, se introduce una capa para codificar el tiempo absoluto que está presente en una secuencia de VOP en la constitución jerárquica de la cadena de bytes codificados del VM-6.0, para efectuar fácilmente un acceso aleatorio eficaz. (Esta capa no es una capa que realice escalabilidad (la capa base o la capa de refuerzo antes mencionadas) sino que es una capa de la cadena de bytes codificados). Esta capa es una capa de cadena de bytes codificados que puede ser insertada en una posición apropiada, así como en la cabecera de la cadena de bytes codificada.
Como esta capa, este modo de realización introduce, por ejemplo, una capa prescrita de la misma manera que una capa de GOP (grupo de imágenes) empleada en el estándar MPEG-1/2. Con esto, la compatibilidad entre el estándar MPEG-4 y el estándar MPEG-1 puede ser reforzada en comparación con el caso en que se emplee una capa original de cadena de bytes codificados en el estándar MPEG-4. Esta capa introducida ahora se denomina GOV (o grupo de planos de objetos de vídeo (GVOP)).
La figura 25 muestra la constitución de la cadena de bytes codificados en la que se introduce una capa GOV para codificar los tiempos absolutos presentes en una secuencia de VOP.
La capa GOV está prescrita entre una capa VOL y una capa VOP, de manera que puede insertarse en la posición arbitraria de una cadena de bytes codificados, así como en la cabecera de la cadena de bytes codificados.
Con esto, en el caso en que un cierto VOL#0 esté constituido por una secuencia de VOP, tal como VOP#0, VOP#1, .. VOP#n, VOP#(n+1), ... y VOP#m, la capa GOV puede ser insertada, por ejemplo, directamente antes de VOP#(n+1), así como directamente antes de la cabecera VOP#0. Por tanto, en el codificador, la capa GOV puede insertarse, por ejemplo, en la posición de una cadena de bytes codificados en la que se efectúa el acceso aleatorio. Por tanto, al insertar la capa GOV, una secuencia de VOP que constituye un cierto VOL es separada en una pluralidad de grupos (en adelante denominada GOV, cuando se necesite) y es codificada.
La sintaxis de la capa GOV está definida, por ejemplo, como se ilustra en la figura 26.
Como se ilustra en la figura, la capa GOV está constituida por un código_inicio_grupo, un código_tiempo, un gop_cerrado, un enlace_roto y un código_inicio_siguiente(), dispuestos en secuencia.
A continuación, se hará una descripción de la semántica de la capa GOV. La semántica de la capa GOV es básicamente la misma que la capa GOP en el estándar MPEG-2. Por tanto, para las partes que no se describen aquí, véase el estándar de vídeo MPEG-2 (ISO/IEC-13818-2).
El código_inicio_grupo es 000001B8 (hexadecimal) e indica la posición de inicio de un GOV.
El código_tiempo, como se ilustra en la figura 27, consiste en un señalizador_caída_fotograma, de 1 byte, horas_código_tiempo de 5 bytes, minutos_código_tiempo de 6 bytes, un byte_marcador de 1 byte, segundos_código_
tiempo de 6 bytes e imágenes_código_tiempo de 6 bytes. Por tanto, el código_tiempo está constituido por 25 bytes en total.
El código_tiempo es equivalente a los "códigos de tiempo y control de los grabadores de cinta de vídeo", prescritos en la publicación 461 del estándar IEC. En este caso, el estándar MPEG-4 no tiene el concepto de velocidad de fotogramas de vídeo. (Por tanto, un VOP puede ser representado en un momento arbitrario). Por tanto, este modo de realización no aprovecha el señalizador_caída_fotograma que indica si el código_tiempo está descrito en el modo_caída_fotograma, y el valor está fijado, por ejemplo, en 0. Además, este modo de realización no aprovecha imágenes_código_tiempo por la misma razón, y el valor se fija, por ejemplo, en 0. Por tanto, el código_tiempo utilizado en este caso representa el tiempo de la cabecera de un GOV por las horas_código_tiempo que representan la unidad en horas del tiempo, los minutos_código_tiempo que representan la unidad en minutos del tiempo, y los segundos_código_tiempo que representan la unidad en segundos del tiempo. Como resultado, el código_tiempo (tiempo absoluto con precisión de un segundo del inicio de la codificación) en una capa GOV expresa el tiempo de la cabecera de la capa GOV, es decir, el tiempo absoluto en una secuencia de VOP cuando se inicia la codificación de la capa GOV, con una precisión dentro de un segundo. Por esta razón, este modo de realización de la presente invención fija el tiempo con una precisión más fina que un segundo (en este caso, milisegundos) para cada VOP.
Obsérvese que el byte_marcador en el código_tiempo se hace igual a 1 de manera que no continúan 23 o más ceros en una cadena de bytes codificados.
El gop_cerrado significa uno en el cual las imágenes I-, P- y B- en la definición del gop_cerrado del estándar de vídeo MPEG-2 (ISO/IEC 13818-2) han sido sustituidas por un I-VOP, un P-VOP y un B-VOP, respectivamente. Por tanto, el B-VOP de un VOP representa no solamente un VOP que constituye el GOV, sino que representa si el VOP ha sido codificado con un VOP en otro GOV como imagen de referencia. En este caso, para la definición del gop_cerrado en el estándar de vídeo MPEG-2 (ISO/IEC 13818-29), las frases que efectúan la sustitución antes mencionada se ilustran como sigue:
Este es un señalizador de un byte que indica la naturaleza de las predicciones utilizadas en los primeros B-VOP consecutivos (si los hay) que siguen inmediatamente al primer I-VOP codificado que sigue al grupo de cabecera del plano. El gop_cerrado se fija en 1 para indicar que estos B-VOP han sido codificados utilizando solamente la predicción hacia atrás o la intra-codificación. Este byte se proporciona para ser utilizado durante cualquier edición que tenga lugar tras la codificación. Si se eliminan las imágenes anteriores para la edición, el enlace_roto puede fijarse en 1, de manera que un descodificador puede evitar la presentación de estos B-VOP que siguen al primer I-VOP que sigue al grupo de la cabecera del plano. Sin embargo, si el byte de gop_cerrado se fija en 1, entonces el editor puede elegir no fijar el byte de enlace_roto, ya que estos B-VOP pueden ser descodificados correctamente.
El enlace_roto significa también uno en el cual se ha efectuado la misma sustitución que en el caso del gop_cerrado en la definición del enlace_roto del estándar de vídeo MPEG-2 (ISO/IEC 13818-29). El enlace_roto representa, por tanto, si se puede regenerar correctamente el B-VOP de cabecera de un GOV. En este caso, para la definición del enlace_roto en el estándar de vídeo MPEG-2 (ISO/IEC 13818-2), las frases que efectúan la sustitución antes mencionada se ilustran de la manera siguiente:
Este es un señalizador de un byte que será fijado en 0 durante la codificación. Se fija en 1 para indicar que los primeros B-VOP consecutivos (si los hay), que siguen inmediatamente al primer I-VOP codificado, que sigue al grupo de la cabecera del plano, no puede ser descodificado correctamente porque el fotograma de referencia que se utiliza para la predicción no está disponible (debido a la acción de editar). Un descodificador puede utilizar este señalizador para evitar la presentación de fotogramas que no pueden ser descodificados correctamente.
El código()_inicio_ siguiente da la posición de la cabecera del siguiente GOV.
El tiempo absoluto antes mencionado en una secuencia de GOV que introduce la capa GOV e inicia también la codificación de la capa GOV (en adelante denominado tiempo absoluto de inicio de la descodificación, cuando se necesite), se fija en el código_tiempo del GOV. Además, como se ha descrito anteriormente, como el código_tiempo en la capa GOV tiene una precisión dentro de un segundo, este modo de realización fija una parte de precisión más fina en el tiempo absoluto de cada VOP que está presente en una secuencia de VOP para cada VOP.
La figura 28 muestra la relación entre el código_tiempo, la base_tiempos_módulo y el incremento_tiempo_VOP en el caso en que se haya introducido la capa GOV de la figura 26.
En la figura, el GOV está constituido por I1, B2, B3, P4, B5 y P6 dispuestos en orden de presentación desde la cabecera.
Suponiendo ahora, por ejemplo, que el tiempo absoluto del inicio de la codificación del GOV es 0 h:12 m:35 seg:350 mseg (0 horas, 12 minutos, 35 segundos 350 milisegundos), el código_tiempo del GOV será fijado en 0 h:12 m:35 seg porque tiene una precisión dentro de un segundo, como se ha descrito anteriormente. (Las horas_código_
tiempo, los minutos_código_tiempo_ y los segundos_código_tiempo que constituyen el código_tiempo serán fijados en 0, 12 y 35, respectivamente). Por otra parte, en el caso en que el tiempo absoluto de la I1 en una secuencia de VOP (tiempo absoluto de una secuencia de VOP antes de la codificación (o después de la codificación) de un VS que incluye el GOV de la figura 28) (ya que esto es equivalente al tiempo de presentación de la I1, cuando se presenta una secuencia de VOP, será denominado en adelante como tiempo de presentación, cuando se necesite) es, por ejemplo, 0 h:12 m:35 seg:350 mseg, la semántica del incremento_tiempo_VOP cambia de manera que 350 ms, que es una precisión más fina que la precisión de un segundo, se fija en el incremento_tiempo_VOP del I-VOP de la I1 y es codificado (es decir, de manera que la codificación se efectúa con el incremento_tiempo_VOP de la I1=350).
Es decir, en la figura 28, el incremento_tiempo_VOP de la cabecera I-VOP (I1) de un GOV en orden de presentación tiene un valor diferencial entre el código_tiempo del GOV y el tiempo de presentación del I-VOP. Por tanto, el tiempo con precisión dentro de un segundo que representa el código_tiempo es el primer punto de sincronización del GOV (en este caso, un punto que representa el tiempo con precisión dentro de un segundo).
Obsérvese que, en la figura 28, la semántica de los incrementos_tiempo_VOP para B2, B3, P4, B5 y P6 del GOV, que están dispuestos como si el VOP fuera el segundo o posterior, es el mismo que aquel en el cual cambia la definición del VM-6.0, como se describe en la figura 24.
Por tanto, en la figura 28, el tiempo de presentación de la B2 o B3 es el tiempo en el que ha transcurrido el incremento_tiempo_VOP desde el último I-VOP o P-VOP presentado. En este caso, como el tiempo de presentación de la última I1 presentada es 0 h:12 m:35 seg:350 mseg, el tiempo de presentación de la B2 o B3 es 0 h:12 m:35 seg:750 mseg o 0 h:12 m:36 seg:200 mseg después de los 400 mseg u 800 mseg.
A continuación, para la P4, se conmuta en P4 el punto de sincronización indicado por la base_tiempos_módulo. Por tanto, el tiempo del punto de sincronización es 0 h:12 m:36 seg después de 1 segundo a partir de 0 h:12 m:35 seg. Como resultado, el tiempo de presentación de la P4 es 0 h:12 m:36 seg:550 mseg después de los 550 mseg a partir de 0 h:12 m:36 seg.
El tiempo de presentación de la B5 es el tiempo en el cual ha transcurrido el incremento_tiempo_VOP desde el último I-VOP o P-VOP presentado. En este caso, el tiempo de presentación de la B5 es 0 h:12 m:36 seg:950 mseg después de los 400 mseg a partir del tiempo de presentación 0 h:12 m:36 seg:550 mseg de la última P4 presentada.
A continuación, para la P6, se conmuta en P6 el punto de sincronización indicado por la base_tiempos_módulo. Por tanto, el tiempo del punto de sincronización es 0 h:12 m:35 seg + 2 seg., es decir, 0 h:12 m:37 seg. Como resultado, el tiempo de presentación de la P6 es 0 h:12 m:37 seg:350 mseg después de los 350 mseg. a partir de 0 h:12 m:37 seg.
A continuación, la figura 29 muestra la relación entre el código_tiempo, la base_tiempos_módulo y el incremento_tiempo_VOP en el caso en que el VOP de la cabecera de un GOV sea un B-VOP en orden de presentación.
En la figura, el GOV está constituido por B0, I1, B2, B3, P4, B5 y P6, dispuestas en orden de presentación desde la cabecera. Es decir, en la figura 29, el GOV está constituido por la B0 añadida antes de la I1 en la figura 28.
En este caso, si se supone que el incremento_tiempo_VOP para la B0 de cabecera del GOV está determinado con el tiempo de presentación de la I/P-VOP del GOV como estándar, es decir, por ejemplo, si se supone que se determina con el tiempo de presentación de la I1 como estándar, el valor será un valor negativo, que es desventajoso como se ha descrito anteriormente.
Por tanto, la semántica del incremento_tiempo_VOP para el B-VOP que se presenta antes del I-VOP del GOV (el B-VOP que se presenta antes del I-VOP del GOV que se presenta en primer lugar) cambia de la manera siguiente:
Es decir, el incremento_tiempo_VOP para tal B-VOP tiene un valor diferencial entre el código_tiempo del GOV y el tiempo de presentación del B-VOP. En este caso, cuando el tiempo de presentación de la B0 es, por ejemplo, 0 h:12 m:35 seg:200 mseg y cuando el código_tiempo del GOV es, por ejemplo, 0 h:12 m:35 seg, como se ilustra en la figura 29, el incremento_tiempo_VOP para la B0 es 350 ms (=0 h:12 m:35 seg:200 mseg - 0 h:12 m:35 seg). Si se hace de esta manera, el incremento_tiempo_VOP tendrá siempre un valor positivo.
Con los dos cambios antes mencionados en la semántica del incremento_tiempo_VOP, puede hacerse una correlación entre el código_tiempo de un GOV y la base_tiempos_módulo y el incremento_tiempo_VOP de un VOP. Más aún, con esto, puede especificarse el tiempo absoluto (tiempo de presentación) de cada VOP.
A continuación, la figura 30 muestra la relación entre el código_tiempo de un GOV y la base_tiempos_módulo y el incremento_tiempo_VOP de un VOP en el caso en el que el intervalo entre el tiempo de presentación del I-VOP y el tiempo de presentación del B-VOP pronosticado desde el I-VOP es igual a mayor que 1 segundo (exactamente hablando, 1,023 segundos).
En la figura 30, el GOV está constituido por I1, B2, B3, B4 y P6 dispuestos en orden de presentación. La B4 se presenta en el instante después de 1 segundo desde el tiempo de presentación de la última I1 presentada (I-VOP).
En este caso, cuando el tiempo de presentación de la B4 está codificado con el incremento_tiempo_VOP antes mencionado, cuya semántica se ha cambiado, el incremento_tiempo_VOP es 10 bytes como se ha descrito anteriormente, y puede expresar solamente el tiempo hasta 1023. Por esta razón, no puede expresar un tiempo mayor que 1,023 segundos. Por tanto, la semántica del incremento_tiempo_VOP se cambia todavía más y también se cambia la semántica de la base_tiempos_módulo con el fin de hacer frente a ese caso.
En este modo de realización, se efectúan tales cambios, por ejemplo, ya sea por el primer método o por el segundo método.
Es decir, en el primer método, se detecta el tiempo transcurrido entre el tiempo de presentación de un I/P-VOP y el tiempo de presentación de un B-VOP pronosticado a partir del I/P-VOP, con una precisión dentro de un segundo. Para el tiempo, la unidad de un segundo se expresa con la base_tiempos_módulo, mientras que la unidad de un milisegundo se expresa con el incremento_tiempo_VOP.
La figura 31 muestra la relación entre el código_tiempo para un GOV y la base_tiempos_módulo y el incremento_tiempo_VOP para un VOP, en el caso en el que la base_tiempos_módulo y el incremento_tiempo_VOP han sido codificados en el caso ilustrado en la figura 30, de acuerdo con el primer método.
Es decir, en el primer método, la adición de la base_tiempos_módulo está permitida no solamente para un I-VOP y un P-VOP, sino también para un B-VOP. Y la base_tiempos_módulo añadida a un B-VOP no representa la conmutación de puntos de sincronización, sino que representa las unidades que se llevan de una segunda unidad obtenida a partir del tiempo de presentación del último I/P-VOP presentado.
Más aún, en el primer método, el tiempo después de las unidades que se llevan de una segunda unidad a partir del tiempo de presentación del último I/P-VOP presentado, indicado por la base_tiempos_módulo añadida a un B-VOP, se resta del tiempo de presentación del B-VOP, y el valor resultante se fija como incremento_tiempo_VOP.
Por tanto, de acuerdo con el primer método, en la figura 30, se supone que el tiempo de presentación de la I1 es 0 h:12 m:35 seg:350 mseg y también el tiempo de presentación de la B4 es 0 h:12 m:36 seg:550 mseg, entonces la diferencia entre los tiempos de presentación de la I1 y de B4 es 1200 ms más de 1 segundo, y por tanto la base_tiempos_módulo (ilustrada por una marca \ding{116} en la figura 31) que indica las unidades que se llevan desde una segunda unidad a partir del tiempo de presentación de la última I1 presentada, se añade a la B4 como se ilustra en la figura 31. Más específicamente, la base_tiempos_módulo que se añade a la B4 es 10, que representa las unidades que se llevan con el valor de 1 seg. que es el valor del dígito de 1 segundo en 1200 ms. Y el incremento_tiempo_VOP para la B4 es 200, que es el valor menor que 1 segundo, obtenido a partir de la diferencia entre los tiempos de presentación entre la I1 y la B4 (el valor se obtiene restando del tiempo de presentación de la B4, el tiempo posterior a las unidades de un segundo que se llevan obtenidas desde el tiempo de presentación del último I/P-VOP presentado, indicado por la base_tiempos_módulo para la B4).
El proceso antes mencionado para la base_tiempos_módulo y para el incremento_tiempo_VOP, de acuerdo con el primer método, se efectúa en el codificador por medio de la unidad 36 de VLC ilustrada en las figuras 11 y 12, y en el codificador por medio de la unidad 102 de IVLS ilustrada en las figura 17 y 18.
Por tanto, en primer lugar se describirá el proceso para la base_tiempos_módulo y para el incremento_tiempo_VOP que es realizado por la unidad 36 de VLC, con referencia al diagrama de flujo de la figura 32.
La unidad 36 de VLC divide una secuencia de VOP en los GOV y realiza el proceso para cada uno de los GOV. Obsérvese que el GOV está constituido de manera que incluye al menos un VOP que se codifica por intra-codificación.
Si se recibe un GOV, la unidad 36 de VLC fijará el tiempo recibido como tiempo absoluto de inicio de la codificación del GOV, y el GOV será codificado hasta una precisión de un segundo del tiempo absoluto de inicio de la codificación, como código_tiempo (se codifica el tiempo absoluto de inicio de la codificación hasta el dígito de un segundo). El código_tiempo codificado está incluido en una cadena de bytes codificados. Cada vez que se recibe un I/P-VOP que constituye el GOV, la unidad 36 de VLC fija el I/P-VOP en un I/P-VOP de atención, calcula la base_tiempos_módulo y el incremento_tiempo_VOP del I/P-VOP de atención, de acuerdo con el diagrama de flujo de la figura 32 y realiza la codificación.
Es decir, en la unidad 36 de VLC, en primer lugar, en el paso S1, se fija 0B (donde B representa un número binario) en la base_tiempos_módulo y también se fija 0 para el incremento_tiempo_VOP, por lo que la base_tiempos_módulo y el incremento_tiempo_VOP son puestos a cero.
Y en el paso S2, se juzga si el I/P-VOP de atención es el primer I-VOP de un GOV a procesar (en adelante denominado objeto GOV de proceso). En el paso S2, en el caso en el que se juzga que el I/P-VOP es el primer I-VOP del objeto GOB de proceso, el paso S2 avanza hasta el paso S4. En el paso S4, la diferencia entre el código_tiempo del objeto GOV de proceso y la precisión de un segundo del I/P-VOP de proceso (en este caso, el primer I-VOP del objeto GOV de proceso), es decir, la diferencia entre el código_tiempo y el dígito de segundos del tiempo de presentación del I/P-VOP de atención, se calcula y se fija a una variable D. Después, el paso S4 avanza hasta el paso S5.
Además, en el paso S2, en el caso en que se juzga que el I/P-VOP de atención no es el primer I-VOP del objeto GOV de proceso, el paso S2 avanza hasta el paso S3. En el paso S3, se calcula el valor diferencial entre el dígito de los segundos del tiempo de presentación del último I/P-VOP de atención, y el dígito de los segundos del tiempo de presentación del último I/P-VOP presentado (que se presenta inmediatamente antes del I/P-VOP de atención del VOP que constituye el objeto GOV de proceso) y el valor diferencial se fija en la variable D. Después, el paso S3 continúa en el paso S5.
En el paso S5, se juzga si la variable D es igual a 0. Es decir, se juzga si la diferencia entre el código_tiempo y el dígito de los segundos del tiempo de presentación del I/P-VOP de atención es igual a 0, o se juzga si el valor diferencial entre el dígito de los segundos del tiempo de presentación del I/P-VOP de atención y el dígito de los segundos del tiempo de presentación del último I/P presentado es igual a 0. En el paso S5, en el caso en que se juzga que la variable D no es igual a 0, es decir, en el caso en que la variable D es igual o mayor que 1, el paso S5 avanza al paso S6, en el cual se añade 1 como byte más significativo (MSB) de la base_tiempos_módulo. Es decir, en este caso, cuando la base_tiempos_módulo es, por ejemplo, 0B inmediatamente antes de su reposición, se fija en 10B. Además, cuando la base_tiempos_módulo es, por ejemplo, 10B, se fija en 110B.
Y el paso S6 continúa en el paso S7, en el cual se incrementa en 1 la variable D. Después, el paso S7 vuelve al paso S5. De ahí en adelante, los pasos S5 a S7 se repiten hasta que se juzga, en el paso S5, que la variable D es igual a 0. Es decir, el número de unos consecutivos en la base_tiempos_módulo es el mismo que el número de segundos correspondientes a la diferencia entre el código_tiempo y el dígito de los segundos del tiempo de presentación del I/P-VOP de atención, o el valor diferencial entre el dígito de los segundos del tiempo de presentación del I/P-VOP de atención y el dígito de los segundos del tiempo de presentación del último I/P-VOP presentado. Y la base_tiempos_módulo tiene un 0 en el dígito menos significativo (LSD) de la misma.
Y en el paso S5, en el caso en que se juzga que la variable D es igual a 0, el paso S5 avanza hasta el paso S8, en el cual se fija un tiempo más fino que la precisión de un segundo del tiempo de presentación del I/P-VOP de atención, es decir, el tiempo en el cual las unidades de milisegundos, se fijan en el incremento_tiempo_VOP, y el proceso termina.
En el circuito 36 de VLC, la base_tiempos_módulo y el incremento_tiempo_VOP de un I/P-VOP de atención calculado de la manera antes mencionada, son añadidos al I/P-VOP de atención. Con esto, se incluye en una cadena de bytes codificados.
Obsérvese que la base_tiempos_módulo, el incremento_tiempo_VOP y el código_tiempo son codificados en el circuito 36 de VLC mediante la codificación de palabras de longitud variable.
Cada vez que se recibe un B-VOP que constituye un objeto GOV de proceso, la unidad 36 de VLC fija el B-VOP en un B-VOP de atención, calcula la base_tiempos_módulo y el incremento_tiempo_VOP del B-VOP de atención, de acuerdo con un diagrama de flujo de la figura 33, y realiza la codificación.
Es decir, en la unidad 36 de VLC, en el paso S11, como en el caso del paso S1 de la figura 32, se hace primero una reposición de la base_tiempos_módulo y del incremento_tiempo_VOP.
Y el paso S11 avanza hasta el paso S12, en el cual se juzga si el B-VOP de atención se presenta antes que el primer I-VOP del objeto GOV de proceso. En el paso S12, en el caso en que se juzga que el B-VOP de atención es uno que se presenta antes del primer I-VOP del objeto GOV de proceso, el paso S12 avanza al paso S14. En el paso S14, se calcula la diferencia entre el código_tiempo del objeto GOV de proceso y el tiempo de presentación del B-VOP de atención (en este caso, el B-VOP que se presenta antes que el primer I-VOP del objeto GOV de proceso) y se fija en una variable D. Después, el paso S13 avanza hacia el paso S15. Por tanto, en la figura 33, se fija en la variable D un tiempo con la precisión de un milisegundo (el tiempo hasta el dígito de milisegundos), (por otra parte, el tiempo con la precisión de un segundo se fija en la variable de la figura 32, como se ha descrito anteriormente).
Además, en el paso S12, en el caso en que se juzga que el B-VOP de atención es uno que se presenta después del primer I-VOP del objeto GOV de proceso, el paso S12 avanza hasta el paso S14. En el paso S14, se calcula el valor diferencial entre el tiempo de presentación del B-VOP de atención y el tiempo de presentación del último I/P-VOP presentado (que se presenta inmediatamente antes del B-VOP de atención del VOP que constituye el objeto GOV de proceso) y el valor diferencial se fija en la variable D. Después, el paso S13 avanza hasta el paso S15.
En el paso S15 se juzga si la variable D es mayor que 1. Es decir, se juzga si el valor de la diferencia entre el código_tiempo y el tiempo de presentación del B-VOP de atención es mayor que 1, o se juzga si el valor de la diferencia entre el tiempo de presentación del B-VOP de atención y el tiempo de presentación del último I/P-VOP presentado es mayor que 1. En el paso S15, en el caso en que se juzgue que la variable D es mayor que 1, el paso S15 continúa en el paso S17, en el cual se añade 1 como byte más significativo (MSB) de la base_tiempos_módulo. En el paso S17, se disminuye en 1 la variable D. Después, el paso S17 vuelve al paso S15. Y hasta que se juzga en el paso S15 que la variable D no es mayor que 1, se repiten los pasos S15 a S17. Es decir, con esto, el número de unos consecutivos en la base_tiempos_módulo es el mismo que el número de segundos correspondientes a la diferencia entre el código_tiempo y el tiempo de presentación del B-VOP de atención o el valor diferencial entre el tiempo de presentación del B-VOP de atención y el tiempo de presentación del último I/P-VOP presentado. Y la base_tiempos_módulo tiene un 0 como dígito menos significativo (LSD) de la misma.
Y en el paso S15, en el caso en que se juzgue que la variable D no es mayor que 1, el paso S15 continúa en el paso S18, en el cual el valor de la variable D actual, es decir, el valor diferencial entre el código_tiempo y el tiempo de presentación del B-VOP de atención, o el dígito de milisegundos a la derecha del dígito de los segundos del diferencial entre el tiempo de presentación del B-VOP de atención y el tiempo de presentación del último I/P-VOP presentado, se fija en el incremento_tiempo_VOP, y el proceso termina.
En el circuito 36 de VLC, la base_tiempos_módulo y el incremento_tiempo_VOP de un B-VOP de atención calculado de la manera antes mencionada, son añadidos al B-VOP de atención. Con esto, se incluye en una cadena de bytes codificados.
A continuación, cada vez que se reciben los datos codificados para cada VOP, la unidad 102 de IVLC procesa el VOP como un VOP de atención. Con este proceso, la unidad 102 de IVLC reconoce el tiempo de presentación de un VOP incluido en una cadena codificada que la unidad 36 de VLC entrega como salida dividiendo una secuencia de VOP en los GOV, y también procesando cada GOV de la manera antes mencionada. Después, la unidad 102 de IVLC efectúa la codificación de palabras de longitud variable, de manera que se presenta el VOP en el tiempo de presentación reconocido. Es decir, si se recibe un GOV, la unidad 102 de IVLC reconocerá el código_tiempo del GOV. Cada vez que se recibe un I/P-VOP que constituye el GOV, la unidad 102 de IVLC fija el I/P-VOP en un I/P-VOP de atención, y calcula el tiempo de presentación del I/P-VOP de atención basándose en la base_tiempos_módulo y el incremento_tiempo_VOP del I/P-VOP de atención, de acuerdo con un diagrama de flujo de la figura 34.
Es decir, en la unidad 102 de IVLC, en primer lugar se juzga en el paso S21 si el I/P-VOP de atención es el primer I-VOP del objeto GOV de proceso. En el paso S21, en el caso en que se juzga si el I/P-VOP de atención es el primer I-VOP del objeto GOV de proceso, el paso S21 continúa en el paso S23. En el paso S23, se fija el código_tiempo del objeto GOV de proceso en una variable T, y el paso S23 continúa en el paso S24.
Además, en el paso S21, en el caso en que se juzgue que el I/P-VOP de atención no es el primer I-VOP del objeto GOV de proceso, el paso S21 continúa en el paso S22. En el paso S22, se fija en la variable T un valor de hasta el dígito de los segundos del tiempo de presentación del último I/P-VOP presentado (que es uno de los VOP que constituyen el objeto GOV de proceso) presentado inmediatamente antes del I/P-VOP de atención. Después, el paso S22 continúa en el paso S24.
En el paso S24, se juzga si la base_tiempos_módulo añadida al I/P-VOP de atención es igual a 0B. En el paso S24, en el caso en que se juzgue que la base_tiempos_módulo añadida al I/P-VOP de atención no es igual a 0B, es decir, en el caso en que la base_tiempos_módulo añadida al I/P-VOP de atención incluya un 1, el paso S24 continúa en el paso S25, en el cual se elimina el 1 del MSB de la base_tiempos_módulo. El paso S25 continúa en el paso S26, en el cual se incrementa la variable T en 1. Después, el paso S26 vuelve al paso S24. De ahí en adelante, hasta que en el paso S24 se juzgue que la base_tiempos_módulo añadida al I/P-VOP de atención es igual a 0B, se repiten los pasos S24 a S26. Con esto, la variable T se incrementa en el número de segundos que corresponde al número de unos de la primera base_tiempos_módulo añadida al I/P-VOP de atención.
Y en el paso S24, en el caso en que la base_tiempos_módulo añadida al I/P-VOP de atención sea igual a 0B, el paso S24 continúa en el paso S27, en el cual se añade a la variable T el tiempo con precisión de un milisegundo, indicado por el incremento_tiempo_VOP. El valor añadido se reconoce como el tiempo de presentación del I/P-VOP de atención y el proceso termina.
A continuación cuando se recibe un B-VOP que constituye el objeto GOV de proceso, la unidad 102 de IVLC fija el B-VOP en un B-VOP de atención y calcula el tiempo de presentación del B-VOP de atención, basándose en la base_tiempos_módulo y en el incremento_tiempo_VOP del B-VOP de atención, de acuerdo con un diagrama de flujo de la figura 35.
Es decir, en la unidad 102 de IVLC, en primer lugar, en el paso S31, se juzga si el B-VOP de atención es uno que se presenta antes del primer I-VOP del objeto GOV de proceso. En el paso S31, en el caso en que se juzga que el B-VOP de atención es uno que se presenta antes del primer I-VOP del objeto GOV de proceso, el paso S31 continúa en el paso S33. De ahí en adelante, en los pasos S33 a S37, como en el caso de los pasos S23 a S27 de la figura 34, se efectúa un proceso similar, con lo que se calcula el tiempo de presentación del B-VOP de atención.
Por otra parte, en el paso S31, en el caso en que se juzgue que el B-VOP de atención es uno que se presenta después del primer I-VOP del objeto GOV de proceso, el paso S31 continúa en el paso S32. De ahí en adelante, en los pasos S32 y S34 a S37, como en el caso de los pasos S22 y S24 a S27 de la figura 34, se efectúa un proceso similar, con lo que se calcula el tiempo de presentación del B-VOP de atención.
A continuación, en el segundo método, se calcula el tiempo entre el tiempo de presentación de un I-VOP y el tiempo de presentación de un B-VOP pronosticado a partir del I-VOP, hasta el dígito de los segundos. El valor se expresa con la base_tiempos_módulo, mientras que se expresa la precisión de milisegundos del tiempo de presentación de B-VOP con el incremento_tiempo_VOP. Es decir, la VM-6.0, como se ha descrito anteriormente, la distancia temporal a un I-VOP o P-VOP se fija en el incremento_tiempo_VOP para un B-VOP, de manera que el peso, con relación al I-VOP o P-VOP que se emplea como imagen de referencia para efectuar la codificación de predicción del B-VOP, se determina a partir del B-VOP sobre la base de la distancia temporal al I-VOP o P-VOP dispuestos a través del B-VOP. Por esta razón, el incremento_tiempo_VOP para el I-VOP o P-VOP es diferente del tiempo desde el punto de sincronización marcado por la última base_tiempos_módulo codificada/descodificada. Sin embargo, si se calcula el tiempo de presentación de un B-VOP y también el I-VOP o P-VOP dispuestos a través del B-VOP, la distancia temporal entre ellos puede calcularse por la diferencia entre ellos. Por tanto, hay muy poca necesidad de manejar solamente el incremento_tiempo_VOP para el B-VOP independientemente de los incrementos_tiempo_VOP del I-VOP y del P-VOP. Por el contrario, desde el punto de vista de la eficacia del proceso, es preferible que todos los incrementos_tiempo_VOP (información detallada del tiempo) para los I-, B- y P-VOP y, además, la base_tiempos_módulo (información de tiempo con precisión de segundos) sean manejados de la misma manera.
Por tanto, en el segundo método, la base_tiempos_módulo y el incremento_tiempo_VOP para el B-VOP se manejan de la misma manera que las de los I/P-VOP.
La figura 36 muestra la relación entre el código_tiempo para un GOV y la base_tiempos_módulo y el incremento_tiempo_VOP en el caso en que la base_tiempos_módulo y el incremento_tiempo_VOP hayan sido codificados de acuerdo con el segundo método, por ejemplo, en el caso ilustrado en la figura 30.
Es decir, incluso en el segundo método, se permite la adición de la base_tiempos_módulo no solamente para un I-VOP y un P-VOP, sino también para un B-VOP. Y la base_tiempos_módulo añadida a un B-VOP, como la base_tiempos_módulo añadida a un I/P-VOP, representa la conmutación de los puntos de sincronización.
Además, en el segundo método, el tiempo de sincronización marcado por la base_tiempos_módulo añadida a un B-VOP se resta del tiempo de presentación del B-VOP, y el valor resultante se fija como incremento_tiempo_VOP.
Por tanto, de acuerdo con el segundo método, en la figura 30, las bases_tiempo_módulo para I1 y B2, presentadas entre el primer punto de sincronización de un GOV (que es el tiempo representado por el código_tiempo del GOV) y el punto de sincronización marcado por el código_tiempo + 1 segundo, son ambos 0B. Y los valores de la unidad de milisegundos inferior a la unidad de segundos de los tiempos de presentación de la I1 y la B2, se fijan en los incrementos_tiempo_VOP para I1 y B2, respectivamente. Además, las bases_tiempo_módulo para B3 y B4, presentadas entre el punto de sincronización marcado por el código_tiempo + 1 segundo y el punto de sincronización marcado por el código_tiempo + 2 segundos, son ambos 10B. Y los valores de la unidad de milisegundos inferior a la unidad de segundos de los tiempos de presentación de la B3 y B4 se fijan en los incrementos_tiempo_VOP para B3 y B4, respectivamente. Además, la base_tiempos_módulo para P5, presentada entre el punto de sincronización marcado por el código_tiempo + 2 segundos y el punto de sincronización marcado por el código_tiempo + 3 segundos, es 110B. Y el valor de la unidad de milisegundos inferior a la unidad de segundos del tiempo de presentación de la P5 se fija en el incremento_tiempo_VOP para la P5.
Por ejemplo, en la figura 30, si se supone que el tiempo de presentación de la I1 es 0 h:12 m:35 s:350 ms y también que el tiempo de presentación de la B4 es 0 h:12 m:36 s:550 ms, como se ha descrito anteriormente, las bases_tiempo_módulo para I1 y B4 son 0B y 10B, respectivamente. Además, los incrementos_tiempo_VOP para I1 y B4 son 0B, 350 ms y 550 ms (que son la unidad de milisegundos del tiempo de presentación), respectivamente.
El proceso antes mencionado para la base_tiempos_módulo y el incremento_tiempo_VOP, de acuerdo con el segundo método, como en el caso del primer método, lo efectúa la unidad 36 de VLC ilustrada en las figuras 11 y 12, y también por la unidad 102 de IVLC ilustrada en las figuras 17 y 18.
Es decir, la unidad 36 de VLC calcula la base_tiempos_módulo y el incremento_tiempo_VOP para un I/P-VOP, de la misma manera que en el caso de la figura 32.
Además, para un B-VOP, cada vez que se recibe el B-VOP que constituye un GOV, la unidad 36 de VLC fija el B-VOP en un B-VOP de atención y calcula la base_tiempos_módulo y el incremento_tiempo_VOP del B-VOP de atención, de acuerdo con un diagrama de flujo de la figura 37.
Es decir, en la unidad 36 de VLC, en primer lugar, en el paso S41 se hace una reposición de la base_tiempos_módulo y del incremento_tiempo_VOP, de la misma manera que en el caso del paso S1 de la figura 32.
Y el paso S41 continúa en el paso S42, en el cual se juzga si el B-VOP de atención es el que se presenta antes del primer I-VOP de un GOV a procesar (un objeto GOV de proceso). En el paso S42, en el caso en que se juzga si el B-VOP de atención en uno que se presenta antes del primer I-VOP del objeto GOV de proceso, el paso S42 continúa en el paso S44. En el paso S44, la diferencia entre el código_tiempo del objeto GOV de proceso y la precisión en segundos del B_VOP de atención, es decir, se calcula la diferencia entre el código_tiempo y el dígito de los segundos del tiempo de presentación del B-VOP de atención, y se fija en una variable D. Después, el paso S44 continúa en el paso S45.
Además, en el paso S42, en el caso en que se juzgue que el B-VOP de atención es el que se presenta después del primer I-VOP del objeto GOV de proceso, el paso S42 continúa en el paso S43. En el paso S43, se calcula el valor diferencial entre el dígito de los segundos y el tiempo de presentación del B-VOP de atención y el dígito de los segundos del tiempo de presentación del último I/P-VOP presentado (que es uno de los VOP que constituyen el objeto GOV de proceso, presentado inmediatamente antes del B-VOP de atención) y se fija el valor diferencial en la variable D. Después, el paso S43 continúa en el paso S45.
En el paso S45 se juzga si la variable D es igual a 0. Es decir, se juzga si la diferencia entre el código_tiempo y el dígito de los segundos del tiempo de presentación del B-VOP de atención es igual a 0, o se juzga si el valor diferencial entre el dígito de los segundos del tiempo de presentación del B-VOP de atención y el dígito de los segundos del tiempo de presentación del último I/P-VOP presentado es igual a 0 segundos. En el paso S45, en el caso en que se juzga si la variable D no es igual a 0, es decir, en el caso en que la variable D es igual o mayor que 1, el paso S45 continúa en el paso S46, en el cual se suma 1 al MSB de la base_tiempos_módulo.
Y el paso S46 avanza hasta el paso S47, en el cual la variable D se incrementa en 1. Después, el paso S47 vuelve al paso S45. De ahí en adelante, hasta el paso S45 en que se juzga si la variable D es igual a 0, se repiten los pasos S45 a S47. Es decir, con esto, el número de unos consecutivos en la base_tiempos_módulo es el mismo que el número de segundos correspondientes a la diferencia entre el código_tiempo y el dígito de los segundos del tiempo de presentación del B-VOP de atención o el valor diferencial entre el dígito de los segundos del tiempo de presentación del B-VOP de atención y el dígito de los segundos del tiempo de presentación del último I/P-VOP presentado. Y la base_tiempos_módulo tiene un 0 en el LSD de la misma.
Y en el paso S45, en el caso en que se juzga que la variable D es igual a cero, el paso 45 continúa en el paso S48, en el cual el tiempo con precisión más fina que los segundos del tiempo de presentación del B-VOP de atención, es decir, el tiempo en la unidad de milisegundos, se fija en el incremento_tiempo_VOP, y el proceso termina.
Por otra parte, para un I/P-VOP, la unidad 102 de IVLC calcula el tiempo de presentación del I/P-VOP, basándose en la base_tiempos_módulo y en el incremento_tiempo_VOP, de la misma manera que el caso antes mencionado de la figura 34.
Además, para un B-VOP, cada vez que se recibe el B-VOP que constituye un GOV, la unidad 102 de IVLC fija el B-VOP en un B-VOP de atención y calcula el tiempo de presentación del B-VOP de atención, basándose en la base_tiempos_módulo y en el incremento_tiempo_VOP del B-VOP de atención, de acuerdo con un diagrama de flujo de la figura 38.
Es decir, en la unidad 102 de IVLC, en primer lugar, en el paso S51 se juzga si el B-VOP de atención es uno que se presenta antes que el primer I-VOP del objeto GOV de proceso. En el paso S51, en el caso en que se juzga que el B-VOP de atención es el que se presenta antes que el primer I-VOP del objeto GOV de proceso. En el paso S51, en el caso en que se juzga que el B-VOP de atención es uno que se presenta antes del primer I-VOP del objeto GOV de proceso, el paso S51 continúa en el paso S52. En el paso S52, el código_tiempo del objeto GOV de proceso se fija en una variable T, y el paso S52 continúa en el paso S54.
Además, en el paso S51, en el caso en que se juzga que el B-VOP de atención es uno que se presenta después del primer I-VOP del objeto GOV de proceso, el paso S51 continúa en el paso S53. En el paso S53, se fija en la variable T un valor hasta el dígito de los segundos del tiempo de presentación del último I/P-VOP presentado (que es uno de los VOP que constituye el objeto GOV de proceso, presentado inmediatamente antes del B-VOP de atención). Después, el paso S53 continúa en el paso S54.
En el paso S54 se juzga si la base_tiempos_módulo añadida al B-VOP de atención es igual a 0B. En el paso S54, en el caso en que se juzga que la base_tiempos_módulo añadida al B-VOP de atención no es igual a 0B, es decir, en el caso en que la base_tiempos_módulo añadida al B-VOP de atención incluye 1, el paso S54 continúa en el paso S55, en el cual se elimina el 1 del MSB de la base_tiempos_módulo. El paso S55 continúa en el paso S56, en el cual se incrementa en 1 la variable T. Después, el paso S56 vuelve al paso S54.
De ahí en adelante, hasta que se juzga en el paso S54 que la base_tiempos_módulo añadida al B-VOP de atención es igual a 0B, se repiten los pasos S54 a S56. Con esto, la variable T se incrementa en el número de segundos que se corresponde con el número de unos en la primera base_tiempos_módulo añadida al B-VOP de atención.
Y en el paso S54, en el caso en que la base_tiempos_módulo añadida al B-VOP de atención sea igual a 0B, el paso S54 avanza hasta el paso S57, en el cual se añade a la variable T, un tiempo con la precisión de un milisegundo, indicado por el incremento_tiempo_VOP. El valor añadido se reconoce como tiempo de presentación del B-VOP de atención, y el proceso termina.
Así, en el modo de realización de la presente invención, la capa GOV para codificar el tiempo absoluto de inicio de la codificación, se introduce en la constitución jerárquica de una cadena de bytes codificados. Esta capa GOV puede ser insertada en una posición apropiada de la cadena de bytes codificados, así como en la cabecera de la cadena de bytes codificados. Además, las definiciones de la base_tiempos_módulo y del incremento_tiempo_VOP prescritos en la VM-6.0 se han cambiado como se ha descrito anteriormente. Por tanto, se hace posible en todos los casos calcular el tiempo de presentación (tiempo absoluto) de cada VOP, independientemente de la disposición de los tipos de imágenes de los VOP y del intervalo de tiempo entre VOP contiguos.
Por tanto, en el codificador, el tiempo absoluto de inicio de la codificación se codifica en una unidad GOV y también se codifican la base_tiempos_módulo y el incremento_tiempo_VOP. Los datos codificados son incluidos en una cadena de bytes codificados. Con esto, en el descodificador, el tiempo absoluto de inicio de la codificación puede ser descodificado en la unidad GOV y también pueden descodificarse la base_tiempos_módulo y el incremento_tiempo_VOP de cada VOP. Y el tiempo de presentación de cada VOP puede ser descodificado, de manera que se hace posible realizar el acceso aleatorio eficientemente en una unidad GOV.
\newpage
Obsérvese que si el número de unos que son añadidos a la base_tiempos_módulo aumenta meramente cuando se conmuta un punto de sincronización, alcanzará un enorme número de bytes. Por ejemplo, si ha transcurrido una hora (3600 segundos) desde el tiempo marcado por código_tiempo (en el caso en que un GOV esté constituido por los VOP equivalentes e ese tiempo), la base_tiempos_módulo alcanzará los 3601 bytes, porque está constituida por un 1 de 3600 bytes y un 0 de 1 byte.
Por tanto, en el MPEG-4, la base_tiempos_módulo está prescrita de manera que se pone a cero en un I/P-VOP que es el primero presentado después de que se haya conmutado un punto de sincronización.
Por tanto, por ejemplo, como se ilustra en la figura 39, en el caso en que un GOV esté constituido por I1 y B2, presentadas entre el primer punto de sincronización del GOV (que es el tiempo representado por el código_tiempo del GOV) y el punto de sincronización marcado por el código_tiempo + 1 segundo, B3 y B4 presentadas entre el punto de sincronización marcado por el código_tiempo + 1 segundo y el punto de sincronización marcado por el código_tiempo + 2 segundos, P5 y P6 presentadas entre el punto de sincronización marcado por el código_tiempo + 2 segundos y el punto de sincronización marcado por el código_tiempo + 3 segundos, B7 presentada entre el punto de sincronización marcado por el código_tiempo + 3 segundos y el punto de sincronización marcado por el código_tiempo + 4 segundos, y B8 presentada entre el punto de sincronización marcado por el código_tiempo + 4 segundos y el punto de sincronización marcado por el código_tiempo + 5 segundos, las bases_tiempo_módulo para la I1 y B2, presentadas entre el primer punto de sincronización del GOV y el punto de sincronización marcado por el código_tiempo + 1 segundo, son fijadas en 0B.
Además, las bases_tiempo_módulo para la B3 y B4, presentadas entre el punto de sincronización marcado por el código_tiempo + 1 segundo y el punto de sincronización marcado por el código_tiempo + 2 segundos, se fijan en 10B. Además, la base_tiempos_módulo para la P5, presentada entre el punto de sincronización marcado por el código_tiempo + 2 segundos y el punto de sincronización marcado por el código_tiempo + 3 segundos, se fija en 110B.
Como la P5 es un P-VOP que se presenta en primer lugar después de que se ha conmutado el primer punto de sincronización de un GOV, al punto de sincronización marcado por el código_tipo + 1 segundo, la base_tiempos_módulo para la P5 se fija en 0B. La base_tiempos_módulo para la B6, que se presenta después de la B5, se fija bajo la suposición de que un punto de sincronización de referencia, utilizado para calcular el tiempo de presentación de la P5, es decir, el punto de sincronización marcado por el código_tiempo + 2 segundos en este caso, es el primer punto de sincronización del GOV. Por tanto, la base_tiempos_módulo para la B6 se fija en 0B.
De ahí en adelante, la base_tiempos_módulo para la B7, presentada entre el punto de sincronización marcado por el código_tiempo + 3 segundos y el punto de sincronización marcado por el código_tiempo + 4 segundos, se fija en 10B. La base_tiempos_módulo para la B8, presentada entre el punto de sincronización marcado por el código_tiempo + 4 segundos y el punto de sincronización marcado por el código_tiempo + 5 segundos, se fija en 110B.
El proceso en el codificador (unidad 36 de VLC) descrito en las figuras 32, 33 y 37 se realiza de manera que fija la base_tiempos_módulo de la manera antes mencionada.
Además, en este caso, cuando se detecta el primer I/P-VOP presentado tras la conmutación de puntos de sincronización, en el descodificador (unidad 102 de IVLC) hay la necesidad de sumar el número de segundos indicado por la base_tiempos_módulo para el I/P-VOP, con el código tiempo y calcular el tiempo de presentación. Por ejemplo, en el caso ilustrado en la figura 39, los tiempos de presentación de I1 a P5 se pueden calcular sumando el número de segundos correspondientes a la base_tiempos_módulo de cada VOP y el incremento_tiempo_VOP con el código_tiempo. Sin embargo, los tiempos de presentación de B6 a B8, presentados tras P5, que se presenta en primer lugar tras una conmutación de puntos de sincronización, necesitan ser calculados sumando el número de segundos correspondientes a la base_tiempos_módulo de cada VOP y el incremento_tiempo_VOP con el código_tiempo y, además, sumando 2 segundos que es el número de segundos correspondiente a la base_tiempos_módulo de P5. Por esta razón, el proceso descrito en las figuras 34, 35 y 38, se efectúa para calcular el tiempo de presentación de la manera antes mencionada.
A continuación, el codificador y descodificador antes mencionados pueden también ser materializados por un hardware específico o haciendo que un computador ejecute un programa que realice el proceso antes mencionado.
La figura 40 muestra un ejemplo de constitución de un modo de realización de un computador que funciona como el codificador de la figura 3 o el descodificador de la figura 15.
Una memoria de sólo lectura (ROM) 201 almacena un programa de arranque, etc. Una unidad central de proceso 202 efectúa diversos procesos ejecutando un programa almacenado en un disco duro (HD) 206 en una memoria de acceso aleatorio (RAM) 203. La RAM 203 almacena programas temporalmente que son ejecutados por la CPU 202 o los datos necesarios para ser procesados por la CPU. Una sección 204 de entrada está constituida por un teclado o un ratón. La sección 204 de entrada se acciona cuando se introduce una orden o unos datos necesarios. Una sección 205 de salida está constituida, por ejemplo, por una pantalla y presenta unos datos de acuerdo con el control de la CPU 202. El HD 206 almacena programas que han de ejecutarse por la CPU 202, datos de imagen a codificar, datos codificados (cadena de bytes codificados), datos de imagen descodificados, etc. Un interfaz (I/F) 207 de comunicaciones recibe los datos de imagen de un objeto de codificación desde un equipo externo, o transmite una cadena de bytes codificados a equipos externos, controlando la comunicación entre él y el equipo externo. Además, el I/F 207 de comunicaciones recibe una cadena de bytes codificados desde una unidad externa o transmite datos codificados de imagen descodificados a una unidad externa.
Al hacer que la CPU 202 del computador así constituido, ejecute un programa que realiza el proceso antes mencionado, este computador funciona como un codificador de la figura 3 o el descodificador de la figura 15.
En el modo de realización de la presente invención, aunque el incremento_tiempo_VOP representa el tiempo de presentación de un VOP en la unidad de los milisegundos, el incremento_tiempo_VOP puede hacerse también como sigue. Esto es, el tiempo entre un punto de sincronización y el siguiente punto de sincronización se divide en N puntos, y el incremento_tiempo_VOP puede ser fijado en un valor que representa la posición enésima del punto dividido correspondiente al tiempo de presentación de un VOP. En el caso en que el incremento_tiempo_VOP se defina así, si N = 1000, representará el tiempo de presentación de un VOP en la unidad de milisegundos. En este caso, aunque se requiere la información sobre el número de puntos divididos entre puntos de sincronización contiguos, el número de puntos divididos puede ser predeterminado o el número de puntos divididos incluidos en una capa superior a la capa GOV puede ser transmitido a un descodificador.
De acuerdo con el codificador de imágenes y con el método de codificación de imágenes expuestos, se divide una o más capas de cada secuencia de objetos que constituyen una imagen en una pluralidad de grupos, y los grupos son codificados. Por tanto, se hace posible tener un acceso aleatorio al resultado codificado en una unidad de grupos.
De acuerdo con el descodificador de imágenes y con el método de descodificación de imágenes expuestos, se descodifica una cadena de bytes codificados, obtenida al dividir una o más capas de cada secuencia de objetos que constituyen la imagen en una pluralidad de grupos, y también codificando los grupos. Por tanto, se hace posible tener un acceso aleatorio a la cadena de bytes codificados en una unidad de grupos y descodificar la cadena de bytes.
De acuerdo con el medio de distribución expuesto, se distribuye una cadena de bytes codificados, obtenida al dividir una o más capas de cada secuencia de objetos que constituyen la imagen, en una pluralidad de grupos y también codificando los grupos. Por tanto, se hace posible tener un acceso aleatorio a la cadena de bytes codificados en una unidad de grupos.
De acuerdo con el codificador de imágenes y con el método de codificación expuestos, se genera la información de tiempos con precisión de un segundo, que indica el tiempo con precisión dentro de un segundo, y se genera la información detallada de tiempos, que indica un periodo de tiempo entre la información de tiempo con precisión de un segundo, directamente antes del tiempo de presentación de I-VOP, P-VOP o B-VOP y el tiempo de presentación dentro de una precisión más fina que un segundo. Por tanto, se hace posible reconocer los tiempos de presentación del I-VOP, P-VOP y B-VOP sobre la base de la información de tiempos con precisión de un segundo y la información detallada de tiempos, y realizar un acceso aleatorio sobre la base del resultado del reconocimiento.
De acuerdo con el descodificador de imágenes y con el método de descodificación expuestos, los tiempos de presentación del I-VOP, P-VOP y B-VOP se calculan basándose en la información de tiempos con precisión de un segundo y en la información detallada de tiempos. Por tanto, se hace posible realizar un acceso aleatorio, basándose en el tiempo de presentación.
De acuerdo con el medio de distribución expuesto, se distribuye una cadena de bytes codificados que se obtiene generando información de tiempo con precisión de un segundo, que indica el tiempo con precisión dentro de un segundo, generando también información detallada del tiempo que indica un periodo de tiempo entre la información de tiempo con precisión de un segundo, directamente antes del tiempo de presentación de I-VOP, P-VOP o B-VOP y el tiempo de presentación con una precisión más fina que la precisión de un segundo, y además sumando la información de tiempos con precisión de un segundo y la información detallada de tiempos a un correspondiente I-VOP, P-VOP o B-VOP como información que indica el tiempo de presentación de dicho I-VOP, P-VOP o B-VOP. Por tanto, se hace posible reconocer los tiempos de presentación del I-VOP, P-VOP y B-VOP sobre la base de la información de tiempos con precisión de un segundo y la información detallada de tiempos, y realizar un acceso aleatorio sobre la base del resultado del reconocimiento.
Aplicabilidad industrial
La presente invención puede ser utilizada en unidades de grabación-regeneración de información de imágenes, en las cuales se graban datos de imágenes dinámicas en medios de almacenamiento, tales como un disco magneto-óptico, cinta magnética, etc., y también los datos grabados se regeneran y se presentan en una pantalla. La invención puede ser utilizada también en sistemas de videoconferencia, sistemas de videófono, equipos de radiodifusión y sistemas de recuperación de base de datos multimedia, en los cuales los datos de imágenes dinámicas son transmitidos desde un lado transmisor a un lado receptor a través de un camino de transmisión y, en el lado receptor, los datos dinámicos recibidos son presentados o editados y grabados.

Claims (4)

1. Un método de codificación de imágenes para producir una cadena de bytes codificados al codificar una imagen formada por una secuencia de objetos, dicho método comprende las etapas de:
codificar un objeto que sea un plano de objetos intra-vídeo (I-VOP) por intracodificación;
codificar un objeto que sea una VOP de predicción (P-VOP) por, intracodificación o por codificación de predicción hacia delante, cualquiera de las dos;
codificar un objeto que sea una VOP de predicción bidireccional (B-VOP) por intracodificación, codificación de predicción hacia delante, codificación de predicción hacia atrás o codificación de predicción bidireccional;
agrupar dichas VOP en uno o más grupos (GOV), teniendo asociado cada grupo un orden de presentación, de acuerdo con el cual se presenta una pluralidad de VOP del correspondiente grupo al reproducir la imagen y añadir un código de tiempo de grupo que representa un tiempo absoluto correspondiente a un punto de sincronismo asociado con un primer objeto en el orden de presentación del grupo correspondiente, comprendiendo el código de tiempo del grupo un valor de horas_código_tiempo que representa una unidad horaria de tiempo, un valor de minutos_código_tiempo que representa una unidad en minutos de tiempo, y un valor de segundos_código_tiempo que representa una unidad en segundos de tiempo del punto de sincronismo;
generar (S3-S7; S43-S47) información de tiempo con precisión de segundos (tiempo_base_módulo) indicativo de un valor del tiempo en unidades de segundos como información que representa una hora de presentación de cada VOP en el grupo;
generar (S8; S48) una información detallada del tiempo (incremento_tiempo_VOP) indicativo de un valor del tiempo en unidades de precisión más precisas que un segundo como información que representa una hora de presentación de cada VOP en el grupo; y
añadir (36) dicha información de tiempo con precisión de segundos (tiempo_base_módulo) y dicha información detallada del tiempo (incremento_tiempo_VOP) a dicho código de tiempo de grupo como información indicativa de la hora de presentación de dichos VOPs.
2. Un método de codificación de imágenes como se reivindica en la reivindicación 1, en el que dicho código de tiempo del grupo es un código de tiempo absoluto cuando se inicia la codificación del grupo correspondiente.
3. Un medio de almacenamiento que almacena una cadena de bytes codificados producidos por un método de codificación tal como se expone en la reivindicación 1.
4. Un codificador de imágenes para producir una cadena de bytes codificados al codificar una imagen formada por una secuencia de objetos con un objeto codificado mediante intracodificación que sea un plano de objeto intra-vídeo (I-VOP), con un objeto codificado por intra-codificación o bien por codificación de predicción hacia delante que sea un VOP de predicción (P-VOP), y con un objeto codificado por intracodificación, codificación de predicción hacia delante, codificación de predicción hacia atrás o codificación de predicción bidireccional que sea un VOP de predicción bidireccional (B-VOP)
comprendiendo dicho aparato:
medios para agrupar dichos VOPs dentro de uno o más grupos (GOVs), teniendo asociado cada grupo un orden de presentación, de acuerdo con el cual se presenta una pluralidad de VOP del correspondiente grupo al reproducir la imagen y añadir un código de tiempo de grupo que representa un tiempo absoluto correspondiente a un punto de sincronismo asociado con un primer objeto en el orden de presentación del grupo correspondiente, comprendiendo el código de tiempo del grupo un valor de horas_código_tiempo que representa una unidad horaria de tiempo, un valor de minutos_código_tiempo que representa una unidad en minutos de tiempo, y un valor de segundos_código_tiempo que representa una unidad en segundos de tiempo del punto de sincronismo;
medios para generar (S3-S7; S43-S47) información de tiempo con precisión de segundos (tiempo_base_módulo) indicativo de un valor del tiempo en unidades de segundos como información que representa una hora de presentación de cada VOP en el grupo;
medios para generar (S8; S48) una información detallada del tiempo (incremento_tiempo_VOP) indicativo de un valor del tiempo en unidades de precisión más precisas que un segundo como información que representa una hora de presentación de cada VOP en el grupo; y
medios para añadir dicha información de tiempo con precisión de segundos (tiempo_base_módulo) y dicha información detallada del tiempo (incremento_tiempo_VOP) a dicho código de tiempo de grupo como información indicativa de la hora de presentación de dichos VOPs.
ES01115561T 1997-04-01 1998-03-31 Codificador de imagenes, metodo de codificacion de imagenes, descodificador de imagenes, metodo de descodificacion de imagenes, y medio de distribucion. Expired - Lifetime ES2323358T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP9-99683 1997-04-01
JP9968397 1997-04-01

Publications (1)

Publication Number Publication Date
ES2323358T3 true ES2323358T3 (es) 2009-07-14

Family

ID=14253845

Family Applications (2)

Application Number Title Priority Date Filing Date
ES01115561T Expired - Lifetime ES2323358T3 (es) 1997-04-01 1998-03-31 Codificador de imagenes, metodo de codificacion de imagenes, descodificador de imagenes, metodo de descodificacion de imagenes, y medio de distribucion.
ES98911112T Expired - Lifetime ES2323482T3 (es) 1997-04-01 1998-03-31 Dispositivo de codificacion de imagenes, metodo de codificacion de imagenes, dispositivo de descodificacion de imagenes, metodo de descodificacion de imagenes, y medio suministrador.

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES98911112T Expired - Lifetime ES2323482T3 (es) 1997-04-01 1998-03-31 Dispositivo de codificacion de imagenes, metodo de codificacion de imagenes, dispositivo de descodificacion de imagenes, metodo de descodificacion de imagenes, y medio suministrador.

Country Status (14)

Country Link
US (5) US6414991B1 (es)
EP (2) EP0914007B9 (es)
JP (1) JP3380983B2 (es)
KR (2) KR100418141B1 (es)
CN (3) CN100579230C (es)
AT (2) ATE425638T1 (es)
AU (1) AU732452B2 (es)
CA (1) CA2255923C (es)
ES (2) ES2323358T3 (es)
HK (3) HK1043461B (es)
ID (1) ID20680A (es)
IL (2) IL167288A (es)
TW (1) TW398150B (es)
WO (1) WO1998044742A1 (es)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100418141B1 (ko) * 1997-04-01 2004-06-09 소니 가부시끼 가이샤 화상부호화장치,화상부호화방법,화상복호화장치및화상복호화방법
JP4261630B2 (ja) * 1998-02-04 2009-04-30 キヤノン株式会社 画像符号化装置及び方法、画像符号化プログラムが記録されたコンピュータ可読記録媒体
JP2000013790A (ja) 1998-06-19 2000-01-14 Sony Corp 画像符号化装置および画像符号化方法、画像復号装置および画像復号方法、並びに提供媒体
US6637031B1 (en) * 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
EP1018840A3 (en) * 1998-12-08 2005-12-21 Canon Kabushiki Kaisha Digital receiving apparatus and method
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
US6499060B1 (en) * 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
US7589789B2 (en) * 1999-05-08 2009-09-15 Lg Electronics Inc. Video converting device and method for digital TV
US6639943B1 (en) * 1999-11-23 2003-10-28 Koninklijke Philips Electronics N.V. Hybrid temporal-SNR fine granular scalability video coding
US7020195B1 (en) * 1999-12-10 2006-03-28 Microsoft Corporation Layered coding and decoding of image data
EP1243141B1 (en) * 1999-12-14 2011-10-19 Scientific-Atlanta, LLC System and method for adaptive decoding of a video signal with coordinated resource allocation
US6697426B1 (en) * 2000-03-17 2004-02-24 Koninklijke Philips Electronics N.V. Reduction of layer-decoding complexity by reordering the transmission of enhancement layer frames
JP4208398B2 (ja) * 2000-10-05 2009-01-14 株式会社東芝 動画像復号再生装置、動画像復号再生方法及びマルチメディア情報受信装置
US6618445B1 (en) * 2000-11-09 2003-09-09 Koninklijke Philips Electronics N.V. Scalable MPEG-2 video decoder
WO2002043394A2 (en) * 2000-11-23 2002-05-30 Koninklijke Philips Electronics N.V. Video coding method and corresponding encoder
US7397851B2 (en) * 2001-05-10 2008-07-08 Roman Kendyl A Separate plane compression
CN1253008C (zh) * 2001-10-26 2006-04-19 皇家飞利浦电子股份有限公司 空间可分级压缩的方法和设备
EP1459554A1 (en) * 2001-12-20 2004-09-22 Koninklijke Philips Electronics N.V. Video coding and decoding method
US7274857B2 (en) * 2001-12-31 2007-09-25 Scientific-Atlanta, Inc. Trick modes for compressed video streams
US7483487B2 (en) * 2002-04-11 2009-01-27 Microsoft Corporation Streaming methods and systems
KR100865034B1 (ko) * 2002-07-18 2008-10-23 엘지전자 주식회사 모션 벡터 예측 방법
JP4007594B2 (ja) * 2002-09-26 2007-11-14 株式会社東芝 動画像符号化装置及び方法、動画像符号化方式変換装置及び方法
EP2835975A3 (en) * 2002-10-01 2016-03-09 Godo Kaisha IP Bridge 1 Image encoding device and method
US7738552B2 (en) * 2002-12-06 2010-06-15 Broadcom Company Processing data streams
US8761252B2 (en) 2003-03-27 2014-06-24 Lg Electronics Inc. Method and apparatus for scalably encoding and decoding video signal
KR20060109247A (ko) 2005-04-13 2006-10-19 엘지전자 주식회사 베이스 레이어 픽처를 이용하는 영상신호의 엔코딩/디코딩방법 및 장치
KR20060105407A (ko) * 2005-04-01 2006-10-11 엘지전자 주식회사 영상 신호의 스케일러블 인코딩 및 디코딩 방법
US20070036442A1 (en) * 2003-04-11 2007-02-15 Stoffer Jay H Adaptive subtraction image compression
US8085844B2 (en) * 2003-09-07 2011-12-27 Microsoft Corporation Signaling reference frame distances
US7577198B2 (en) 2003-09-07 2009-08-18 Microsoft Corporation Number of reference fields for an interlaced forward-predicted field
US7966642B2 (en) * 2003-09-15 2011-06-21 Nair Ajith N Resource-adaptive management of video storage
US20050100098A1 (en) * 2003-10-23 2005-05-12 Gong-Sheng Lin Highly integrated mpeg-4 video decoding unit
SE0303085D0 (sv) * 2003-11-18 2003-11-18 Scalado Ab Method for creating a compressed digital image representation and image representation format
US20050135478A1 (en) * 2003-12-18 2005-06-23 Van Der Schaar Mihaela Reduction of layer-decoding complexity by reordering the transmission of enhancement layer frames
US8600217B2 (en) * 2004-07-14 2013-12-03 Arturo A. Rodriguez System and method for improving quality of displayed picture during trick modes
EP1769640A1 (en) * 2004-07-15 2007-04-04 Samsung Electronics Co., Ltd. Scalable motion information encoding/decoding apparatus and method and scalable video encoding/decoding apparatus and method using them
US7792190B2 (en) * 2004-09-09 2010-09-07 Media Tek Singapore Pte Ltd. Inserting a high resolution still image into a lower resolution video stream
US20090080519A1 (en) * 2004-10-18 2009-03-26 Electronics And Telecommunications Research Institute Method for encoding/decoding video sequence based on mctf using adaptively-adjusted gop structure
WO2006049412A1 (en) * 2004-11-01 2006-05-11 Electronics And Telecommunications Research Institute Method for encoding/decoding a video sequence based on hierarchical b-picture using adaptively-adjusted gop structure
US8634413B2 (en) * 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
US8175168B2 (en) 2005-03-18 2012-05-08 Sharp Laboratories Of America, Inc. Methods and systems for picture up-sampling
US7961963B2 (en) * 2005-03-18 2011-06-14 Sharp Laboratories Of America, Inc. Methods and systems for extended spatial scalability with picture-level adaptation
US7725799B2 (en) * 2005-03-31 2010-05-25 Qualcomm Incorporated Power savings in hierarchically coded modulation
US8660180B2 (en) * 2005-04-01 2014-02-25 Lg Electronics Inc. Method and apparatus for scalably encoding and decoding video signal
EP1880552A4 (en) * 2005-04-13 2011-03-09 Lg Electronics Inc METHOD AND DEVICE FOR CODING / DECODING A VIDEO SIGNAL USING REFERENCE TABLES
US8619860B2 (en) * 2005-05-03 2013-12-31 Qualcomm Incorporated System and method for scalable encoding and decoding of multimedia data using multiple layers
US8842666B2 (en) * 2005-05-13 2014-09-23 Qualcomm Incorporated Methods and apparatus for packetization of content for transmission over a network
US20070014346A1 (en) * 2005-07-13 2007-01-18 Nokia Corporation Coding dependency indication in scalable video coding
US8755434B2 (en) * 2005-07-22 2014-06-17 Lg Electronics Inc. Method and apparatus for scalably encoding and decoding video signal
US20070031054A1 (en) * 2005-08-08 2007-02-08 Neomagic Israel Ltd. Encoding DCT coordinates
KR20070038396A (ko) * 2005-10-05 2007-04-10 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
KR100891662B1 (ko) * 2005-10-05 2009-04-02 엘지전자 주식회사 비디오 신호 디코딩 및 인코딩 방법
FR2895172A1 (fr) * 2005-12-20 2007-06-22 Canon Kk Procede et dispositif de codage d'un flux video code suivant un codage hierarchique, flux de donnees, procede et dispositif de decodage associes
US20070230567A1 (en) * 2006-03-28 2007-10-04 Nokia Corporation Slice groups and data partitioning in scalable video coding
US20080043832A1 (en) * 2006-08-16 2008-02-21 Microsoft Corporation Techniques for variable resolution encoding and decoding of digital video
US8773494B2 (en) 2006-08-29 2014-07-08 Microsoft Corporation Techniques for managing visual compositions for a multimedia conference call
US20090033791A1 (en) * 2007-07-31 2009-02-05 Scientific-Atlanta, Inc. Video processing systems and methods
US20090167775A1 (en) 2007-12-30 2009-07-02 Ning Lu Motion estimation compatible with multiple standards
US8300696B2 (en) 2008-07-25 2012-10-30 Cisco Technology, Inc. Transcoding for systems operating under plural video coding specifications
KR101557504B1 (ko) * 2009-04-13 2015-10-07 삼성전자주식회사 채널 적응형 비디오 전송 방법, 이를 이용한 장치 및 이를 제공하는 시스템
WO2011005624A1 (en) 2009-07-04 2011-01-13 Dolby Laboratories Licensing Corporation Encoding and decoding architectures for format compatible 3d video delivery
US8681858B2 (en) * 2009-12-23 2014-03-25 General Instrument Corporation Rate control for two-pass encoder
US8731152B2 (en) 2010-06-18 2014-05-20 Microsoft Corporation Reducing use of periodic key frames in video conferencing
WO2012047496A1 (en) * 2010-10-08 2012-04-12 Dolby Laboratories Licensing Corporation Scalable frame compatible multiview encoding and decoding methods
US8553109B2 (en) * 2011-07-20 2013-10-08 Broadcom Corporation Concurrent image processing for generating an output image
ES2940626T3 (es) 2011-09-28 2023-05-09 Sun Patent Trust Procedimiento de decodificación de imágenes y procedimiento de codificación y decodificación de imágenes
US20130083852A1 (en) * 2011-09-30 2013-04-04 Broadcom Corporation Two-dimensional motion compensation filter operation and processing
EA201492098A1 (ru) * 2012-05-14 2015-04-30 Лука Россато Кодирование и декодирование на основании смешивания последовательностей выборок с течением времени
WO2014058110A1 (ko) 2012-10-09 2014-04-17 광운대학교 산학협력단 다중 계층 비디오를 위한 계층 간 예측 방법 및 그 장치
KR20140087971A (ko) 2012-12-26 2014-07-09 한국전자통신연구원 계층적 비디오 부호화에서 다중참조계층을 적용한 화면간 부/복호화 방법 및 그 장치
US9998750B2 (en) 2013-03-15 2018-06-12 Cisco Technology, Inc. Systems and methods for guided conversion of video from a first to a second compression format
US20160021375A1 (en) * 2014-07-16 2016-01-21 Qualcomm Incorporated Transport stream for carriage of video coding extensions

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060285A (en) 1989-05-19 1991-10-22 Gte Laboratories Incorporated Hierarchical variable block size address-vector quantization using inter-block correlation
US5414469A (en) * 1991-10-31 1995-05-09 International Business Machines Corporation Motion video compression system with multiresolution features
GB9206860D0 (en) * 1992-03-27 1992-05-13 British Telecomm Two-layer video coder
US5905534A (en) * 1993-07-12 1999-05-18 Sony Corporation Picture decoding and encoding method and apparatus for controlling processing speeds
CA2126467A1 (en) * 1993-07-13 1995-01-14 Barin Geoffry Haskell Scalable encoding and decoding of high-resolution progressive video
US5515377A (en) * 1993-09-02 1996-05-07 At&T Corp. Adaptive video encoder for two-layer encoding of video signals on ATM (asynchronous transfer mode) networks
KR960020018A (ko) * 1994-11-17 1996-06-17 배순훈 가변길이복호화장치
JPH08294127A (ja) * 1995-04-24 1996-11-05 Matsushita Electric Ind Co Ltd 画像圧縮装置
US5828788A (en) * 1995-06-29 1998-10-27 Thomson Multimedia, S.A. System for processing data in variable segments and with variable data resolution
JP3788823B2 (ja) * 1995-10-27 2006-06-21 株式会社東芝 動画像符号化装置および動画像復号化装置
US6055012A (en) * 1995-12-29 2000-04-25 Lucent Technologies Inc. Digital multi-view video compression with complexity and compatibility constraints
US6111596A (en) * 1995-12-29 2000-08-29 Lucent Technologies Inc. Gain and offset correction for efficient stereoscopic coding and improved display
ES2194801T3 (es) * 1996-07-05 2003-12-01 Matsushita Electric Ind Co Ltd Procedimiento de presentacion de la fecha y sincronizacion de multiples planos objeto de videos.
EP0818930B1 (en) * 1996-07-08 2002-05-22 Hyundai Curitel, Inc. Video coding method
US5886736A (en) * 1996-10-24 1999-03-23 General Instrument Corporation Synchronization of a stereoscopic video sequence
US6043846A (en) * 1996-11-15 2000-03-28 Matsushita Electric Industrial Co., Ltd. Prediction apparatus and method for improving coding efficiency in scalable video coding
US6148026A (en) * 1997-01-08 2000-11-14 At&T Corp. Mesh node coding to enable object based functionalities within a motion compensated transform video coder
KR100418141B1 (ko) * 1997-04-01 2004-06-09 소니 가부시끼 가이샤 화상부호화장치,화상부호화방법,화상복호화장치및화상복호화방법
US6057884A (en) * 1997-06-05 2000-05-02 General Instrument Corporation Temporal and spatial scaleable coding for video object planes
US6233356B1 (en) * 1997-07-08 2001-05-15 At&T Corp. Generalized scalability for video coder based on video objects
WO1999021367A1 (fr) * 1997-10-20 1999-04-29 Mitsubishi Denki Kabushiki Kaisha Codeur et decodeur d'image

Also Published As

Publication number Publication date
US6414991B1 (en) 2002-07-02
HK1043461A1 (en) 2002-09-13
US6535559B2 (en) 2003-03-18
JP3380983B2 (ja) 2003-02-24
TW398150B (en) 2000-07-11
HK1080650A1 (en) 2006-04-28
CA2255923A1 (en) 1998-10-08
ES2323482T3 (es) 2009-07-16
CN100579230C (zh) 2010-01-06
WO1998044742A1 (en) 1998-10-08
CN1186944C (zh) 2005-01-26
KR100417932B1 (ko) 2004-02-11
EP1152622B9 (en) 2009-09-09
JP2001036911A (ja) 2001-02-09
EP0914007B9 (en) 2009-09-09
IL127274A (en) 2006-06-11
CN1220804A (zh) 1999-06-23
EP0914007B1 (en) 2009-03-11
HK1043461B (zh) 2005-08-19
US20020118750A1 (en) 2002-08-29
US20020114391A1 (en) 2002-08-22
EP0914007A4 (en) 2001-11-07
ID20680A (id) 1999-02-11
US20020122486A1 (en) 2002-09-05
EP0914007A1 (en) 1999-05-06
AU732452B2 (en) 2001-04-26
ATE425638T1 (de) 2009-03-15
CN1185876C (zh) 2005-01-19
US20030133502A1 (en) 2003-07-17
AU6520298A (en) 1998-10-22
CN1312655A (zh) 2001-09-12
IL127274A0 (en) 1999-09-22
KR100418141B1 (ko) 2004-06-09
HK1043707A1 (en) 2002-09-20
US7302002B2 (en) 2007-11-27
EP1152622B1 (en) 2009-03-11
EP1152622A1 (en) 2001-11-07
CN1630375A (zh) 2005-06-22
ATE425637T1 (de) 2009-03-15
US6643328B2 (en) 2003-11-04
KR20000016220A (ko) 2000-03-25
CA2255923C (en) 2005-06-07
IL167288A (en) 2012-03-29

Similar Documents

Publication Publication Date Title
ES2323358T3 (es) Codificador de imagenes, metodo de codificacion de imagenes, descodificador de imagenes, metodo de descodificacion de imagenes, y medio de distribucion.
US6400768B1 (en) Picture encoding apparatus, picture encoding method, picture decoding apparatus, picture decoding method and presentation medium
US6427027B1 (en) Picture encoding and/or decoding apparatus and method for providing scalability of a video object whose position changes with time and a recording medium having the same recorded thereon
US6567427B1 (en) Image signal multiplexing apparatus and methods, image signal demultiplexing apparatus and methods, and transmission media
US6031575A (en) Method and apparatus for encoding an image signal, method and apparatus for decoding an image signal, and recording medium
JP3371191B2 (ja) 画像信号の符号化方法及び復号方法、並びに、符号化装置及び復号装置
JP3380980B2 (ja) 画像符号化方法、並びに画像復号方法および画像復号装置
CA2421090C (en) Picture coding device, picture coding method, picture decoding device, picture decoding method, and providing medium
AU4137197A (en) Picture encoding and decoding