ES2569491T3 - Sistema de codificación y método asociado - Google Patents

Sistema de codificación y método asociado Download PDF

Info

Publication number
ES2569491T3
ES2569491T3 ES00902884.6T ES00902884T ES2569491T3 ES 2569491 T3 ES2569491 T3 ES 2569491T3 ES 00902884 T ES00902884 T ES 00902884T ES 2569491 T3 ES2569491 T3 ES 2569491T3
Authority
ES
Spain
Prior art keywords
data
coding
stream
image
parameters
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
ES00902884.6T
Other languages
English (en)
Inventor
Takuya Kitamura
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 ES2569491T3 publication Critical patent/ES2569491T3/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/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
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Abstract

Un sistema de codificación para recodificar un flujo codificado origen, que comprende: un medio de decodificación para decodificar dicho flujo codificado origen con el fin de generar datos de vídeo y para extraer desde dicho flujo codificado origen primeros y segundos parámetros de codificación anteriores respectivamente generados por primero y segundo procesos de codificación anteriores; un medio de codificación para recodificar, utilizando terceros parámetros de codificación, dichos datos de vídeo para generar un flujo de vídeo recodificado; y un medio de control para recibir dichos primeros y segundos parámetros de codificación anteriores y para controlar el proceso de recodificación realizado por dicho medio de codificación, sobre la base de dichos primeros y segundos parámetros de codificación anteriores; y un medio de escritura para escribir, de forma selectiva, parámetros de codificación de los primeros y segundos parámetros de codificación anteriores en el flujo de vídeo recodificado y para escribir, en el flujo de vídeo recodificado, un indicador que indica un conjunto de datos de los primeros y segundos parámetros de codificación anteriores escrito en el flujo de vídeo recodificado.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Sistema de codificacion y metodo asociado CAMPO TECNICO
La presente invencion se refiere a un sistema de codificacion y un metodo asociado, adecuado para su uso en un transcodificador para realizar un proceso de recodificacion en un flujo codificado que ha sido codificado en conformidad con la norma MPEG, para generar un flujo recodificado que tiene una diferente estructura GOP (Group of Pictures - Grupo de Imagenes) o tasa binaria.
ANTECEDENTES DE LA INVENCION
En las estaciones emisoras para producir y difundir programas de television, la tecnica de MPEG (Moving Picture Experts Group - Grupo de Expertos de Imagenes en Movimiento) se suele utilizar para comprimir/codificar datos de video. En particular, en los campos de registro de datos de video sobre un material de soporte de registro aleatoriamente accesible tal como una cinta y transmision de datos de video por intermedio de cable o satelite, la tecnica MPEG se ha convertido en una norma de facto.
Un ejemplo de procesamiento realizado en una estacion emisora hasta que un programa de video ad creado se transmitido a cada domicilio se describira de forma concisa. En primer lugar, un codificador provisto en una videocamara (camcoder) que comprende una camara de video y una VTR (Grabadora de Cinta de Video) integradas juntas se utiliza para codificar y registrar datos de video origen en cinta magnetica. En este caso, el codificador de la videocamara codifica los datos de video origen con el fin de que sean adecuados para un formato de registro para una cinta VTR. A modo de ejemplo, un flujo de bits MPEG registrado en la cinta magnetica tiene una estructura GOP en donde se configura un grupo de imagenes GOP mediante dos tramas (a modo de ejemplo, I, B, I, B, I, B, ...). Ademas, los flujos binarios de MPEG registrados en la cinta magnetica tienen una tasa binaria de 18 Mbps.
A continuacion, una estacion emisora principal realiza un proceso de edicion para editar el flujo de bits de video registrado en la cinta magnetica. Para conseguirlo, la estructura GOP del flujo de bits de video registrado en la cinta magnetica se convierte en una estructura adecuada para el proceso de edicion. En la estructura GOP adecuada para el proceso de edicion, un GOP se configura por una trama y todas las imagenes son del tipo I. Esto es asf porque las imagenes I, que no tienen correlaciones con otras imagenes son mas adecuadas para la edicion en tramas. En una operacion real, el flujo de video registrado en la cinta magnetica se decodifica en datos de video de banda base. Esta senal de video de banda base se recodifica de modo que todas las imagenes sean convertidas en el tipo I. Realizando el proceso de decodificacion y de recodificacion de esta manera, se puede generar un flujo de bits que tenga la estructura GOP adecuada para el proceso de edicion.
A continuacion, para transmitir el programa de video editado generado por el proceso de edicion anteriormente descrito, desde la estacion emisora principal a las estaciones emisoras locales, el flujo de bits del programa de video editado se convierte en una estructura GOP y un flujo de bits adecuado para un proceso de transmision. A modo de ejemplo, en la estructura GOP adecuada para la transmision entre estaciones emisoras, se configura un GOP mediante 15 tramas (a modo de ejemplo, I, B, B, P, B, B, P, ...). Ademas, la tasa binaria adecuada para transmisiones entre estaciones emisoras es preferiblemente alta, es decir, 50 Mbps o superior puesto que una lmea exclusiva constituida por fibras opticas y que tiene una alta capacidad de transmision se suele proporcionar entre las estaciones emisoras. Mas concretamente, el flujo de bits del programa de video editado se decodifica de nuevo en los datos de video de banda base. A continuacion, los datos de video de banda base se recodifican para tener la estructura GOP y la tasa binaria adecuada para transmisiones entre estaciones emisoras.
En una estacion emisora local, un proceso de edicion se realiza para insertar pelfculas comerciales espedficas para la localidad en el programa de video transmitido desde la estacion emisora principal. Es decir, como en el proceso de edicion anteriormente descrito, el flujo de video transmitido desde el flujo principal se decodifica de nuevo en los datos de video de banda base. Al recodificar la senal de video de banda base de modo que todas las imagenes se conviertan en el tipo I, se puede generar un flujo de bits que tenga la estructura GOP adecuada para el proceso de edicion.
Posteriormente, para transmitir el programa de video editado en la estacion emisora local para cada unidad residencial por intermedio de cable o satelite, la conversion en la estructura GOP y tasa binaria adecuada para el proceso de transmision se realiza en esta instancia operativa. A modo de ejemplo, en la estructura GOP adecuada para transmisiones a cada vivienda, se configura una GOP mediante 15 tramas (a modo de ejemplo, I, B, B, P, B, B, P, ...) y la tasa binaria adecuada para transmisiones a cada vivienda es baja, es decir, aproximadamente 5 Mbps. Mas concretamente, el flujo de bits del programa de video editado se decodifica de nuevo en los datos de video de banda base. A continuacion, los datos de video de banda base se recodifican en la estructura GOP y la tasa binaria adecuada para las transmisiones.
Queda entendido a partir de la descripcion anterior que la pluralidad de procesos de decodificacion y codificacion se
5
10
15
20
25
30
35
40
45
50
55
60
65
repite mientras el programa de v^deo se esta transmitiendo desde la estacion emisora a cada vivienda. De hecho, la estacion emisora requiere varios procesos de senalizacion distintos a los anteriormente descritos, de modo que los procesos de decodificacion y codificacion deben repetirse para cada proceso de senalizacion.
Como es bien conocido, sin embargo, los procesos de decodificacion y de codificacion basados en la norma MPEG no son 100 % reversibles. Es decir, los datos de video de banda base antes de la codificacion no son perfectamente los mismos que los datos de video decodificados y tienen su calidad de imagen degradada debido a los procesos de decodificacion y codificacion. Lamentablemente, las repeticiones de los procesos de decodificacion y codificacion pueden degradar progresivamente la calidad de imagen, segun se describio con anterioridad. Dicho de otro modo, la repeticion de los procesos de decodificacion/codificacion puede acumular una degradacion de la calidad de imagen.
La presente invencion se da a conocer con miras a estas circunstancias, y es un objetivo de la presente invencion dar a conocer un sistema de transcodificacion que pueda evitar la degradacion de la calidad de imagen aun cuando los procesos de decodificacion y codificacion se repitan para cambiar la estructura del GOP (Grupo de Imagenes) en el flujo de bits codificado sobre la base de la norma MPEG.
El documento EP 0 942 605 describe un dispositivo de la tecnica actual que registra un flujo codificado origen. Este dispositivo tiene el medio de decodificacion, el medio de codificacion y el medio de recepcion segun la reivindicacion 1.
La presente invencion se refiere a un transcodificador para recodificar un flujo codificado generado sobre la base de la norma MPEG para generar un flujo recodificado que tenga un diferente gOp (Grupo de Imagenes) y una diferente tasa binaria.
Mas concretamente, un dispositivo de decodificacion de un transcodificador 106 decodifica un flujo codificado origen para generar datos de video decodificados y extrae parametros de codificacion anteriores superpuestos en el flujo codificado bajo la forma de un flujo denominado history_stream(). En este caso, el dispositivo de decodificacion extrae los parametros de codificacion anteriores sobre la base de la informacion superpuesta en el flujo codificado bajo la forma del flujo denominado re_coding_stream_info().
Un dispositivo de codificacion recibe los datos de video decodificados y los parametros de codificacion anteriores y utiliza estos ultimos para codificar los datos de video decodificados de tal manera que se impida que el proceso de recodificacion genere una degradacion de la calidad de la imagen, con lo que se genera un flujo recodificado. Ademas, el dispositivo de codificacion selecciona unos parametros de entre los parametros de codificacion anteriores que sean optimos para una aplicacion localizada despues del dispositivo de codificacion y conectada a dicho dispositivo y realiza la escritura solamente de los parametros de codificacion anteriores seleccionados en el flujo codificado bajo la forma del flujo denominado history_stream(). El dispositivo de codificacion superpone la informacion que indica los parametros de codificacion anteriores seleccionados. En el flujo codificado bajo la forma de re_coding_stream_info() de modo que la aplicacion siguiente pueda extraer de forma adecuada a partir del flujo recodificado, los parametros de codificacion bajo la forma de history_stream().
El transcodificador segun las formas de realizacion de la presente invencion puede realizar un sistema de codificacion que pueda utilizar un numero mmimo de parametros de codificacion adaptados para que la siguiente aplicacion minimice la degradacion de la calidad de imagen aun cuando se recodifiquen repetidamente datos de video.
El transcodificador segun las formas de realizacion de la presente invencion comprende un medio de decodificacion para decodificar un flujo codificado origen para generar datos de video y para extraer, a partir de flujo codificado origen, parametros de codificacion anteriores generados por un proceso de codificacion anterior, un medio de codificacion para recodificar los datos de servicio para generar un flujo de video recodificado y un medio de control para recibir los parametros de codificacion anteriores para controlar el proceso de recodificacion por el medio de codificacion sobre la base de los parametros de codificacion anteriores y escribir, de forma selectiva, los parametros de codificacion anteriores en un flujo recodificado.
El dispositivo de codificacion del transcodificador segun las formas de realizacion de la presente invencion, selecciona unos parametros de entre los parametros de codificacion anteriores que sean requeridos por la aplicacion localizada despues del medio de codificacion y conectada a dicho medio y escriba los parametros de codificacion anteriores seleccionados en el flujo recodificado.
El dispositivo de codificacion del transcodificador segun las formas de realizacion de la presente invencion, escribe, de forma selectiva, los parametros de codificacion anteriores en el flujo recodificado y escribe en el flujo recodificado un flag y/o indicador que indica un conjunto de datos de los parametros de codificacion anteriores escritos en el flujo recodificado.
El dispositivo de codificacion del transcodificador segun las formas de realizacion de la presente invencion escribe informacion sobre los parametros de codificacion anteriores en el flujo codificado bajo la forma de history_stream() y
5
10
15
20
25
30
35
40
45
50
55
60
65
escribe informacion sobre el flujo recodificado en el flujo recodificado bajo la forma de re_coding_stream_info().
El dispositivo de codificacion del transcodificador segun las formas de realizacion de la presente invencion escribe, de forma selectiva, los parametros de codificacion anteriores en el flujo recodificado bajo la forma de history_stream() y escribe en el flujo recodificado bajo la forma de re_coding_stream_info(), informacion sobre un conjunto de datos de los parametros de codificacion anteriores escritos en el flujo recodificado.
El dispositivo de codificacion segun las formas de realizacion de la presente invencion recibe parametros de codificacion anteriores sobre un proceso de codificacion anterior realizado sobre los datos de video, escribe, de forma selectiva, los parametros de codificacion anteriores en un flujo recodificado y escribe en el flujo recodificado, informacion que indica un conjunto de datos de los parametros de codificacion anteriores escritos en el flujo recodificado.
El dispositivo de decodificacion segun las formas de realizacion de la presente invencion extrae, desde el flujo codificado, la informacion sobre el conjunto de datos de los parametros de codificacion anteriores superpuestos en el flujo codificado y extrae los parametros de codificacion anteriores desde el flujo codificado sobre la base de la informacion sobre el conjunto de datos.
El dispositivo de decodificacion, segun las formas de realizacion de la presente invencion, extrae desde el flujo codificado el senalizador y/o indicador escrito en el flujo codificado bajo la forma re_coding_stream_info() y extrae los parametros de codificacion anteriores desde el flujo codificado sobre la base del senalizador y/o indicador.
BREVE DESCRIPCION DE LOS DIBUJOS
La Figura 1 es un diagrama para describir el principio de una codificacion muy eficiente.
La Figura 2 es un diagrama para describir como se procesan tipos de imagen en la compresion de datos de imagenes.
La Figura 3 es un diagrama para describir como los tipos de imagenes se procesan en la compresion de datos de imagenes.
La Figura 4 es un diagrama para describir el principio de la codificacion de senales de imagenes en movimiento.
La Figura 5 es un diagrama de bloques que ilustra las configuraciones de dispositivos para codificar y decodificar senales de imagenes en movimiento.
La Figura 6 es un diagrama para describir la configuracion de datos de imagenes.
La Figura 7 es un diagrama de bloques que ilustra la configuracion de un codificador 18 en la Figura 5.
La Figura 8 es un diagrama para describir la operacion de un circuito de conmutacion de modos de prediccion 52 en la Figura 7.
La Figura 9 es un diagrama para describir la operacion del circuito de conmutacion de modos de prediccion 52 en la Figura 7.
La Figura 10 es un diagrama para describir la operacion del circuito de conmutacion de modos de prediccion 52 en la Figura 7.
La Figura 11 es un diagrama para describir la operacion del circuito de conmutacion de modos de prediccion 52 en la Figura 7.
La Figura 12 es un diagrama de bloques que ilustra la configuracion de un decodificador 31 en la Figura 5.
La Figura 13 es un diagrama para describir el control SNR correspondiente al tipo de imagen.
La Figura 14 es un diagrama de bloques que ilustra la configuracion de un transcodificador 101 al que se aplica la presente invencion.
La Figura 15 es un diagrama de bloques que ilustra la configuracion del transcodificador 101 en la Figura 14 en detalle.
La Figura 16 es un diagrama de bloques que ilustra la configuracion de un dispositivo de decodificacion 102 proporcionado en un aparato de decodificacion 102 en la Figura 14.
5
10
15
20
25
30
35
40
45
50
55
60
65
La Figura 17 es un diagrama para describir los elementos de imagen pixels en un macrobloque.
La Figura 18 es un diagrama para describir una zona en la que se registran parametros de codificacion.
La Figura 19 es un diagrama de bloques que ilustra la configuracion de un dispositivo de codificacion 106 proporcionado en un dispositivo de codificacion 106 en la Figura 14.
La Figura 20 es un diagrama de bloques que ilustra una realizacion ejemplo de la configuracion del registro historico VLC211 en la Figura 15.
La Figura 21 es un diagrama de bloques que ilustra una realizacion ejemplo de la configuracion del registro historico VLD203 en la Figura 15.
La Figura 22 es un diagrama de bloques que ilustra una realizacion ejemplo de la configuracion de un convertidor 212 representando en la Figura 15.
La Figura 23 es un diagrama de bloques que ilustra una realizacion ejemplo de la configuracion de un circuito de personal 323 representado en la Figura 22.
La Figura 24 es un cronograma para describir el funcionamiento del convertidor 212 representado en la Figura 22.
La Figura 25 es un diagrama de bloques que ilustra una realizacion ejemplo de la configuracion de un convertidor 202 representado en la Figura 15.
La Figura 26 es un diagrama de bloques que ilustra una realizacion ejemplo de la configuracion de un circuito de supresion 343 en la Figura 25.
La Figura 27 es un diagrama de bloques que ilustra otra realizacion ejemplo de la configuracion del convertidor 212 en la Figura 15.
La Figura 28 es un diagrama de bloques que ilustra otra realizacion ejemplo de la configuracion del convertidor 202 representado en la Figura 15.
La Figura 29 es un diagrama de bloques que ilustra una realizacion ejemplo de la configuracion de un dispositivo formateador de datos de usuario 213 representado en la Figura 15.
La Figura 30 es un diagrama que ilustra como se utiliza realmente el transcodificador 101 representado en la Figura 14.
La Figura 31 es un diagrama para describir una zona en la que se registran parametros de codificacion.
La Figura 32 es un diagrama de flujo para describir un proceso de determinacion de tipo de imagen modificable que se realiza por el dispositivo de codificacion 106 representado en la Figura 14.
La Figura 33 es un diagrama que ilustra una realizacion ejemplo de un cambio en el tipo de imagen.
La Figura 34 es un diagrama que ilustra otra realizacion ejemplo de un cambio en el tipo de imagen.
La Figura 35 es un diagrama para describir un proceso de control de cuantizacion realizado por el dispositivo de codificacion 106 representado en la Figura 14.
La Figura 36 es un diagrama de flujo para describir el proceso de control de cuantizacion realizado por el dispositivo de codificacion 106 representado en la Figura 14.
La Figura 37 es un diagrama de bloques que ilustra la configuracion de un transcodificador de alto grado de acoplamiento 101.
La Figura 38 es un diagrama para describir una sintaxis para un flujo de una secuencia de video.
La Figura 39 es un diagrama para describir la configuracion de la sintaxis en la Figura 38.
La Figura 40 es un diagrama para describir una sintaxis para el flujo denominado history_stream() que tiene una informacion del registro historico de una longitud fija allf registrada.
La Figura 41 es un diagrama para describir la sintaxis para el flujo denominado history_stream() que tiene la informacion del registro historico de la longitud fija allf registrada.
5
10
15
20
25
30
35
40
45
50
55
60
65
La Figura 42 es un diagrama para describir la sintaxis para el flujo denominado history_stream() que tiene la informacion de registro historico de la longitud fija alK registrada.
La Figura 43 es un diagrama para describir la sintaxis para el flujo denominado history_stream() que tiene la informacion de registro historico de la longitud fija allf registrada.
La Figura 44 es un diagrama para describir la sintaxis para el flujo denominado history_stream() que tiene la informacion de registro historico de la longitud fija allf registrada.
La Figura 45 es un diagrama para describir la sintaxis para el flujo denominado history_stream() que tiene la informacion de registro historico de la longitud fija allf registrada.
La Figura 46 es un diagrama para describir la sintaxis para el flujo denominado history_stream() que tiene la informacion de registro historico de la longitud fija allf registrada.
La Figura 47 es un diagrama para describir la sintaxis para el flujo denominado history_stream() que tiene la informacion de registro historico de la longitud variable allf registrada.
La Figura 48 es un diagrama para describir una sintaxis para la cabecera de secuencia sequence_header().
La Figura 49 es un diagrama para describir una sintaxis para la extension de secuencia sequence_extension().
La Figura 50 es un diagrama para describir una sintaxis para la extension y datos de usuarios bajo la forma extension_and_user_data().
La Figura 51 es un diagrama para describir una sintaxis para datos de usuarios bajo la forma user_data().
La Figura 52 es un diagrama para describir una sintaxis para el grupo de cabeceras de imagenes bajo la forma group_of_pictures_header().
La Figura 53 es un diagrama para describir una sintaxis para la cabecera de imagen bajo la forma picture_header().
La Figura 54 es un diagrama para describir una sintaxis para la extension de codificacion de imagen bajo la forma picture_coding_extension().
La Figura 55 es un diagrama para describir una sintaxis para datos de extension bajo la forma extension_data().
La Figura 56 es un diagrama para describir una sintaxis para la extension de matriz de cuantizacion bajo la forma quant_matrix_extension().
La Figura 57 es un diagrama para describir una sintaxis para la extension de derechos de autor bajo la forma copyright_extension().
La Figura 58 es un diagrama para describir una sintaxis para la extension de visualizacion de imagen bajo la forma picture_display_extension().
La Figura 59 es un diagrama para describir una sintaxis para datos de imagen bajo la forma picture_data ().
La Figura 60 es un diagrama para describir una sintaxis para slice().
La Figura 61 es un diagrama para describir una sintaxis para macroblock().
La Figura 62 es un diagrama para describir una sintaxis para modos de macrobloques bajo la forma
macroblock_modes().
La Figura 63 es un diagrama para describir una sintaxis para vectores de movimiento bajo la forma
motion_vectors(s).
La Figura 64 es un diagrama para describir una sintaxis para vectores de movimiento bajo la formas motion_vector(r, s).
La Figura 65 es un diagrama para describir codigos de longitud variable del tipo de macrobloque para imagenes I.
La Figura 66 es un diagrama para describir codigos de longitud variable del tipo de macrobloque para imagenes P.
5
10
15
20
25
30
35
40
45
50
55
60
65
La Figura 67 es un diagrama para describir codigos de longitud variable del tipo de macrobloque para imagenes B.
La Figura 68 es un diagrama para describir una sintaxis para informacion de flujo de recodificacion bajo la forma re_coding_stream_info().
La Figura 69 es un diagrama para describir los indicadores bajo las formas red_bw_flag y red_bw_indicator.
La Figura 70 es un diagrama para describir un conjunto de datos de parametros de codificacion de informacion de registro historico.
La Figura 71 es un diagrama para describir la formacion de macrobloques bajo la forma de Re_coding Information Bus.
La Figura 72 es un diagrama para describir los elementos de tasas de imagenes Picture rate.
La Figura 73 es un diagrama para describir los elementos de tasas de imagenes Picture rate.
La Figura 74 es un diagrama para describir los elementos de tasas de imagenes Picture rate.
La Figura 75 es un diagrama una zona en la que se registra Re_Coding Information Bus.
La Figura 76 es un diagrama de bloques que representa la configuracion, a modo de ejemplo, de un sistema de registro de grabadora de cinta de video.
La Figura 77 es un diagrama de bloques que representa una realizacion, a modo de ejemplo, de la configuracion de un sistema de reproduccion de grabadora de cinta de video.
La Figura 78 es un diagrama de bloques que representa otra realizacion, a modo de ejemplo, de la configuracion del sistema de registro de grabadora de cinta de video.
La Figura 79 es un diagrama de bloques que representa una realizacion, a modo de ejemplo, de la configuracion del sistema de reproduccion de grabadora de cinta de video.
La Figura 80 es un diagrama para describir las posiciones de registro de un flujo de video y flujo de registro historico bajo la forma history_stream.
FORMAS DE REALIZACION PREFERIDAS DE LA INVENCION
Antes de un transcodificador al que se aplica la presente invencion que se describe a continuacion, se explicara la codificacion global de senales de imagenes en movimiento. Los terminos utilizados para un sistema se refieren, en este caso, al sistema completo configurado mediante medios y dispositivos plurales.
A modo de ejemplo, los sistemas telefonicos o de conferencias de television que transmiten senales de imagenes en movimiento a lugares distantes utilizan una correlacion de lmeas o intertramas entre las senales de video y senales de imagen de codigo compresivo con el fin de utilizar eficientemente las rutas de transmision.
El uso de la correlacion de lmeas permite la compresion de senales de imagenes, a modo de ejemplo, por medio de un proceso de DCT (Transformacion Cosenoidal Discreta).
Ademas, el uso de la correlacion intertramas permite que las senales de imagenes se compriman todavfa mas para la codificacion. Segun se ilustra, extremo, en la Figura 1, si imagenes de tramas PC1 a PC3 se producen durante puntos temporales t1 a t3, la diferencia en la senal de imagen entre las imagenes de tramas PC1 y PC2 se calculan para generar PC12 y la diferencia entre las imagenes de tramas PC2 y PC3 se calcula para generar PC23. Las imagenes en tramas temporalmente adyacentes no suelen tener variaciones de gran magnitud, por lo que el calculo de la diferencia entre ellas da lugar a una senal diferencial de un pequeno valor. En consecuencia, esta senal diferencial puede utilizarse para codificacion para comprimir la magnitud de codificacion.
Sin embargo, la transmision de solamente senales diferenciales no permite el restablecimiento de las imagenes originales. De este modo, la imagen en cada trama se codifica en uno de tres tipos de imagen que incluyen imagenes I, P y B en orden para la codificacion compresiva de las senales de imagenes.
Es decir, segun se ilustra, a modo de ejemplo, en la Figura 2, las senales de imagenes para 17 tramas, que incluyen las tramas F1 a F17 se agrupan en un grupo de imagenes (GOP), que es una unidad de procesamiento. A continuacion, la senal de imagen en la trama Fl se codifica en la imagen I, la segunda trama F2 se codifica en la imagen B y la tercera trama F3 se codifica en la imagen P. Las cuarta y posteriores tramas F4 a F17 se codifican, de forma alternativa, en imagenes B o P.
5
10
15
20
25
30
35
40
45
50
55
60
65
Para la senal de imagen I, la senal de imagen para la trama correspondiente se transmite tal como esta. Por el contrario, para la senal de imagen P, basicamente, la senal diferencial entre esta senal de imagen y la imagen I o P temporalmente precedente se transmite segun se ilustra en la Figura 2. Ademas, para la senal de imagen P, basicamente, la senal diferencial entre esta senal de imagen y la media de las tramas temporalmente precedentes y siguientes se codifica segun se ilustra en la Figura 3.
La Figura 4 ilustra el principio de un metodo de codificacion de senales de imagenes en movimiento. Segun se ilustra en esta Figura, puesto que la primera trama F1 se procesa como la imagen I, se transmite a una ruta de transmision como FIX (codificacion intra-imagen) de datos transmitidos. Por el contrario, puesto que la segunda trama F2 se procesa como la imagen B, la senal diferencial entre esta trama y la media de la trama temporalmente precedente F1 y la trama temporalmente siguiente F3 se calcula y transmite como F2X de datos transmitidos.
De hecho, existen cuatro tipos de procesamiento para las imagenes B. Un primer tipo de procesamiento transmite los datos en la trama original F2 como la F2X de datos transmitidos sin ningun calculo (SP1) (intracodificacion); este procesamiento es similar al de las imagenes I. Un segundo tipo de procesamiento calcula y transmite la senal diferencial (SP2) entre la trama original F2 y la trama temporalmente siguiente F3 (codificacion predictiva inversa). Un tercer tipo de procesamiento transmite la senal diferencial (SP3) entre la trama original F2 y la trama temporalmente precedente F1 (codificacion predictiva directa). Ademas, un cuarto tipo de procesamiento genera la senal diferencial (SP4) entre la trama original F2 y la media de la trama temporalmente precedente F1 y la trama temporalmente siguiente F3 y la transmite como la F2X (codificacion predictiva bidireccional) de datos transmitidos.
Uno de los cuatro metodos anteriormente descritos que transmiten la mas pequena cantidad de datos se utiliza realmente.
En la transmision de los datos diferenciales, un vector en movimiento x1 (entre las tramas F1 y F2) (en el caso de prediccion directa) o x2 (entre las tramas F3 y F2) (en el caso de prediccion inversa) o ambas (en el caso de prediccion bidireccional) entre la trama original y la imagen (imagen de referencia) en la trama para la que la senal diferencial con la trama original ha de calcularse y es objeto tambien de transmision.
Ademas, para la trama F3 de imagen P, la trama temporalmente precedente F1 se utiliza como la imagen de referencia para calcular la senal diferencial (SP3) entre las tramas F3 y F1 asf como el vector de movimiento x3, que se transmiten ambas como F3X (codificacion predictiva directa) de datos transmitidos. Como alternativa, los datos en la trama original F3 se transmiten como la F3X (SP1) (intracodificacion) de los datos. Como en el caso de las imagenes B, se selecciona uno de estos metodos que transmite la menor cantidad de datos.
La Figura 5 ilustra una realizacion, a modo de ejemplo, de la configuracion de los dispositivos para codificar y transmitir senales de imagenes en movimiento y decodificarlas sobre la base del principio anteriormente descrito. Un dispositivo de codificacion 1 esta adaptado para codificar y transmitir senales de video de entrada a un soporte de registro 3 que actua como una ruta de transmision. Un dispositivo de decodificacion 2 esta adaptado para reproducir las senales registradas en el soporte de registro 3 y decodificar y proporcionarlas a la salida.
En un dispositivo de codificacion 1, senales de video de entrada se introducen en un circuito de preproceso 11, en donde las imagenes son separadas cada una en una senal de brillo y una senal de color (en esta forma de realizacion, una senal de diferencia de color). Las senales de diferencia de brillo y color, que son analogicas, se convierten en senales digitales por los convertidores A/D 12, 13, respectivamente. Las senales digitales en las que ha sido convertida la senal de video por los convertidores A/D 12,13 se suministran a una memoria de tramas 14 para su almacenamiento. La memoria de tramas 14 memoriza la senal de video en una memoria de tramas de senales de brillo 15, mientras que memoriza la senal de diferencia de color en una memoria de tramas de senales de diferencia de color 16.
Un circuito convertidor de formatos 17 convierte las senales memorizadas en la memoria de tramas 14 en un formato de trama, hacia un formato de bloque. Es decir, segun se ilustra en la Figura 6, las senales de video memorizadas en la memoria de tramas 14 son del formato de trama ilustrado en la Figura 6 (A), que esta configurado por lmeas V cada una constituida por H puntos. El circuito convertidor de formatos 17 efectua la particion de la senal para una sola trama en M segmentos configurando cada uno por 16 lmeas segun se ilustra en la Figura 6 (B). Cada segmento se divide en M macrobloques. Segun se ilustra en la Figura 6 (C), el macrobloque esta configurado por una senal de brillo correspondiente a 16 x 16 pixels (puntos), y esta senal de brillo es objeto, ademas, de particion en bloques Y[1] a Y[4] estando cada una configurada por 8 x 8 puntos. La senal de brillo de los
16 x 16 puntos corresponde a una senal Cb de 8 x 8 puntos y una senal Cr de 8 x 8 puntos.
De esta manera los datos convertidos en el formato de bloques se suministran por el circuito convertidor de formatos
17 a un codificador 18, en donde se realiza la codificacion correspondiente. Los detalles se describiran haciendo referencia a la Figura 7.
Una senal obtenida mediante codificacion por el codificador 18 se proporciona a la salida a una ruta de transmision
5
10
15
20
25
30
35
40
45
50
55
60
65
como un flujo de bits. A modo de ejemplo, la senal se suministra a un circuito de registro 19 y se registra en el soporte de registro 3 como una senal digital.
Los datos reproducidos desde el soporte de registro 3 por un circuito de reproduccion 30 del dispositivo de decodificacion 2 se suministran a un decodificador 31 para su decodificacion. Los detalles del decodificador 31 se describiran a continuacion haciendo referencia a la Figura 12.
Los datos obtenidos mediante la decodificacion por el decodificador 31 se aplican a la entrada de un circuito convertidor de formatos 32, en donde el formato de bloques se convierte en el formato de trama. A continuacion, la senal de brillo en el formato de trama se suministra a una memoria de tramas de senales de brillo 34 de una memoria de tramas 33 para su almacenamiento y la senal de diferencia de color se suministra a una memoria de tramas de diferencia de color 35 para su almacenamiento. Las senales de diferencia de brillo y color son objeto de lectura desde la memoria de tramas de senales de brillo 34 y la memoria de tramas de senales de diferencia de color 35, respectivamente y posteriormente, se convierten por los convertidores D/A 36, 37 en senales analogicas, que se suministran luego a un circuito de postproceso 38. El circuito de postproceso 38 sintetiza las senales de diferencia de brillo y de color antes de la salida.
A continuacion, las configuracion del codificador 18 se describira haciendo referencia a la Figura 7. Los datos de imagenes a codificarse se aplican a la entrada de un circuito de deteccion de vectores de movimiento 50 en terminos de macrobloques. El circuito de deteccion de vectores de movimiento 50 procesa los datos de imagenes en cada trama como la imagen I, P, o B en conformidad con una secuencia predeterminada preestablecida. Si la imagen de entrada secuencial en cada trama se procesa como la imagen I, P o B se determina de antemano (a modo de ejemplo, el Grupo de imagenes configuradas por las tramas F1 a F17 se procesan como imagenes I, B, P, B, P, ..., B, P segun se ilustra en las Figuras 2 y 3).
Los datos de imagenes en una trama a procesarse como la imagen I (a modo de ejemplo, la trama F1) se transfieren desde el circuito de deteccion de vectores de movimiento 50 a una seccion de imagen original directa 51a de la memoria de tramas 51 para su almacenamiento. Los datos de imagenes en una trama a procesar como la imagen B (a modo de ejemplo, la trama F2) se transfieren a una seccion de imagen original 51b para su almacenamiento. Los datos de imagenes en una trama a procesarse como la imagen P (a modo de ejemplo, la trama F3) se transfieren a una seccion de imagen original inversa 51c para su almacenamiento.
Ademas, cuando una imagen a una trama a procesar como la imagen B (la trama F4) o la imagen P (la trama F5) se aplica a la entrada en conformidad con la siguiente temporizacion, los datos de imagen en la primera imagen P (la trama F3) memorizada en la seccion de imagen original inversa 51c se transfiere a la seccion de imagen original directa 51a; los datos de imagenes en la siguiente imagen B (la trama F4) se memoriza en la seccion de imagen original de referencia 51b (los datos son objeto de sobreescritura en la seccion 51b); y los datos de imagenes en la siguiente imagen P (la trama F5) se memorizan en la seccion de imagen original inversa 51c (los datos son objeto de sobreescritura en la seccion 51c). Dichas operaciones se repiten de forma secuencial.
Las senales para cada imagen memorizada en la memoria de tramas 51 son objeto de lectura y transferidas a un circuito de conmutacion de modos de prediccion 52, en donde se realiza un proceso de modo de prediccion de trama o un proceso de modo de prediccion de campo de imagen.
Ademas, bajo el control de un circuito de determinacion de prediccion 54, un dispositivo calculador 53 realiza un calculo para una prediccion intra-imagen, una prediccion directa, una prediccion inversa o una prediccion bidireccional. Que proceso se realiza dependera de una senal de error de prediccion (la senal diferencial entre una imagen de referencia a procesar y una imagen de prediccion). De este modo el circuito de deteccion de vectores de movimiento 50 genera la suma absoluta (o suma cuadratica) de senales de error de prediccion que se utilizan para esta determinacion.
A continuacion, se describira un modo de prediccion de trama y un modo de prediccion de campo de imagen en el circuito de conmutacion de modos de prediccion 52.
51 se establece el modo de prediccion de trama, el circuito de conmutacion de modo de prediccion 52 proporciona, a la salida, los cuatro bloques de brillo Y[1] a Y[4] suministrados por el circuito de deteccion de vectores de movimiento 50, al siguiente dispositivo calculador 53 tal como estan. Es decir, en este caso, los datos en las lmeas de campo de imagen impares y los datos en las lmeas de campos de imagen pares se mezclan en cada bloque de brillo segun se ilustra en la Figura 8. En el modo de prediccion de tramas, las predicciones se realizan utilizando cuatro bloques de brillo (macrobloques) en un momento determinado y los cuatro bloques de brillo corresponden a un vector de movimiento.
Por el contrario, en el modo de prediccion de campo de imagen, el circuito de conmutacion de modo de prediccion
52 configura, antes de la salida al dispositivo calculador 53, una entrada de senal procedente del circuito de deteccion de vectores de movimiento 50 y que se configuran segun se ilustra en la Figura 8 de modo que se compriman los cuatro bloques de brillo, los bloques de brillo Y[1] e Y[2], a modo de ejemplo, de los puntos en las lmeas de campos impares, mientras que los otros dos bloques de brillo Y[3] e Y[4], se configuran por los puntos en
5
10
15
20
25
30
35
40
45
50
55
60
65
las lmeas de campo pares segun se ilustra en la Figura 9. En este caso, los dos bloques de brillo Y[1] e Y[2] corresponden a un solo vector de movimiento, mientras que los otros dos bloques de brillo Y[3] e Y[4] corresponden a otro vector de movimiento.
El circuito de deteccion de vectores de movimiento 50 proporciona, a la salida, las sumas absolutas de errores de prediccion en los modos de prediccion de trama y de campo de imagen al circuito de conmutacion de modos de prediccion 52. El circuito etapa de daos conmutacion de modos de prediccion 52 comparas las sumas absolutas de errores de prediccion en los modos de prediccion de trama y de campo de imagenes juntos y luego, realiza el procesamiento correspondiente al modo de prediccion con el mas pequeno valor antes de proporcionar, a la salida datos al dispositivo calculador 53.
En realidad, dicho procesamiento se realiza por el circuito de deteccion de vectores de movimiento 50. Es decir, el circuito de deteccion de vectores de movimiento 50 proporciona, a la salida, una senal configurada en correspondencia con el modo determinado para el circuito de conmutacion de modos de prediccion 52, mientras que el circuito de conmutacion de modos de prediccion 52 proporciona, a la salida, esta senal al siguiente dispositivo calculador 53 tal como esta.
En el modo de prediccion de trama, la senal de diferencia de color con los datos en las lmeas de campos impares y los datos en las lmeas de campo pares se mezcla segun se ilustra en la Figura 8 y se entregan al dispositivo calculador 53. Ademas, en el modo de prediccion de campo, la mitad superior (cuatro lmeas) de cada bloque de diferencia de color Cb, Cr constituye una senal de diferencia de color para los campos impares correspondientes a los bloques de brillo Y[1], Y[2], mientras que la mitad inferior (cuatro lmeas) constituye una senal de diferencia de color para los campos pares correspondientes a los bloques de brillo Y[3], Y[4], segun se ilustra en la Figura 9.
Ademas, el circuito de deteccion de vectores de movimiento 50 utiliza el circuito de determinacion de prediccion 54 para generar la suma absoluta de errores de prediccion requeridos para seleccionar una de entre la prediccion intra- imagen, la prediccion directa, la prediccion inversa y la prediccion bidireccional que han de realizarse, segun se ilustra a continuacion.
Como la suma absoluta de los errores de prediccion intra-imagen, se determina la diferencia entre el valor absoluto llAijl de la suma ZAij de las senales de macrobloques Aij para la imagen de referencia y la suma Z|Aij| de los valores absolutos |Aij| de las senales de macrobloques Aij. Como la suma absoluta de los errores de prediccion directa, se determina la suma I|Aij - Bij| de los valores absolutos |Aij - Bij| de las diferencias Aij - Bij entre las senales de macrobloques Aij para las senales de referencia y las senales de macrobloques Bij para una imagen de prediccion. Las sumas absolutas de los errores de prediccion inversa y los errores de prediccion bidireccional se determinan tambien como en la prediccion directa (la imagen de prediccion se cambia a una imagen diferente de la obtenida en la prediccion directa).
Estas sumas absolutas se suministran al circuito de determinacion de prediccion 54. El circuito de determinacion de prediccion 54 selecciona una de las sumas absolutas de los errores de prediccion directa, inversa y bidireccional como la suma absoluta de errores de interprediccion. El circuito de determinacion de prediccion 54 compara, ademas, la suma absoluta de los errores de interprediccion con la suma absoluta de los errores de prediccion intra- imagen, selecciona el mas pequeno de estos dos valores y selecciona un modo correspondiente a la suma absoluta seleccionada, como un modo de prediccion. Es decir, si el valor absoluto de los errores de intraprediccion es mas pequeno, se establece el modo de prediccion intra-imagen. Si el valor absoluto de los errores de interprediccion es mas pequeno, se establece uno de los modos de prediccion directa, inversa y bidireccional que tiene la mas pequena suma absoluta correspondiente.
De esta manera, el circuito de deteccion de vectores de movimiento 50 suministra las senales de macrobloques para la imagen de referencia al dispositivo calculador 53 por intermedio del circuito de conmutacion de modos de prediccion 52 en una manera tal que las senales se configuren en correspondencia con el modo seleccionado por el circuito de conmutacion de modos de prediccion 52 en el modo de prediccion de trama o de campo de imagen. El circuito de deteccion de vectores de movimiento 50 detecta luego un vector de movimiento entre la imagen de prediccion y la imagen de referencia que corresponde a uno de los cuatro modos de prediccion que se selecciona por el circuito de determinacion de prediccion 54 y proporciona, a la salida, el vector a un circuito de codificacion de longitud variable 58 y circuito de compensacion de movimiento 64. Segun se describio con anterioridad, este vector de movimiento se selecciona para tener la mas pequena suma absoluta correspondiente de errores de prediccion.
Mientras el circuito de deteccion de vectores de movimiento 50 esta realizando la lectura de los datos de imagenes de tipo I a partir de la seccion de imagen original directa 51a, el circuito de determinacion de prediccion 54 establece un modo de prediccion intratrama o intracampo (imagen) (un modo sin compensaciones de movimiento) y conmuta un conmutador 53d del dispositivo calculador 53 a un contacto a. De este modo, los datos de imagenes del tipo I se aplican a la entrada de un circuito de conmutacion de modo de DCT 55.
El circuito de conmutacion de modo DCT 55 configura los datos en los cuatro bloques de brillo de modo que las lmeas de campos impares y pares se mezclen juntas (un modo DCT de trama) o estos dos tipos de lmeas de campo
5
10
15
20
25
30
35
40
45
50
55
60
65
se separan entre sf (un modo DCT de campo de imagen), segun se ilustra en la Figura 10 o 11 y luego, proporciona a la salida los datos configurados a un circuito DCT 56.
Es decir, el circuito de conmutacion de modo DCT 55 compara una codificacion eficientemente realizada por un proceso DCT con las instalacion de campo impares y pares mezcladas juntas, con una eficiencia de codificacion conseguida por un proceso DCT con las lmeas de campo impares y pares separadas entre sf, para seleccionar un modo con una mas alta eficiencia de codificacion.
A modo de ejemplo, la senal de entrada se configura de modo que las lmeas de campo impares y pares se mezclen juntas segun se ilustra en la Figura 10 y la diferencia entre las senales para cada par de las lmeas de campo impares y pares verticalmente adyacentes se calcula y se determina la suma (o suma cuadratica) de los valores absolutos de estas diferencias.
Ademas, la senal de entrada esta configurada de modo que las lmeas de campo impares esten separadas de las lmeas de campo pares segun se ilustra en la Figura 11 y la diferencia entre las senales para cada par de las lmeas de campo impares verticalmente adyacentes y la diferencia entre las senales para cada par de lmeas de campo pares verticalmente adyacentes se calcula y la suma (o suma cuadratica) de los valores absolutos de estas diferencias es objeto de determinacion.
Ademas, ambos valores absolutos se comparan para establecer un modo DCT correspondiente al mas pequeno valor. Es decir, si el anterior es mas pequeno, se establece el modo de DCT de trama mientras que si este ultimo es mas pequeno, se establece el modo DCT de campo de imagen.
Datos configurados en correspondencia con el modo DCT seleccionado se proporcionan al circuito DCT 56 y un indicador DCT que indica el modo DCT seleccionado se proporciona al circuito de codificacion de longitud variable 58 y al circuito de compensacion de movimiento 64.
Como resulta evidente de la comparacion entre el modo de prediccion (Figuras 8 y 9) en el circuito de conmutacion de modos de prediccion 52 y el modo DCT (Figuras 10 y 11) en el circuito de conmutacion de modo DCT 55, la estructura de datos de los bloques de brillo en ambos modos son practicamente identicas.
Si el circuito de conmutacion de modos de prediccion 52 selecciona el modo de prediccion de trama (las lmeas impares y pares se mezclan juntas), en tal caso, el circuito de conmutacion de modo DCT 55 es probable que seleccione el modo DCT de trama (las lmeas impares y pares se mezclan juntas). Ademas, si el circuito de conmutacion de modos de prediccion 52 selecciona el modo de prediccion de campo de imagen (los datos de campos impares y pares se separan entre sf), en tal caso, el circuito de conmutacion de modo DCT 55 es probable que seleccione el modo DCT de campo (los datos de campos impares y pares estan separados entre sf).
El modo, sin embargo, no se selecciona siempre de esta manera, sino que el circuito de conmutacion de modos de prediccion 52 determina el modo con el fin de minimizar la suma absoluta de errores de prediccion mientras que el circuito de conmutacion de modo DCT 55 determina el modo con el fin de conseguir una alta eficiencia de codificacion.
La salida de datos de imagen de tipo I proporcionados por el circuito de conmutacion de modo DCT 55 se aplica a la entrada del circuito DCT 56, en donde se realiza el proceso DCT para convertir los datos en un coeficiente DCT. Este coeficiente DCT se aplica a la entrada de un circuito de cuantizacion 57, en donde se cuantifica utilizando una escala de cuantizacion correspondiente a la cantidad de datos memorizados en una memoria intermedia de transmision 59 (la cantidad de datos memorizados en la memoria intermedia). Los datos cuantificados se aplican luego a la entrada de un circuito de codificacion de longitud variable 58.
El circuito de codificacion de longitud variable 58 convierte los datos de imagenes (en este caso, los datos de imagenes I) suministrados por el circuito de cuantizacion 57 en codigos de longitud variables tales como codigos Huffman en una forma correspondiente a la escala de cuantizacion (scale) suministrada por el circuito de cuantizacion 57 antes de la salida a la memoria intermedia de transmision 59.
El circuito de codificacion de longitud variable 58 tiene tambien una entrada a la escala de cuantizacion (scale) desde el circuito de cuantizacion 57, el modo de prediccion (que indica una de entre la prediccion intra-imagen, la prediccion directa, la prediccion inversa y la prediccion bidireccional que ha de establecerse), desde el circuito de determinacion de prediccion 54, el vector de movimiento procedente del circuito de deteccion de vectores de movimiento 50 y el indicador de prediccion (que indica si se establece el modo de prediccion de trama o de campo de imagen) procedente del circuito de conmutacion de modos de prediccion 52, el indicador DCT (que indica si se establece el modo DCT de trama o de campo de imagen) se proporciona por el circuito de conmutacion de modo DCT 55, que se codifican en longitud variable en su totalidad.
La memoria intermedia de transmision 59 memoriza temporalmente los datos de entrada y proporciona, a la salida, datos correspondientes a la cantidad de datos memorizados al circuito de cuantizacion 57. Cuando la cantidad de
5
10
15
20
25
30
35
40
45
50
55
60
65
datos restantes aumenta hasta un valor Ifmite superior admisible, la memoria intermedia de transmision 59 utiliza una senal de control de cuantizacion para aumentar la escala de cuantizacion para el circuito de cuantizacion 57 con el fin de reducir la cantidad de datos objeto de cuantizacion. Por el contrario, cuando la cantidad de datos restantes disminuye hasta un valor lfmite inferior admisible, la memoria intermedia de transmision 59 utiliza la senal de control de cuantizacion para disminuir la escala de cuantizacion para el circuito de cuantizacion 57 con el fin de aumentar la cantidad de datos objeto de cuantizacion. De esta forma, se impide que la memoria intermedia de transmision 59 tenga un flujo excesivo o un flujo insuficiente.
Los datos memorizados en la memoria intermedia de transmision 59 son objeto de lectura en conformidad con las temporizaciones predeterminadas y se proporcionan, a la salida, a la ruta de transmision. Los datos se registran luego en el soporte de registro 3 por intermedio, a modo de ejemplo, del circuito de registro 19.
Por otro lado, los datos de imagen I se proporcionan por el circuito de cuantizacion 57 como una entrada a un circuito de cuantizacion inversa 60, en donde son objeto de cuantizacion inversa en una forma correspondiente a la escala de cuantizacion suministrada por el circuito de cuantizacion 57. Una salida desde el circuito de cuantizacion inversa 60 se aplica a la entrada de un circuito IDCT 61 (Transformacion Cosenoidal Discreta Inversa) para la transformacion cosenoidal discreta inversa y el resultado se suministra a una seccion de imagen de prediccion directa 63a de una memoria de tramas 63 por intermedio de un dispositivo calculador 62 para su almacenamiento.
Al procesar los datos de imagenes en tramas de entrada de forma secuencial, a modo de ejemplo, las imagenes I, B, P, B, P, B, ..., el circuito de deteccion de vectores de movimiento 50 procesa los datos de imagenes en la primera trama de entrada como la imagen I y antes de procesar la imagen en la siguiente trama de entrada como la imagen B procesa los datos de imagenes en la trama de entrada siguiente como la imagen P. Esto es asf porque la imagen B implica la prediccion inversa, de modo que la imagen P, la imagen de prediccion inversas, debe proporcionarse antes de que pueda decodificarse la imagen B.
De este modo, despues del procesamiento de la imagen I, el circuito de deteccion de vectores de movimiento 50 inicia el procesamiento de los datos de imagenes de tipo P memorizados en la seccion de imagen original 51c. A continuacion, de forma similar al caso anteriormente descrito, la suma absoluta de los diferenciales de intertramas (errores de prediccion) en terminos de los macrobloques se suministra por el circuito de deteccion de vectores de movimiento 50 al circuito de conmutacion de modos de prediccion 52 y al circuito de determinacion de prediccion 54. El circuito de conmutacion de modos de prediccion 52 y el circuito de determinacion de prediccion 54 establecen el modo de prediccion de trama/campo de imagen, o el modo de prediccion intra-imagen, directa, inversa o bidireccional dependiendo de la suma absoluta de los errores de prediccion en los macrobloques de imagen P.
Cuando se establece el modo de prediccion intra-imagen, el dispositivo calculador 53 conmuta conmutador 53d al contacto a segun se describio con anterioridad. De este modo, estos datos, de forma similar a los datos de imagen I, se transmiten a la ruta de transmision por intermedio del circuito de conmutacion de modo DCT 55, el circuito DCT 56, el circuito de cuantizacion 57, el circuito de codificacion de longitud variable 58, y al memoria intermedia de transmision 59. Ademas, estos datos se entregan a una seccion de imagen de prediccion inversa 63b de la memoria de tramas 63 por intermedio del circuito de cuantizacion inversa 60, el circuito IDCT 61, y el dispositivo calculador 62 para su almacenamiento.
Ademas, si se establece el modo de prediccion directa, el conmutador 53d se conmuta a un contacto b y los datos de imagenes (en este caso, la imagen de tipo I) memorizados en la seccion de imagen de prediccion directa 63a de la memoria de tramas 63 es objeto de lectura y se somete a una compensacion de movimiento por el circuito de compensacion de movimiento 64 en una forma correspondiente al vector de movimiento proporcionado por el circuito de deteccion de vectores de movimiento 50. Es decir, cuando el circuito de determinacion de prediccion 54 controla el establecimiento del modo de prediccion directa, el circuito de compensacion de movimiento 64 efectua la lectura de datos desplazando una direccion objeto de lectura a la seccion de imagen de prediccion directa 63a, desde una posicion correspondiente al macrobloque actualmente proporcionado por el circuito de deteccion de vectores de movimiento 50, en una magnitud correspondiente al vector de movimiento. El circuito de compensacion de movimiento 64 genera, de este modo, datos de imagenes objeto de prediccion.
Los datos de imagenes objeto de prediccion proporcionados por el circuito de compensacion de movimiento 64 se suministran a un dispositivo calculador 53a. El dispositivo calculador 53a sustrae de los datos de macrobloques en la imagen de referencia suministrada por el circuito de conmutacion de modos de prediccion 52, los datos de imagenes de prediccion correspondientes a este macrobloque y suministrados por el circuito de compensacion de movimiento 64, para proporcionar los datos diferenciales (error de prediccion). Estos datos diferenciales se transmiten a la ruta de transmision por intermedio del circuito de conmutacion de modo DCT 55, el circuito DCT 56, el circuito de cuantizacion 57, el circuito de codificacion de longitud variable 58 y la memoria intermedia de transmision 59. Ademas, estos datos diferenciales se decodifican, a nivel local, por el circuito de cuantizacion inversa 60 y el circuito IDCT 61 antes de aplicarse a la entrada del dispositivo calculador 62.
Los mismos datos de imagenes de prediccion que se suministran al dispositivo calculador 53a se proporcionan tambien al dispositivo calculador 62. El dispositivo calculador 62 anade los datos de imagenes de prediccion
5
10
15
20
25
30
35
40
45
50
55
60
65
proporcionados por el circuito de compensacion de movimiento 64 a los datos diferenciales proporcionados por el circuito IDCT 61. En consecuencia, se obtiene los datos de imagenes en la imagen P original (decodificada). Los datos de imagenes de tipo P se suministran a la seccion de imagen de prediccion inversa 63b de la memoria de tramas 63 para su almacenamiento.
Una vez que los datos de imagenes I y P han sido memorizados en la seccion de imagen de prediccion directa e inversa 63a y 63b, respectivamente, el circuito de deteccion de vectores de movimiento 50 procesa la imagen B. El circuito de conmutacion de modos de prediccion 52 y el circuito de determinacion de prediccion 54 establecen el modo de trama/campo de imagen dependiendo de la magnitud de la suma absoluta de las Figuras intertramas en terminos de los macrobloques y establecen uno de entre el modo de prediccion intra-imagen, el modo de prediccion directa, el modo de prediccion inversa y el modo de prediccion bidireccional.
Segun se describio con anterioridad, en el modo de prediccion intra-imagen o directa, el conmutador 53d se conmuta al contacto a o b, respectivamente. En este punto, se realiza un procesamiento similar al de la imagen P para transmitir los datos.
Por el contrario, cuando se establece el modo de prediccion inversa o bidireccional, el conmutador 53d se conmuta a contacto cod, respectivamente.
En el modo de prediccion inversa con el conmutador 53d conmutado al contacto c, los datos de imagenes (en este caso, la imagen de tipo P) memorizados en la seccion de imagen de prediccion inversa 63b son objeto de lectura y sometidos a una compensacion de movimiento por el circuito de compensacion de movimiento 64 en una forma correspondiente al vector de movimiento proporcionado por el circuito de deteccion de vectores de movimiento 50. Es decir, cuando el circuito de determinacion de prediccion 54 controla el modo de prediccion directa a establecer, el circuito de compensacion de movimiento 64 efectua una lectura de los datos desplazando una direccion de lectura hacia la seccion de imagen de prediccion inversa 63b, desde una posicion correspondiente al macrobloque actualmente proporciona por el circuito de deteccion de vectores de movimiento 50, en una magnitud correspondiente al vector de movimiento. El circuito de compensacion de movimiento 64 genera, de este modo, datos de imagen de prediccion.
Los datos de imagen de prediccion proporcionados por el circuito de compensacion de movimiento 64 se suministran a un dispositivo calculador 53b. El dispositivo calculador 53b sustrae de los datos de macrobloques en la imagen de referencia suministrada por el circuito de conmutacion de modos de prediccion 52, los datos de imagenes de prediccion suministrados por el circuito de compensacion de movimiento 64, para proporcionar a la salida los datos diferenciales. Estos datos diferenciales se transmiten a la ruta de transmision por intermedio del circuito de conmutacion de modo DCT 55, el circuito DCT 56, el circuito de cuantizacion 57, el circuito de codificacion de longitud variable 58 y la memoria intermedia de transmision 59.
En el modo de prediccion bidireccional con el conmutador 53d conmutado al contacto d, los datos de imagenes (en este caso, la imagen de tipo I) memorizados en la seccion de imagen de prediccion directa 63a y los datos de imagenes (en este caso, la imagen de tipo P) memorizados en la seccion de imagen de prediccion inversa 63b son objeto de lectura y se someten a una compensacion de movimiento por el circuito de compensacion de movimiento 64 en una forma correspondiente al vector de movimiento proporcionado por el circuito de deteccion de vectores de movimiento 50.
Es decir, cuando el circuito de determinacion de prediccion 54 controla el modo de prediccion bidireccional a establecer, el circuito de compensacion de movimiento 64 efectua la lectura de datos desplazando las direcciones de lectura en las secciones de imagen de prediccion directa e inversa 63a y 63b, desde una posicion correspondiente al macrobloque actualmente proporciona por el circuito de deteccion de vectores de movimiento 50, en una magnitud correspondiente al vector de movimiento (en este caso, los vectores de movimiento se utilizan para las predicciones directa transcodificador inversa). El circuito de compensacion de movimiento 64 genera, de este modo, datos de imagenes de prediccion.
Los datos de imagenes de prediccion proporcionados por el circuito de compensacion de movimiento 64 se suministran a un dispositivo calculador 53c. El dispositivo calculador 53c sustrae del macrobloque unos datos sobre la imagen de referencia suministrada por el circuito de deteccion de vectores de movimiento 50, el valor medio de los datos de imagenes de prediccion suministrados por el circuito de compensacion de movimiento 64, para proporcionar los datos diferenciales. Estos datos diferenciales se transmiten a la ruta de transmision por intermedio del circuito de conmutacion de modo DCT 55, el circuito DCT 56, el circuito de cuantizacion 57, el circuito de codificacion de longitud variable 58 y la memoria intermedia de transmision 59.
Puesto que la imagen de tipo B no se utiliza como una imagen de prediccion para otras imagenes, no se memoriza en la memoria de tramas 63.
En la memoria de tramas 63, las secciones de imagen de prediccion directa e inversa 63a y 63b pueden realizar una conmutacion de bancos cuando se requiera para la conmutacion a los datos memorizados en una o la otra de estas
5
10
15
20
25
30
35
40
45
50
55
60
65
secciones con el fin de proporcionarla a una imagen de referencia predeterminada como la imagen de prediccion directa o inversa.
Aunque la anterior descripcion se centra sobre los bloques de brillo, los bloques de diferencia de color se procesan y transmiten, de forma similar, en terminos de los macrobloques ilustrados en las Figuras 8 a 11. El vector de movimiento utilizado para procesar los bloques de diferencia de color se obtiene reduciendo el vector de movimiento para los bloques de brillo correspondientes a la mitad en las direcciones vertical y horizontal.
La Figura 12 es un diagrama de bloques que ilustra la configuracion del decodificador 31 en La Figura 5. Los datos de imagenes codificados, transmitidos por intermedio de la ruta de transmision (el soporte de registro 3) se recibe por un circuito de recepcion (no ilustrado) o se reproduce por un dispositivo de reproduccion y se memorizan temporalmente en una memoria intermedia de recepcion 81 para su suministro a un circuito de decodificacion de longitud variable 82 de un circuito de decodificacion 90. El circuito de decodificacion de longitud variable 82 somete los datos suministrados por la memoria intermedia de recepcion 81 a una decodificacion de longitud variable y proporciona, a la salida, el vector de movimiento obtenido, el modo de prediccion, el indicador de prediccion y el indicador DCT a un circuito de compensacion de movimiento 87. El circuito de decodificacion de longitud variable 82 proporciona, a la salida, la escala de cuantizacion obtenida a un circuito de cuantizacion inversa 83 y proporciona los datos de imagenes decodificados a un circuito de cuantizacion inversa 83.
El circuito de cuantizacion inversa 83 realiza una cuantizacion inversa de los datos de imagenes suministrados por el circuito de decodificacion de longitud variable 82 en una forma correspondiente a la escala de cuantizacion suministrada por el circuito de decodificacion de longitud variable 82, para proporcionar los datos en cuantizacion inversa a un circuito IDCT 84. Los datos (coeficiente DCT) proporcionados por el circuito de cuantizacion inversa 83 se someten a una transformacion cosenoidal discreta inversa por el circuito IDCT 84 y los datos procesados se entregan a un dispositivo calculador 85.
Si los datos de imagenes entregados al dispositivo calculador 85 por el circuito IDCT 84 es para la imagen I, se proporciona a la salida por el dispositivo calculador 85 y se suministran a una seccion de imagen de prediccion directa 86a de una memoria de tramas 86 para su almacenamiento con el fin de generar datos de imagenes de prediccion para los datos de imagenes (los datos de imagenes P o B) aplicados mas adelante a la entrada del dispositivo calculador 85. Ademas, estos datos se proporcionan al circuito de conversion de formatos 32 (Figura 5).
Si los datos de imagenes entregados por el circuito IDCT 84 son para la imagen P, que utiliza los datos de imagenes en la trama precedente, como los datos de imagenes de prediccion y esta en el modo de prediccion directa, en tal caso, los datos de imagenes (los datos de imagen I) en la trama precedente memorizados en la seccion de imagen de prediccion directa 86a de la memoria de tramas 86 es objeto de lectura y se somete a una compensacion de movimiento por el circuito de compensacion de movimiento 87 en una formas correspondiente al vector de movimiento proporcionado por el circuito de decodificacion de longitud variable 82. Los datos resultantes se anaden por el dispositivo calculador 85 a los datos de imagenes (datos diferenciales) suministrados por el circuito IDCT 84 y los datos asf obtenidos son objeto de salida. Los datos resultantes de la adicional, es decir, los datos de imagenes P decodificados se suministra a una seccion de imagen de prediccion inversa 86b de la memoria de tramas 86 para su almacenamiento con el fin de generar datos de imagenes de prediccion para los datos de imagenes (los datos de imagen B o P) aplicados a la entrada del dispositivo calculador 85 mas adelante.
De forma similar a los datos de imagen I, los datos en el modo de prediccion intra-imagen se memorizan en la seccion de imagen de prediccion inversa 86b sin procesarse por el dispositivo calculador 85, aun cuando sf lo es para la imagen P.
Esta imagen P ha de visualizarse despues de la siguiente imagen B, de modo que no se proporcione al circuito de conversion de formatos 32 en este punto (segun se describio con anterioridad, la imagen P se introduce despues de que se procese la imagen B y se transmite antes de la imagen B).
Si los datos de imagenes entregados por el circuito IDCT 84 es para la imagen B, los datos de imagenes de tipo I memorizados en la seccion de imagen de prediccion directa 86a de la memoria de tramas 86 (en el caso del modo de prediccion directa), los datos de imagenes P memorizados en la seccion de imagen de prediccion inversa 86b de la memoria de tramas 86 (en el caso del modo de prediccion inversa) o ambos datos de imagenes (en el caso de modo de prediccion bidireccional) son objeto de lectura dependiendo del modo de prediccion suministrado por el circuito de decodificacion de longitud variable 82 y luego, se someten a una compensacion de movimiento por el circuito de compensacion de movimiento 87 en una forma correspondiente al vector de movimiento suministrado por el circuito de decodificacion de longitud variable 82. De este modo, se genera una imagen de prediccion. Sin embargo, no se genera ninguna imagen de prediccion si no se requiere ninguna compensacion de movimiento (en el caso del modo de prediccion intra-imagen).
Los datos sometidos a la compensacion de movimiento por el circuito de compensacion de movimiento 87 en la manera anteriormente descrita se anaden por el dispositivo calculador 85 a la salida desde el circuito IDCT 84. Esta salida adicional se proporciona para el circuito de conversion de formatos 32.
5
10
15
20
25
30
35
40
45
50
55
60
65
Esta salida adicional, sin embargo, comprende los datos de imagenes B y no se utiliza para generar una imagen de prediccion para otras imagenes. De este modo, no se memoriza en la memoria de tramas 86.
Despues del suministro de la imagen B, los datos de imagenes P memorizados en la seccion de imagen de prediccion inversa 86b son objeto de lectura y se suministran al dispositivo calculador 85 por intermedio del circuito de compensacion de movimiento 87. Sin embargo, ninguna compensacion de movimiento se proporciona en este punto operativo.
Aunque el decodificador ilustrado 31 no tiene ningun circuito correspondiente al circuito de conmutacion de modos de prediccion 52 y el circuito de conmutacion de modo DCT 55 en el codificador 18 en la Figura 5, el circuito de compensacion de movimiento 87 realiza el procesamiento correspondiente a estos circuitos, es decir, uno para la recuperacion de la configuracion en donde senales de lmeas de campos impares estan separadas de las senales de lmeas de campo pares, hacia la configuracion original.
Ademas, aunque la descripcion anterior es para el procesamiento de las senales de brillo, las senales de diferencia de color se procesan de modo similar. En este caso, sin embargo, el vector de movimiento se obtiene reduciendo el vector de movimiento para las senales de brillo a la mitad en ambas direcciones vertical y horizontal.
La Figura 13 ilustra la calidad de las imagenes codificadas. La calidad (SNR: Relacion de Senal a Ruido) de las imagenes se controla en correspondencia con el tipo de imagen en tal manera que las imagenes I y P sean ambas de una alta calidad, mientras que la imagen B tiene una calidad menor que las imagenes I y P. Este metodo utiliza caractensticas visuales humanas; es decir, se obtiene una mas alta calidad visual haciendo vibrar la calidad de cada imagen que nivelando la calidad de todas las imagenes. El control de la calidad de la imagen, que depende del tipo de imagen, se realiza por el circuito de cuantizacion 57 en la Figura 7.
Las Figuras 14 y 15 ilustran la configuracion de un transcodificador 101 al que se aplica la presente invencion; la Figura 15 ilustra la configuracion detallada que se representa en la Figura 14. El transcodificador 101 convierte la estructura GOP y la tasa binaria de una entrada de flujo de video codificado a un dispositivo de decodificacion 102 en la estructura deseada por un operador. Para explicar las funciones del transcodificador 101, se supone que tres transcodificadores que tiene funciones similares a las del transcodificador 101 esta localizados, de forma conectiva, antes del transcodificador 101, aunque no se ilustra en la Figura 15. Es decir, con el fin de variar la estructura GOP y la tasa binaria de un flujo de bits, los primero, segundo y tercero transcodificadores estan conectados en serie en este orden y un cuarto transcodificador, ilustrado en la Figura 15, esta situado, de forma conectiva, despues del tercer transcodificador.
En la siguiente descripcion de la presente invencion, un proceso de codificacion realizado en el primer transcodificador se define como proceso de codificacion de la primera generacion, uno en el segundo transcodificador, que esta situado, de forma conectiva, despues del primer transcodificador, se define como un proceso de codificacion de la segunda generacion, uno en el tercer transcodificador, que esta situado, de forma conectiva, despues del segundo transcodificador, se define como un proceso de codificacion de la tercera generacion y uno en el cuarto transcodificador (el transcodificador 101 ilustrado en la Figura 15), que esta situado, de forma conectiva, despues del tercer transcodificador, se define como un proceso de codificacion de la cuarta generacion o proceso de codificacion en curso.
Ademas, los parametros de codificacion generados durante el proceso de codificacion de la primera generacion se denominan “parametros de codificacion de la primera generacion", los parametros de codificacion generados durante el proceso de codificacion de la segunda generacion se denominan “parametros de codificacion de la segunda generacion”, los parametros de codificacion generados durante el proceso de codificacion de la tercera generacion se denominan “parametros de codificacion de la tercera generacion” y los parametros de codificacion generados durante el proceso de codificacion de la cuarta generacion se denominan “parametros de codificacion de la cuarta generacion”.
En primer lugar, un flujo de video codificado ST(3rd) suministrado al transcodificador 101 ilustrado en la Figura 15 sera descrito a continuacion. El flujo ST(3rd) representa un flujo codificado de la tercera generacion generado durante el proceso de codificacion de la tercera generacion realizado por el tercer transcodificador proporcionado antes del transcodificador 101. En el flujo de video codificado ST(3rd) generado durante el proceso de codificacion de la tercera generacion, los parametros de codificacion de la tercera generacion generados durante el proceso de codificacion de la tercera generacion se describen en una capa de secuencias, una capa de GOP, una capa de imagenes, una capa de segmentos y una capa de macrobloques de este flujo de video codificado ST (3rd) como una funcion de cabecera de secuencia denominada sequence_header(), una funcion de extension de secuencia denominada sequence_extension(), una funcion de cabeceras de grupo de imagenes denominada group_of_pictures_header(), una funcion de cabecera de imagen denominada picture_header(), una funcion de extension de codificacion de imagen denominada picture_coding_extension(), una funcion de datos de imagen denominada picture_data(), una funcion de segmentos denominada slice () y una funcion de macrobloques denominada macroblock(). La descripcion de los terceros parametros de codificacion utilizados durante el tercer
5
10
15
20
25
30
35
40
45
50
55
60
65
proceso de codificacion en el tercer flujo codificado generado durante el tercer proceso de codificacion se define en la norma MPEG2 y no constituye ninguna novedad inventiva.
El transcodificador 101 segun la presente invencion es unico por cuanto que el tercer flujo codificado ST (3rd) ha descrito los terceros parametros de codificacion asf como los parametros de codificacion de la primera y de la segunda generacion generados durante los primeros y segundos procesos de codificacion, respectivamente.
Mas concretamente, los parametros de codificacion de la primera y de la segunda generacion se describen en una zona de datos de usuario de la capa de imagenes del flujo de video codificado de la tercera generacion ST(3rd) como un flujo de registro historico denominado history_stream(). En la presente invencion, el flujo de registro historico descrito en la zona de datos de usuario de la capa de imagenes del flujo de video codificado de la tercera generacion ST(3rd) se denomina “informacion de registro historico” y los parametros de codificacion descritos en el flujo de registro historico se denominan “history parameters”.
Como alternativa, si los parametros de codificacion de la tercera generacion descritos en el flujo codificado de la tercera generacion ST(3rd) se denominan los “parametros de codificacion en curso”, puesto que los procesos de codificacion de la primera y de la segunda generacion se realizan antes del proceso de codificacion de la tercera generacion, los parametros de codificacion descritos como un flujo de registro historico en la zona de datos de usuario de la capa de imagenes del flujo codificado de la tercera generacion ST(3rd) se denominan tambien “parametros de codificacion anteriores".
La razon por la que el flujo codificado de la tercera generacion ST(3rd) ha descrito los terceros parametros de codificacion asf como los parametros de codificacion de la primera y de la segunda generacion generados durante los primeros y segundos procesos de codificacion, respectivamente, segun se describio con anterioridad es que puede impedirse que la calidad de la imagen sea objeto de degradacion incluso con cambios repetidos en la estructura GOP o la tasa binaria del flujo codificado mediante un proceso de transcodificacion.
A modo de ejemplo, se considera que una imagen puede codificarse en el tipo P durante el proceso de codificacion de la primera generacion, que esta imagen P puede codificarse en el tipo B durante el proceso de codificacion de la segunda generacion con el fin de cambiar la estructura GOP del flujo codificado de la primera generacion y que esta imagen B puede codificarse de nuevo en el tipo P durante el proceso de codificacion de la tercera generacion con el fin de cambiar todavfa mas la estructura GOP del flujo codificado de la segunda generacion. Es conocido en esta tecnica que habida cuenta que los procesos de codificacion y decodificacion basados en la norma MPEG no son 100 % reversibles, la calidad de la imagen puede degradarse con la repeticion de estos procesos.
En este caso los parametros de codificacion tales como la escala de cuantizacion, el vector de movimiento y el modo de prediccion que han sido generados durante el proceso de codificacion de la primera generacion se reutilizan durante el proceso de codificacion de la tercera generacion en lugar de calcular estos parametros de codificacion de nuevo durante el proceso anterior. Los parametros de codificacion tales como la escala de cuantizacion, el vector de movimiento y el modo de prediccion que se han generado por el proceso de codificacion de la primera generacion son evidentemente mas exactos que estos parametros recientemente generados por el proceso de codificacion de la tercera generacion, de modo que la reutilizacion de los parametros de la primera generacion puede producir una menor degradacion de la calidad de la imagen a pesar de la repeticion de los procesos de codificacion y decodificacion.
El procesamiento anteriormente descrito segun la presente invencion se describira con mayor detalle tomando, a modo de ejemplo, un procesamiento realizado por el transcodificador de la cuarta generacion 101 que se ilustra en la Figura 15.
Un dispositivo de decodificacion 102 utiliza los parametros de codificacion de la tercera generacion para decodificar videos codificados procedentes del flujo de bits codificado de la tercera generacion ST(3rd) y genera datos de video digitales para las bandas base decodificadas. Ademas, el dispositivo de decodificacion 102 decodifica tambien los primeros y segundos parametros de codificacion descritos como un flujo de registro historico en la zona de datos de usuario de la capa de imagenes del flujo de bits codificado de la tercera generacion ST(3rd).
Mas concretamente, segun se ilustra en la Figura 16, el dispositivo de decodificacion 102 se configura basicamente en la misma manera que el decodificador 31 (Figura 12) del dispositivo de decodificacion 2 ilustrado en la Figura 5; comprende una memoria intermedia de recepcion 81 para la memorizacion de un flujo de bits suministrado, un circuito de decodificacion de longitud variable 112 para someter el flujo de bits codificado a una decodificacion de longitud variable, un circuito de cuantizacion inversa 83 para realizar una cuantizacion inversa de los datos decodificados de longitud variable en conformidad con la escala de cuantizacion suministrada desde el circuito de decodificacion de longitud variable 112, un circuito IDCT 84 para someter el coeficiente DCT de cuantizacion inversa a una transformacion cosenoidal discreta inversa y un dispositivo calculador 85, una memoria de tramas 86 y un circuito de compensacion de movimiento 87 para realizar un proceso de compensacion de movimiento.
Para decodificar el flujo de bits codificado de la tercera generacion ST (3rd), el circuito de decodificacion de longitud
5
10
15
20
25
30
35
40
45
50
55
60
65
variable 112 extrae los parametros de codificacion de la tercera generacion descritos en las capas de imagenes, de segmentos y de macrobloques del flujo de bits codificado de la tercera generacion ST (3rd). A modo de ejemplo, los parametros de codificacion de la tercera generacion extrafdos por el circuito de decodificacion de longitud variable 112 incluyen el tipo de codificacion de imagen denominado picture_coding_type que indica el tipo de imagen, el codigo de escala del dispositivo de cuantizacion denominado quantiser_scale_code que indica una magnitud de la etapa de escala de cuantizacion, macroblock_type que indica el modo de prediccion, motion_vector que indica el vector de movimiento, frame/field_motion_type que indica el modo de prediccion de trama o el modo de prediccion de campo de imagen, dct_type que indica el modo DCT de trama o el modo DCT de campo de imagen, etc. El codigo quantiser_scale_code extrafdo por el circuito de decodificacion de longitud variable 112 se suministra circuito de decodificacion de cuantizacion inversa 83 y los parametros tales como los denominados picture_coding_type, quantiser_scale_code, macroblock_type, motion_vector, frame/field_motion_type, y dct_type se entregan al circuito de compensacion de movimiento 87.
El circuito de decodificacion de longitud variable 112 extrae desde las capas de secuencia, GOP, imagen, segmento y macrobloques del flujo de bits codificado de la tercera generacion ST(3rd) no solamente los parametros de codificacion anteriores requeridos para decodificar el flujo de bits codificado de la tercera generacion ST (3rd) sino tambien los parametros de codificacion a transmitirse al siguiente transcodificador de la quinta generacion como informacion de registro historico de la tercera generacion. Por supuesto, los parametros de codificacion de la tercera generacion tales como los parametros de los tipos denominados picture_coding_type, quantiser_scale_code, macroblock_type, motion_vector, frame/field_motion_type, y dct_type que se utilizan para el proceso de decodificacion de la tercera generacion estan incluidos en la informacion de registro historico de la tercera generacion. Los parametros de codificacion a extraerse como la informacion de registro historico son preestablecidos por el operador o un ordenador central dependiendo de la capacidad de transmision.
Ademas, el circuito de decodificacion de longitud variable 112 extrae datos de usuarios descritos en la zona de datos de usuario en la capa de imagenes del flujo de bits codificado de la tercera generacion ST(3rd), para suministrar estos datos a un dispositivo de decodificacion de registro historico 104.
El dispositivo de decodificacion de registro historico 104 es un circuito para extraer los parametros de codificacion de la primera y de la segunda generacion descritos como informacion de registro historico (parametros de codificacion que preceden a los parametros de codificacion de la generacion precedente) a partir de los datos de usuarios descritos en la capa de imagenes del flujo de bits codificado de la tercera generacion ST (3rd). Mas concretamente, el dispositivo de decodificacion de registro historico 104 puede analizar la sintaxis de los datos de usuarios recibidos para detectar un identificador unico denominado History_Data_Id descritos en los datos de usuarios, de modo que se extraiga el flujo denominado converted_history_stream(). Ademas, el dispositivo de decodificacion de registro historico 104 puede obtener un flujo de registro historico denominado history_stream() eliminando los bits de marcador de un bit (marker_bit) insertados en el flujo denominado converted_history_stream() en intervalos penados y puede analizar la sintaxis del flujo de registro historico denominado history_stream() para obtener los parametros de codificacion de la primera y de la segunda generacion descritos en el flujo de registro historico history_stream(). La descripcion detallada del dispositivo de decodificacion de registro historico 104 se describira mas adelante.
Un dispositivo de multiplexacion de informacion de registro historico 103 es un circuito para multiplexar los parametros de codificacion de la primera, segunda y tercer generacion sobre los datos de video de banda basa decodificados por el dispositivo de decodificacion 102 con el fin de suministrar estos parametros a un dispositivo de codificacion 106 que realiza el proceso de codificacion de la cuarta generacion. Mas concretamente, el dispositivo de multiplexacion de informacion de registro historico 103 recibe los datos de video de banda base procedentes del dispositivo calculador 85 del dispositivo de decodificacion 102, los parametros de codificacion de la tercera generacion procedentes del dispositivo de decodificacion de longitud variable 112 del dispositivo de decodificacion 102 y los parametros de codificacion de la primera y de la segunda generacion procedentes del dispositivo de decodificacion de registro historico 104, para multiplexar estos parametros de codificacion de la primera, segunda y tercera generacion sobre los datos de video de banda base. Los datos de video de banda base multiplexados con los parametros de codificacion de la primera, segunda y tercera generacion se suministran a un dispositivo de separacion de informacion de registro historico 105 por intermedio de un cable de transmision.
A continuacion, el metodo para multiplexar los parametros de codificacion de la primera, segunda y tercera generacion sobre los datos de video de banda base se describiran haciendo referencia a las Figuras 17 y 18. La Figura 17 ilustra un macrobloque constituido por 16 x 16 pixels segun se define en la norma MPEG. El macrobloque de 16 x 16 pixels esta configurado por cuatro subbloques (Y[0], [1], [2] e Y[3]) para las senales de brillo que esta constituido cada uno por 8 x 8 pixels y cuatro subbloques (Cr[0], r[1], b[0], y Cb[1]) para las senales de diferencia de color que esta constituida cada una por 8 x 8 pixels.
La Figura 18 ilustra un determinado formato de datos de video, este formato se define en la recomendacion RDT 601 de la ITU y representa lo que se denomina el “formato D1”, que se utiliza en el sector de la difusion. El formato D1 esta normalizado para la transmision de datos de video de 10 bits y de este modo, permite que un pixel de datos de video sea expresado con 10 bits.
5
10
15
20
25
30
35
40
45
50
55
60
65
Puesto que los datos de video de banda base decodificados en con formato con la norma MPEG se configuran por 8 bits, el transcodificador en conformidad con la presente invencion utiliza los ocho bits superiores de los 10 bits en el formato D1 (D9 a D2) segun se ilustra en la Figura 18, para transmitir los datos de video de banda base decodificados sobre la base de la norma MPEG. Cuando los datos de video de 8 bits asf decodificados son objeto de escritura en el formato D1, los dos bits inferiores (D1 y D0) no son asignados. El transcodificador, en conformidad con la presente invencion, utiliza esta zona no asignada para transmitir la informacion de registro historico.
Puesto que el bloque de datos descrito en la Figura 18 se utiliza para transmitir un pixel en cada subbloque (Y[0], Y[1], Y[2], Y[3], Cr [0], Cr [1], Cb[0], Cb[1]), 64 bloques de datos tales como los ilustrados en la Figura 18 se transmiten con el fin de transmitir un macrobloque de datos. El uso de dos bits inferiores (D1 y D0) permite que se transmitan 1024 (= 16 x 64) bits de informacion de registro historico para un solo macrobloque de datos de video. En consecuencia, puesto que la informacion de registro historico para una generacion esta configurada por 256 bits, la informacion de registro historico para las cuatro generaciones anteriores (= 1024/256) pueden superponerse en un solo macrobloque de datos de video. En la realizacion, a modo de ejemplo, ilustrada en la Figura 18, la informacion de registro historico de la primera, segunda y tercera generacion se superpone entre sf.
El dispositivo de separacion de informacion de registro historico 105 es un circuito para extraer los datos de video de banda base desde los ocho bits superiores de los datos transmitidos en el formato D1 mientras se extrae la informacion de registro historico desde los dos bits inferiores. En la realizacion, a modo de ejemplo, ilustrada en la Figura 15, el dispositivo de separacion de informacion de registro historico 105 extrae los datos de video de banda base a partir de los datos transmitidos, suministra estos datos a un dispositivo de codificacion 106, realiza la informacion de registro historico de la primera, segunda y tercera generacion a partir de los datos transmitidos y suministra la informacion al dispositivo de codificacion 106 y a un dispositivo de codificacion de registro historico 107.
El dispositivo de codificacion 106 codifica los datos de video de banda base suministrados desde el dispositivo de separacion de informacion de registro historico 105 en un flujo de bits que tiene una estructura GOP y una tasa binaria especificada por el operador o el ordenador central. Cambiar la estructura GOP significa cambiar el numero de imagenes contenidas en el GOP, el numero de imagenes P presentes entre las imagenes I y el numero de imagenes B presentes entre las imagenes I y las imagenes P (o imagenes I).
En la realizacion ilustrada, a modo de ejemplo, en la Figura 15, puesto que los datos de video de banda base suministrados tienen la informacion de registro historico de la primera, segunda y tercera generacion superpuestas, el dispositivo de codificacion 106 reutiliza, de forma selectiva, la informacion de registro historico para un proceso de codificacion para la cuarta generacion con el fin de disminuir la posible degradacion de la calidad de la imagen que se deriva del proceso de recodificacion.
La Figura 19 es un diagrama que muestra una configuracion espedfica de un dispositivo de codificacion 106 proporcionado en el dispositivo de codificacion 106. El dispositivo de codificacion 106 esta configurado basicamente de forma similar al codificador 18 ilustrado en la Figura 7; comprende el circuito de deteccion de vectores de movimiento 50, el circuito de conmutacion de modos de prediccion de trama/campo de imagen 52, el dispositivo calculador 53, el circuito de conmutacion de modo DCT 55, el circuito DCT 56, el circuito de cuantizacion 57, el circuito de codificacion de longitud variable 58, la memoria intermedia de transmision 59, el circuito de cuantizacion inversa 60, el circuito DCT inverso 61, el dispositivo calculador 62, la memoria de tramas 63, y el circuito de compensacion de movimiento 64. Puesto que las funciones de cada uno de los circuitos son casi las mismas que las del codificador 18 que se describe en la Figura 7, se omite aqrn su descripcion. La siguiente descripcion se referira a los dispositivos entre el dispositivo de codificacion 106 y el codificador 18 descrito en la Figura 7.
El dispositivo de codificacion 106 tiene un controlador 70 para controlar las operaciones y funciones de cada uno de los circuitos anteriormente descritos. El controlador 70 recibe una instruccion sobre la estructura GOP desde el operador o el ordenador central para determinar el tipo de imagen de cada imagen en una forma correspondiente a la estructura GOP especificada. El controlador 70 recibe tambien informacion sobre una tasa binaria objetivo desde el operador o desde el ordenador central para controlar el circuito de cuantizacion 57 de modo que una tasa binaria procedente del dispositivo de codificacion 106 sea igual a la que fue especificada.
Ademas, el controlador 70 recibe informacion del registro historico para una pluralidad de generaciones que se proporciona desde el dispositivo de separacion de informacion de registro historico 105 para reutilizar la informacion con el fin de codificar la informacion de referencia. Los detalles correspondientes se describiran a continuacion.
En primer lugar, el controlador 70 determina si el tipo de imagen de la imagen de referencia determinada a partir de la estructura GOP especificada por el operador es el mismo que el tipo de imagen contenido en la informacion de registro historico. Es decir, se determina si la imagen de referencia se ha codificado, o no, en el tipo de imagen que es el mismo que el que fue especificado.
Para un mejor conocimiento, se hara referencia a la realizacion ejemplo ilustrada en la Figura 15. El controlador 70 determina si el tipo de imagen asignado a la imagen de referencia para el proceso de codificacion de la cuarta
5
10
15
20
25
30
35
40
45
50
55
60
65
generacion es el mismo o no que el tipo de imagen de la imagen de referencia para el proceso de codificacion de la primera, segunda o tercera generacion.
Si el tipo de imagen especificado para la imagen de referencia para el proceso de codificacion de la cuarta generacion es diferente de todos los tipos de imagen para los procesos de codificacion anteriores, el controlador 70 realiza un denominado “proceso de codificacion normal”. Es decir, en este caso, esta imagen de referencia no ha sido codificada, durante el proceso de codificacion de la primera, segunda o tercera generacion, en el tipo de imagen asignado para el proceso de codificacion de la cuarta generacion. Por otro lado, si el tipo de imagen especificado para la imagen de referencia para el proceso de codificacion de la cuarta generacion es el mismo que el de los tipos de imagen para los procesos de codificacion anteriores, en tal caso, el controlador 70 realiza un denominado “proceso de codificacion de parametros reutilizados”. Es decir, en este caso, esta imagen de referencia ha sido codificada, durante el proceso de codificacion de la primera, segunda o tercera generacion, en el tipo de imagen asignado para el proceso de codificacion de la cuarta generacion.
En primer lugar, el proceso de codificacion normal del controlador 70 sera descrito a continuacion.
Con el fin de determinar si seleccionar o no, el modo de prediccion de trama o de campo de imagen, el circuito de deteccion de vectores de movimiento 50 detecta un error de prediccion tanto en el modo de prediccion de trama como en el modo de prediccion de campo de imagen y suministra la diferencia entre los errores de prediccion al controlador 70. El controlador 70 compara los valores de errores de prediccion juntos para seleccionar el modo de prediccion con el mas pequeno valor. El circuito de conmutacion de modos de prediccion 52 procesa senales dependiendo del modulo de prediccion seleccionado por el controlador 70 para suministrar las senales procesadas al dispositivo calculador 53.
Mas concretamente, si se ha seleccionado el modo de prediccion de trama, el circuito de conmutacion de modos de prediccion 52 procesa una senal de brillo de entrada de modo que la senal se proporcione al dispositivo calculador 53 tal como esta, mientras que se procesa una senal de diferencia de color de entrada de modo que la senal tenga lmeas de campos impares y pares mezcladas juntas, segun se describe haciendo referencia a la Figura 8. Por otro lado, si se ha seleccionado el modo de prediccion de campo de imagen, el circuito de conmutacion de modos de prediccion 52 procesa la senal de brillo en tal manera que los bloques de brillo Y[1] y Y[2] sean configurados por lmeas de campo impares, mientras que los bloques de brillo Y[3] e Y [4] sean configurados mediantes lmeas de campo pares, segun se describe haciendo referencia a la Figura 9. El circuito de conmutacion de modos de prediccion 52 procesa tambien la senal de diferencia de color de tal manera que las cuatro lmeas superiores sean configuradas por lmeas de campo impares, mientras que las cuatro lmeas inferiores sean configuradas por lmeas de campos pares, tambien segun se describe haciendo referencia a la Figura 9.
Ademas, para seleccionar uno de entre el modo de prediccion intra-imagen, el modo de prediccion directa, el modo de prediccion inversa y el modo de prediccion bidireccional, el circuito de deteccion de vectores de movimiento 50 genera y suministra errores de prediccion en estos modos de prediccion al dispositivo controlador 70. El dispositivo controlador 70 selecciona los mas pequenos de los errores de prediccion directa, inversa y bidireccional como un error de interprediccion. Ademas, compara este error de interprediccion con el error de prediccion de intra-imagen para seleccionar el mas pequeno valor con el fin de seleccionar como un modo de prediccion a un modo correspondiente al error de prediccion seleccionado. Es decir, si el error de prediccion intra-imagen es mas pequeno, se establece el modo de prediccion intra-imagen. Si el error de interprediccion es mas pequeno, se establece uno de los modos de prediccion directa, inversa y bidireccional que tenga el mas pequeno error de prediccion. El dispositivo controlador 70 controla el dispositivo calculador 53 y el circuito de compensacion de movimiento 64 en una forma correspondiente al modo de prediccion seleccionado.
Para seleccionar el modo DCT de trama o de campo de imagen, el circuito de conmutacion de modo DCT 55 convierte los datos en los cuatro bloques de brillo en una forma de senal con lmeas de campos impares y pares mezcladas juntas (el modo DCT de trama), mientras se convierten los mismos datos en una forma de senal con estos dos tipos de lmeas de campos separadas entre sf (el modo DCT de campo de imagen). El circuito de conmutacion de modo DCT 55 entrega, entonces, estas senales al circuito DCT 56. El circuito DCT 56 calcula la eficiencia de codificacion de un proceso DCT con lmeas de campos impares y pares mezcladas juntas y la eficiencia de codificacion de un proceso DCT con estos dos tipos de campos separados entre sf y entrega el resultado al dispositivo controlador 70. El dispositivo controlador 70 compara las eficiencias de codificacion entregadas desde el circuito DCT 56 para seleccionar uno de los modos DCT que tiene la mas alta eficiencia de codificacion con el fin de controlar el circuito de conmutacion de modo DCT 55 para introducir el modo DCT seleccionado.
El controlador 70 recibe una tasa binaria objetivo suministrada por el operador o el ordenador central y una senal indicativa de la cantidad de bits memorizados en la memoria intermedia de transmision 59, es decir, una senal indicativa de la magnitud de la memoria intermedia restante y sobre la base de la tasa binaria objetivo y la magnitud de la memoria intermedia restante, genera un codigo de escala denominado feedback_q_scale_code para controlar una magnitud de etapa de cuantizacion para el circuito de cuantizacion 57. El codigo feedback_q_scale_code es una senal de control generada dependiendo de la magnitud de memoria intermedia remanente en la memoria intermedia de transmision 59, para excluir la presencia de un flujo excesivo o insuficiente. Esta senal de control controla
5
10
15
20
25
30
35
40
45
50
55
60
65
tambien la tasa binaria de un flujo de bits procedente de la memoria intermedia de transmision 59 hacia un valor objetivo.
Mas concretamente, si, a modo de ejemplo, la cantidad de bits memorizados en la memoria intermedia de transmision 59 disminuye, la magnitud de la etapa de cuantizacion se reduce para aumentar la cantidad de bits generados para la siguiente imagen que se va a codificar. Por el contrario, si aumenta la cantidad de bits memorizados en la memoria intermedia de transmision 59, se incrementa la magnitud de la etapa de cuantizacion para reducir la cantidad de bits generados para la siguiente imagen objeto de codificacion. La magnitud de la etapa de cuantizacion es proporcional al codigo denominado feedback_q_scale_code, y se aumenta y decrementa en consecuencia.
A continuacion, se explicara un proceso de codificacion de parametros reutilizados, que es una caractenstica del transcodificador 101. Para facilitar el entendimiento de este proceso, la imagen de referencia se supone que ha sido codificada en la imagen P durante el proceso de codificacion de la primera generacion, en la imagen I durante el proceso de codificacion de la segunda generacion y en la imagen B durante el proceso de codificacion de la tercera generacion, de modo que debe codificarse en la imagen P durante el proceso de codificacion de la cuarta generacion.
En este caso, puesto que se ha codificado la imagen de referencia, durante el proceso de codificacion de la primera generacion, en el mismo tipo de imagen (imagen I) como se asigna como el tipo de imagen de la cuarta generacion, el controlador 70 realiza un proceso de codificacion utilizando parametros de codificacion de la primera generacion sin generar nuevos parametros de codificacion a partir de los datos de video suministrados. Los parametros de codificacion reutilizados para el proceso de codificacion de la cuarta generacion suelen incluir un parametro denominado quantiser_scale_code indicativo de la magnitud de la etapa de escala de cuantizacion, un parametro macroblock_type indicativo del modo de direccion de prediccion, un parametro motion_vector indicativo del vector de movimiento, un parametro frame/field_motion indicativo del modo de prediccion de trama o de campo de imagen y un parametro dct_type indicativo del modo DCT de trama o de campo de imagen.
El controlador 70 no reutiliza todos los parametros de codificacion transmitidos como la informacion de registro historico sino que reutiliza los parametros de codificacion que se suponen que sean deseablemente reutilizados segun se describio con anterioridad, mientras que se genera recientemente los parametros de codificacion que no se supone que sean deseablemente reutilizados.
A continuacion, este proceso de codificacion de parametros reutilizados se explicara centrandose en las diferencias respecto al proceso de codificacion normal anteriormente descrito.
El circuito de deteccion de vectores de movimiento 50 detecta el vector de movimiento de la imagen de referencia durante el proceso de codificacion normal anteriormente descrito, pero durante este proceso de codificacion de parametros reutilizados, reutiliza el vector de movimiento motion_vector suministrado como la informacion de registro historico de la primera generacion sin un proceso de deteccion. El motivo se describira mas adelante.
Los datos de video de banda base obtenidos decodificando el flujo codificado de la tercera generacion se ha sometido a procesos de decodificacion y de codificacion al menos tres veces, de modo que tenga evidentemente una mas baja calidad de imagen que los datos de video originales. Un vector de movimiento exacto no puede detectarse a partir de los datos de video con una calidad de imagen reducida. Es decir, el vector de movimiento suministrado como la informacion de registro historico de la primera generacion es claramente mas exacto que el detectado durante el proceso de codificacion de la cuarta generacion. Es decir, reutilizando el vector de movimiento suministrado como los parametros de codificacion de la primera generacion, el proceso de codificacion de la cuarta generacion no podra degradar la calidad de la imagen. El controlador 70 proporciona el vector de movimiento motion_vector suministrado como la informacion de registro historico de la primera generacion, al circuito de compensacion de movimiento 64 y al circuito de codificacion de longitud variable 58 como informacion del vector de movimiento para la imagen de referencia, que se codifica durante el proceso de codificacion de la cuarta generacion.
Ademas, para determinar si seleccionar el modo de prediccion de trama o de campo de imagen, el circuito de deteccion de vectores de movimiento 50 detecta el error de prediccion tanto en el modo de prediccion de trama como en el modo de prediccion de campo de imagen. Durante este proceso de codificacion de parametros reutilizados, sin embargo, el circuito de deteccion de vectores de movimiento 50 reutiliza el parametro frame/field_motion_type indicativo del modo de prediccion de trama o del modo de prediccion de campo de imagen y se suministra como la informacion de registro historico de la primera generacion, sin necesidad de detectar el error de prediccion tanto en el modo de prediccion de trama como en el modo de prediccion de campo de imagen. Esto es asf porque el error de prediccion en cada modo de prediccion detectado en la primera generacion es mas exacto que el que se detecta durante el proceso de codificacion de la cuarta generacion y porque la seleccion del modo de prediccion determinado sobre la base del error de prediccion mas exacto permite un proceso de codificacion mas optimo.
Mas concretamente, el dispositivo controlador 70 suministra al circuito de conmutacion de modos de prediccion 52
5
10
15
20
25
30
35
40
45
50
55
60
65
una senal de control correspondiente al parametro frame/field_motion_type entregado como la informacion de registro historico de la primera generacion y el circuito de conmutacion de modos de prediccion 52 realiza un proceso de senalizacion correspondiente al parametro frame/field_motion_type.
Ademas, durante el proceso de codificacion normal, el circuito de deteccion de vectores de movimiento 50 calcula el error de prediccion en cada modo de direccion de prediccion con el fin de determinar la seleccion de entre el modo de prediccion intraimagen, el modo de prediccion directa, el modo de prediccion inversa y el modo de prediccion bidireccional (este modo de prediccion se refiere mas adelante como un “modo de direccion de prediccion”). Durante este proceso de codificacion de parametros reutilizados, sin embargo, el circuito de deteccion de vectores de movimiento 50 determina el modo de direccion de prediccion sobre la base del tipo de macrobloque suministrado como la informacion de registro historico de la primera generacion sin calcular el error de prediccion en cada modo de direccion de prediccion. Esto es asf porque el error de prediccion en cada modo de direccion de prediccion durante el proceso de codificacion de la primera generacion es mas exacto que el detectado durante el proceso de codificacion de la cuarta generacion y porque la seleccion del modo de direccion de prediccion determinado sobre la base del error de prediccion mas exacto permite un proceso de codificacion mas eficiente. Mas concretamente, el controlador 70 selecciona el modo de direccion de prediccion indicado por el tipo de macrobloque contenido en la informacion de registro historico de la primera generacion y luego, controla el dispositivo calculador 53 y el circuito de compensacion de movimiento 64 en una forma correspondiente al modo de direccion de prediccion seleccionado.
Durante el proceso de codificacion normal, el circuito de conmutacion de modo DCT 55 suministra al circuito DCT 56 ambas senales controvertidas en las formas de senales del modo DCT de trama y de campo de imagen con el fin de comparar las eficiencias de codificacion en los modos DCT de trama y de campo de imagen. Durante este proceso de codificacion de parametros reutilizados, sin embargo, el circuito de conmutacion de modo DCT 55 realiza un procesamiento correspondiente al modo DCT indicado por el parametro dct_type contenido en la informacion de registro historico de la primera generacion sin generar ambas senales convertidas en la forma de senales del modo DCT de trama y de campo de imagen. Mas concretamente, el dispositivo controlador 70 reutiliza el parametro dct_type contenido en la informacion de registro historico de la primera generacion para controlar el circuito de conmutacion de modo DCT 55 con el fin de realizar un proceso de senalizacion correspondiente al modo DCT indicado por el parametro dct_type.
Durante el proceso de codificacion normal, el dispositivo controlador 70 controla la magnitud de la etapa de cuantizacion para el circuito de cuantizacion 57 sobre la base de la tasa binaria objetivo especificada por el operador y la magnitud de la memoria intermedia de transmision restante. Durante este proceso de codificacion de parametros reutilizados, el dispositivo controlador 70 controla la magnitud de la etapa de cuantizacion para el circuito de
cuantizacion 57 sobre la base de la tasa binaria objetivo, la magnitud de la memoria intermedia de transmision
restante y la escala de cuantizacion anterior contenida en la informacion de registro historico. En la descripcion
siguiente, la escala de cuantizacion anterior contenida en la informacion de registro historico se describe como
history_q_scale_code. En un flujo de registro historico, descrito a continuacion, esta escala de cuantizacion se describe tambien como quantiser_scale_code.
En primer lugar, el controlador 70 genera el codigo de escala de cuantizacion feedback_q_scale_code como en el proceso de codificacion normal. El parametro feedback_q_scale_code es una magnitud determinada dependiendo de la capacidad de memoria intermedia remanente en la memoria intermedia de transmision 59 para impedir la presencia de un flujo excesivo y de un flujo deficiente. Posteriormente, el controlador 70 compara el parametro de escala de cuantizacion anterior history_q_scale_code contenido en el flujo de registro historico de la primera generacion con el parametro de escala de cuantizacion en curso feedback_q_scale_code para determinar el de mayor magnitud. Una escala de cuantizacion mayor significa una etapa de cuantizacion mayor. Si el codigo de escala de cuantizacion en curso feedback_q_scale_code es mayor que el codigo de escala de cuantizacion anterior history_q_scale_code, el controlador 70 suministra el codigo de escala de cuantizacion en curso feedback_q_scale_code al circuito de cuantizacion 57. Por el contrario, si el codigo de escala de cuantizacion anterior history_q_scale_code es mayor que el codigo de escala de cuantizacion en curso feedback_q_scale_code, el controlador 70 suministra el codigo de escala de cuantizacion anterior history_q_scale_code al circuito de cuantizacion 57.
Es decir, el dispositivo controlador 70 selecciona el mayor codigo de escala de cuantizacion de entre la pluralidad de escalas de cuantizacion anteriores contenidas en la informacion de registro historico y la escala de cuantizacion en curso calculada a partir de la capacidad de memoria intermedia de transmision remanente. Dicho de otro modo, el controlador 70 controla el circuito de cuantizacion 57 para realizar una cuantizacion utilizando la mayor de las etapas de cuantizacion utilizadas para los procesos de codificacion anteriores (de la primera, segunda y tercera generacion) y para el proceso de codificacion en curso (de la cuarta generacion). El motivo se describira mas adelante.
A modo de ejemplo, se supone que un flujo generado durante el proceso de codificacion de la tercera generacion tiene una tasa binaria de 4 Mbps y que una tasa binaria objetivo de 15 Mbps se establece para el dispositivo de codificacion 106 que realiza este proceso de codificacion de la cuarta generacion. Aunque la tasa binaria objetivo sea mas alta, no se obtiene un resultado adecuado simplemente reduciendo la etapa de cuantizacion. La calidad de imagen de una imagen codificada con una etapa de cuantizacion de gran magnitud durante el proceso de
5
10
15
20
25
30
35
40
45
50
55
60
65
codificacion anterior no puede mejorarse si se codifica con una etapa de cuantizacion reducida durante el proceso de codificacion en curso. Es decir, una codificacion con una etapa de cuantizacion mas pequena que una etapa para un proceso de codificacion anterior simplemente aumenta la cantidad de bits y deja de mejorar la calidad de la imagen. De este modo, el proceso de codificacion mas eficiente puede conseguirse utilizando para la cuantizacion la mayor de las etapas de cuantizacion utilizadas para los procesos de codificacion anteriores (de la primera, segunda y tercera generacion) y para el proceso de codificacion en curso (cuarta generacion).
A continuacion, el dispositivo de decodificacion de registro historico 104 y el dispositivo de codificacion de registro historico 107 en la Figura 15 se describiran a continuacion. Aunque en la Figura 15, el dispositivo de decodificacion de registro historico 104, se ilustra como siendo un circuito o dispositivo diferente del dispositivo de decodificacion 102, simplemente se ilustra en un bloque diferente del que sirve para ilustrar el dispositivo de decodificacion 102 con el fin de describir las funciones y la configuracion del dispositivo de decodificacion de registro historico 104 en una manera facil de entender. El procesamiento por el dispositivo de decodificacion de registro historico 104 se efectua realmente mediante un circuito de decodificacion de longitud variable y un circuito de control de decodificacion (un controlador de decodificacion) en el dispositivo de decodificacion 102. De forma similar, aunque en la Figura 15 el dispositivo de codificacion de registro historico 107 se ilustra como siendo un circuito o dispositivo diferente del dispositivo de codificacion 106, simplemente se muestra en un bloque distinto del ilustrado con el dispositivo de decodificacion 106, con el fin de describir las funciones y la configuracion del dispositivo de decodificacion de registro historico 107 en una manera facil de entender. El procesamiento por el dispositivo de codificacion de registro historico 107 se efectua realmente por un circuito de codificacion de longitud variable y un circuito de control de codificacion (un controlador de codificacion) en el dispositivo de codificacion 102.
Segun se ilustra en la Figura 15, el dispositivo de decodificacion de registro historico 104 esta configurado por un decodificador de datos de usuario 201 para decodificar los datos de usuarios suministrados por el dispositivo de decodificacion 102, un convertidor 202 para convertir una salida procedente del decodificador de datos de usuario 201 y un VLD de registro historico 203 para reproducir la informacion de registro historico procedente del convertidor 202.
Ademas, el dispositivo de codificacion de registro historico 107 esta configurado por un VLC de registro historico 211 para dar formato a los parametros de codificacion para las tres generaciones suministradas por el dispositivo de separacion de informacion de registro historico 105, un convertidor 212 para convertir una salida procedente del VLC de registro historico 211 y un dispositivo para dar formato a los datos de usuario 213 para formatear una salida procedente del convertidor 212 en un formato de datos de usuarios.
El decodificador de datos de usuario 201 decodifica los datos de usuario suministrados por el dispositivo de decodificacion 102 para proporcionar los datos convertidos al convertidor 202. Los detalles seran examinados mas adelante haciendo referencia Figura 51. Los datos de usuarios (user_data()) consisten en un codigo user_data_start_code y user-data y la norma MPEG protube que los datos de usuario user_data contengan 23 bits continuos de "0" (que son identicos a los del codigo de inicio start_code). Lo que antecede es para impedir que estos datos sean erroneamente detectados como el codigo de inicio start_code. La informacion de registro historico (history_stream()) se describe en la zona de datos de usuario (como un tipo de user_data en conformidad con la norma MPEG) y puede contener dichos 23 bits continuos o mas de "0," de modo que un "1" debe insertarse en esta informacion en conformidad con una temporizacion predeterminada para su conversion en el flujo de registro historico convertido converted_history_stream() (vease la Figura 38 descrita mas adelante), con el fin de impedir la presencia de 23 bits o mas de "0". Esta conversion se realiza por el convertidor 212 del dispositivo de codificacion de registro historico 107. El convertidor 202 del dispositivo de decodificacion de registro historico 104 realiza un proceso de conversion inversa para el convertidor 212 (que elimina el "1" insertado para impedir la presencia de 23 bits o mas de "0").
El VLD de registro historico 203 genera la informacion de registro historico (en este caso, los parametros de codificacion de la primera y de la segunda generacion) a partir de la salida procedente desde el convertidor 202 para proporcionarlos al dispositivo de multiplexacion de informacion de registro historico 103.
Por otro lado, en el dispositivo de codificacion de registro historico 107, el VLC de registro historico 211 convierte los parametros de codificacion para las tres generaciones (primera, segunda y tercera generaciones) suministrados por el dispositivo de separacion de informacion de registro historico 105, en un formato de informacion de registro historico. Este formato incluye un tipo de longitud fija (vease las Figuras 40 a 46, descritas mas adelante) y un tipo de longitud variable (vease Figura 47 y Figuras posteriores). Los detalles se describiran mas adelante.
La informacion de registro historico formateada por el VLC de registro historico 211 se convierte en el flujo de registro historico convertido converted_history_stream() por el convertidor 212. Lo que antecede es para impedir que el codigo de inicio start_code se erroneamente detectado desde los user_data() segun se describio con anterioridad. Es decir, aunque la informacion de registro historico contiene 23 bits continuos o mas de "0", puesto que dichos 23 bits continuos o mas de "0" no se pueden disponer dentro de los user_data, el convertidor 212 convierte los datos (inserta un "1" en los datos en conformidad con la temporizacion predeterminada) con el fin de no desviarse de la prohibicion.
5
10
15
20
25
30
35
40
45
50
55
60
65
El dispositivo para dar formato a los datos de usuario 213 anade el indicador History_Data_ID al flujo de registro historico convertido converted_history_stream() suministrado por el convertidor 212, sobre la base de la representacion de la Figura 38, descrita mas adelante, y anade un codigo de flujo de datos de usuario user_data_stream_code para generar user_data en cumplimiento con la norma MPEG de modo que estos datos puedan insertarse en un flujo de video y luego, proporcionarse al dispositivo de decodificacion 106.
La Figura 20 representa una realizacion, a modo de ejemplo, de una configuracion del VLC de registro historico 211. Su convertidor de palabras de codigo 301 y el convertidor de longitud de codigo 305 se suministran desde el dispositivo de separacion de informacion de registro historico 105 con parametros de codificacion (que son actualmente transmitidos como la informacion de registro historico) (datos de elementos) e informacion (a modo de ejemplo, el nombre de una sintaxis (a modo de ejemplo, el nombre de la cabecera de secuencia sequence_header, descrita mas adelante)) (n° de evento) que identifica un flujo en el que han de disponerse estos parametros de codificacion. El convertidor de palabras de codigo 301 convierte los parametros de codificacion de entrada en palabras de codigo correspondientes a una sintaxis indicada y proporciona las palabras de codigo obtenidas a un dispositivo desplazador 302. El dispositivo desplazador 302 desplaza las palabras de codigo de la entrada por el convertidor de palabras de codigo 301 en una magnitud correspondiente a una magnitud de desplazamiento suministrada por un 306, y proporciona las palabras de codigo desplazadas a un conmutador 303 en bytes. El conmutador 303, que se conmuta por una senal de seleccion de bits proporciona da por el circuito de generacion de direcciones 306, es identico en numero a los bits requeridos y entrega las palabras de codigo suministradas por el dispositivo desplazador 302 a una memoria RAM 304 para su almacenamiento. Las direcciones de escritura requeridas se especifican por el circuito de generacion de direcciones 306. Ademas, cuando el circuito de generacion de direcciones 306 especifica direcciones objeto de lectura, los datos correspondientes (palabras de codigo) memorizados en la memoria RAM 304 son objeto de lectura y se suministran al convertidor siguiente 212 y se entregan de nuevo a la memoria RAM 304 por intermedio del conmutador 303 para su almacenamiento.
El convertidor de longitud de codigo 305 determina la longitud de codigo de los parametros de codificacion de entrada desde la sintaxis de entrada y estos parametros se proporcionan al circuito de generacion de direcciones 306. El circuito de generacion de direcciones 306 genera la magnitud de desplazamiento anteriormente descrita, la senal de seleccion de bits o las direcciones de escritura o lectura en correspondencia con la longitud del codigo de entrada para su suministro al dispositivo desplazador 302, el conmutador 303, o la memoria RAM 304, respectivamente.
Segun se describio con anterioridad, el VLC de registro historico 211 esta configurado como lo que se denomina un codificador de longitud variable para someter los parametros de codificacion de entrada a una codificacion de longitud variable antes de la salida.
La Figura 21 representa una realizacion, a modo de ejemplo, de una configuracion del VLD de registro historico 203 para decodificar los datos formatos en la informacion de registro historico segun se describio con anterioridad. En el VLD de registro historico 203, los datos de parametros de codificacion entregados por el convertidor 202 se suministran y luego se memorizan en una memoria RAM 311. Las direcciones de escritura requeridas se suministran por un circuito de generacion de direcciones 315. El circuito de generacion de direcciones 315 genera tambien direcciones objeto de lectura en conformidad con una temporizacion predeterminada para su suministro a la memoria RAM 311. La memoria RAM 311 efectua la lectura de los datos memorizados en las direcciones de lectura para proporcionarlos a un dispositivo desplazador 312. El dispositivo desplazador 312 desplaza los datos de entrada en una magnitud correspondiente a una magnitud de desplazamiento suministrada por el circuito de generacion de direcciones 315 y proporciona los datos desplazados a un convertidor de longitud de codigo inversa 313 y un convertidor de palabras de codigo inversas 314.
El convertidor de longitudes de codigo inversa 313 se suministra tambien con el nombre de una sintaxis (un n° de referencia) para un flujo con los parametros de codificacion dispuestos por el convertidor 202. Sobre la base de esta sintaxis, el convertidor de longitudes de codigo inversa 313 determina una longitud de codigo a partir de los datos de entrada (palabras de codigo) para proporcionarlos al circuito de generacion de direcciones 315.
Ademas, el convertidor de palabras de codigo inverso 314 decodifica los datos suministrados por el dispositivo desplazador 312 sobre la base de la sintaxis y proporciona los datos decodificados al dispositivo de multiplexacion de informacion de registro historico 103.
El convertidor de palabras de codigo inversas 314 extrae tambien informacion requerida para determinar que palabras de codigo estan contenidas en los datos (es decir, la informacion requerida para determinar como se delimitan las palabras de codigo) y los proporciona al circuito de generacion de direcciones 315. Sobre la base de esta informacion y la entrada de longitud de codigo por el convertidor de longitud de codigo inverso 313, el circuito de generacion de direcciones 315 genera direcciones de escritura y de lectura para proporcionarlas a la memoria RAM 311 y genera una magnitud de desplazamiento para proporcionarlo al dispositivo desplazador 312.
La Figura 22 representa una realizacion, a modo de ejemplo, de una configuracion del convertidor 212. En esta
5
10
15
20
25
30
35
40
45
50
55
60
65
realizacion, a modo de ejemplo, los datos de 8 bits son objeto de lectura desde una memoria intermedia 320 situada entre el VLC de registro historico 211 y el convertidor 212, en las direcciones de lectura proporcionadas por un dispositivo controlador 326, y luego, se suministran a un circuito flip-flop D (D-FF) 321 para su retencion. Los datos objeto de lectura desde el circuito flip-flop D 321 se suministran a un circuito de relleno 323 y a un circuito flip flop D de 8 bits 322 para su retencion. Los datos de 8 bits objeto de lectura desde el circuito flip-flop D 322 y los datos de 8 bits objeto de lectura desde el circuito flip flop D 321 se sintetizan en datos paralelos de 16 bits, que luego se proporcionan al circuito de relleno 323.
El circuito de relleno 323 inserta el codigo "1" en los datos en una posicion indica por una senal suministrada por el dispositivo controlador 326 y que indica la posicion de relleno (stuffing) y proporciona los datos rellenados a un dispositivo desplazador 324 como datos de 17 bits.
El dispositivo desplazador 324 desplaza los datos de entrada sobre la base de una senal (shift) suministrada por el controlador 326 y que indica la magnitud del desplazamiento, y extrae datos de 8 bits para proporcionarlos a un circuito flip flop D de 8 bits 325. Los datos retenidos en el circuito flip flop D 325 son luego objeto de lectura y se entregan al siguiente dispositivo para dar formato a los datos de usuario 213 a traves de una memoria intermedia 327. En este punto, el dispositivo controlador 326 genera direcciones de escritura con datos de salida para proporcionarlas a la memoria intermedia 327, que esta interpuesta entre el convertidor 212 y el dispositivo para dar formato a los datos de usuario 213.
La Figura 23 representa una realizacion, a modo de ejemplo, de una configuracion del circuito de relleno 323. La entrada de datos de 16 bits por los circuitos flip flop D 322, 321 se aplica a la entrada de un contacto a de cada conmutador 331-16 a 331-1. A un contacto c de un conmutador 331-i (i = 0 a 15) se suministra datos para un conmutador adyacente en un lado de MSB (el lado superior de la Figura). A modo de ejemplo, el contacto c del conmutador 331-12 se suministra con los 13° datos desde un lado LSB suministrado al contacto a del conmutador 331-13 adyacente en el lado MSB y el contacto c del conmutador 331-13 se suministra con los 14° datos procedentes del lado LSB suministrado al contacto a del conmutador 331-14 adyacente en el lado de MSB.
Sin embargo, el contacto a del conmutador 331-0 por debajo del conmutador 331-1 correspondiente al LSB esta abierto. El contacto c del conmutador 331-16 correspondiente al MSB esta tambien abierto porque no existe ningun conmutador mas alto.
Un contacto b de cada conmutador 331-0 a 331-16 se suministra con los datos "1".
En respuesta a la posicion de relleno de la senal que se suministra por el dispositivo controlador 326 y que indica la posicion en la que se insertan los datos "1", un decodificador 332 conmuta uno de los conmutadores 331-0 a 331-16 al lado del contacto b, con lo que se conmuta el conmutador del lado LSB al lado del contacto c, mientras que se conmuta el conmutador del lado MSB al lado del contacto a.
La Figura 23 representa una realizacion, a modo de ejemplo, en donde los datos "1" se insertan en el 13° conmutador desde el lado LSB. Por lo tanto, en este caso, los conmutadores 331-0 a 331-12 son cada uno conmutados al lado del contacto c, el conmutador 331-13 se conmuta al lado del contacto by los conmutadores 33114 a 331-16 se conmutan cada uno al lado del contacto a.
Con la configuracion anterior, el convertidor 212 en la Figura 22 convierte el codigo de 22 bits en 23 bits para la salida.
La Figura 24 representa temporizaciones para los datos de salida desde cada seccion del convertidor 212 ilustrado en la Figura 22. Cuando el controlador 326 del convertidor 212 genera direcciones de lectura (Figura 24 (A)) en sincronismo con un reloj en bytes, los datos correspondientes son objeto de lectura desde la memoria intermedia 320 en bytes y se retienen en el circuito flip flop D 321. Los datos de lectura procedentes del circuito flip flop D 321 (Figura 24(B)) se suministran al circuito de relleno 323 y al circuito flip flop D 322 para su retencion. Los datos retenidos en el circuito flip flop D 322 son objeto de nueva lectura (Figura 24(C)) y se entregan al circuito de relleno 323.
En consecuencia, los primeros datos de 1 byte D0 se aplican a la entrada del circuito de relleno 323 (Figura 24(D)) Con respecto a una temporizacion para una direccion de lectura A1, los datos de 2 bytes constituidos por los datos de 1 byte D0 y los datos de un byte D1 se aplican a la entrada con respecto a una temporizacion para la siguiente direccion de lectura A2 y los datos de 2 bytes constituidos por los datos de D1 y los datos D2 se aplican a la entrada con respecto a una temporizacion para una direccion de lectura A3.
El circuito de relleno 323 se suministra con la posicion de relleno de senal (Figura 24 (E)) por el dispositivo controlador 326, que indica la posicion en la que se insertan los datos "1". El decodificador 332 del circuito de relleno 323 conmuta al contacto b uno de los conmutadores 331-16 a 331-0 lo que corresponde a esta posicion de relleno de senal, con lo que se conmuta el conmutador del lado LSB al lado del contacto c mientras que se conmuta el conmutador del lado MSB al lado del contacto a. De este modo, se insertan los datos "1", de modo que el circuito de
5
10
15
20
25
30
35
40
45
50
55
60
65
relleno 323 proporcione datos (Figura 24(F)) que indican que los datos "1" se han insertado en la posicion indicada por la posicion de relleno de senal.
El dispositivo desplazador 324 desplaza los datos de entrada en una magnitud indicada por el desplazamiento de senal (Figura 24(G)) que se suministra por el dispositivo controlador 326 y proporciona, a la salida, los datos desplazados (Figura 24(H)). Esta salida se retiene, ademas, en el circuito flip flop D 325 y luego, se proporciona al circuito siguiente (Figura 24 (I)).
La salida de datos por el circuito flip flop D 325 tiene los datos "1" insertados despues de los datos de 22 bits. De este modo, existen 22 ceros continuos entre los datos "1" y los siguientes datos "1" aun cuando todos los bits entre estos datos sean cero.
La Figura 25 representa una realizacion, a modo de ejemplo, de una configuracion del convertidor 202. La configuracion del convertidor 202, que esta configurado por un circuito flip flop D 341 para un dispositivo controlador 346, es esencialmente la misma que la del convertidor 212, que esta constituido por el flip flop D 321 para el dispositivo controlador 326, pero difiere en que un circuito de supresion 343 esta interpuesto en el convertidor 202 en lugar del circuito de relleno 323 en el convertidor 212. La otra parte de la configuracion es la misma que la del convertidor 212 ilustrado en la Figura 22.
En el convertidor 202, el circuito de supresion 343 suprime un bit (los datos "1" insertados por el circuito de relleno 323 en la Figura 22) en conformidad con una posicion de supresion de senal proporcionada por el dispositivo controlador 346 y que indica la posicion de este bit.
Las otras operaciones son las mismas que en el convertidor 212 ilustrado en la Figura 22.
La Figura 26 es una realizacion, a modo de ejemplo, de una configuracion del circuito de supresion 343. En esta realizacion ejemplo, los 15 bits del lado LSB de los 16 bits introducidos por los circuitos flip flops D 342, 341 se suministran cada uno a un contacto a de un conmutador correspondiente de los conmutadores 351-0 a 351-14. Un contacto b de cada conmutador se suministra con un bit que esta mas proximo al MSB que el bits suministrado al contacto a, en un bit. Un decodificador 352 suprime el bit indicado por la posicion de supresion de senal que se suministra por el controlador 346 y proporciona los 15 bits restantes.
La Figura 26 representa como se suprimen el 13° bits desde el lado LSB. Por lo tanto, en este caso, los conmutadores 351-0 a 351-11 estan cada uno conmutados al lado del contacto a y los 12 bits hasta el 12° bits desde el lado LSB se selecciona y proporcionan tal como estan. Ademas, los conmutadores 351-12 a 351-14 estan cada uno conmutados al lado del contacto b, en donde los 14° a 16° datos se seleccionan y proporcionan como los datos del 13° a 15° bits.
Las entradas al circuito de relleno 323 en la Figura 23 y al circuito de supresion 343 en la Figura 26 contienen cada una 16 bits porque los 16 bits suministrados por los circuitos flip flops D 322, 321 son objeto de entrada al circuito de relleno 323 del convertidor 212 en la Figura 22 y porque los 16 bits suministrados por los circuitos flip flops D 342, 341 son tambien objeto de entrada al circuito de supresion 343 del convertidor 202 en la Figura 25. En la Figura 22, los 17 bits proporcionados por el circuito de relleno 323 son desplazados por el dispositivo desplazador 324 para seleccionar finalmente y proporcionar, a modo de ejemplo, 8 bits. De forma similar, en el convertidor 202 ilustrado en la Figura 25, los 15 bits proporcionados por el circuito de supresion 343 son desplazados por el dispositivo desplazador 344 en una magnitud predeterminada para obtener datos de 8 bits.
La Figura 27 representa otra realizacion, a modo de ejemplo, de una configuracion del convertidor 212. En esta realizacion ejemplo de una configuracion, un contador 361 realiza el conteo del numero de ceros continuos en los datos de entrada y proporciona un resultado del conteo al dispositivo controlador 326. Cuando el contador 361 efectua el conteo, a modo de ejemplo, de 22 bits 0 continuos, el dispositivo controlador 326 proporciona la posicion de relleno de senal al circuito de relleno 323. Al mismo tiempo, el dispositivo controlador 326 efectua tambien una reposicion del contador 361 para permitirle contar de nuevo 0 bits continuos.
La otra parte de la configuracion y las otras operaciones son las mismas que se ilustraron en la Figura 22.
La Figura 28 representa otra realizacion ejemplo de una configuracion del convertidor 202. En esta realizacion, a modo de ejemplo, de una configuracion, un contador 371 efectua el conteo del numero de ceros continuos en los datos de entrada y proporciona un resultado de conteo al dispositivo controlador 346. Cuando el valor de conteo en el contador 371 alcanza el valor 22, el dispositivo controlador 346 proporciona la posicion de supresion de senal al circuito de supresion 343 y tambien efectua la reposicion del contador 371 para permitirle contar, de nuevo, cero bits continuos. La otra parte de la configuracion es la misma que la ilustrada en la Figura 25.
De esta manera, en este ejemplo de una configuracion, los datos "1" se insertan y suprimen como un bit marcados sobre la base de un modelo predeterminado (el numero de datos continuos "ceros").
5
10
15
20
25
30
35
40
45
50
55
60
65
Las configuraciones ilustradas en las Figuras 27 y 28 permiten un procesamiento mas eficiente que las que se ilustran en las Figuras 22 y 25. La longitud de codigo despues de la conversion, sin embargo, depende de la informacion de registro historico origen.
La Figura 29 representa, a modo de ejemplo, de una configuracion del dispositivo para dar formato a los datos de usuario 213. En esta realizacion ejemplo, cuando un dispositivo controlador 383 proporciona direcciones de lectura a una memoria intermedia (no ilustrada) situada entre el convertidor 212 y el dispositivo para dar formato a los datos de usuario 213, los datos objeto de lectura desde la memoria intermedia se suministran a un lado de contacto a de un conmutador 382 del dispositivo para dar formato a los datos de usuario 213. Una memoria ROM 381 memoriza datos tales como el codigo de inicio de datos de usuario y el identificador de datos que se requieren para generar datos de usuario user_data(). El dispositivo controlador 313 conmuta el conmutador 382 al lado del contacto a o a un lado de contacto b con respecto a una temporizacion predeterminada para seleccionar y proporcionar, cuando sea adecuado, lo datos memorizados en la memoria ROM 381 o los datos suministrados por el convertidor 212. De este modo, lo datos en el formato de user_data() se proporcionan al dispositivo de codificacion 106.
Aunque no se ilustra, el decodificador de datos de usuario 201 puede ponerse en practica proporcionando datos de entrada por intermedio de un conmutador para suprimir datos insertados que han sido objeto de lectura desde la memoria ROM 381 en la Figura 29.
La Figura 30 ilustra como una pluralidad de transcodificadores 101-1 a 101-N estan conectados en serie para su uso en, a modo de ejemplo, un estudio de edicion de video. Un dispositivo de multiplexacion de informacion de registro historico 103-i de cada transcodificador 101-i (i = 1 a N) realiza la escritura de los mas recientes parametros de codificacion que ha utilizado, en esa particion de una zona para los parametros de codificacion anteriormente descritos en donde se registran los mas antiguos parametros de codificacion. A continuacion, los datos de imagenes de banda base se han registrado inmediatamente proximos a las cuatro generaciones de parametros de codificacion (informacion de registro historico de generaciones) en correspondencia con el mismo macrobloque (Figura 18).
En un dispositivo de codificacion 106-i de cada dispositivo de codificacion 106-i (Figura 19), el circuito de codificacion de longitud variable 58 codifica datos de video suministrados por el circuito de cuantizacion 57, sobre la base de los parametros de codificacion actuales entregados por un dispositivo de separacion de informacion de registro historico 105-i. Un flujo de bits asf generado (a modo de ejemplo, picture_header()) tiene los parametros de codificacion en curso multiplexados.
El circuito de codificacion de longitud variable 58 multiplexa tambien datos de usuario (incluyendo la informacion de registro historico de generaciones) suministrada por un dispositivo de codificacion de registro historico 107-i, en un flujo de bits para la salida (los datos se multiplexan en el flujo de bits en lugar de incorporarse segun se ilustra en la Figura 18). El flujo de bits proporcionado por el dispositivo de codificacion 106-i se aplica a la entrada del transcodificador siguiente 101-(i+1) por intermedio de una SDTI (Interfaz de Transferencia de Datos en Serie).
Los transcodificadores 101-i y 101-(i+1) estan cada uno configurados segun se ilustra en la Figura 15. En consecuencia, el procesamiento por estos transcodificadores es el mismo que se describe con referencia a la Figura 15.
Para la codificacion real utilizando registros historicos de los parametros de codificacion, si la imagen I en curso ha de cambiarse al tipo P o B, los registros historicos anteriores de los parametros de codificacion se examinan para buscar la imagen P o B anterior. Si existe dicho registro historico, parametros tales como sus vectores de movimiento se utilizan para cambiar el tipo de imagen. Por el contrario, si no se encuentra dicho registro historico, se abandona la intencion de cambiar el tipo de imagen sin deteccion de movimiento. Por supuesto, aun cuando no se encuentre dicho registro historico, el tipo de imagen se puede cambiar mediante la deteccion de movimiento.
Aunque, en el formato ilustrado en la Figura 18, cuatro generaciones de parametros de codificacion se integran en los datos, los parametros para cada uno de los tipos de imagen I, P, y B pueden integrarse de igual manera. La Figura 31 es un ejemplo de un formato en este caso. En esta realizacion ejemplo, cuando el mismo macrobloque ha sido codificado mientras se cambia el tipo de imagen, una generacion de parametros de codificacion se registran para cada tipo de imagen (informacion de registro historico de imagenes). En consecuencia, el dispositivo de decodificacion 102 ilustrado en la Figura 16 y el dispositivo de codificacion 106 ilustrado en la Figura 19 tienen a la entrada y salida una generacion de parametros de codificacion correspondientes a las imagenes I, P y B en lugar de parametros de codificacion para la actual (mas reciente), tercera, segunda y primera generaciones.
Ademas, en este caso, las zonas vadas Cb[1] [x] y Cr[1] [x] no se utilizan, de modo que la presente invencion es aplicable a la imagen en un formato 4:2:0 libre de las zonas Cb[1][x] y Cr[1][x].
En este caso, el dispositivo de decodificacion 102 obtiene los parametros de codificacion simultaneamente con la decodificacion, determina el tipo de imagen, realiza la escritura de los parametros de codificacion para una parte de la senal de imagen correspondiente al tipo de imagen (multiplexacion) y proporciona, a la salida, la senal al dispositivo de separacion de informacion de registro historico 105. El dispositivo de separacion de informacion de
5
10
15
20
25
30
35
40
45
50
55
60
65
registro historico 105 puede separar los parametros de codificacion desde la senal para realizar una codificacion mientras que el cambio del tipo de imagen toma en consideracion el tipo de imagen deseado para la codificacion y los parametros de codificacion anteriores de entrada.
A continuacion, un proceso para permitir a cada transcodificador 101 determinar los posibles tipos de imagenes de destino se describira haciendo referencia al diagrama de flujo ilustrado en la Figura 32. El cambio del tipo de imagen por el transcodificador 101 debe realizarse sin deteccion de movimiento porque utiliza vectores de movimiento anteriores. Ademas, el procesamiento descrito a continuacion se ejecuta por el dispositivo de separacion de informacion de registro historico 105.
En la etapa S1, una generacion de parametros de codificacion (informacion de registro historico de imagen) se aplican a la entrada del dispositivo de separacion de informacion de registro historico 105 para cada tipo de imagen.
En la etapa S2, el dispositivo de separacion de informacion de registro historico 105 determina si la informacion de registro historico de imagenes contiene, o no, parametros de codificacion utilizados para un cambio a la imagen B. Si el dispositivo de separacion de informacion de registro historico 105 determina que la informacion de registro historico de imagenes contiene parametros de codificacion utilizados para un cambio a la imagen B, el proceso prosigue con la etapa S3.
En la etapa S3, el dispositivo de separacion de informacion de registro historico 105 determina si la informacion de registro historico de imagenes contiene, o no, parametros de codificacion utilizados para un cambio a la imagen P. Si dispositivo de separacion de informacion de registro historico 105 determina que la informacion de registro historico de imagenes contiene parametros de codificacion utilizados para un cambio a la imagen P, el proceso prosigue con la etapa S4.
En la etapa S4, el dispositivo de separacion de informacion de registro historico 105 determina que los posibles tipos de imagenes de destino son las imagenes I, P, y B.
Si se determina en la etapa S3 que informacion de registro historico de imagenes no contiene parametros de codificacion utilizados para un cambio a la imagen P, el proceso prosigue con la etapa S5.
En la etapa S5, el dispositivo de separacion de informacion de registro historico 105 determina que los posibles tipos de imagen de destino son las imagenes I y B. Ademas, el dispositivo de separacion de informacion de registro historico 105 determina que puede utilizarse un procesamiento especial (solamente los vectores de prediccion directa contenidos en la informacion de registro historico de la imagen B se utilizan sin los vectores de prediccion inversa) para cambiar a la imagen P en un pseudo-modo operativo.
Si se determina en la etapa S2 que la informacion de registro historico de imagen no contiene parametros de codificacion utilizados para un cambio a la imagen B, el proceso prosigue con la etapa S6.
En la etapa S6, el dispositivo de separacion de informacion de registro historico 105 determina si la informacion de registro historico de imagenes contiene, o no, parametros de codificacion utilizados para un cambio a la imagen P. Si el dispositivo de separacion de informacion de registro historico 105 determina que la informacion de registro historico de imagenes contiene parametros de codificacion utilizados para un cambio a la imagen P, el proceso prosigue con la etapa S7.
En la etapa S7, el dispositivo de separacion de informacion de registro historico 105 determina que los posibles tipos de imagenes de destino son las imagenes I y P. Ademas, el dispositivo de separacion de informacion de registro historico 105 determina que puede utilizarse un procesamiento especial (solamente los vectores de prediccion directa contenidos en la informacion de registro historico de imagenes P se utilizan) para cambiar a la imagen B en un pseudo-modo operativo.
Si se determina en la etapa S6 que la informacion de registro historico de imagenes no contiene parametros de codificacion utilizados para un cambio en la P, el proceso prosigue con la etapa S8. En la etapa S8, el dispositivo de separacion de informacion de registro historico 105 determina que solamente el tipo de imagen de destino posible es la imagen I porque ningun vector de movimiento esta presente (puesto que se trata de la imagen I, que solamente puede cambiarse a la propia imagen I).
Despues del procesamiento en las etapas S4, S5, S7, y S8 en la etapa S9, el dispositivo de separacion de informacion de registro historico 105 visualiza los posibles tipos de imagen de destino en el dispositivo de presentacion visual (no ilustrado) para notificacion al usuario.
La Figura 33 ilustra un ejemplo de cambio de tipo de imagen. Para cambiar el tipo de imagen, el numero de tramas que constituyen el grupo GOP es objeto de cambio. Es decir, en este caso, un grupo GOP largo de 4 Mbps (primera generacion) constituido por tramas de N = 15 (numero de tramas GOP N = 15) y M = 3 (ciclo de ocurrencia de imagenes I o P dentro del GOP M = 3), se convierte en un GOP corto de 50 Mbps (segunda generacion) constituido por tramas de N = 1 y M = 1, que se convierte de nuevo en un grupo GOP largo de 4 Mbps (tercera generacion)
5
10
15
20
25
30
35
40
45
50
55
60
65
constituido por tramas de N = 15 y M = 3. Las lmeas de trazos de la Figura indican los Ifmites en el grupo GOP.
Si el tipo de imagen se cambia desde la primera generacion a la segunda generacion, todas las tramas pueden tener sus tipos de imagenes cambiados a la imagen I, como es evidente a partir de la descripcion anterior del posible proceso de determinacion de posibles tipos de imagen de destino. Durante este cambio de tipo de imagen, todos los vectores de movimiento calculados para convertir una imagen de movimiento (0a generacion) en la primera generacion se memorizan (permanecen) en la informacion de registro historico de imagenes. A continuacion, si una conversion en un grupo GOP largo (el tipo de imagen se cambia desde la segunda generacion a la tercera generacion) se ejecuta de nuevo, puesto que los vectores de movimiento para cada tipo de imagen que han sido utilizados para convertir la 0a generacion en la primera generacion estan memorizados, estos vectores pueden reutilizarse para ejecutar de nuevo una conversion en un grupo GOP largo al mismo tiempo que se restringe la degradacion de la calidad de imagen.
La Figura 34 ilustra otra realizacion ejemplo del cambio de tipos de imagen. En este caso, un grupo GOP largo de 4 Mbps (primera generacion) de N = 14 y M = 2 se convierte en un grupo GOP corto de 18 Mbps (segunda generacion) de N = 2 y M = 2, que se convierte en un grupo GOP corto de 50 Mbps (tercera generacion) de N = 1 y M = 1, es decir, que tiene una sola trama, que se convierte, ademas, en un grupo GOP aleatorio de 1 Mbps (cuarta generacion) que tiene N tramas.
En este caso, los vectores de movimiento para cada tipo de imagen que se utiliza para la conversion desde la 0a generacion a la primera generacion son memorizados hasta la conversion desde la tercera generacion a la cuarta generacion. A continuacion, segun se ilustra en la Figura 34, a pesar de un cambio complicado en el tipo de imagen, la degradacion de la calidad de la imagen se puede minimizar reutilizando los parametros de codificacion memorizados. Ademas, utilizando efectivamente la escala de cuantizacion contenida en los parametros de codificacion memorizados, la codificacion puede realizarse mientras se restringe la degradacion de la calidad de la imagen.
La reutilizacion de la escala de cuantizacion se describira haciendo referencia a la Figura 35. La Figura 35 ilustra que una trama predeterminada se convierte constantemente en la imagen I desde la primera generacion a la cuarta generacion, mientras que solamente la tasa binaria se cambia a 4, 18, o 50 Mbps.
A modo de ejemplo, al convertir la primera generacion (4 Mbps) en la segunda generacion (18 Mbps), la calidad de imagen no se mejora incluso utilizando una escala de cuantizacion mas fina para la codificacion en respuesta al aumento en la tasa binaria. Esto es asf porque los datos anteriormente objeto de cuantizacion con una escala de cuantizacion menos fina no se restablecen. En consecuencia, utilizando una escala de cuantizacion mas fina para la codificacion en respuesta al aumento en la tasa binaria que se ilustra en la Figura 35 simplemente da lugar a un aumento en la informacion pero no mejora la calidad de la imagen. En consecuencia, se permite una codificacion mas eficiente proporcionando dicho control que mantiene la escala de cuantizacion anteriormente menos fina (mayor).
Al cambiar la tercera generacion a la cuarta generacion, la tasa binaria disminuye desde 50 a 4 Mbps pero, en este caso, la escala de cuantizacion anteriormente menos fina (mayor) se mantiene tambien a este respecto.
Segun se describio con anterioridad, al cambiar la tasa binaria, es muy efectivo utilizar un registro historico anterior de la escala de cuantizacion para la codificacion.
Este proceso de control de cuantizacion se explicara haciendo referencia al diagrama de flujo ilustrado en la Figura 36. En la etapa S11, el dispositivo de separacion de informacion de registro historico 105 determina si la informacion de registro historico de imagenes de la entrada contiene, o no, parametros de codificacion para un tipo de imagen a convertirse. Si el dispositivo de separacion de informacion de registro historico 105 determina que la informacion de registro historico de imagenes de entrada contiene parametros de codificacion para el tipo de imagen objeto de conversion, el proceso prosigue con la etapa S12.
En la etapa S12, el dispositivo de separacion de informacion de registro historico 105 extrae el codigo history_q_scale_code a partir de los parametros de codificacion pertinentes en la informacion de registro historico de imagenes.
En la etapa S13, el dispositivo de separacion de informacion de registro historico 105 calcula el codigo feedback_q_scale_code sobre la base de la capacidad de memoria intermedia remanente que se realimenta desde la memoria intermedia de transmision 59 al circuito de cuantizacion 57.
En la etapa S14, el dispositivo de separacion de informacion de registro historico 105 determina si, o no, el codigo history_q_scale_code es mayor (menos fino) que el codigo feedback_q_scale_code. Si el dispositivo de separacion de informacion de registro historico 105 determina que el codigo history_q_scale_code es mayor que el codigo feedback_q_scale_code, el proceso prosigue con la etapa S15.
5
10
15
20
25
30
35
40
45
50
55
60
65
En la etapa S15, el dispositivo de separacion de informacion de registro historico 105 proporciona el codigo history_q_scale_code al circuito de cuantizacion 57 como una escala de cuantizacion. El circuito de cuantizacion 57 utiliza el codigo history_q_scale_code para realizar la cuantizacion.
En la etapa S16, se determina si todos los macrobloques contenidos en la trama han sido objeto de cuantizacion. Si se determina que no todos los macrobloques han sido todavfa objeto de cuantizacion, el proceso retorna a la etapa S12 para repetir el procesamiento desde la etapa S12 a la etapa S16 hasta que todos los macrobloques hayan sido objeto de cuantizacion.
Si se determina en la etapa S14 que el codigo history_q_scale_code no es mayor (mas fino) que el codigo feedback_q_scale_code, el proceso prosigue con la etapa S17.
En la etapa S17, el dispositivo de separacion de informacion de registro historico 105 proporciona el codigo feedback_q_scale_code al circuito de cuantizacion 57 como una escala de cuantizacion. El circuito de cuantizacion 57 utiliza el codigo feedback_q_scale_code para realizar la cuantizacion.
Si se determina en la etapa S11 que la informacion de registro historico no contiene parametros de codificacion para el tipo de imagen convertido, el proceso prosigue con la etapa S18.
En la etapa S18, el dispositivo de separacion de informacion de registro historico 105 calcula el codigo feedback_q_scale_code sobre la base de la cantidad de memorizacion restante realimentada desde la memoria intermedia de transmision 59 al circuito de cuantizacion 57.
En la etapa S19, el circuito de cuantizacion 57 utiliza el codigo feedback_q_scale_code para realizar la cuantizacion.
En la etapa S20, se determina si, o no, todos los macrobloques contenidos en la trama han sido objeto de cuantizacion. Si se determina que no todos los macrobloques contenidos en la trama han sido objeto de cuantizacion, el proceso retorna a la etapa S18 para repetir el procesamiento de la etapa S18 a la etapa S20 hasta que todos los macrobloques hayan sido objeto de cuantizacion.
En el interior del transcodificador 101 en conformidad con esta forma de realizacion, los lados de decodificacion y de codificacion tienen un acoplamiento debil juntos y los parametros de codificacion se multiplexan en los datos de imagen antes de la transmision, segun se describio con anterioridad. Segun se ilustra en la Figura 37, sin embargo, el dispositivo de decodificacion 102 y el dispositivo de codificacion 106 pueden estar directamente conectados juntos (en fuerte acoplamiento).
El transcodificador 101 segun se describe en la Figura 15 multiplexa los parametros de codificacion anteriores en los datos de video de banda base antes de la transmision con el fin de suministrar al dispositivo de codificacion 106 los parametros de codificacion anteriores para la primera, segunda y tercera generaciones. Sin embargo, la multiplexacion de los parametros de codificacion anteriores en los datos de video de banda base no es esencial para la presente invencion, pero una ruta de transmision (a modo de ejemplo, el bus de transferencia de datos) diferente de la que tienen los datos de video de banda base puede utilizarse para transmitir los parametros de codificacion anteriores, segun se ilustra en la Figura 37.
Es decir, el dispositivo de registro historico 102, el dispositivo de decodificacion de registro historico 104, el dispositivo de codificacion 106 y el dispositivo de codificacion de registro historico 107 que se ilustran en la Figura 37, tienen exactamente las mismas funciones y configuraciones que el dispositivo de decodificacion 102, el dispositivo de decodificacion de registro historico 104, el dispositivo de codificacion 106 y el dispositivo de codificacion de registro historico 107 descritos en la Figura 15.
El circuito de decodificacion de longitud variable 112 del dispositivo de decodificacion 102 extrae los parametros de codificacion de la tercera generacion desde la capa de secuencias, capa de GOP, capa de imagenes, capa de segmentos y capa de macrobloques del flujo codificado de la tercera generacion ST(3rd) y suministra estos parametros al dispositivo controlador 70 para el dispositivo de codificacion de registro historico 107 y el dispositivo de codificacion 106. El dispositivo de codificacion de registro historico 107 convierte los parametros de codificacion recibidos en el flujo denominado converted_history_stream() de modo que los parametros puedan describirse en la zona de datos de usuario de la capa de imagenes y suministra el flujo converted_history_stream() al circuito de codificacion de longitud variable 58 del dispositivo de codificacion 106 como datos de usuarios.
Ademas, el dispositivo de decodificacion de longitud variable 112 extrae los datos de usuarios user_data que contiene los parametros de codificacion de la primera y de la segunda generacion, desde la zona de datos de usuario de la capa de imagen del flujo codificado de la tercera generacion y suministra estos datos al dispositivo de decodificacion de registro historico 104 y al dispositivo de codificacion de longitud variable 58 del dispositivo de codificacion 106. El dispositivo de decodificacion de registro historico 104 extrae los parametros de codificacion de la primera y de la segunda generacion desde el flujo de registro historico descrito en la zona de datos de usuario como converted_history_stream(), y suministra estos parametros al dispositivo controlador para el dispositivo de
5
10
15
20
25
30
35
40
45
50
55
60
65
codificacion 106.
El dispositivo controlador 70 para el dispositivo de codificacion 106 controla el proceso de codificacion mediante el dispositivo de codificacion 106 sobre la base de los parametros de codificacion de la primera y de la segunda generacion recibidos desde el dispositivo de decodificacion de registro historico 104 y los parametros de codificacion de la tercera generacion recibidos desde el dispositivo de codificacion 102.
El circuito de codificacion de longitud variable 58 del dispositivo de codificacion 106 recibe desde el dispositivo de decodificacion 102 los datos de usuarios user_data que contienen los parametros de codificacion de la primera y de la segunda generacion, mientras que se recibe desde el dispositivo de codificacion de registro historico 107 los datos de usuarios user_data que contienen los parametros de codificacion de la tercera generacion y describe estos datos de usuarios en la zona de datos de usuario de la capa de imagenes del flujo codificado de la cuarta generacion como informacion de registro historico.
La Figura 38 representa una sintaxis para uso en la decodificacion de flujos de video de MPEG. El decodificador decodifica un flujo de bits de MPEG en conformidad con esta sintaxis para extraer una pluralidad de elementos de datos significativos desde el flujo de bits. En la sintaxis ilustrada, que se describira a continuacion, las funciones y las declaraciones condicionales se representan por caracteres delgados, mientras que los elementos de datos se representan por caracteres gruesos. Los elementos de datos se describen cada uno en forma nemonica que indica su nombre, longitud de bits, tipo y orden de transmision.
En primer lugar, las funciones utilizadas en la sintaxis que se ilustran en la Figura 38 seran objeto de explicacion.
Una funcion de next_start_code() busca un codigo de inicio descrito en flujo de bits. En la sintaxis ilustrada en la Figura 38, una funcion de cabecera de secuencia sequence_header() y una funcion de extension de secuencia sequence_extension() se disponen de forma secuencial despues de la funcion del codigo de inicio siguiente next_start_code(), de modo que se describe en este flujo de bits a elementos de datos definidos por las funciones de sequence_header() y funciones sequence_extension(). En consecuencia, durante la decodificacion del flujo de bits, la funcion next_start_code() encuentra codigos de inicio (una clase de elementos de datos) en el flujo de bits, que se describen en las cabeceras de las funciones sequence_header() y sequence_extension() y utiliza estos codigos de inicio como referencias para ilustrar las funciones de sequence_header() y sequence_extension(). La funcion next_start_code() decodifica luego los elementos de datos definidos por las funciones de sequence_header() y sequence_extension().
La funcion de sequence_header define datos de cabeceras para la capa de secuencias del flujo de bits MPEG y la funcion sequence_extension() define datos de extension para la capa de secuencias del flujo de bits MPEG.
Una sintaxis de do{}while despues de la funcion sequence_extension() extrae del flujo de datos los elementos de datos descritos sobre la base de una funcion en las {} de la do statement mientras que una condicion definida por la while statement es verdadera. Es decir, la do{}while statement ejecuta un proceso de decodificacion para la extraccion desde el flujo de datos de los elementos de datos descritos sobre la base de la funcion en do statement, mientras que la condicion definida por la while statement es verdadera.
Una funcion nexbits() utilizada en la declaracion while statement compara bits o una cadena de bits que aparece en el flujo de bits con los siguientes elementos de datos a decodificar. En el ejemplo de sintaxis ilustrado en la Figura 38, la funcion nexbits() compara la cadena de bits en el flujo de bits con el codigo sequence_end_code indicativo del final de la secuencia de video y cuando la cadena de bits en el flujo de bits y el codigo sequence_end_code no coinciden, la condicion indicada por la declaracion while statement es verdadera. En consecuencia, la sintaxis do{}while que sigue a la funcion de sequence_extension() indica que los elementos de datos definidos por la funcion en la declaracion do statement se describe en el flujo de bits a no ser que aparezca el codigo sequence_end_code indicativo del final de la secuencia de video.
En el flujo de bits, los elementos de datos definidos por la funcion sequence_extension() estan seguidos por elementos de datos definidos por la funcion extension_and_user_data(0). La funcion extension_and_user_data(0) define los datos de extension y de usuarios para la capa de secuencias del flujo de bits MPEG.
Una sintaxis do{}while que sigue a la funcion extension_and_user_data(0) extrae desde el flujo de bits los elementos de datos descritos sobre la base de una funcion en las { } de la declaracion do statement, mientras que sea verdadera una condicion definida por la declaracion while statement. Una funcion nextbits() utilizada en la declaracion while statement determina si los bits o una cadena de bits que aparece en el flujo de bits coincide con el codigo picture_start_code o el codigo group_start_code. Si los bits o la cadena de bits que aparece en el flujo de bits coinciden con el codigo picture_start_code o el codigo group_start_code, la condicion definida por la declaracion while statement es verdadera. De este modo, cuando el codigo picture_start_code o el codigo group_start_code aparece en el flujo de bits, puesto que este codigo de inicio describe codigos para los elementos de datos definidos por la funcion en la declaracion do statement, la sintaxis do{}while puede buscar el codigo de inicio indicado por el codigo picture_start_code o el codigo group_start_code para extraer desde el flujo de bits los elementos de datos
5
10
15
20
25
30
35
40
45
50
55
60
65
definidos en la declaracion do statement.
La declaracion if statement describa al principio de la declaracion do statement indica la condicion de que el codigo group_start_code aparezca en el flujo de bits. Si la condicion indicada por esta declaracion if statement es verdadera, entonces en la descripcion de este flujo de bits, el codigo group_start_code esta seguido por los elementos de datos definidos por una funcion de group_of_picture_header(1) y una funcion de extension_and_user_data(1).
La funcion de group_of_picture_header(1) define datos de cabeceras para la capa GOP del flujo de datos MPEG.
La funcion de extension_and_user_data(1) define datos de extension (extension_data) y los datos de usuarios (user_data) para la capa GOP del flujo de bits MPEG.
Ademas, en la descripcion de este flujo de bits, los elementos de datos definidos por las funciones group_of_picture_header(1) y extension_and_user_data(1) estan seguidos por los elementos de datos definidos por una funcion picture_header() y una funcion picture_coding_extension(). Por supuesto, si la condicion indicada por la declaracion if statement anteriormente descrita no es verdadera, los elementos de datos definidos por las funciones de group_of_picture_header(1) y extension_and_user_data(1) no se describen, de modo que los elementos de datos definidos por las funciones extension_and_user_data(0), estan seguidos por los elementos de datos definidos por las funciones de picture_header() y picture_coding_extension().
La funcion de picture_header () define datos de cabecera para la capa de imagenes del flujo de bits MPEG.
La funcion picture_coding_extension() define los primeros datos de extension para la capa de imagenes del flujo de bits MPEG.
La siguiente declaracion while statement determina si una condicion indicada por la siguiente declaracion if statement es o no verdadera, mientras que una condicion definida por estas declaracion while statement es verdadera. Una funcion nextbits() utilizada en esta declaracion while statement determina si una cadena de bits que aparece en el flujo de bits coincide con el codigo extension_start_code o user_data_start_code. Si la cadena de bits que aparece en el flujo de bits coincide con el codigo extension_start_code o el codigo user_data_start_code, la condicion definida por esta declaracion while statement es verdadera.
Una primera declaracion if statement determina si, o no, la cadena de bits que aparece en el flujo de bits coincide con el codigo extension_start_code. Si la cadena de bits que aparece en el flujo de bits coincide con el codigo extension_start_code de 32 bits, entonces en la descripcion del flujo de bits, el codigo extension_start_code esta seguido por los elementos de datos definidos por la funcion extension_data(2).
Una segunda declara if statement determina si, o no, la cadena de bits que aparece en el flujo de bits coincide con el codigo user_data_start_code. Si la cadena de bits que aparece en el flujo de bits coincide con el codigo user_data_start_code de 32 bits, se determina si una condicion indicada por una tercera sentencia if statement es o no verdadera. El codigo user_data_start_code es un codigo de inicio que indica el comienzo de la zona de datos de usuario de la capa de imagenes del flujo de bits MPEG.
La tercera declaracion if statement es una sintaxis para determinar si, o no, una cadena de bits que aparece en el flujo de bits coincide con el identificador History_Data_ID. Si la cadena de bits que aparece en el flujo de bits coincide con el identificador History_Data_ID de 32 bits, entonces en la descripcion de la zona de datos de usuario de la capa de imagenes de este flujo de bits MPEG, un codigo indicado por este History_Data_ID de 32 bits esta seguido por elementos de datos definidos por la funcion converted_history_stream().
La funcion de converted_history_stream() describes informacion de registro historico y datos para transmitir todos los parametros de codificacion utilizados para la codificacion MPEG. Los detalles de elementos de datos definidos por esta funcion converted_history_stream() se examinaran a continuacion haciendo referencia a las Figuras 40 a 47 como history_stream(). Ademas, el identificador History_Data_ID es un codigo de inicio indicativo de la cabecera de la informacion de registro historico y los datos descritos en la zona de datos de usuario de la capa de imagenes del flujo de bits MPEG.
Una declaracion else statement es una sintaxis que indica que la condicion indicada por la tercera declaracion if statement no es verdadera. En consecuencia, si la descripcion de la zona de datos de usuarios de la capa de imagenes de este flujo de bits de MPEG no contiene los elementos de datos definidos por la funcion converted_history_stream(), contiene los elementos de datos definidos por la funcion user_data().
En la Figura 38, la informacion de registro historico se describe en la funcion converted_history_stream() y no en la user_data(), mientras que el converted_history_stream() se describe como una clase de datos de usuarios en conformidad con la norma MPEG. De este modo, aunque la especificacion pueda declarar que la informacion de registro historico se describe en los datos de usuarios user_data, esto significa que la informacion se describe como
5
10
15
20
25
30
35
40
45
50
55
60
65
una clase de datos de usuarios en conformidad con la norma MPEG.
La funcion picture_data () describe elementos de datos para las capas de segmentos y de macrobloques despues de los datos de usuarios para la capa de imagenes del flujo de bits MPEG. Los elementos de datos indicados por la funcion picture_data() se suelen describir de los elementos de datos definidos por la funcion converted_history_stream () descrita en la zona de datos de usuario de la capa de imagenes del flujo o por la funcion user_data(). Si, sin embargo, un flujo de bits que indica los elementos de datos de la capa de imagenes no contiene el codigo extension_start_code o el codigo user_data_start_code, los elementos de datos indicados por la funcion picture_data () se describen despues de los elementos de datos definidos por la funcion picture_coding_extension().
Los elementos de datos indicados por la funcion picture_data() estan seguidos por los elementos de datos definidos por las funciones sequence_header() y sequence_extension (). Los elementos de datos definidos por las funciones sequence_header() y sequence_extension() son identicas para los elementos de datos descritos por las funciones sequence_header() y sequence_extension () en la cabecera de la secuencia de flujo de video. Los datos identicos se describen en el flujo para impedir el error siguiente: si un dispositivo de recepcion de flujos de bits comienza a recibir la parte intermedia del flujo de datos (a modo de ejemplo, una parte del flujo de bits correspondiente a la capa de imagenes), no puede recibir los datos para la capa de secuencias, lo que da lugar a un fallo en la decodificacion del flujo.
Despues de los elementos de datos definidos por las funciones finales sequence_header() y sequence_extension(), es decir, al final del flujo de datos, se describe el codigo sequence_end_code de 32 bits indicativo del final de la secuencia.
Una configuracion basica para la sintaxis anterior se ilustra esquematicamente en la Figura 39.
A continuacion, el flujo de registro historico definido por la funcion converted_history_stream() seras objeto de explicacion.
El flujo converted_history_stream() es una funcion para insertar el flujo de registro historico indicativo de la informacion de registro historico en la zona de datos de usuario de la capa de imagenes del flujo MPEG. El termino “converted” significa que se trata de un flujo que se ha sometido a un proceso de conversion para insertar un bit marcador (1 bit) en un flujo de registro historico a intervalos de al menos 22 bits con el fin de evitar la emulacion del inicio, estando constituido el flujo de registro historico por datos de registro historico a insertarse en la zona del usuario.
El converted_history_stream() se describe en la forma de un flujo de registro historico de longitud fija (Figuras 40 a 46) o un flujo de registro historico de longitud variable (Figura 47), que se describira a continuacion. Si el codificador selecciona el flujo de registro historico de longitud fija, el decodificador puede utilizar ventajosamente circuitos simples y programas informaticos para decodificar cada elemento de datos desde el flujo de registro historico. Por el contrario, si el codificador selecciona el flujo de registro historico de longitud variable, puede seleccionar arbitrariamente la informacion de registro historico (elemento de datos) que se describe en la zona de usuarios de la capa de imagenes para reducir la cantidad de datos de flujos de registro historico y de este modo, la tasa de datos del flujo codificado global.
Los terminos "flujo de registro historico", "informacion de registro historico", "datos de registro historico" y "parametros de registro historico", segun aqrn se describen, significan los parametros de codificacion (o elementos de datos) utilizados para los procesos de codificacion anteriores y no los parametros de codificacion utilizados para el proceso de codificacion (final) en curso. A continuacion se describira una realizacion ejemplo en donde durante el proceso de codificacion de la primera generacion, se codifica una imagen en el tipo I antes de la transmision, en donde durante el proceso de codificacion de la segunda generacion, esta imagen I se codifica en el tipo P antes de la transmision y en donde durante el proceso de codificacion de la tercera generacion, esta imagen P se codifica ademas, en el tipo B antes de la transmision.
Los parametros de codificacion utilizados para el proceso de codificacion de la tercera generacion se describen en posiciones predeterminadas en las capas de secuencias, GOP, imagenes, segmentos y macrobloques del flujo de bits codificado generado durante el proceso de codificacion de la tercera generacion. Por el contrario, los parametros de codificacion utilizados para los procesos de codificacion de la primera generacion y de la segunda generacion, los procesos de codificacion anteriores, no se describen en la capa de secuencias o de GOP en donde se describen los parametros de codificacion utilizados para el proceso de codificacion de la tercera generacion pero en la zona de datos de usuarios de la capa de imagenes como informacion de registro historico para codificar parametros en conformidad con la sintaxis anteriormente descrita.
En primer lugar, la sintaxis del flujo de registro historico de longitud fija se describira con referencia a las Figuras 40 a 46.
Los parametros de codificacion contenidos en la cabecera de secuencias de la capa de secuencias que se utilizan
5
10
15
20
25
30
35
40
45
50
55
60
65
para el proceso de codificacion anterior (a modo de ejemplo, el proceso de codificacion de la primera generacion o de la segunda generacion) se insertan en primer lugar, como un flujo de registro historico, en la zona de datos de usuario de la capa de imagenes de un flujo de bits generado durante el proceso de codificacion final (a modo de ejemplo el proceso de codificacion de la tercera generacion). Conviene senalar que la informacion de registro historico, tal como la cabecera de secuencias de la capa de secuencias de un flujo de bits que se genera durante el proceso de codificacion anterior, no se inserta en la cabecera de secuencia de la capa de secuencias del flujo de bits que se genera durante el proceso de codificacion final.
Los elementos de datos contenidos en la cabecera de secuencia (sequence_header) que se utiliza para el proceso de codificacion anterior estan constituidos por los parametros siguientes sequence_header_code, sequence_header_present_flag, horizontal_size_value, marker_bit, vertical_size_value, aspect_ratio_information, frame_rate_code, bit_rate_value, VBV_buffer_size_value, constrained_parameter_flag, load_intra_quantiser_matrix, load_non_intra_quantizer_matrix, intra_quantiser_matrix y non_intra_quantiser_matrix, etc.
El codigo sequence_header_code son datos que representan un codigo de sincronizacion de inicio para la capa de secuencias. El indicador sequence_header_present_flag son datos que indican si son validos, o no, los datos en la cabecera de secuencia. El valor horizontal_size_value son datos que consisten en los 12 bits inferiores del numero de pixels en una direccion horizontal de una imagen. El marker_bit son datos de bits insertados para emulacion del codigo de inicio. El valor vertical_size_value son datos que consisten en los 12 bits inferiores de numero de lmeas verticales en una imagen. La aspect_ratio_information son datos que representan una relacion de aspecto de imagen o una relacion de aspecto de pantalla de presentacion visual. El codigo frame_rate_code son datos que representan un ciclo de presentacion visual de imagenes.
El bit_rate_value son datos de los 18 bits inferiores (en forma aproximada, utilizando 400 bsp como una unidad) de la tasa binaria para limitar la cantidad de bits generados. El valor VBV_buffer_size_value son datos de 10 bits inferiores de un valor que determina la capacidad de una memoria intermedia virtual (un verificador de memoria de video) para controlar la cantidad de codigos generados. El indicador constrained_parameter_flag son datos que indican cada parametro esta por debajo del lfmite. La load_intra_quantiser_matrix son datos que indican la presencia de datos de matriz de cuantizacion intra-MB. La load_non_intra_quantiser_matrix son datos que indican la presencia de datos de matrices de cuantizacion non_intra-MB. La intra_quantiser_matrix son datos que indican un valor para los datos de matriz de cuantizacion intra-MB. La matriz non-intra_quantiser_matrix son datos que indican un valor para datos de matriz de cuantizacion no-intra-MB
Despues de estos elementos de datos, se describen elementos de datos que representan una etiqueta de secuencia de la capa de secuencias que se utiliza para el proceso de codificacion anterior, como un flujo de registro historico, en la zona de datos de usuario de la capa de imagenes de un flujo de bits generado durante el proceso de codificacion final.
Los elementos de datos que representan la extension de secuencia (sequence_extension) utilizados para el proceso de codificacion anterior son extension_start_code, extension_start_code_identifier,
sequence_extension_present_flag, profile_and_level_indication, progresive_sequence, chroma_format, horizontal_size_extension, vertical_size_extension, bit_rate_extension, vbv_buffer_size_extension, low_delay, frame_rate_extension_n, frame_rate_extension_d, etc.
El extension_start_code son datos que representan un codigo de sincronizacion de inicio para los datos de extension. El identificador extension_start_code_identifier son datos que indican que datos de extension se envfan. El indicador sequence_extension_present_flag son datos que indican si son validos, o no, los datos en la extension de secuencia. La profile_and_level_indication son datos que especifican el perfil y el nivel de datos de video. La progresive_sequence son datos que indican que los datos de video estan escaneados de forma secuencial. El chroma_format son datos que especifican el formato de aberracion cromatica de los datos de video.
La horizontal_size_extension son datos de 2 bits superiores anadidos a horizontal_size_value de la cabecera de secuencia. La vertical_size_extension son datos de 2 bits superiores al valor vertical_size_value de la cabecera de secuencia. La bit_rate_extension son datos de 12 bits superiores anadidos al valor de la tasa binaria bit_rate_value de la cabecera de secuencia. La vbv_buffer_size_extension son datos de 8 bits superiores anadidos al valor vbv_buffer_size_value de la cabecera de secuencia. El low_delay son datos indicativos de la ausencia de la imagen B. La frame_rate_extension_n son datos que se combinan con el codigo frame_rate_code de la cabecera de secuencia para obtener una tasa de tramas. La frame_rate_extension_d son datos que se combinan con el codigo frame_rate_code de la cabecera de secuencia para obtener la tasa de tramas.
Despues de estos elementos de datos, se describen elementos de datos que representan una etiqueta de presentacion visual de secuencia de la capa de secuencias que se utiliza para el proceso de codificacion anterior, como un flujo de registro historico, en la zona de usuarios de la capa de imagenes del flujo de bits.
Los elementos de datos descritos como la extension de la presentacion visual de secuencias (sequence_display_extension) estan constituidos por el codigo extension_start_code y el identificador
5
10
15
20
25
30
35
40
45
50
55
60
65
extension_start_code_identifier, sequence_display_extension_present_flag, video_format, colour_description, colour_primaries, transfer_characteristics, matrix_coefficients, display_horizontal_size y display_vertical_size.
El codigo extension_start_code son datos que representan un codigo de sincronizacion de inicio para los datos de extension. El indicador extension_start_code_identifier es un codigo que indica que datos de extension se envfan. El sequence_display_extension_present_flag son datos que indican si, o no, los elementos de datos en la extension de presentacion visual de secuencia son validos. El video_format son datos que representan el formato de video de una senal origen. La colour_description son datos indicativos de la presencia de datos detallados en un espacio de color. Los colour_primaries son datos indicativos de los detalles de las caractensticas cromaticas de la senal origen. La transfer_characteristics son datos que indican en detalle como se ha realizado la conversion fotoelectrica. Los matrix_coefficients son datos que indican en detalle como los colores primarios se han convertido en la senal origen. El display_horizontal_size son datos que representan una zona activa (magnitud horizontal) de una presentacion visual prevista. display_vertical_size son datos que representan una zona activa (magnitud vertical) de una presentacion visual prevista.
Despues de estos elementos de datos, se describen datos de asignacion de macrobloques (macroblock_asignment_in_user_data) que indican informacion de fase para un macrobloque generado durante el proceso de codificacion anterior, como un flujo de registro historico, en la zona de usuarios de la capa de imagenes del flujo de bits que se genera durante el proceso de codificacion final.
Los macroblock_asignment_in_user_data que indican la informacion de fase para el macrobloque estan constituidos por elementos de datos tales como macroblock_asignment_present_flag, v_phase, y h_phase.
El indicador macroblock_asignment_present_flag son datos que indican si los elementos de datos en macroblock_asignment_in_user_data son validos o no. v_phase son datos que indican informacion de fase vertical para uso en el corte de un macrobloque a partir de los datos de imagenes. La h_phase son datos que indican informacion de fase horizontal para uso en el corte de un macrobloque a partir de los datos de imagenes.
Despues de estos elementos de datos, se describen elementos de datos que representan la cabecera GOP de la capa GOP utilizada para el proceso de codificacion anterior, como un flujo de registro historico, en la zona de usuarios de la capa de imagenes del flujo de bits que se genera durante el proceso de codificacion final.
Los elementos de datos que representan la cabecera GOP (group_of_picture_header) estan constituidos por group_start_code, group_of_picture_header_present_flag, time_code, closed_gop y broken_link.
El codigo group_start_code son datos que indican un codigo de sincronizacion de inicio para la capa GOP. El indicador group_of_picture_header_present_flag son datos que indican si los elementos de datos en el grupo de cabeceras de imagenes son validos o no. El time_code es un codigo temporal que indica el tiempo desde la cabecera de la secuencia de la imagen inicial de un GOP. El closed_gop son datos indicadores que indican que la imagen en el GOP puede reproducirse con independencias de los otros grupos GOPs. El broken_link son datos de indicadores para indicar que la imagen B inicial en el GOP no puede reproducirse con exactitud debido a edicion o circunstancia similar.
Despues de estos elementos de datos, se describen elementos de datos que representan la cabecera de imagen de la capa de imagenes que se utiliza para el proceso de codificacion anterior, como un flujo de registro historico, en la zona de usuarios de la capa de imagenes del flujo de bits generado durante el proceso de codificacion final.
Los elementos de datos para la cabecera de imagen (picture_header) estan constituidos por picture_start_code, temporal_reference, picture_coding_type, vbv_delay, full_pel_forward_vector, forward_f_code, full_pel_backward_vector y backward_f_code.
Mas concretamente, el picture_start_code son datos que representan un codigo de sincronizacion de inicio para la capa de imagenes. La temporal_reference son datos que indican el orden de presentacion visual de una imagen y que, es objeto de reposicion en la cabecera de un grupo GOP. El picture_coding_type son datos que indican el tipo de imagen. El vbv_delay son datos que indican el estado inicial de la memoria virtual durante un acceso aleatorio. El full_pel_forward_vector son datos que indican si la precision de los vectores de movimiento en sentido directo son pixels enteros o mitad. El forward_f_code son datos que indican una gama de recuperacion de los vectores de movimiento en sentido directo. El full_pel_backward_vector son datos que indican si la precision de los vectores de movimiento en sentido inverso son pixels enteros o mitad. El backward_f_code son datos que indican una gama de recuperacion de los vectores de movimiento en sentido inverso.
Despues de estos elementos de datos, se describe una etiqueta de codificacion de imagen de la capa de imagenes que se utiliza para el proceso de codificacion anterior, como un flujo de registro historico, en la zona de usuarios de la capa de imagenes del flujo de bits generado durante el proceso de codificacion final.
Los elementos de datos para la extension de codificacion de imagen (picture_coding_extension) estan constituidos
5
10
15
20
25
30
35
40
45
50
55
60
65
por extension_start_code, extension_start_code_identifier,f_code[0] [0], f_code[0] [1], f_code [1] [0], f_code [1] [1], intra_dc_precision, picture_structure, top_field_first, frame_predictive_frame_dct, concealment_motion_vectors, q_scale_type, intra_vlc_format, alternate_scan, repeat_first_field, chroma_420_type, progresive_frame, composite_display_flag, v_axis, field_sequence, sub_carrier, burst_amplitude y sub_carrier phase.
El codigo extension_start_code es un codigo de inicio que indica el inicio de datos de extension para la capa de imagenes. El identificador extension_start_code_identifier es un codigo que indica que codigo de extension se envfa. El f_code[0] [0] son datos que representan una gama de recuperacion de vectores de movimiento horizontales en una direccion directa. El f_code[0] [1] son datos que representan una gama de recuperacion de vectores de movimiento verticales en la direccion directa. El f_code[1][0] son datos que representan una gama de recuperacion de vectores de movimiento horizontales en una direccion inversa. El f_code[1][1] son datos que representan una gama de recuperacion de vectores de movimiento verticales en la direccion inversa.
El intra_dc_precision son datos que representan la exactitud de un coeficiente DC. La picture_structure son datos que indican si la imagen tiene una estructura de tramas o de campos. Si la imagen tiene la estructura de campos, estos datos indican tambien si el campo es mas alto o mas bajo. El top_field_first son datos que indican que el primer campo es mas alto o mas bajo si la imagen tiene la estructura de tramas. El frame_predictive_frame_dct son datos que indican que las predicciones DCT del modo de tramas indica solamente el modo de tramas. Si la imagen tiene la estructura de tramas. Lo concealment_motion_vectors son datos que indican que un intra-macrobloque tiene un vector de movimiento para ocultar errores de transmision. El q_scale_type son datos que indican si utilizar una escala de cuantizacion lineal o no lineal. El intra_vlc_format son datos que indican si se utiliza otro vlc de dos dimensiones para el intra-macrobloque. El alternate_scan son datos que indican si seleccionar un escaneado alternado o en zigzag. El repeat_first_field son datos utilizados para la extraccion en la relacion 2:3. El chroma_420_type son datos que representan el mismo valor que la siguiente trama progresiva si el formato de la siguiente trama progresiva si el formato es 4:2:0 y de no ser asf, representan 0. El progresive_frame son datos que indican si esta imagen ha sido escaneada de forma secuencial con resultado positivo o no. El composite_display_flag son datos que indican si la senal origen es compuesta o no lo es.
El v_axis son datos utilizados si la senal origen es PAL. La field_sequence son datos utilizados si la senal origen es PAL. La sub_carrier son datos utilizados si la senal origen es PAL. La burst_amplitude son datos utilizados si la senal origen es PAL. La sub_carrier phase son datos utilizados si la senal origen es PAL.
Despues de estos elementos de datos, se describe una extension de matriz de cuantizacion utilizada para el proceso de codificacion anterior, como un flujo de registro historico, en la zona de usuarios de la capa de imagenes del flujo de bits generado durante el proceso de codificacion final.
Los elementos de datos para la extension de la matriz de cuantizacion (quant_matrix_extension) estan constituidos por extension_start_code, extension_start_code_identifier, quant_matrix_extension_present_flag, load_intra_quantiser_matrix, intra_quantiser_matrix[64], load_non_intra_quantiser_matrix,
non_intra_quantiser_matrix [64], load_chroma_intra_quantiser_matrix, chroma_intra_quantiser_matrix[64], load_chroma_non_intra_quantiser_matrix, y chroma_non_intra_quantiser_matrix[64].
El codigo extension_start_code es un codigo de inicio indicativo del comienzo de esta extension de matriz de cuantizacion. El identificador extension_start_code_identifier es un codigo que indica que datos de extension se envfan. El indicador quant_matrix_extension_present_flag son datos que indican si los elementos de datos en esta extension de matriz de cuantizacion son validos o no. La matriz load_intra_quantiser_matrix son datos indicativos de la presencia de datos de matriz de cuantizacion para un intra-macrobloque. La intra_quantiser_matrix son datos que indican un valor para la matriz de cuantizacion para el intra-macrobloque. La load_non_intra_quantiser_matrix son datos indicativos de la presencia de datos de matriz de cuantizacion para un no-intra-macrobloque. La non_intra_quantiser_matrix son datos que representan un valor para los datos de matriz de cuantizacion para el no- intra-macrobloque. La load_chroma_intra_quantiser_matrix son datos indicativos de la presencia de datos de matriz de cuantizacion para el intra-macrobloque de aberracion cromatica. La chroma_intra_quantiser_matrix son datos indicativos de un valor para los datos de matriz de cuantizacion para el intra-macrobloque de aberracion cromatica. La load_chroma_non_intra_quantiser_matrix son datos indicativos de la presencia de datos de matriz de cuantizacion para el no-intra-macrobloque de aberracion cromatica. La chroma_non_intra_quantiser_matrix son datos indicativos de un valor para los datos de matriz de cuantizacion para el no-intra-macrobloque de aberracion cromatica.
Despues de estos elementos de datos, se describe una extension de copyright utilizada para el proceso de codificacion anterior, como un flujo de registro historico, en la zona de usuarios de la capa de imagenes del flujo de bits generado durante el proceso de codificacion final.
Los elementos de datos para la extension de copyright (copyright_extension) estan constituidos por extension_start_code, extension_start_code_identifier, copyright_extension_present_flag, copyright_flag, copyright_identifier, original_or_copy, copyright_number_1, copyright_number_2 y copyright_number_3.
5
10
15
20
25
30
35
40
45
50
55
60
65
El extension_start_code es un codigo de indicativo del comienzo de la extension de copyright. El extension_start_code_identifier es un codigo que indica que datos de extension se envfan. El copyright_extension_present_flag son datos que indican si los elementos de datos en la extension de copyright son validos o no. El copyright_flag indica si un derecho de autor copyright se adjudica a datos de video codificados hasta la siguiente extension de copyright o un final de secuencia.
El copyrightjdentifier son datos que identifican una organizacion de registro de copyright especificada por ISO/IEC JTC/SC29. El original_or_copy son datos que indican si los datos en el flujo de bits son originales o una copia. El copyright_number_1 son datos que representan los bits 44 a 63 de un numero de copyright. El copyright_number_2 son datos que representan los bits 22 a 43 de un numero de copyright. El copyright_number_3 son datos que representan los bits 0 a 21 de un numero de copyright.
Despues de estos elementos de datos, se describe una extension de presentacion visual de imagen (picture_display_extension) utilizada para el proceso de codificacion anterior, como un flujo de registro historico, en la zona de usuarios de la capa de imagenes del flujo de bits generado durante el proceso de codificacion final.
Los elementos de datos de esta presentacion visual de imagenes estan constituidos por extension_start_code, extension_start_code_identifier, picture_dispiaiy_extension_present_flag, frame_center_horizontal_offset_1, frame_center_vertical_offset_1, frame_center_horizontal_offset_2, frame_center_vertical_offset_2,
frame_center_horizontal_offset_3, y frame_center_vertical_offset_3.
El extension_start_code es un codigo de inicio indicativo del comienzo de la extension de presentacion visual de la imagen. El extension_start_code_identifier es un codigo que indica que datos de extension se envfan. El indicador picture_displaly_extension_present_flag son datos que indican si los elementos de datos en la extension de presentacion visual de imagenes son validos o no. El frame_center_horizontal_offset son datos que indican desplazamientos horizontales en una zona de presentacion visual y que pueden definir tres valores de desplazamiento. El frame_center_vertical_offset son datos que indican desplazamientos verticales en la zona de presentacion visual y que pueden definir tres valores de compensacion.
La presente invencion esta caracterizada por cuanto que la informacion de registro historico que representa esta extension de presentacion visual de imagenes esta seguida por elementos de datos para la re_coding_stream_information. Los elementos de datos para la re_coding_stream_information estan constituidos por user_data_start_code, re_coding_stream_info_ID, red_bw_flag, red_bw_indicator, o similares.
El user_data_start_code es un codigo de inicio que indica que comienzan los datos de usuario user_data. El re_coding_stream_info_ID es un numero entero de 16 bits utilizados para identificar la funcion re_coding_stream_infor(). Mas concretamente, el valor de este numero entero es "1001 0001 1110 1100" (0x91ec).
El indicador red_bw_flag es un indicador de 1 bit que es 0 para la transmision de parametros de codificacion para toda la informacion de registro historico y que es 1 para la transmision selectiva de parametros de codificacion para informacion de registro historico. El indicador red_bw_indicator es un numero entero de 2 bits que es un indicador para definir un conjunto de datos de parametros de codificacion.
La re_coding_stream_information, el indicador red_bw_flag, el red_bw_indicato y conjunto de datos se describiran en detalle mas adelante.
Los datos de usuarios (user_data) utilizados para el proceso de codificacion anterior se describen, como un flujo de registro historico, en la zona de usuarios de la capa de imagenes del flujo de bits generado durante el proceso de codificacion final.
Despues de los datos de usuarios, se describe la informacion sobre la capa de macrobloques utilizada para el proceso de codificacion anterior como un flujo de registro historico.
La informacion sobre la capa de macrobloques esta constituida por elementos de datos para las posiciones de macrobloques (macroblock) tal como macroblock_addres_h, macroblock_addres_v, slice_header_present_flag y skipped_macroblock_flag, con elementos de datos para un modo de macrobloques (macroblock_modes[]) tal como macroblock_quant, macroblock_motion_forward, macroblock_motion_backward, macroblock_pattern, macroblock_intra, spatial_temporal_weight_code_flag,frame_motion_type, y dct_type, elementos de datos para el control de la etapa de cuantizacion tal como quantiser_scale_code, elementos de datos para la compensacion de movimiento tales como PMV[0][0][0], PMV[0][0][1], motion_vertical_field_select[0][0], PMV[0][1][0], PMV[0][1][1], motion_vertical_field_select[0][1], PMV[1][0][0], PMV[1][0][1], motion_vertical_field_select[1][0], PMV[1][1][0],
PMV[1][1][1], y motion_vertical_field_select[1][1], elementos de datos para un modelo de macrobloques tal como coded_block_pattern, y elementos de datos para la cantidad de codigos generados tales como num_mv_bits, num_coef_bits y num_other_bits.
Los elementos de datos para la capa de macrobloques se describiran a continuacion en detalle.
5
10
15
20
25
30
35
40
45
50
55
60
65
El macroblock_addres_h son datos para definir la posicion absoluta horizontal del macrobloque en curso. La macroblock_addres_v son datos para definir la posicion absoluta vertical del macrobloque en curso. El slice_header_present_flag son datos que indican si este macrobloque esta, o no, en la cabecera de la capa de segmentos e incluye una cabecera de segmentos. El skipped_macroblock_flag son datos que indican si saltar operativamente o no, este macrobloque durante un proceso de decodificacion.
El macroblock_quant son datos derivados de un tipo de macrobloque (macroblock_type), ilustrado en las Figuras 63 y 64, descrito a continuacion, e indica si el codigo quantiser_scale_code aparece, o no, en el flujo de bits. El macroblock_motion_forward son datos derivados del tipo de macrobloque ilustrado en las Figuras 63 y 64 y se utiliza para el proceso de decodificacion. El macroblock_motion_backward son datos derivados del tipo de macrobloque ilustrado en las Figuras 63 y 64 y se utiliza para el proceso de decodificacion. El macroblock_pattern son datos derivados del tipo de macrobloque ilustrado en las Figuras 63 y 64 e indica si el coded_block_pattern aparece, o no, en el flujo de bits.
El macroblock_intra son datos derivados del tipo de macrobloque ilustrado en las Figuras 63 y 64 y se utiliza para el proceso de decodificacion. El indicador spatial_temporal_weight_code_flag son datos derivados del tipo de macrobloque ilustrado en las Figuras 63 y 64 e indica si el flujo de bits contiene, o no, el codigo spatial_temporal_weight_code indicativo de un metodo para el muestreo ascendente de imagenes de capas inferiores utilizando la escalabilidad temporal.
El frame_motion_type es un codigo de 2 bits que indica un tipo de prediccion de un macrobloque en una trama. Este codigo es "00" si dos vectores de prediccion estan presentes y son de un tipo de prediccion de base de campos, "01" si un vector de prediccion esta presente y es del tipo de prediccion de base de campos, "10" si un vector de prediccion esta presente y es de un tipo de prediccion de base de tramas y "11" si un vector de prediccion esta presente y es de un tipo de prediccion principal dual. El field_motion_type es un codigo de 2 bits que indica una prediccion de movimiento para un macrobloque en un campo. Este codigo es "01" si un vector de prediccion esta presente y es del tipo de prediccion de base de campos, "10", si dos vectores de prediccion estan presentes y son de un tipo de prediccion de base de macrobloque 18 x 8 y "11" si un vector de prediccion esta presente y es de un tipo de prediccion principal dual. El dct_type son datos que indican si el DCT esta en un modo DCT de tramas o de campos de imagen. El quantiser_scale_code son datos que indican la magnitud de la etapa de cuantizacion de un macrobloque.
A continuacion, se describiran elementos de datos para vectores de movimiento. Un vector de movimiento se codifica en una forma diferencial desde el vector codificado precedente con el fin de reducir el numero de vectores de movimiento requeridos para la decodificacion. El decodificador debe mantener cuatro valores de prediccion de vectores de movimiento (cada uno incluyendo componentes horizontales y verticales) para decodificar vectores de movimiento. Estos vectores de movimiento objeto de prediccion estan representados como PMV[r] [s] [v]. El [r] es un indicador que indica un primero o un segundo vector de movimiento en un macrobloque y es "0" para el primer vector de movimiento y "1" para el segundo vector de movimiento. El [s] es un indicador que indica si un vector de movimiento en un macrobloque es un vector en sentido directo o inverso y es "0" si este vector de movimiento es un vector en sentido directo y "1" si es un vector en sentido inverso. El [v] es un indicador que indica si existe un componente de vector horizontal o vertical en un macrobloque y es "0" para un componente de vector horizontal y "1" para un componente de vector vertical.
De este modo, el PMV[0][0][0] representa datos para el componente horizontal del vector de movimiento en sentido directo para el primer vector. El PMV[0] [0] [1] representa datos para el componente vertical del vector de movimiento en sentido directo para el primer vector. El PMV[0] [1] [0] representa datos para el componente horizontal del vector de movimiento en sentido inverso para el primer vector. El PMV[0][1][1] representa datos para el componente vertical del vector de movimiento en sentido inverso para el primer vector.
El PMV[1] [0] [0] representa datos para el componente horizontal del vector de movimiento directo del segundo vector. El PMV[1][0][1] representa datos para el componente vertical del vector de movimiento directo del segundo vector.
El PMV[1] [1] [0] representa datos para el componente horizontal del vector de movimiento en sentido inverso del segundo vector. El PMV[1][1][1] representa datos para el componente vertical del vector de movimiento en sentido inverso del segundo vector.
El motion_vertical_field_select[r][s] son datos que indican que campo de referencia se utiliza para una forma de prediccion. Si el motion_vector_field_select[r][s] es "0", se utiliza un campo de referencia superior. Si es "1", se utiliza un campo de referencia inferior.
En consecuencia, motion_vertical_field_select[0][0] indica un campo de referencia para uso en la generacion del vector de movimiento en sentido directo del primer vector. motion_vertical_field_select[0][1] indica un campo de referencia para uso en la generacion del vector de movimiento en sentido inverso del primer vector. motion_vertical_field_select[1][0] indica un campo de referencia para uso en la generacion del vector de movimiento
5
10
15
20
25
30
35
40
45
50
55
60
65
en sentido directo del segundo vector. motion_vertical_field_select[1][1] indica un campo de referencia para uso en la generacion del vector de movimiento en sentido inverso del segundo vector.
El coded_block_pattern son datos de una longitud variable que indica cuales de bloques DCT plurales que memorizan coeficientes DCT tiene un coeficiente significativo (un coeficiente no nulo). El num_mv_bits son datos indicativos de la cantidad de codigos en un vector de movimiento en un macrobloque. El num_coef_bits son datos indicativos de la cantidad de codigos en un coeficiente DCT en un macrobloque. El num_other_bits son datos que indican la cantidad de codigos en un macrobloque que no sean los vectores de movimiento y los coeficientes DCT.
A continuacion, se explicara una sintaxis para la decodificacion de cada elemento de datos desde un flujo de registro historico de una longitud variable haciendo referencia a las Figuras 47 a 67.
Este flujo de registro historico de longitud variable esta constituido por la funcion next_start_code(), la funcion sequence_header(), la funcion sequence_extension(), la funcion extension_and_user_data(0), la funcion group_of_picture_header(), la funcion extension_and_user_data(1), la funcion picture_header(), la funcion picture_coding_extension(), la funcion re_coding_stream_info(), la funcion extension_and_user_data(2) y la funcion picture_data().
Puesto que la funcion next_start_code() busca un codigo de inicio presente en el flujo de bits, se describe en la cabecera del flujo de registro historico, con los elementos de datos utilizados para el proceso de codificacion anterior y definido por la funcion sequence_header() segun se ilustra en la Figura 48.
Los elementos de datos definidos por la funcion sequence_header() es el sequence_header_code, el sequence_header_present_flag, el horizontal_size_value, el vertical_size_value, la aspect_ratio_information, el frame_rate_code, el bit_rate_value, el marker_bit, el valor VBV_buffer_size_value, el indicador constrained_parameter_flag, la matriz load_intra_quantiser_matrix, la intra_quantiser_matrix, la load_non_intra_quantiser_matrix, la non_intra_quantiser_matrix, etc.
El sequence_header_code son datos que representan un codigo de sincronizacion de inicio para la capa de secuencias., El sequence_header_present_flag indica si los datos en la cabecera de secuencia son validos o no. El sequence_header horizontal_size_value son datos que estan constituidos por los 12 bits inferiores del numero de pixels en una direccion horizontal de una imagen. El vertical_size_value son datos que consisten en los 12 bits inferiores el numero de lmeas verticales en una imagen. La aspect_ratio_information son datos que representan una relacion de aspecto del pixel o una relacion de aspecto de pantalla de presentacion visual. El frame_rate_code son datos que representan un ciclo de presentacion visual de imagen. El bit_rate_value son datos de 18 bits inferiores (con utilizacion de 400 bsp como una unidad) de una tasa binaria para limitar la cantidad de bits generados.
El marker_bit son datos de bits insertados para impedir la emulacion del codigo de inicio. El VBV_buffer_size_value son los datos de 10 bits inferiores de un valor que determina la magnitud de una memoria intermedia virtual (un verificador de memoria de video) para controlar la cantidad de codigos generados. El constrained_parameter_flag son datos que indican que cada parametro esta por debajo del lfmite. La load_intra_quantiser_matrix son datos que indican la presencia de datos de matriz de cuantizacion intra-MB. La intra_quantiser_matrix son datos que indican un valor para los datos de matriz de cuantizacion intra-MB La load_non_intra_quantiser_matrix son datos que indican la presencia de datos de matriz de cuantizacion no_intra-MB. La intra_quantiser_matrix son datos que indican un valor para los datos de matriz de cuantizacion no-intra-MB.
Despues de los elementos de datos definidos por la funcion sequence_header(), los elementos de datos definidos por las funcion sequence_extension() tales como los ilustrados en la Figura 49 se describen como un flujo de registro historico.
Los elementos de datos definidos por la funcion sequence_extension() son los extension_start_code, extension_start_code_identifier, sequence_extension_present_flag, profile_and_level_indication,
progresive_sequence, chroma_format, horizontal_size_extension, vertical_size_extension, bit_rate_extension, vbv_buffer_size_extension, low_delay, frame_rate_extension_n, frame_rate_extension_d, etc.
El extension_start_code son datos que representan un codigo de sincronizacion de inicio para datos de extension. El extension_start_code_identifier son datos que indican que datos de extension se envfan. El sequence_extension_present_flag son datos que indican si los datos en la extension de secuencia son validos o no. La profile_and_level_indication son datos que especifican el perfil y el nivel de datos de video. El progresive_sequence son datos que indican que los datos de video estan escaneados de forma secuencia. El chroma_format son datos que especifican el formato de aberracion cromatica de los datos de video. La horizontal_size_extension son los datos de 2 bits superiores anadidos al valor horizontal_size_value de la cabecera de secuencia. La vertical_size_extension son los datos de 2 bits superiores anadidos al valor de vertical_size_value de la cabecera de secuencia. La bit_rate_extension son los datos de 12 bits superiores anadidos al valor bit_rate_value de la cabecera de secuencia. La vbv_buffer_size_extension son los datos de 8 bits superiores anadidos al valor vbv buffer size value de la cabecera de secuencia.
5
10
15
20
25
30
35
40
45
50
55
60
65
El low_delay son datos indicativos de la ausencia de la imagen B. La frame_rate_extension_n son datos que se combinan con el frame_rate_code de la cabecera de secuencia para obtener una tasa de tramas. La frame_rate_extension_d son datos que se combinan con el codigo frame_rate_code de la cabecera de secuencia para obtener la tasa de tramas.
Despues de los elementos de datos definidos por la funcion sequence_extension(), elementos de datos definidos por la funcion extension_and_user_data(0) tales como los ilustrados en la Figura 50 se describen como un flujo de registro historico. Cuando "i" no es 1, la funcion extension_and_user_data(i) no describe los elementos de datos definidos por la funcion extension_data() sino solamente los elementos de datos definidos por la funcion user_data () como un flujo de registro historico.
La funcion extension_and_user_data(0) describe solamente los elementos de datos definidos por la funcion user_data(), como un flujo de registro historico.
La funcion user_data() describe los datos de usuarios como un flujo de registro historico basado en dicha sintaxis segun se ilustra en la Figura 51.
Despues de los elementos de datos definidos por la funcion extension_and_user_data(0), los elementos de datos definidos por la funcion group_of_picture_header() y la funcion extension_and_user_data(1), como un flujo de registro historico, se ilustran en la Figura 52. Sin embargo, los elementos de datos definidos por la funcion group_of_picture_header() y la funcion extension_and_user_data(1) se describen solamente si el group_start_code indicativo del codigo de inicio para la capa GOP se describe en el flujo de registro historico.
Los elementos de datos definidos por la funcion group_of_picture_header() estan constituidos por el group_start_code, group_of_picture_header_present_flag, time_code, closed_gop, y broken_link.
El group_start_code son datos que indican un codigo de sincronizacion de inicio para la capa GOP. El group_of_picture_header_present_flag son datos que indican si los elementos de datos en group_of_picture_header son validos o no. El time_code es un codigo temporal que indica el tiempo desde la cabecera de la secuencia de la imagen inicial de un GOP. El closed_gop son datos que indican que la imagen en el grupo GOP puede reproducirse con independencia de los otros grupos GOPs. El broken_link son datos que indican que la imagen B inicial en el grupo gOp no puede reproducirse con exactitud debido a edicion o circunstancia similar.
Como la funcion extension_and_user_data(0), la funcion extension_and_user_data(1) describe solamente los elementos de datos definidos por la funcion user_data(), como un flujo de registro historico.
Si el flujo de registro historico no contiene el group_start_code indicativo del codigo de inicio para la capa GOP, el flujo de registro historico descrito no tiene elementos de datos definidos por la funcion group_of_picture_header() y la funcion extension_and_user_data(1). En este caso, despues de los elementos de datos definidos por la funcion extension_and_user_data(0), se describen elementos de datos definidos por la funcion picture_header() como un flujo de registro historico.
Los elementos de datos definidos por la funcion picture_header() son los picture_start_code, temporal_reference, picture_coding_type, vbv_delay, full_pel_forward_vector, forward_f_code, full_pel_backward_vector, backward_f_code, extra_bit_picture, y extra_information_picture, segun se ilustra en la Figura 53.
Mas concretamente, el picture_start_code son datos que representan un codigo de sincronizacion de inicio para la capa de imagenes. La temporal_reference son datos que indican el orden de presentacion visual de una imagen y lo que es objeto de reposicion en la cabecera de un grupo GOP. El picture_coding_type son datos que indican el tipo de imagen. El vbv_delay son datos que indican el estado inicial de la memoria virtual durante un acceso aleatorio. El full_pel_forward_vector son datos que indican si la precision de los vectores de movimiento en sentido directo es numeros enteros de pixels o pixels mitad. El forward_f_code son datos que indican una gama de recuperacion de los vectores de movimiento en sentido directo. El full_pel_backward_vector son datos que indican si la precision de los vectores de movimiento en sentido inverso son numeros enteros de pixels o mitad. El backward_f_code son datos que indican una gama de recuperacion de los vectores de movimiento en sentido inverso. El extra_bit_picture es un indicador de la presencia de informacion adicional posterior. Si el extra_bit_picture es "1", sigue el extra_information_picture, mientras si es "0", no siguen datos algunos. La extra_information_picture es informacion reservada para la norma.
Despues de los elementos de datos definidos por la funcion picture_header(), se describen los elementos de datos definidos por la funcion picture_coding_extension() tal como los ilustrados en las Figura 54 como flujo de registro historico.
Los elementos de datos definidos por la funcion picture_coding_extension() estan constituidos por extension_start_code, extension_start_code_identifier, f_code[0][0], f_code[0][1], f_code[1][0], f_code[1][1],
intra_dc_precision, picture_structure, top_field_first, frame_predictive_frame_dct, concealment_motion_vectors,
5
10
15
20
25
30
35
40
45
50
55
60
65
q_scale_type, intra_vlc_format, alternate_scan, repeat_firt_field, chroma_420_type, progresive_frame, composite_display_flag, v_axis, field_sequence, sub_carrier, burst_amplitude y sub_carrier_phase.
El extension_start_code es un codigo de inicio que indica el comienzo de los datos de extension para la capa de imagenes. El extension_start_code_identifier es un codigo que indica que codigo de extension se envfa. El f_code[0] [0] son datos que representan una gama de recuperacion de vectores de movimiento horizontales en una direccion hacia delante. El f_code[0] [1] son datos que representan una gama de recuperacion de vectores de movimiento verticales en la direccion directa hacia delante. El f_code[l][0] son datos que representan una gama de recuperacion de vectores de movimiento horizontales en una direccion inversa. El f_code[1][1] son datos que representan una gama de recuperacion de vectores de movimiento verticales en una direccion inversa. La intra_dc_precision son datos que representan la exactitud de un coeficiente DC.
El picture_structure son datos que indican si la imagen tiene una estructura de tramas o de campos. Si la imagen tiene la estructura de campos, estos datos indican tambien si el campo es mas alto o mas bajo. El top_field_first son datos que indican si el primer campo es mas alto o mas bajo si la imagen tiene la estructura de tramas. La frame_predictive_frame_dct son datos que indican que las predicciones DCT del modo de trama significa solamente el modo de tramas, si la imagen tiene la estructura de tramas. Los concealment_motion_vectors son datos que indican que un intra-macrobloque tiene un vector de movimiento para ocultar errores de transmision. El q_scale_type son datos que indican si utilizar una escala de cuantizacion lineal o no lineal. El intra_vlc_format son datos que indican si se utiliza otro VLC bidimensional para el intra-macrobloque.
El alternate_scan son datos que indican si se seleccionar un escaneado alternado o en zigzag. El repeat_firt_field son datos utilizados para la relacion 2:3 de presentacion desplegable. El chroma_420_type son datos que representan el mismo valor que la siguiente trama progresiva progresive_frame si el formato de senal es 4:2:0 y de o ser asf, representa 0. La progresive_frame son datos que indican si esta imagen ha sido, o no, secuencialmente escaneada con resultado positivo. El composite_display_flag son datos que indican si la senal origen es compuesta o no lo es. El v_axis son datos utilizados si la senal de origen es PAL. La field_sequence son datos utilizados si la senal de origen es PAL. La sub_carrier son datos utilizados si la senal de origen es PAL. La burst_amplitude son datos utilizados si la senal de origen es PAL. La sub_carrier_phase son datos utilizados si la senal origen es PAL.
Despues de los elementos de datos definidos por la funcion picture_coding_extension(), se describen los elementos de datos definidos por la funcion re_coding_stream_info() como un flujo de registro historico. La funcion re_coding_stream_info() es caractenstica de la presente invencion y se utiliza principalmente para describir una combinacion de informacion de registro historico. Los detalles se examinaran mas adelante haciendo referencia a la Figura 68.
Despues de los elementos de datos definidos por la funcion re_coding_stream_info(), se describen los elementos de datos definidos por la funcion extensions_and_user_data(2) como un flujo de registro historico. Segun se ilustra en la Figura 50, si el codigo de inicio de extension (extension_start_code) esta presente en el flujo de bits se contienen los elementos de datos definidos por la funcion extension_data () que se describen en la extension_and_user_data(2). Despues de estos elementos de datos, se describen los elementos de datos definidos por la funcion user_data() si el codigo de inicio de datos de usuario (user_data_start_code) esta presente en el flujo de bits. Si el codigo de inicio de extension y el codigo de inicio de datos de usuario estan ausentes del flujo de bits, los elementos de datos definidos por las funciones extension_data() y user_data() no se describen en el flujo de bits.
La funcion extension_data() describe en el flujo de bits. Como un flujo de registro historico, los elementos de datos que indican el extension_start_code y elementos de datos definidos por las funciones quant_matrix_extension(), copyright_extension() y picture_display_extension(), segun se ilustra en la Figura 55.
Los elementos de datos definidos por la funcion quant_matrix_extension() son los denominados extension_start_code, extension_start_code_identifier, quant_matrix_extension_present_flag,
load_intra_quantiser_matrix, intra_quantiser_matrix[64], load_non_intra_quantiser_matrix,
non_intra_quantiser_matrix[64], load_chroma_intra_quantiser_matrix, ckroma_intra_quantiser_matrix[64], load_chroma_non_intra_quantiser_matrix y chroma_non_intra_quantiser_matrix[64], segun se ilustra en la Figura 56.
El extension_start_code es un codigo de inicio que indica el comienzo de la extension de matriz de canal de cuantizacion. El extension_start_code_identifier es un codigo que indica que datos de extension se envfan. El quant_matrix_extension_present_flag son datos que indican si los elementos de datos en esta extension de matriz de cuantizacion son validos o no. La load_intra_quantiser_matrix son datos indicativos de la presencia de datos de matriz de cuantizacion para un intra-macrobloque. La intra_quantiser_matrix son datos que indican un valor para la matriz de cuantizacion para el intra-macrobloque. La load_non_intra_quantiser_matrix son datos indicativos de la presencia de datos de matriz de cuantizacion para un no-intra-macrobloque. La no_intra_quantiser_matrix son datos que representan un valor para los datos de matriz de cuantizacion para el no-intra. La load_chroma_intra_quantiser_matrix son datos indicativos de la presencia de datos de matriz de cuantizacion para intra-macrobloque de aberracion cromatica. La chroma_intra_quantiser_matrix son datos indicativos de un valor para
5
10
15
20
25
30
35
40
45
50
55
60
65
los datos de matriz de cuantizacion para el intra-macrobloque de aberracion cromatica. La load_chroma_non_intra_quantiser_matrix son datos indicativos de la presencia de datos de matriz de cuantizacion para no-intra-macrobloque de aberracion cromatica. La chroma_non_intra_quantiser_matrix son datos indicativos de un valor para los datos de matriz de cuantizacion para el no-intra-macrobloque de aberracion cromatica.
Los elementos de datos definidos por la funcion copyright_extension() estan constituidos por extension_start_code, extension_start_code_identifier, copyright_extension_present_flag, copyright_flag, copyright_identifier, original_or_copy, copyright_number_1, copyright_number_2, y copyright_number_3, segun se ilustra en la Figura 57.
El extension_start_code es un codigo de inicio indicativo del comienzo de la extension de copyright. El extension_start_code_identifier es un codigo que indica que datos de extension se envfan. El copyright_extension_present_flag son datos que indican si los elementos de datos en la extension de copyright son validos o no.
El copyright_flag indica si se adjudica, o no, un copyright a los datos de video codificados hasta la siguiente extension de copyright o un final de secuencia. El copyright_identifier son datos que identifican una organizacion de registro de copyright especificada por ISO/IEC JTC/SC29. El original_or_copy son datos que indican si los datos en el flujo de bits son originales o una copia. El copyright_number_1 son datos que representan los bits 44 a 63 de un numero de copyright. El copyright_number_2 son datos que representan los bits 22 a 43 de un numero de copyright. El copyright_number_3 son datos que representan los bits 0 a 21 de un numero de copyright.
Los elementos de datos definidos por la funcion picture_display_extension() son los denominados extension_start_code_identifier, frame_center_horizontal_offset, frame_center_vertical_offset, y similares, segun se ilustra en la Figura 58.
El extension_start_code_identifier es un codigo que indica que datos de extension se envfan. El frame_center_horizontal_offset son datos que indican las compensaciones horizontales en una zona de presentacion visual y que pueden definir un numero definido de valores de desplazamiento de compensacion utilizando number_of_frame_center_offset. La frame_center_vertical_offset son datos que indican desplazamientos de compensacion verticales en la zona de presentacion visual y que definir un numero definido de compensacion utilizando number_of_frame_center_offsets.
Haciendo referencia de nuevo a la Figura 47, despues de los elementos de datos definidos por la funcion extension_and_user_data(2), se describen los elementos de datos definidos por la funcion picture_header() como un flujo de registro historico. La funcion picture_data(), sin embargo, esta presente si el indicador red_bw_flag no es 1 o si el indicador red_bw_indicator es 2 o menor. El red_bw_flag y el red_bw_indicator se describen en la funcion re_coding_stream_info() y se describiran mas adelante haciendo referencia a las Figuras 68 y 69.
Los elementos de datos definidos por la funcion picture_data () son los definidos por la funcion slice() segun se ilustra en la Figura 59. Al menos uno de estos elementos de datos definidos por la funcion slice() se describen en el flujo de bits.
La funcion slice() describe un flujo de registro historico de elementos de datos tales como slice_start_code, slice_quantiser_scale_code, intra_slice_flag, intra_slice, reserved_bits, extra_bit_slice, extra_information_slice y extra_bit_slice y elementos de datos definidos por la funcion macroblock().
El slice_start_code es un codigo de inicio indicativo del comienzo de los elementos de datos definidos por la funcion slice(). El slide_quantiser_scale_code son datos que indican una magnitud de la etapa de cuantizacion establecida para un macrobloque presente en esta capa de segmentos. Si, sin embargo, el quantiser_scale_code se establece para cada macrobloque, los datos en macroblock_quantiser_scale_code establecidos para cada macrobloque se utilizan de forma preferente.
El intra_slice_flag es un indicador de si los intra_slice y los reserved_bits estan presentes, o no, en el flujo de bits. Los intra_slice son datos que indican si un no-intra-macrobloque esta presente, o no, en la capa de segmentos. Si cualquiera de los macrobloques en la capa de segmentos es un no-intra-macrobloque, el intra_slice es "0”. Si todos los macrobloques en la capa de segmentos son no-intra-macrobloques, el intra_slice es "1”. Los reserved_bits son datos de 7 bits y son "0". El extra_bit_slice es un indicador de la presencia de informacion adicional como un flujo de registro historico. Si sigue el extra_information_slice, este indicador se establece a "1", mientras que sino sigue ninguna informacion adicional, se establece a "0."
Despues de estos elementos de datos de datos, se describen los elementos de datos definidos por la funcion de macroblock() como un flujo de registro historico.
La funcion de macroblock() describe elementos de datos tales como macroblock_escape, macroblock_addres_increment, macroblock_quantiser_scale_code, y marker_bit y elementos de datos definidos por una funcion macroblock_modes, una funcion motion_vectors(s) y una funcion code_block_pattern().
5
10
15
20
25
30
35
40
45
50
55
60
65
El macroblock_escape es una cadena de bits fija que indica si la diferencia entre un macrobloque de referencia y el macrobloque precedente es 34 o mas, si la diferencia entre el macrobloque de referencia y el macrobloque precedente es 34 o mas, se anade 33 al valor del macroblock_addres_increment. El macroblock_addres_increment son datos que indican una diferencia en la direccion horizontal entre el macrobloque de referencia y el macrobloque precedente. Si un macroblock_escape esta presente antes macroblock_addres_increment, los datos indicativos de los datos diferenciales reales en la direccion horizontal entre el macrobloque de referencia y el macrobloque precedente se obtienen anadiendo 33 al valor de macroblock_addres_increment.
El macroblock_quantiser_scale_code es una magnitud de la etapa de cuantizacion establecida para cada macrobloque y esta presente solamente cuando el macroblock_quant es "1”. Cada capa de segmentos tiene el slice_quantiser_scale_code establecido y que indica la magnitud de la etapa de cuantizacion y esta magnitud de la etapa de cuantizacion se selecciona si el macroblock_quantiser_scale_code se establece para el macrobloque de referencia.
Despues del macroblock_addres_increment, se describen elementos de datos definidos en la funcion macroblock_modes(). La funcion macroblock_modes() describe los elementos de datos tales como macroblock_type, frame_motion_type, field_motion_type, y dct_type como un flujo de registro historico, segun se ilustra en la Figura 62.
El macroblock_type son datos indicativos del tipo de codificacion de un macrobloque. Los detalles se examinaran mas adelante haciendo referencia a las Figuras 65 a 67.
Si el macroblock_motion_forward o el macroblock_motion_backward es "1", la estructura de imagen es la trama y el frame_pred_frame_dct es "0", representando entonces los elementos de datos el frame_motion_type que se describe despues de los elementos de datos que representan el macroblock_type. El frame_pred_frame_dct es un indicador de si el tipo de movimiento de campo field_motion_type esta presente en el flujo de bits.
El frame_motion_type es un codigo de 2 bits que indica el tipo de prediccion de un macrobloque en una trama. Este codigo es "00", si dos vectores de prediccion estan presentes y son del tipo de prediccion de base de campo, "01" si un vector de prediccion esta presente y es del tipo de prediccion de base de campo, "10" si un vector de prediccion esta presente y si es del tipo de prediccion de base de trama y "11" si un vector de prediccion esta presente y es de un tipo de prediccion principal dual.
Si no se cumplen las condiciones para la descripcion del tipo frame_motion_type, los elementos de datos que representan el tipo de movimiento de campo field_motion_type se describen despues de los elementos de datos que representan el tipo de macrobloque macroblock_type.
El field_motion_type es un codigo de 2 bits que indica una prediccion de movimiento para un macrobloque en un campo. Este codigo es "01" si un vector de prediccion esta presente y es del tipo de prediccion de base de campo, "10" si dos vectores de prediccion estan presentes y son del tipo de prediccion de base de macrobloque 18 x 8 y "11" si un vector de prediccion esta presente y es de un tipo de prediccion principal dual.
Si la estructura de imagen es la trama, la frame_pred_frame_dct indica que el frame_motion_type y el tipo DCT estan presentes en el flujo de bits, los elementos de datos que representan el dct_type se describen despues de los elementos de datos que representan el tipo macroblock_type. El dct_type son datos que indican si el DCT esta en el modo DCT de trama o de campo.
Haciendo referencia de nuevo a la Figura 61, si el macrobloque de referencia es del tipo de prediccion en sentido directo o es un intra-macrobloque con un macrobloque de ocultacion, se describen los elementos de datos definidos por los motion_vectors(0). Ademas, si el macrobloque de referencia es del tipo de prediccion inversa, se describen los elementos de datos definidos por la funcion motion_vectors(1).
La funcion motion_vectors(0) describe elementos de datos para un primer vector de movimiento y la funcion motion_vectors(1) describes elementos de datos para un segundo vector de movimiento.
La funcion motion_vectors(s) describe los elementos de datos para el vector de movimiento segun se ilustra en la Figura 63.
Si un vector de movimiento esta presente y no se utiliza el modo de prediccion principal dual, se describen elementos de datos definidos por motion_vertical_field_select[0][s] y la funcion motion_vector[0, s].
El motion_vertical_field_select[r][s] es un indicador de si el primer vector de movimiento (que puede ser un vector en sentido directo o inverso) se obtiene haciendo referencia a un campo superior o a un campo inferior. El indicador "r" indica si es el primero o segundo vector y el indicador "s" indica si la direccion de prediccion es directa o inversa.
5
10
15
20
25
30
35
40
45
50
55
60
65
La funcion motion_vector[r, s] describe una cadena de datos para motion_code [r] [s] [t], una cadena de datos para motion_residual [r] [s] [t], y datos que representan dmvector[t], segun se ilustra en la Figura 64.
El motion_code [r] [s] [t] son datos de una longitud variable que representa la magnitud de un vector de movimiento entre -16 y +16. De este modo, los valores del motion_code[r][s][t] y del motion_residual[r][s][t] pueden describir vectores de movimiento detallados. El dmvector[t] son datos que operan en el modo de prediccion principal dual para generar vectores de movimiento en uno de los campos (a modo de ejemplo, el campo se refiere como “uno de los campos” en comparacion con el campo inferior) mediante el escalado de vectores de movimiento existentes dependiendo de las distancias temporales mientras que se relacionan correcciones con el fin de reflejar los desplazamientos verticales entre lmeas que aparecen entre el campo superior y el campo inferior. El indicador "r" indica si es el primero o el segundo vector y el indicador "s" indica si la direccion de prediccion es directa o inversa.
La funcion motion_vector[r,s] describe una cadena de datos que representa a motion_code[r][s][0] para la direccion horizontal, como un flujo de registro historico, segun se ilustra en la Figura 64. Puesto que el numero de bits en ambas funciones motion_residual[0][s][t] y motion_residual[1][s][t] se indica por f_code[s] [t], el f_code [s] [t] de un valor distinto de 1 indica la presencia de la funcion motion_residual[r][s][t] en el flujo de bits. Cuando la funcion motion_residual[r][s][0] para una componente horizontal no es "1" y la funcion motion_coder[r] [s] [0] para una componente horizontal no es "0", esto significa que los elementos de datos que representan la funcion
motion_residual [r] [s] [0] estan presentes en el flujo de bits y el vector de movimiento tiene una componente horizontal. En este caso, se describen elementos de datos que representan la funcion motion_residual[r][s][0] para una componente horizontal.
Despues de estos elementos de datos se describe una cadena de datos que representa la funcion
motion_coder[r][s][1] para la direccion vertical como un flujo de registro historico. Segun se describio con
anterioridad, puesto que el numero de bits en ambas funciones motion_residual[0] [s] [t] y motion_residual[1] [s] [t] se indica por el f_code[s] [t], el f_code [s] [t] de un valor distinto de 1 indica la presencia de la funcion
motion_residual[r][s][t] en el flujo de bits. Cuando la funcion motion_residual[r] [s] [1] no es "1" y la funcion motion_code[r] [s] [1] no es "0," esto significa que elementos de datos que representan la funcion motion_residual [r] [s] [1] estan presentes en el flujo de bits y el vector de movimiento tiene una componente vertical. En este caso, se describen elementos de datos que representan la funcion motion_residual [r] [s] [1] para una componente vertical.
A continuacion, se describira macroblock_type haciendo referencia a las Figuras 65 a 67. El macroblock_type son datos de una longitud variable generados por indicadores tales como macroblock_quant, dct_type_flag, macroblock_motion_forward y macroblock_motion_backward. El macroblock_quant es un indicador de si se ha establecido o no, el macroblock_quantiser_scale_code, que establece una magnitud de la etapa de cuantizacion para un macrobloque. El macroblock_quant es "1" si el macroblock_quantiser_scale_code esta presente en el flujo de bits.
El dct_type_flag es un indicador de si esta presente, o no, el dct_type, lo que indicas si el macrobloque de referencia se ha codificado, o no, utilizando el DCT de trama o de campo (dicho de otro modo, indica si el macrobloque de referencia ha sido sometido al DCT). Si el dct_type esta presente en el flujo de bits, el dct_type_flag es "1”. El macroblock_motion_forward es un indicador de si el macrobloque de referencia ha sido objeto de prediccion directa o no. Este indicador es 1 si el macrobloque de referencia ha sido objeto de prediccion directa. El macroblock_motion_backward es un indicador de si el macrobloque de referencia ha sido objeto de prediccion inversa. Este indicador es 1 si el macrobloque de referencia ha sido objeto de prediccion inversa. Con el formato de longitud variable, la informacion de registro historico puede reducirse para disminuir la tasa binaria para transmisiones.
Es decir, si se transfieren las funciones macroblock_type y motion_vectors() y no el quantiser_scale_code, la tasa binaria puede disminuirse estableciendo el codigo slice_quantiser_scale_code a "00000".
Ademas, si solamente se transfiere el macroblock_type y no la funcion motion_vectors(), el quantiser_scale_code y el dct_type, la tasa binaria puede disminuirse utilizando "no codificado" como el tipo de macrobloque.
Ademas, si solamente se transfiere picture_coding_type y no slice() e informacion posterior, la tasa binaria puede reducirse utilizando los picture_data() que no tienen el codigo slice_start_code.
En la descripcion anterior, para evitar 23 bits continuos de “0” que aparezcan en los datos de usuarios, user_data, se inserta "1" en los datos a los de 22 bits, pero el intervalo no puede ser de 22 bits. Ademas, en lugar de contar el numero de 0 continuos, se puede examinar Byte_allign para la insercion.
Ademas, aunque el MPEG prohfbe la presencia de 23 bits continuos de “0” realmente se trata de 23 bits continuos de 0 comenzando en la cabecera del byte y no con dichos bits comenzando en la parte intermedia del byte. De este modo, se insertar "1" en posiciones distintas a LSBs, a modo de ejemplo, en intervalos de 24 bits.
Ademas, en la descripcion anterior, la informacion de registro historico esta en una forma similar a flujos elementales de video, pero puede estar practicamente en la forma de flujos elementales en paquetes o flujos de transporte.
5
10
15
20
25
30
35
40
45
50
55
60
65
Ademas, aunque el user_data en el flujo elemental precede a picture_data, se puede localizar en cualquier otro lugar.
El transcodificador 101 descrito en la Figura 15 proporciona el proceso posterior con parametros de codificacion para una pluralidad de generaciones como informacion de registro historico, pero no se requiere toda la informacion de registro historico anteriormente descrita. A modo de ejemplo, si este transcodificador esta seguido por un sistema de registro y reproduccion que incluye un soporte de registro de gran capacidad que este relativamente libre de limitaciones sobre la capacidad de almacenamiento, no se produce ningun problema si toda la informacion anteriormente descrita se describe en los parametros de codificacion. Si, sin embargo, el transcodificador es seguido por un sistema de registro y reproduccion que incluye un soporte de registro de una capacidad relativamente pequena, solamente la informacion de registro historico requerida, se describe, de forma deseable, en los parametros de codificacion en lugar de toda la informacion de registro historico, con el fin de reducir mas o menos la tasa de datos de flujos codificados. A modo de otro ejemplo, si este transcodificador es seguido por una ruta de transmision que incluye un soporte de registro capacidad de transmision grande que este relativamente libre de limitaciones sobre la capacidad de transmision, no se produce ningun problema si toda la informacion anteriormente descrita se describe en los parametros de codificacion. Si, sin embargo, el transcodificador esta seguido por una ruta de transmision que tiene una capacidad de transmision relativamente pequena, solamente la informacion de registro historico es deseablemente descrita en los parametros de codificacion en lugar de toda la informacion de registro historico, con el fin de reducir mas o menos la tasa de datos de flujos codificados.
La presente invencion esta caracterizada por cuanto que la informacion de registro historico requerida para cada una de las diversas aplicaciones despues del dispositivo de transmision se describe en el flujo codificado de forma adaptativa y selectiva, dependiendo de la aplicacion. Para conseguirlo, esta forma de realizacion describe la informacion de re-coding_stream_info en el flujo codificado.
Elementos de datos y de sintaxis para la re-coding_stream_info se describiran a continuacion en detalle haciendo referencia a la Figura 68.
Segun se ilustra en la Figura 68, la funcion re_coding_stream_info() esta constituida por user_data_start_code, re_coding_stream_info_ID, red_bw_flag, red_bw_indicator, marker_bit, num_other_bits, num_mv_bits, num_coef_bits, etc.
El user_data_start_code es un codigo de indicativo del comienzo de los datos de usuarios user_data. El re_coding_stream_info_ID es un numero entero de 16 bits utilizado para identificar la funcion re_coding_stream_info(). Mas concretamente, este numero entero tiene un valor de "1001 0001 1110 1100" (0x91 ec).
El red_bw_flag 0 es un indicador de 1 bit que es 0 si se transmiten los parametros de codificacion para toda la informacion de registro historico y que es 1 si se transmiten, de forma selectiva, los parametros de codificacion para la informacion de registro historico. Mas concretamente, segun se ilustra en la Figura 69, si el indicador red_bw_flag es 1, la comprobacion de red_bw_indicator despues de este indicador permite la determinacion de cual de los cinco conjuntos de datos se utiliza para transmitir los parametros de codificacion correspondientes para la informacion de registro historico. Este conjunto de datos contiene informacion para determinar una combinacion de parametros de codificacion a transmitirse con el flujo codificado recodificado. En consecuencia, los parametros de codificacion a describirse en el flujo codificado se seleccionan en conformidad con este conjunto de datos.
El red_bw_indicator es un numero entero de 2 bits que actua como un indicador para definir un conjunto de datos para los parametros de codificacion. Mas concretamente, el indicador red_bw_indicator son datos que indican cual de los conjuntos de datos 2 a 5 se representan segun se ilustra en la Figura 69.
De este modo, haciendo referencia a red_bw_flag y a red_bw_indicator, que se describen en el flujo codificado, puede determinarse cual de los cinco conjuntos de datos se utiliza para transmitir los parametros de codificacion para la informacion de registro historico.
A continuacion, los parametros de codificacion para la informacion de registro historico que se transmiten en cada conjunto de datos se explicaran haciendo referencia a la Figura 70.
La informacion del registro historico puede clasificarse, de forma aproximada, en informacion en imagenes e informacion en macrobloques. La informacion en segmentos se obtiene recogiendo informacion de macrobloques contenida en dicha informacion. La informacion en GOPs se obtiene recogiendo la informacion en imagenes contenidas en dicha informacion.
Puesto que la informacion en imagenes se transmite solamente una vez por trama, su tasa binaria no es tan alta en comparacion con la informacion de registro historico insertada en el flujo codificado. Por el contrario, puesto que la informacion en macrobloques se transmite para cada macrobloque, si, a modo de ejemplo, en un sistema de video con 525 lmeas de barrido para una trama y con una tasa de campos de 60/segundos, 720 x 480 pixels estan
5
10
15
20
25
30
35
40
45
50
55
60
65
contenidos en una sola trama, entonces la informacion en macrobloques debe transmitirse 1,350 (=(720/16) x (480/16)) veces por trama. En consecuencia, una parte relativamente grande de la informacion de registro historico esta ocupada por la informacion en macrobloques.
En consecuencia, en esta forma de realizacion, puesto que la informacion de registro historico insertada en el flujo codificado, al menos la informacion en imagenes esta constantemente transmitida pero la informacion en macrobloques se transmite, de forma selectiva, dependiendo de la aplicacion, con ello se reduce la informacion transmitida.
Segun se ilustra en la Figura 70, la informacion en macrobloques transmitida como la informacion de registro historico incluye, a modo de ejemplo, los elementos num_coef_bits, num_mv_bits, num_other_bits, q_scale_code, q_scale_type, motion_type, mv_vert_field_sel [] [], mv[] [] [], mb_mfwd, mb_mbwd, mb_pattern, coded_block_pattern, mb_intra, slice_start, dct_type, mb_quant, skipped_mb, etc. Esta informacion se representa utilizando el elemento de macroblock_rate_information definido en SMPTE-327M.
Los num_coef_bits representan la cantidad de codigos de macrobloques que se requiere para los coeficientes DCT. Los num_mv_bits representan la cantidad de codigos de macrobloques requerida para vectores de movimiento. Los num_other_bits representan la cantidad de codigos de macrobloques distintos de los num_coef_bits y los num_mv_bits.
El codigo q_scale_code representa un codigo de escala q aplicado al macrobloque. El motion_type representa el tipo de los vectores de movimiento aplicados al macrobloque. El mv_vert_field_sel[][] representa una seleccion de campos para los vectores de movimiento aplicados al macrobloque.
El mv[][][] representa los vectores de movimiento aplacidos al macrobloque. El mb_mfwd es un indicador de que el modo de prediccion para el macrobloque es prediccion directa. El mb_mbwd es un indicador de que el modo de prediccion para el macrobloque es prediccion inversa. El mb_pattern es un indicador de la presencia de un coeficiente DC no nulo del macrobloque.
El coded_block_pattern es un indicador de la presencia de un coeficiente DC no nulo del macrobloque para cada bloque DCT. El mb_intra es un indicador de si el macrobloque es un intra_macro o no lo es. El slice_start es un indicador de si el macrobloque es, o no, la cabecera de un segmento. El dct_type es un indicador de si el macrobloque es el dct de campo el dct de trama.
El mb_quant es un indicador de si el macrobloque transmite, o no, el codigo quantiser_scale_code. El skipped_mb es un indicador de si el macrobloque es, o no, un macrobloque con salto operativo.
No todos estos parametros de codificacion son constantemente requeridos, pero los parametros de codificacion requeridos vanan dependiendo de la aplicacion despues del transcodificador. A modo de ejemplo, los parametros de codificacion tales como los num_coef_bits y slice_start se requieren para aplicaciones que implican una demanda transparente que requieren un flujo de bits a recuperarse a su forma original lo mas proximo posible durante la recodificacion. La “demanda transparente” permite que se genere un flujo de bits de salida con la caractenstica de evitarse la degradacion de la calidad de imagen en comparacion con un flujo de bits de entrada.
Es decir, las aplicaciones que demandan solamente un cambio en la tasa binaria para un proceso de transcodificacion no requieren los parametros de codificacion tales como los num_coef_bits y el slice_start. Ademas, si existen limitaciones muy estrictas sobre la ruta de transmision, algunas aplicaciones requieren solamente el tipo de codificacion de cada imagen.
Considerando estas circunstancias, esta forma de realizacion proporciona un conjunto tal como se ilustra en la Figura 70, como un ejemplo de un conjunto de datos para parametros de codificacion que se utilizan en la transmision de la informacion de registro historico.
En la Figura 70, el valor "2" correspondiente a parametros de codificacion en cada conjunto de datos significa que la informacion correspondiente esta presente en el flujo codificado y disponible como la informacion de registro historico y "0" significa que la informacion correspondiente esta ausente del flujo codificado. "1" significa que la informacion correspondiente esta presente para soporte para la presencia de otra informacion o para la sintaxis, pero no tiene ningun significado, a modo de ejemplo, ninguna relacion con la informacion de flujo de bits origen. A modo de ejemplo, el slice_start es "1" para el macrobloque en la cabecera de un segmento para transmitir informacion de registro historico pero no tiene ningun significado como informacion de registro historico si el segmento no mantiene necesariamente la misma relacion locacional con el flujo de bits original.
En esta forma de realizacion, los parametros de codificacion (num_coef_bits, num_mv_bits, num_other_bits), (q_scale_code, q_scale_type), (motion_type, mv_vert_field_sel[][], mv[][][]), (mb_mfwd, mb_mbwd), (mb_pattern), (coded_block_pattern), (mb_intra), (slice_start), (dct_type), (mb_quant), y (skipped_mb) se describen de forma selectiva, en flujo codificado dependiendo del conjunto de datos seleccionado.
5
10
15
20
25
30
35
40
45
50
55
60
65
El conjunto de datos 1 esta previsto para reconstruir un flujo de bits completamente transparente. El conjunto de datos 1 permite una transcodificacion exacta que proporciona un flujo de bits con pequena degradacion de la calidad de imagen en comparacion con un flujo de bits de entrada. El conjunto de datos 2 esta tambien previsto para reconstruir un flujo de bits completamente transparente. El conjunto de datos 3 no puede reconstruir un flujo de bits completamente transparente pero reconstruye un flujo de bits bastante transparente desde el punto de vista visual. El conjunto de datos 4 es inferior al conjunto de datos 3 en terminos de transparencia, pero permite la reconstruccion de un flujo de bits sin ningun problema visual. El conjunto de datos 5 es inferior al conjunto de datos 4 en terminos de transparencia pero puede reconstruir un flujo de bits con una poca informacion de registro historico a pesar de la falta de integridad de la reconstruccion.
Estos conjuntos de datos son funcionalmente de mas alto nivel puesto que sus numeros de conjunto de datos son mas pequenos, pero los conjuntos de datos de nivel funcional mas alto requieren una mayor capacidad para la transmision de informacion de registro historico. En consecuencia, el conjunto de datos transmitido se determina tomando en consideracion la aplicacion asumida y la capacidad disponible para la informacion de registro historico.
De los cinco conjuntos de datos ilustrados en la Figura 70, para el conjunto de datos 1, el indicador red_bw_flag es 0, mientras que para los conjuntos de datos 2 a 5, el indicador red_bw_flag es 1. Por el contrario, el red_bw_indicator es 0 para el conjunto de datos 2, 1 para el conjunto de datos 3, 2 para el conjunto de datos 4 y 3 para el conjunto de datos 5.
De este modo, el red_bw_indicator se especifica si el indicador red_bw_flag es 1 (es decir, para los conjuntos de datos 2 a 5).
Ademas, si el indicador ref_bw_flag es 0 (el conjunto de datos 1), los elementos denominados marker_bit, num_other_bits, num_mv_bits, y num_coef_bits se describen para cada macrobloque. Estos cuatro elementos de datos no se describen en el flujo codificado para los conjuntos de datos 2 a 5 (es decir, si el indicador red_bw_flag es 1).
Para el conjunto de datos 5, los otros elementos de sintaxis no se transmiten incluyendo la funcion picture_data() (vease la Figura 59). Es decir, ningun parametro de codificacion se transmite para una pluralidad de funciones slice() contenidos en la funcion picture_data(). En consecuencia, para el conjunto de datos 5, la informacion de registro historico seleccionada esta prevista para transmitir solamente parametros de codificacion en imagenes tales como el tipo de imagen picture_type.
Para los conjuntos de datos 1 a 4, parametros de codificacion estan presentes para la pluralidad de funciones slice() contenidas en la funcion picture_data (). Sin embargo, la informacion de direccion para segmentos que se determina por la funcion slice() y para segmentos en el flujo de bits origen dependen del conjunto de datos seleccionado. Para el conjunto de datos 1 o 2, la informacion de direccion para los segmentos en el flujo de bits origen para la informacion de registro historico debe ser identica a la informacion de direccion para los segmentos determinados por la funcion slice().
Los elementos de datos de sintaxis de los elementos de la funcion macroblock() (vease la Figura 61) dependen del conjunto de datos seleccionado. Las funciones macroblock_escape, macroblock_addres_increment y macroblock_modes() estan constantemente presentes en el flujo codificado. La eficacia de macroblock_escape y macroblock_addres_increment como informacion, sin embargo, se determina por el conjunto de datos seleccionado. Si los conjuntos de datos 1 o 2 se utiliza para los parametros de codificacion para la informacion de registro historico, debe transmitirse una informacion identica a la skipped_mb en el flujo de datos bits origen.
Para el conjunto de datos 4, la funcion motion_vectors() esta ausente del flujo codificado. Para los conjuntos de datos 1 a 3, el tipo de macroblock_type de la funcion macroblock_modes() determina la presencia de la funcion motion_vectors() en el flujo codificado. Para los conjuntos de datos 3 o 4, la funcion coded_block_pattern() esta ausente del flujo codificado. Para los conjuntos de datos 1 y 2, el macroblock_type de la funcion macroblock_modes() determina la presencia de la funcion coded_block_pattern() en el flujo codificado.
Los elementos sintaxis de la funcion macroblock_modes() (vease la Figura 62) depende del conjunto de datos seleccionado. El macroblock_type existe constantemente. Para el conjunto de datos 4, los elementes frame_motion_type, field_motion_type, y dct_type estan ausentes del flujo codificado.
La eficacia como informacion de un parametro obtenido a partir del macroblock_type se determina por el conjunto de datos seleccionado.
Para los conjuntos de datos 1 o 2, el macroblock_quant debe ser el mismo que en el flujo de bits origen. Para los conjuntos de datos 3 o 4, el macroblock_quant representa la presencia del quantiser_scale_code en la funcion macroblock () y no necesita ser el mismo que en el flujo de bits origen.
5
10
15
20
25
30
35
40
45
50
55
60
65
Para los conjuntos de datos 1a 3, la macroblock_motion_forward debe ser la misma que el flujo de bits origen. Esto no es necesario para los conjuntos de datos 4 o 5.
Para el conjunto de datos 1 o 2, el macroblock_pattern debe ser el mismo que en el flujo de bits origen. Para el conjunto de datos 3, el macroblock_pattern se utiliza para indicar la presencia del dct_type. Las relaciones para los conjuntos de datos 1 a 3 no se establecen para el conjunto de datos 4.
Si los conjuntos de datos 1 a 3 se utilizan para los parametros de codificacion para la informacion de registro historico, el macroblock_intra debe ser el mismo que en el flujo de bits origen. Esto no se aplica al conjunto de datos 4.
A continuacion, se describira un procesamiento ejecutado por el transcodificador 101 sobre un flujo codificado que contiene informacion sobre los conjuntos de datos y para generar un flujo codificado sobre la base de los conjuntos de datos establecidos haciendo referencia al transcodificador 101 ilustrado en la Figura 15.
El ejemplo de un transcodificador ilustrado en la Figura 15 recibe un flujo codificado ST (3rd) generado por el proceso de codificacion de la tercera generacion para convertir la estructura GOP y/o su tasa binaria con el fin de generar un nuevo flujo codificado ST(4th).
En primer lugar, el dispositivo de decodificacion 102 extrae desde el flujo codificado de la tercera generacion St(3rd) parametros de codificacion de la tercera generacion utilizados para codificar este flujo codificado St(3rd) y decodifica el flujo codificado ST(3rd) sobre la base de los parametros de codificacion extrafdos para generar una senal de video de banda base. Ademas, el dispositivo de decodificacion 102 proporciona los parametros de codificacion de la tercera generacion (3th) al dispositivo de multiplexacion de informacion de registro historico 103. Ademas, el dispositivo de decodificacion 102 extrae el user_data() desde la capa de imagenes del flujo codificado de la tercera generacion ST(3rd) para suministrar los datos al dispositivo de decodificacion de registro historico 104.
El dispositivo de decodificacion de registro historico 104 extrae el history_stream() desde el user_data() suministrado por el dispositivo de decodificacion 102. Puesto que el history_stream() es un flujo constituido por elementos de datos codificados de longitud variable, el dispositivo de decodificacion de registro historico 104 realiza un proceso de decodificacion de longitud variable en el flujo history_stream(). En consecuencia, se puede generar un flujo que consiste en elementos de datos que tiene cada uno una longitud de datos predeterminada. A continuacion, el dispositivo de decodificacion de registro historico 104 realiza un analisis de una sintaxis para el flujo de datos decodificados de longitud variable. El analisis sintactico se refiere a la interpretacion de la sintaxis para el flujo.
Durante el proceso de analisis sintactico, el dispositivo de decodificacion de registro historico 104 hace referencia a red_bw_flag y red_bw_indicator que se describen en la re_coding_stream_info() en la funcion history_stream(). Haciendo referencia a los indicadores red_bw_flag y red_bw_indicator extrafdos del flujo, el dispositivo de decodificacion de registro historico 104 determina cuales de los cinco conjuntos de datos se establecen para history_stream() recibido. De este modo, determinando el tipo del conjunto de datos a partir de los indicadores red_bw_flag y red_bw_indicator, el dispositivo de decodificacion de registro historico 104 puede determinar que parametros de codificacion estan contenidos en el history_stream().
Mas concretamente, si el red_bw_flag = 0, se establece el conjunto de datos 1. De este modo todos los parametros de codificacion se describen en el history_stream () como la funcion picture_data(), incluyendo los elementos num_coef_bits, num_mv_bits, num_other_bits, q_scale_code, q_scale_type, motion_type, mv_vert_field_sel [] [], mv [] [] [],mb_mfwd, mb_mbwd, mb_pattern, coded_block_pattern, mb_intra, slice_start, dct_type, mb_quant y skipped_mb.
Si el red_bw_flag = 1 y el red_bw_indicator = 0, se establece el conjunto de datos 2. En consecuencia, los parametros de codificacion se describen en el history_stream() como la funcion picture_data() incluyendo los elementos de datos q_scale_code, q_scale_type, motion_type, mv_vert_field_sel[][], mv[][][], mb_mfwd, mb_mbwd, mb_pattern, coded_block_pattern, mb_intra, slice_start, dct_type, mb_quant, y skipped_mb.
Si el red_bw_flag = 1 y el red_bw_indicator =1, se establece el conjunto de datos 3. En consecuencia, los parametros de codificacion se describen en el history_stream() como la funcion picture_data(), incluyendo los elementos q_scale_code, q_scale_type, motion_type, mv_vert_field_sel[][], mv[][][],mb_mfwd, mb_mbwd, themb_pattern, iab_intra, slice_start, dct_type, mb_quant, y skipped_mb.
Si el red_bw_flag = 1 y el red_bw_indicator = 2, se establece el conjunto de datos 4. En consecuencia, los parametros de codificacion que incluyen el q_scale_code y el q_scale_type se describen en el history_stream() como la funcion picture_data().
Si el red_bw_flag = 1 y el red_bw_indicator = 3, se establece el conjunto de datos 5. En consecuencia, no se describe ningun parametro de codificacion en el history_stream() como la funcion picture_data().
5
10
15
20
25
30
35
40
45
50
55
60
65
El dispositivo de decodificacion de registro historico 104 hace referencia a la informacion en el red_bw_flag y red_bw_indicator para extraer los parametros de codificacion desde el history_stream(). En la forma de realizacion del transcodificador ilustrado en la Figura 15, el flujo codificado de entrada suministrado al transcodificador del dispositivo de decodificacion de registro historico 104 ha sido generado por el proceso de codificacion de la tercera generacion, de modo que la informacion de registro historico de salida es los parametros de codificacion de la primera generacion y de la segunda generacion.
El dispositivo de multiplexacion de informacion de registro historico 103 multiplexa los parametros de codificacion de la tercera generacion (3th) suministrados por el dispositivo de decodificacion 102 y los parametros de codificacion anteriores (1st, 2nd) suministrados por el dispositivo de decodificacion de registro historico 104, en los datos de video de banda base suministrados por el dispositivo de decodificacion 102, en conformidad con dicho formato segun se ilustra en las Figuras 68 a 73.
El dispositivo de separacion de informacion de registro historico 105 recibe los datos de video de banda base suministrados por el dispositivo de multiplexacion de informacion de registro historico 103 y extrae los parametros de codificacion de las primera, segunda y tercera generacion (1st, 2nd, 3rd) desde los datos de video de banda base para suministrarlos al dispositivo de codificacion 106.
El dispositivo de codificacion 106 recibe los datos de video de banda base y los parametros de codificacion (1st, 2nd, 3rd) desde el dispositivo de separacion de informacion de registro historico 105 para recodificar los datos de video de banda base sobre la base de los parametros de codificacion recibidos. En este caso, el dispositivo de codificacion 106 selecciona parametros de codificacion optimos para el proceso de codificacion, a partir de los parametros de codificacion (1st, 2nd, 3rd) generados durante los procesos de codificacion anteriores y los parametros de codificacion recientemente generados a partir de los datos de video de banda base suministrados. El dispositivo de codificacion 106 realiza el “proceso de codificacion normal” anteriormente descrito si utiliza, para la codificacion, los parametros de codificacion recientemente generados a partir de los datos de video de banda base suministrados. El dispositivo de codificacion 106 realiza el “proceso de codificacion de parametros reutilizados” anteriormente descrito si utiliza cualquiera de los parametros de codificacion anteriores (1st, 2nd, 3rd).
El ordenador 100 proporcionado en la red controla el proceso de decodificacion ejecutado por el dispositivo de decodificacion 102 y el proceso de codificacion ejecutado por el dispositivo de codificacion 106. A modo de ejemplo, el ordenador 100 detecta la capacidad de la ruta de transmision para transmitir una salida de flujo codificado por el dispositivo de codificacion 106 y selecciona uno adecuado de entre los cinco conjuntos de datos dependiendo de la capacidad de transmision. Asimismo, detecta la capacidad de almacenamiento de un dispositivo conectado a una salida del dispositivo de codificacion 106 y selecciona un conjunto adecuado de entre los cinco conjuntos de datos dependiendo de la capacidad de almacenamiento.
El dispositivo de codificacion 106 recibe informacion indicativa del conjunto de datos desde el ordenador 100 para generar el red_bw_flg y el red_bw_indicator sobre la base de esta informacion. Si la informacion proporcionada por el ordenador 100 indica el conjunto de datos 1, el red_bw_flag =0. Si la informacion indica el conjunto de datos 2, el red_bw_flag = 1 y el red_bw_indicator = 0. Si la informacion indica el conjunto de datos 3, el red_bw_flag = 1 y el red_bw_indicator =1. Si la informacion indica el conjunto de datos 4, el red_bw_flag = 1 y el red_bw_indicator =2. Si la informacion indica el conjunto de datos 5, el red_bw_flag = 1 y el red_bw_indicator = 3.
Dependiendo de los valores determinados del red_bw_flag y del red_bw_indicator, el dispositivo de codificacion 106 selecciona parametros de codificacion para la descripcion en el flujo codificado como el history_stream() y describe los parametros de codificacion seleccionados en el flujo codificado como el history_stream(), mientras que describe el red_bw_flag y el red_bw_indicator en el flujo codificado como la re_coding_stream_info(). Los parametros de codificacion transmitidos como el history_stream() se seleccionan para cada una de las primera, segunda y tercera generacion de parametros de codificacion.
Si el red_bw_flag = 0, entonces, el dispositivo de codificacion 106 describe todos los parametros de codificacion en el flujo codificado como la funcion picture_data(), incluyendo los elementos num_coef_bits, num_mv_bits, num_other_bits, q_scale_code, q_scale_type, motion_type, mv_vert_field_sel[][], mv[][][], mb_mfwd, mb_mbwd, mb_pattern, ecoded_block_pattern, mb_intra, slice_start, dct_type, mb_quant, y skipped_mb.
Si el red_bw_flag = 1 y el red_bw_indicator = 0, el dispositivo de codificacion 106 describe el parametro de codificacion en el history_stream() como la funcion picture_data (), incluyendo los elementos q_scale_code, q_scale_type, motion_type, mv_vert_field_sel [] [], mv[] [] [], mb_mfwd, mb_mbwd, mb_pattern, coded_block_pattern, mb_intra, slice_start, dct_type, mb_quant y skipped_mb.
Si el red_bw_flag = 1 y red_bw_indicator = 1, el dispositivo de codificacion 106 describe parametros de codificacion en el history_stream () como la funcion picture_data() incluyendo los elementos q_scale_code, q_scale_type, motion_type, mv_vert_field_sel [][], mv[][][], mb_mfwd, mb_mbwd, mb_pattern, mb_intra, slice_start, dct_type, mb_quant y skipped_mb.
5
10
15
20
25
30
35
40
45
50
55
60
65
Si el red_bw_flag = 1 y el red_bw_indicator = 2, el dispositivo de codificacion 106 describe parametros de codificacion que incluyen el q_scale_code y el q_scale_type, en el history_stream() como la funcion picture_data().
Si el red_bw_flag = 1 y el red_bw_indicator = 3, el codificador 106 no describe ningun parametro de codificacion en el history_stream() como la funcion picture_data().
Es decir, el dispositivo de codificacion 106 selecciona de entre los parametros de codificacion transmitidos como el history_stream() sobre la base de la informacion que indica el conjunto de datos especificado por el ordenador 100, en lugar de transmitir todos los parametros de codificacion anteriores suministrados como el history_stream(). De este modo, sobre la base de la informacion recibida que indica el conjunto de datos, el dispositivo de codificacion 105 puede generar un flujo codificado que contiene history_stream() con varias capacidades de datos. Ademas, el dispositivo de codificacion 105 puede generar un flujo codificado que contiene history_stream() que esta constituido por una cantidad de datos adecuada para la capacidad de transmision de un soporte de transmision despues dl dispositivo de codificacion 105, para la capacidad de almacenamiento de un soporte de registro o para la aplicacion. En conformidad con el transcodificador de esta forma de realizacion, los parametros de codificacion transmitidos como el history_stream() de este modo se seleccionan en conformidad con una aplicacion que sigue, de forma conectiva, el dispositivo de codificacion. Por lo tanto, el registro historico correspondiente a la aplicacion puede transmitirse en una cantidad de datos optima.
A continuacion, un formato en el que se multiplexa la informacion de registro historico en la salida de senal de video de banda base por el dispositivo de multiplexacion de informacion de registro historico 103 se describiras haciendo referencia a las Figuras 71 a 74.
La Figura 71 es un diagrama que ilustra el formato "Re_Coding information Bus macroblock format” en donde la informacion de registro historico se multiplexa en la senal de video de banda base para su transmision. Este bloque de mascara esta configurado por 16 x 16 (=256) bits. En la Figura 71, los 32 bits ilustrados en cada una de las tercera y cuarta filas desde la parte superior son picrate_element. Los elementos de tasa de imagenes, ilustrados en las Figura 72 a 74, se describen en el picrate_element. El red_bw_flag de 1 bit se especifica en la segunda fila de la parte superior en la Figura 72 y el red_bw_indicator de 3 bits se especifica en la tercera fila desde la parte superior. Es decir, los indicadores red_bw_flag y red_bw_indicator se transmiten como el picrate_element en la Figura 71.
Los otros datos en la Figura 71 se explicaran a continuacion. SRIB_sync_code es un codigo que representa que la primera fila de un macrobloque en este formato esta alineada como el extremo izquierdo del flujo. Mas concretamente, este codigo se establece en "11111”. Si la picture_structure indica la estructura de imagen de trama (es decir, su valor es "11"), fr_fl_SRIB se establece a 1, lo que indica que se transmiten mas de 16 lmeas del macrobloque Re_Coding Information Bus. Si la picture_structure no indica la estructura de tramas, el fr_fl_SRIB se establece a 0, lo que indica que se transmiten mas de 16 lmeas del Re_Coding Information Bus. Este mecanismo permite que el Re_Coding Information Bus quede bloqueado para los pixels correspondientes en un campo o trama de video que se decodifica de forma espacial y temporal.
SRIB_top_field_first se establece al mismo valor que top_field_first mantenido en el flujo de bits origen y representa con repeat_first_field, la alineacion temporal del Re_Coding Information Bus para un video relacionado. SRIB_repeat_field_first se establece al mismo valor que repeat_first_field mantenido en el flujo de bits origen. El contenido del Re_Coding Information Bus para un primer campo debe repetirse segun se indica por este indicador.
422_420_chroma representa si el flujo de bits origen es del tipo 4:2 2 o 4:2:0. El 422_420_chroma de 0 representa que un flujo de bits es de 4:2:0 y que una senal de aberracion cromatica ha sido muestreada en sentido ascendente de modo que se proporcione a la salida un video de tipo 4:2:2. El 422_420_chroma de 0 representa que no se ha filtrado la senal de aberracion cromatica.
rolling_SRIB_mb_ref representa un modulo de 16 bits 65521, cuyo valor se aumenta constantemente con el numero de macrobloques. Este valor debe ser continuo a traves de la tramas de la estructura de imagen de trama. De no ser asf, debe ser continuo a traves de campos. Se inicializa a un valor predeterminado entre 0 y 65520. Esto permite que se incorpore un indicador unico del Re_Coding Information Bus en un sistema de registro.
El significado de los otros datos para el macrobloque de Re_Coding Information Bus es segun se describio con anterioridad y por ello aqrn se omite.
Segun se ilustra en la Figura 75, los datos de 256 bits para el Re_Coding Information Bus en la Figura 71 estan dispuestos, en la forma de un bit cada vez, en Cb [0] [0], Cr [0] [0], Cb [1] [0] y Cr [1] [0], que son LSBs de datos de aberracion cromatico. Puesto que el formato ilustrado en la Figura 75 permiten que se envfen datos de 4 bits, los datos de 256 bits en la Figura 71 pueden transmitirse enviando el formato en la Figura 75 sesenta y cuatro veces (=256/4).
En conformidad con el transcodificador de la presente invencion, los parametros de codificacion generados durante los procesos de codificacion anteriores se reutilizan para el proceso de codificacion en curso, con lo que se impide la
5
10
15
20
25
30
35
40
45
50
55
60
65
degradacion de la calidad de imagen a pesar de la repeticion de los procesos de decodificacion y codificacion. Es dedr, la presente invencion puede restringir la acumulacion de degradacion de la calidad de imagen que se origina por la repeticion de los procesos de decodificacion y codificacion.
Las Figuras 76 y 77 ilustran ejemplos de configuraciones de una grabadora de cinta de video con el transcodificador de la presente invencion aplicado. La Figura 76 ilustra un ejemplo de una configuracion de un sistema de registro de una grabadora de cinta de video 601. La Figura 77 ilustra un ejemplo de una configuracion de un sistema de reproduccion de la grabadora de cinta de video 601.
La grabadora de cinta de video 601 ilustrada en la Figura 76 esta configurada por un transcodificador 101R, un dispositivo de codificacion de canal 602 y un cabezal de registro 603. El transcodificador 101R esta configurado basicamente en la misma manera que el transcodificador ilustrado en la Figura 37. En este ejemplo de configuracion, el transcodificador 101R convierte un flujo de bits ST de un GOP largo en un grupo GOP corto.
Un flujo codificado de la cuarta generacion ST procedente del dispositivo de codificacion 106 del transcodificador 101R se suministra al dispositivo de codificacion de canal 602. Segun se describio con anterioridad, los datos de usuarios user_data que contienen los parametros de codificacion de la primera a la tercera generacion se registran en la zona de datos de usuario de la capa de imagenes del flujo codificado de la cuarta generacion ST.
El dispositivo de codificacion de canal 602 anade un codigo de paridad para la correccion de errores al flujo codificado de la cuarta generacion a la entrada que realiza posteriormente una codificacion de canal utilizando, a modo de ejemplo, el metodo de modulacion NRZI y luego, suministra el flujo codificado a un cabezal de registro 603. El cabezal de registro 603 registra el flujo codificado de entrada en una cinta magnetica 604.
Segun se ilustra en la Figura 77, en el sistema de reproduccion, cabezal de reproduccion 611 genera una senal desde la cinta magnetica 604 para suministrarla a un dispositivo de decodificacion de canal 612. El dispositivo de decodificacion de canal 612 realiza una decodificacion de canal de la senal suministrada por el cabezal de reproduccion 611 y luego, corrige los errores presentes utilizando la paridad.
El flujo codificado de la cuarta generacion ST proporcionado por el dispositivo de decodificacion de canal 612 se aplica a la entrada de un transcodificador 101P. El transcodificador 101P tiene una configuracion basica similar a la del transcodificador ilustrado en la Figura 37.
El dispositivo de decodificacion 102 del transcodificador 101P extrae desde el flujo codificado de la cuarta generacion, los datos de usuario user_data que contienen los primeros parametros de codificacion de la primera a tercera generacion y suministra los datos al dispositivo de codificacion de registro historico 104 y al dispositivo de codificacion 106. El dispositivo de decodificacion de registro historico 104 decodifica los datos de usuario user_data para entregar los parametros de codificacion de primera a tercera generacion obtenidos al dispositivo de codificacion 106.
El dispositivo de decodificacion 102 decodifica tambien el flujo codificado de la cuarta generacion ST para proporcionar, a la salida, la senal de video de banda base y los parametros de codificacion de la cuarta generacion. La senal de video de banda base se suministra al dispositivo de codificacion 106, mientras que los parametros de codificacion de la cuarta generacion se entregan al dispositivo de codificacion 106 y al dispositivo de codificacion de registro historico 107.
El dispositivo de codificacion de registro historico 107 convierte los parametros de codificacion de la cuarta generacion de entrada en los datos de usuario user_data para suministrar los datos al dispositivo de codificacion 106.
Segun se describio con anterioridad, el dispositivo controlador 70 para el dispositivo de codificacion 106 determina si el tipo de imagen de cada imagen determinada a partir de la estructura de grupo GOP especificada por el operador es el mismo que el tipo de imagen contenido en la informacion de registro historico (datos de usuario user_data). Dependiendo del resultado de la determinacion, el dispositivo de codificacion 106 realiza el “proceso de codificacion normal” o “proceso de codificacion de parametros reutilizados” anteriormente descritos. Despues de este proceso, el dispositivo de codificacion 106 proporciona el flujo codificado de la cuarta generacion ST con el GOP largo en el que se ha convertido el grupo GOP corto. Los datos de usuario user_data en el flujo codificado ST tienen los parametros de codificacion de la primera a cuarta generacion allf registrado como informacion de registro historico.
Aunque la grabadora de cinta de video 601 ilustrada en las Figuras 76 y 77 registra la informacion de registro historico en los datos de usuarios user_data de la capa de imagenes, la informacion de registro historico puede registrarse en una zona de la cinta magnetica 604 que es diferente de una zona para datos de video. Las Figuras 78 y 79 muestran ejemplos de configuraciones de la grabadora de cinta de video 601 en este caso. La Figura 78 ilustra un ejemplo de una configuracion de un sistema de registro de la grabadora de cinta de video 601. La Figura 79 ilustra un ejemplo de una configuracion de un sistema de reproduccion de la grabadora de cinta de video 601.
5
10
15
20
25
30
35
40
45
50
55
60
65
Segun se ilustra en la Figura 78, en la grabadora de cinta de video 601, los datos de usuario user_data proporcionados por el dispositivo de decodificacion 102 del transcodificador 101R es objeto de entrada en el dispositivo de decodificacion de registro historico 104, que decodifica luego los parametros de codificacion anteriores (en este ejemplo, los parametros de codificacion de la primera y segunda generacion) para su suministro al dispositivo de codificacion 106. Ademas, este ejemplo no necesita registrar informacion de registro historico en la cinta magnetica 604 como datos de usuario user_data y por ello, emplea solamente el VLC de registro historico 211 en lugar del dispositivo de codificacion de registro historico completo 107 ilustrado en la Figura 15. El VLC de registro historico 211 se suministra con los parametros de codificacion (en este caso, los parametros de codificacion de la tercera generacion) proporcionados por el dispositivo de decodificacion 102 y con los parametros de codificacion (en este caso, los parametros de codificacion de la primera y segunda generacion) a la salida despues decodificarse desde los datos de usuario user_data por el dispositivo de decodificacion de registro historico 104. El VLC de registro historico 211 de longitud variable codifica los parametros de codificacion de la primera a tercera generacion para generar el flujo de registro historico ilustrado en las Figuras 40 a 46 o 47 para su suministro a un dispositivo de multiplexacion 621.
El dispositivo de multiplexacion 621 recibe tambien un flujo codificado de la cuarta generacion ST procedente del dispositivo de codificacion 106. El dispositivo de multiplexacion 621 multiplexa el flujo codificado (flujo de bits) suministrado por el dispositivo de codificacion 106 en una zona que es mas segura que una zona en la que se registran los datos historicos suministrados por el VLC de registro historico 211.
A modo de ejemplo, segun se ilustra en la Figura 80, la salida de flujo de video por el dispositivo de codificacion 106 se registra en la cinta magnetica 604 cerca de un codigo de sincronizacion, mientras que la salida del flujo history_stream por el VLC de registro historico 211 se registra a mas distancia desde el codigo de sincronizacion que el flujo de video. Cuando se recupera el flujo de video durante, a modo de ejemplo, una reproduccion especial, el codigo de sincronizacion se detecta primero y se recupera el flujo de video posterior utilizando el codigo de sincronizacion como una referencia. En consecuencia, localizando el flujo de video mas proximo al codigo de sincronizacion, los datos de ideo pueden reproducirse de forma fiable incluso durante una reproduccion rapida. El flujo history_stream no es requerido para una reproduccion rapida. Por ello, se evitan los efectos adversos incluso cuando el history_stream esta situado lejos del codigo de sincronizacion.
La senal multiplexada por el dispositivo de multiplexacion 621 se aplica a la entrada del dispositivo de codificacion de canal 602. Despues de la codificacion de canal, el cabezal de registro 603 registra la senal en la cinta magnetica 604.
De esta manera, en este ejemplo se multiplexa el history_stream en la posicion diferente de la que tienen los datos de video. En consecuencia, aun cuando el codigo de inicio aparezcas en esa posicion, puede distinguirse suficiente con respecto a los datos de video. En consecuencia, esta realizacion ejemplo no requiere la insercion del bit de marca que se requiere para la conversion del flujo de registro historico en el converted_history_stream.
Ademas, los parametros de codificacion pueden suministrarse al dispositivo de multiplexacion 621 para su multiplexacion en lugar de convertir en el formato del history_stream. En este caso, sin embargo, los datos no son comprimidos, con lo que se aumenta la cantidad para los parametros de codificacion para reducir la eficiencia operativa de la cinta magnetica 604. De este modo, el VLC de registro historico 211 se utiliza, de forma deseable, para comprimir los datos en el formato del history_stream antes de la multiplexacion.
Segun se ilustra en la Figura 79, en el sistema de reproduccion de la grabadora de cinta de video 601, la senal reproducida desde la cinta magnetica 604 por el cabezal de registro 611 es objeto de decodificacion de canal por el dispositivo de decodificacion de canal 612. Un dispositivo de demultiplexacion 631 es objeto de decodificacion de canal por el dispositivo de decodificacion de canal 612. El dispositivo de demultiplexacion 631 separa el flujo codificado de la cuarta generacion ST suministrado por el dispositivo de decodificacion de canal 612, en el flujo de video y el history_stream y suministra el flujo de video al dispositivo de decodificacion 102 mientras entrega el history_stream al VLD de registro historico 203.
Es decir, en esta realizacion ejemplo se utiliza solamente el VLD de registro historico 203 en lugar del dispositivo de decodificacion de registro historico 104 completo segun se ilustra en la Figura 15.
El VLD de registro historico 203 de longitud variable decodifica el history_stream a la salida de los parametros de codificacion de la primera a tercera generacion obtenidos para el dispositivo de codificacion 106.
Ademas, el history_stream a la salida del dispositivo de demultiplexacion 631 es aplicado a la entrada de un convertidor 212'. El convertidor 212' y dispositivo para dar formato a los datos de usuario 213' siguiente estan separados del convertidor 212 y del dispositivo para dar formato a los datos de usuario 213 (vease la Figura 15) incorporado en el dispositivo de codificacion de registro historico 107 pero proporciona las mismas funciones.
Es decir, el convertidor 212' anade el bit de marca a la entrada del flujo de registro historico por el dispositivo de demultiplexacion 631 para generar el denominado converted_history_stream y lo proporciona a la salida, al
5
10
15
20
25
30
35
40
45
50
55
60
65
dispositivo para dar formato a los datos de usuario 213'. El dispositivo para dar formato a los datos de usuario 213' convierte el flujo converted_history_stream de entrada en los datos de usuarios user_data para proporcionar los datos al dispositivo de codificacion 106. Los datos de usuarios user_data contienen los parametros de codificacion de la primera a tercera generacion.
El dispositivo de decodificacion 102 decodifica la entrada de flujo de video por el dispositivo de demultiplexacion 631 para proporcionar la senal de video de banda base al dispositivo de codificacion 106. El dispositivo de decodificacion 102 suministra tambien los parametros de codificacion de la cuarta generacion al dispositivo de codificacion 106, mientras que los proporciona al dispositivo de codificacion de registro historico 107. El dispositivo de codificacion de registro historico 107 genera los datos de usuarios user_data desde los parametros de codificacion de la cuarta generacion para proporcionar los datos al dispositivo de codificacion 106.
De forma similar al dispositivo de codificacion 106 en la Figura 77, el dispositivo de codificacion 106 ejecuta el denominado “proceso de codificacion normal” o el “proceso de codificacion de parametros reutilizados” para proporcionar un flujo codificado de la quinta generacion ST. Este flujo codificado de la quinta generacion ST tiene los parametros de codificacion de la primera a cuarta generacion registrados en los datos de usuarios user_data de su capa de imagenes.
Segun se aprecia por la descripcion anterior, en conformidad con el transcodificador de la presente invencion, los parametros de codificacion generados durante los procesos de codificacion anteriores se describen en la zona de datos de usuarios del flujo codificado generado durante el proceso de codificacion en curso y el flujo de bits generado es un flujo codificado en conformidad con la norma MPEG. En consecuencia, cualquier decodificacion actual puede utilizarse para el proceso de decodificacion. Ademas, el transcodificador en conformidad con la presente invencion no requiere ninguna lmea dedicada o similar para transmitir los parametros de codificacion para los procesos de codificacion anteriores, por lo que los entornos de transmision de flujo de datos convencionales pueden utilizarse directamente para transmitir los parametros de codificacion anteriores.
En conformidad con el transcodificador de esta forma de realizacion, los parametros de codificacion generados durante los procesos de codificacion anteriores se describen, de forma selectiva, en el flujo codificado generado durante el proceso de codificacion en curso. En consecuencia, los parametros de codificacion anteriores pueden transmitirse sin la necesidad de aumentar en gran medida la tasa binaria del flujo de bits de salida.
En conformidad con el transcodificador de esta forma de realizacion, los parametros de codificacion optimos para el proceso de codificacion en curso se seleccionan a partir de los parametros de codificacion anteriores y actuales para su codificacion. En consecuencia, se evita la degradacion de la calidad de imagen a pesar de la repeticion de los procesos de decodificacion y codificacion.
En conformidad con el transcodificador de esta forma de realizacion, los parametros de codificacion optimos para el proceso de codificacion en curso se seleccionan de entre los parametros de codificacion anteriores en conformidad con el tipo de imagen para la codificacion. En consecuencia, se impide que niveles de deterioro en la calidad de imagen se hagan de efecto mas perjudicial a pesar de la repeticion de los procesos de decodificacion y codificacion.
El transcodificador en conformidad con esta forma de realizacion determina tambien si reutilizar, o no, los parametros de codificacion anteriores sobre la base de los tipos de imagen contenidos en los parametros de codificacion anteriores con lo que se activa un proceso de codificacion optimo.
Programas informaticos para los procesos anteriores pueden proporcionarse mediante su registro en un soporte de registro tal como un disco magnetico, un disco optico, un disco foto-electro-magnetico o una memoria de semiconductores o transmitiendolos por intermedio de una red tal como Internet, ATM, o un satelite digital, de modo que puedan registrarse en un soporte de registro del usuario.
Ademas, en conformidad con el transcodificador de esta forma de realizacion, la informacion para el conjunto de datos que representa una combinacion de parametros de codificacion para los procesos de codificacion anteriores se describe en el flujo codificado recodificado por el transcodificador. Esta configuracion puede generar un flujo que contenga informacion de registro historico que pueda transmitirse por intermedio de una ruta de transmision de una pequena capacidad.
En conformidad con el transcodificador de esta forma de realizacion, la pluralidad de parametros de codificacion utilizados para los procesos de codificacion anteriores se combina, de forma selectiva, para generar informacion de registro historico de codificacion, que luego se superpone en el flujo codificado. En consecuencia, un flujo capaz de restringir la degradacion de la imagen derivada de la recodificacion puede transmitirse por intermedio de un soporte de pequena capacidad.
En conformidad con el transcodificador de esta forma de realizacion, se extraen parametros de codificacion basados en la informacion que indica un conjunto de datos para generar el flujo codificado recodificado sobre la base de los parametros de codificacion extrafdos. En consecuencia, un flujo capaz de restringir la degradacion de la imagen derivada de la recodificacion y de transmitirse a un soporte de transmision con pequena capacidad de transmision
5
10
15
20
25
puede ser objeto de codificacion.
El transcodificador en conformidad con esta forma de realizacion registra los datos historicos de codificacion detectados de los procesos de codificacion anteriores en el soporte de registro, con lo que se reduce la degradacion de la calidad de la imagen incluso cuando se registre el flujo codificado en el soporte de registro.
El transcodificador en conformidad con esta forma de realizacion detecta el registro historico de codificacion contenido en el flujo codificado reproducido desde el soporte de registro para multiplexar los datos historicos con el flujo codificado recodificado para la salida, con lo que se limita la degradacion de la calidad de la imagen aun cuando el flujo codificado sea reproducido desde el soporte de registro con una nueva transcodificacion.
Aplicabilidad industrial
La presente invencion se refiere a un sistema de codificacion y su metodo, en particular aplicable a un transcodificador para recodificacion de un flujo codificado que ha sido codificado en conformidad con la norma MPEG con el fin de generar un flujo recodificado que tenga un grupo GOP diferente (grupo de imagenes) o tasa binaria distinta.

Claims (24)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Un sistema de codificacion para recodificar un flujo codificado origen, que comprende:
    un medio de decodificacion para decodificar dicho flujo codificado origen con el fin de generar datos de video y para extraer desde dicho flujo codificado origen primeros y segundos parametros de codificacion anteriores respectivamente generados por primero y segundo procesos de codificacion anteriores;
    un medio de codificacion para recodificar, utilizando terceros parametros de codificacion, dichos datos de video para generar un flujo de video recodificado; y
    un medio de control para recibir dichos primeros y segundos parametros de codificacion anteriores y para controlar el proceso de recodificacion realizado por dicho medio de codificacion, sobre la base de dichos primeros y segundos parametros de codificacion anteriores; y
    un medio de escritura para escribir, de forma selectiva, parametros de codificacion de los primeros y segundos parametros de codificacion anteriores en el flujo de video recodificado y para escribir, en el flujo de video recodificado, un indicador que indica un conjunto de datos de los primeros y segundos parametros de codificacion anteriores escrito en el flujo de video recodificado.
  2. 2. El sistema de codificacion segun la reivindicacion 1, caracterizado por cuanto que en el momento de la codificacion de dichos parametros anteriores, dicho medio de control es utilizable para seleccionar parametros de codificacion en macrobloques para describirlos en dicho flujo recodificado.
  3. 3. El sistema de codificacion segun la reivindicacion 1, caracterizado por cuanto que en el momento de la codificacion de dichos parametros anteriores, dicho medio de control es utilizable para describir todos los parametros de codificacion en relacion con una unidad de imagen, en dicho flujo recodificado, con independencia de dicha aplicacion y describe, de forma selectiva, parametros de codificacion en macrobloques, en dicho flujo recodificado sobre la base de dicha aplicacion.
  4. 4. El sistema de codificacion segun la reivindicacion 1, caracterizado por cuanto que dicho medio de control es utilizable para describir dichos parametros de codificacion anteriores seleccionados en dicho flujo recodificado bajo la forma de un flujo denominado history_stream() y describe informacion que indica un conjunto de datos para dichos parametros de codificacion anteriores seleccionados, en dicho flujo recodificado, bajo la forma de informacion denominada re_coding_stream_info().
  5. 5. El sistema de codificacion segun la reivindicacion 4, caracterizado por cuanto que dicha informacion denominada re_coding_stream_info() contiene un indicador red_bw_flag y un indicador red_bw_indicator como informacion para identificar dicho conjunto de datos.
  6. 6. El sistema de codificacion segun la reivindicacion 1, caracterizado por cuanto que dicho conjunto de datos comprende:
    una pluralidad de conjuntos de datos que incluye al menos un conjunto de datos para transmitir parametros de codificacion requeridos para generar un flujo recodificado completamente transparente; y
    un conjunto de datos para transmitir parametros de codificacion requeridos para generar un flujo recodificado relativamente transparente.
  7. 7. El sistema de codificacion segun la reivindicacion 1, caracterizado por cuanto que dicho conjunto de datos comprende: una pluralidad de conjuntos de datos que incluye al menos un conjunto de datos para transmitir todos dichos parametros de codificacion anteriores a dichos parametros recodificados bajo la forma de un flujo denominado history_stream(); y
    un conjunto de datos que no transmite dichos parametros de codificacion anteriores que siguen datos de imagen picture_data(), a dichos parametros recodificados bajo la forma de un flujo denominado history_stream().
  8. 8. El sistema de codificacion segun la reivindicacion 1, caracterizado por cuanto que dicho conjunto de datos comprende:
    una pluralidad de conjuntos de datos que incluyen al menos un conjunto de datos para transmitir parametros de codificacion en imagenes y en macrobloques a dichos parametros recodificados bajo la forma de un flujo denominado history_stream(); y
    un conjunto de datos que transmite los parametros de codificacion en imagenes a dichos parametros recodificados bajo la forma de un flujo denominado history_stream(), pero que no transmite los parametros de codificacion en
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    macrobloques a dichos parametros recodificados bajo la forma del flujo history_stream ().
  9. 9. El sistema de codificacion segun la reivindicacion 1, caracterizado por cuanto que:
    dicho medio de codificacion es utilizable para codificar durante dicho proceso de codificacion en curso, una imagen de referencia contenida en dichos datos de video de entrada, utilizando el tipo de imagen en curso asignado a dicha imagen de referencia; y
    dicho medio de control es utilizable para determinar si dicha imagen de referencia se ha codificado, o no, en el mismo tipo de imagen que el tipo asignado durante un proceso de codificacion anterior y controla dicho proceso de codificacion en curso sobre la base de un resultado de la determinacion.
  10. 10. El sistema de codificacion segun la reivindicacion 9, caracterizado por cuanto que, sobre la base de dicha determinacion, dicho medio de control es utilizable para seleccionar parametros optimos de entre dichos parametros de codificacion anteriores para controlar el proceso de codificacion en curso realizado por dicho medio de codificacion, sobre la base de dichos parametros de codificacion optimos seleccionados.
  11. 11. El sistema de codificacion segun la reivindicacion 9, caracterizado por cuanto que dicho medio de control es utilizable para codificar dicha imagen de referencia utilizando uno de los parametros de codificacion anteriores generados durante dicho proceso de codificacion anterior.
  12. 12. El sistema de codificacion segun la reivindicacion 9, caracterizado por cuanto que dichos parametros de codificacion anteriores incluyen informacion de vectores de movimiento generada durante dicho proceso de codificacion anterior; y
    dicho medio de codificacion es utilizable para incluir un medio de deteccion de vectores de movimiento para detectar informacion de vectores de movimiento para dicha imagen de referencia durante dicho proceso de codificacion en curso.
  13. 13. El sistema de codificacion segun la reivindicacion 12, caracterizado por cuanto que dicho medio de control es utilizable para controlar la operacion de dicho medio de deteccion de vectores de movimiento sobre la base de dicho resultado de la determinacion.
  14. 14. El sistema de codificacion segun la reivindicacion 13, caracterizado por cuanto que dicho medio de control es utilizable para reutilizar dicha informacion de vectores de movimiento incluida en dichos parametros de codificacion anteriores, en lugar de permitir a dicho medio de deteccion de vectores de movimiento calcular una nueva informacion de vectores de movimiento.
  15. 15. El sistema de codificacion segun la reivindicacion 9, caracterizado por cuanto que dicho medio de control es utilizable para seleccionar parametros optimos de entre dichos parametros de codificacion anteriores que corresponden a dicho proceso de codificacion en curso y controla dicho proceso de codificacion en curso realizado por dicho medio de codificacion, sobre la base de dichos parametros de codificacion optimos.
  16. 16. El sistema de codificacion segun la reivindicacion 9, caracterizado por cuanto que
    dicho medio de codificacion es utilizable para codificar, durante dicho proceso de codificacion en curso, una imagen de referencia contenida en dichos datos de video de entrada, utilizando el tipo de imagen en curso que se asigna a dicha imagen de referencia, y
    dicho medio de control es utilizable para determinar si dicha imagen de referencia ha sido codificada, o no, en el mismo tipo de imagen que se asigna durante un proceso de codificacion anterior y seleccionar dichos parametros de codificacion optimos sobre la base de un resultado de la determinacion.
  17. 17. El sistema de codificacion segun la reivindicacion 15, caracterizado por cuanto que
    dichos parametros de codificacion anteriores incluyen informacion del modo de prediccion que representa un modo de prediccion de tramas o un modo de prediccion de campos, y
    dicho medio de control es utilizable para controlar dicho proceso de codificacion en curso dependiendo de dicha informacion del modo de prediccion.
  18. 18. El sistema de codificacion segun la reivindicacion 15, caracterizado por cuanto que si dicha imagen de referencia ha sido codificada en el mismo tipo de imagen que dicho tipo de imagen anterior, dicho medio de control es utilizable para reutilizar dicha informacion de modo de prediccion incluida en dichos parametros de codificacion anteriores en lugar de calcular una nueva informacion de modo de prediccion.
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
  19. 19. El sistema de codificacion segun la reivindicacion 15, caracterizado por cuanto que:
    dichos parametros de codificacion incluyen informacion del tipo de prediccion que indica una intra-prediccion, una prediccion directa, una prediccion inversa o una prediccion bidireccional y en donde:
    dicho medio de control es utilizable para controlar dicho proceso de codificacion en curso sobre la base de dicha informacion de tipo de prediccion.
  20. 20. El sistema de codificacion segun la reivindicacion 15, caracterizado por cuanto que:
    dichos parametros de codificacion incluyen informacion de modo DCT que representa un modo DCT de tramas o un modo DCT de campos de imagen y en donde:
    dicho medio de control es utilizable para controlar dicho proceso de codificacion en curso sobre la base de dicha informacion de modo DCT.
  21. 21. El sistema de codificacion segun la reivindicacion 9 caracterizado por cuanto que dicho medio de codificacion tiene un medio de generacion para generar un flujo de bits MPEG conforme a la norma de MPEG y que comprende una capa de secuencias, una capa de GOP, una capa de imagenes, una capa de segmentos y una capa de macrobloques.
  22. 22. El sistema de codificacion segun la reivindicacion 21, caracterizado por cuanto que dicho medio de control es utilizable para generar los parametros de codificacion en curso correspondientes a dicho proceso de codificacion en curso realizado por dicho medio de codificacion, y
    dicho medio de control es utilizable para describir dichos parametros de codificacion en curso en dichas capas de imagenes, de segmentos y de macrobloques de dicho flujo recodificado mientras que describe, de forma selectiva, dichos parametros de codificacion anteriores en una zona de datos de usuario de la capa de imagen de dicho flujo recodificado.
  23. 23. El sistema de codificacion segun la reivindicacion 9, caracterizado por cuanto que dicho medio de control es utilizable para describir dichos parametros de codificacion anteriores en dicho flujo recodificado como un flujo denominado history_stream().
  24. 24. Un metodo para recodificar un flujo codificado origen, que comprende:
    decodificar dicho flujo codificado origen para generar datos de video y extraer desde dicho flujo codificado origen, primeros y segundos parametros de codificacion anteriores generados por primeros y segundos procesos de codificacion anteriores, respectivamente;
    recibir dichos primeros y segundos parametros de codificacion anteriores;
    recodificar, utilizando los terceros parametros de codificacion, dichos datos de video para generar un flujo de video recodificado en donde la recodificacion se controla sobre la base de dichos primeros segundos parametros de codificacion anteriores;
    escribir, de forma selectiva, parametros de codificacion de los primeros y segundos parametros de codificacion anteriores en el flujo de video recodificado; y
    escribir, en el flujo recodificado, un indicador que indica un conjunto de datos de los primeros y segundos parametros de codificacion escritos en el flujo de video recodificado.
ES00902884.6T 1999-02-09 2000-02-09 Sistema de codificación y método asociado Expired - Lifetime ES2569491T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP3194499 1999-02-09
JP3194499 1999-02-09
PCT/JP2000/000720 WO2000048402A1 (en) 1999-02-09 2000-02-09 Coding system and its method, coding device and its method, decoding device and its method, recording device and its method, and reproducing device and its method

Publications (1)

Publication Number Publication Date
ES2569491T3 true ES2569491T3 (es) 2016-05-11

Family

ID=12345086

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00902884.6T Expired - Lifetime ES2569491T3 (es) 1999-02-09 2000-02-09 Sistema de codificación y método asociado

Country Status (7)

Country Link
US (3) US7236526B1 (es)
EP (1) EP1069779B1 (es)
JP (1) JP3672185B2 (es)
KR (2) KR100571687B1 (es)
CN (1) CN1241416C (es)
ES (1) ES2569491T3 (es)
WO (1) WO2000048402A1 (es)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715009A (en) 1994-03-29 1998-02-03 Sony Corporation Picture signal transmitting method and apparatus
CA2265089C (en) * 1998-03-10 2007-07-10 Sony Corporation Transcoding system using encoding history information
KR100571687B1 (ko) * 1999-02-09 2006-04-18 소니 가부시끼 가이샤 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법
JP4487374B2 (ja) * 1999-06-01 2010-06-23 ソニー株式会社 符号化装置及び符号化方法並びに多重化装置及び多重化方法
JP3694888B2 (ja) * 1999-12-03 2005-09-14 ソニー株式会社 復号装置および方法、符号化装置および方法、情報処理装置および方法、並びに記録媒体
FR2809573B1 (fr) * 2000-05-26 2002-08-16 Thomson Broadcast Systems Procede de codage d'un flux d'images video
KR100463764B1 (ko) * 2000-07-21 2004-12-29 마츠시타 덴끼 산교 가부시키가이샤 신호 전달 시스템
KR100394014B1 (ko) * 2001-06-23 2003-08-09 엘지전자 주식회사 영상 변환 부호화 장치
EP1261204A2 (en) * 2001-03-29 2002-11-27 Matsushita Electric Industrial Co., Ltd. Method and apparatus for data reproduction
DE10119214A1 (de) * 2001-04-19 2002-10-24 Highlight Comm Ag Pfaeffikon Verfahren zum Komprimieren von Videodaten
US7409094B2 (en) * 2001-05-04 2008-08-05 Hewlett-Packard Development Company, L.P. Methods and systems for packetizing encoded data
US9894379B2 (en) * 2001-07-10 2018-02-13 The Directv Group, Inc. System and methodology for video compression
US7609767B2 (en) * 2002-05-03 2009-10-27 Microsoft Corporation Signaling for fading compensation
US7277486B2 (en) * 2002-05-03 2007-10-02 Microsoft Corporation Parameterization for fading compensation
NZ520986A (en) 2002-08-23 2005-04-29 Ectus Ltd Audiovisual media encoding system
FI114071B (fi) * 2003-01-13 2004-07-30 Nokia Corp Kuvien käsitteleminen rajoitetulla bittimäärällä
US8243004B2 (en) * 2003-03-10 2012-08-14 Fergason Patent Properties, Llc Apparatus and method for preparing, storing, transmitting and displaying images
JP4196726B2 (ja) * 2003-05-14 2008-12-17 ソニー株式会社 画像処理装置および画像処理方法、記録媒体、並びに、プログラム
JP2005004866A (ja) * 2003-06-11 2005-01-06 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP4120934B2 (ja) * 2003-06-16 2008-07-16 ソニー株式会社 画像処理装置および画像処理方法、記録媒体、並びに、プログラム
US8009739B2 (en) * 2003-09-07 2011-08-30 Microsoft Corporation Intensity estimation/compensation for interlaced forward-predicted fields
JP4232588B2 (ja) * 2003-09-19 2009-03-04 ソニー株式会社 画像処理装置および画像処理方法、並びに、プログラム
US8165445B2 (en) * 2004-01-08 2012-04-24 Hewlett-Packard Development Company, L.P. System, method, and computer-readable medium for analyzing an MPEG-formatted file
EP1592255A1 (en) * 2004-04-30 2005-11-02 Matsushita Electric Industrial Co., Ltd. Motion vector estimation with improved motion vector selection
JP4655191B2 (ja) * 2004-09-02 2011-03-23 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
US9071847B2 (en) * 2004-10-06 2015-06-30 Microsoft Technology Licensing, Llc Variable coding resolution in video codec
US8243820B2 (en) * 2004-10-06 2012-08-14 Microsoft Corporation Decoding variable coded resolution video with native range/resolution post-processing operation
JP4383311B2 (ja) * 2004-10-13 2009-12-16 パナソニック株式会社 コンテンツ録画装置及びコンテンツ録画装置の制御方法並びにコンテンツ録画装置の記録プログラム
JP4442891B2 (ja) * 2004-11-30 2010-03-31 キヤノン株式会社 可変長符号化装置及び可変長符号化方法
US20060133507A1 (en) * 2004-12-06 2006-06-22 Matsushita Electric Industrial Co., Ltd. Picture information decoding method and picture information encoding method
US20060222251A1 (en) * 2005-04-01 2006-10-05 Bo Zhang Method and system for frame/field coding
FR2888424A1 (fr) * 2005-07-07 2007-01-12 Thomson Licensing Sas Dispositif et procede de codage et de decodage de donnees video et train de donnees
KR100851972B1 (ko) * 2005-10-12 2008-08-12 삼성전자주식회사 오디오 데이터 및 확장 데이터 부호화/복호화 방법 및 장치
JP4644097B2 (ja) * 2005-10-31 2011-03-02 富士通セミコンダクター株式会社 動画像符号化プログラム、プログラム記憶媒体、および符号化装置。
JP4666255B2 (ja) * 2005-12-27 2011-04-06 日本電気株式会社 符号化データ選定、符号化データ設定、再符号化データ生成及び再符号化の方法及び装置
US7956930B2 (en) * 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US9602840B2 (en) * 2006-02-06 2017-03-21 Thomson Licensing Method and apparatus for adaptive group of pictures (GOP) structure selection
KR100713530B1 (ko) * 2006-04-25 2007-05-02 삼성전자주식회사 이미지 비트 형식 변환 시 화질 열화를 방지하기 위한 영상처리 장치 및 방법
US8326064B2 (en) 2007-01-22 2012-12-04 Nec Corporation Image re-encoding method to decode image data which is orthogonally transformed per first block and encoded by a first encoding method
JP2008193444A (ja) * 2007-02-06 2008-08-21 Hitachi Ltd 情報処理装置
US8107571B2 (en) * 2007-03-20 2012-01-31 Microsoft Corporation Parameterized filters and signaling techniques
JP4739295B2 (ja) * 2007-08-27 2011-08-03 日本電信電話株式会社 映像信号生成装置、映像信号生成方法、映像信号生成プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
KR101946376B1 (ko) 2007-10-16 2019-02-11 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US8150187B1 (en) 2007-11-29 2012-04-03 Lsi Corporation Baseband signal quantizer estimation
JP2009164880A (ja) 2008-01-07 2009-07-23 Mitsubishi Electric Corp トランスコーダ及び受信機
US8145794B2 (en) 2008-03-14 2012-03-27 Microsoft Corporation Encoding/decoding while allowing varying message formats per message
US8767838B1 (en) * 2008-09-05 2014-07-01 Zenverge, Inc. Cascading multiple video transcoders in a video processing system
US9083976B2 (en) 2008-09-05 2015-07-14 Freescale Semiconductor, Inc. Processing a video stream in real time based on binary information of the video stream
WO2010065507A1 (en) 2008-12-02 2010-06-10 Ab Initio Software Llc Data maintenance system
KR20100072717A (ko) * 2008-12-22 2010-07-01 삼성전자주식회사 데이터 처리 방법 및 장치
KR101041687B1 (ko) * 2008-12-26 2011-06-14 경북대학교 산학협력단 심전도 신호의 세그먼트 압축 및 복원 방법
US20120287999A1 (en) * 2011-05-11 2012-11-15 Microsoft Corporation Syntax element prediction in error correction
GB2493755B (en) * 2011-08-17 2016-10-19 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of images
US9143802B2 (en) * 2011-10-31 2015-09-22 Qualcomm Incorporated Fragmented parameter set for video coding
US20130113882A1 (en) * 2011-11-08 2013-05-09 Sony Corporation Video coding system and method of operation thereof
US20130188709A1 (en) * 2012-01-25 2013-07-25 Sachin G. Deshpande Video decoder for tiles with absolute signaling
US9432666B2 (en) * 2012-03-29 2016-08-30 Intel Corporation CAVLC decoder with multi-symbol run before parallel decode
US9979958B2 (en) * 2012-04-20 2018-05-22 Qualcomm Incorporated Decoded picture buffer processing for random access point pictures in video sequences
JP6160802B2 (ja) * 2012-08-14 2017-07-12 シャープ株式会社 ビット符号化装置、ビット復号装置、送信装置、受信装置、ビット符号化方法、ビット復号方法、送信方法、受信方法およびプログラム
US9584825B2 (en) * 2012-09-27 2017-02-28 Qualcomm Incorporated Long-term reference picture signaling in video coding
US9497476B2 (en) * 2013-04-05 2016-11-15 Sharp Kabushiki Kaisha Image decoding apparatus
US20150103883A1 (en) * 2013-10-11 2015-04-16 Mediatek Inc. Method and apparatus for fast intra prediction
EP3104614A4 (en) 2014-02-03 2017-09-13 Mitsubishi Electric Corporation Image encoding device, image decoding device, encoded stream conversion device, image encoding method, and image decoding method
US9716888B2 (en) * 2014-03-26 2017-07-25 Vixs Systems, Inc. Video processing with static and dynamic regions and method for use therewith
KR102423434B1 (ko) * 2015-02-17 2022-07-22 소니그룹주식회사 송신 장치, 송신 방법, 수신 장치 및 수신 방법
AU2017213801B2 (en) 2016-02-02 2022-04-14 Duke University Phosphor-containing drug activator, suspension thereof, system containing the suspension, and methods for use
JP6977422B2 (ja) * 2017-09-13 2021-12-08 株式会社Jvcケンウッド トランスコード装置、トランスコード方法及びトランスコードプログラム
CN110198474B (zh) * 2018-02-27 2022-03-15 中兴通讯股份有限公司 一种码流处理方法及装置
CN110474711B (zh) * 2018-05-11 2021-11-09 Tcl华星光电技术有限公司 编码方法、设备及可读存储介质
WO2020071830A1 (ko) * 2018-10-05 2020-04-09 엘지전자 주식회사 히스토리 기반 움직임 정보를 이용한 영상 코딩 방법 및 그 장치
CN113037733A (zh) * 2021-03-01 2021-06-25 安徽商信政通信息技术股份有限公司 航空航天涉密数据的非物理接触无损传递的方法及系统

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2443769A2 (fr) * 1978-12-08 1980-07-04 Telediffusion Fse Compression et expansion (quantification) de signaux numeriques de television a codage differentiel
DE3613343A1 (de) * 1986-04-19 1987-10-22 Philips Patentverwaltung Hybrid-codierer
US4825448A (en) * 1986-08-07 1989-04-25 International Mobile Machines Corporation Subscriber unit for wireless digital telephone system
US5187755A (en) 1988-06-30 1993-02-16 Dainippon Screen Mfg. Co., Ltd. Method of and apparatus for compressing image data
US5291484A (en) * 1989-09-04 1994-03-01 Fujitsu Limited Relay and exchange system for time division multiplex data
DE69122595T2 (de) 1990-12-27 1997-03-20 Toshiba Kawasaki Kk Aufzeichnungs- und Abspielgerät
US5260783A (en) * 1991-02-21 1993-11-09 Gte Laboratories Incorporated Layered DCT video coder for packet switched ATM networks
US5148272A (en) * 1991-02-27 1992-09-15 Rca Thomson Licensing Corporation Apparatus for recombining prioritized video data
US5212549A (en) 1991-04-29 1993-05-18 Rca Thomson Licensing Corporation Error concealment apparatus for a compressed video signal processing system
US5227878A (en) 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
US5327520A (en) * 1992-06-04 1994-07-05 At&T Bell Laboratories Method of use of voice message coder/decoder
JP3196906B2 (ja) 1992-08-21 2001-08-06 富士ゼロックス株式会社 画像信号の符号化装置
JP3358835B2 (ja) 1992-12-14 2002-12-24 ソニー株式会社 画像符号化方法及び装置
JP3163830B2 (ja) * 1993-03-29 2001-05-08 ソニー株式会社 画像信号伝送方法及び装置
TW301098B (es) 1993-03-31 1997-03-21 Sony Co Ltd
JPH06292019A (ja) 1993-04-02 1994-10-18 Fujitsu Ltd 画像データ圧縮装置と画像符号圧縮装置
JP3085024B2 (ja) 1993-06-01 2000-09-04 松下電器産業株式会社 画像再圧縮器及び画像記録装置
JPH0795584A (ja) 1993-07-30 1995-04-07 Matsushita Electric Ind Co Ltd 画像符号化装置
NL9301358A (nl) * 1993-08-04 1995-03-01 Nederland Ptt Transcodeerinrichting.
JP3081425B2 (ja) 1993-09-29 2000-08-28 シャープ株式会社 映像符号化装置
US5452006A (en) * 1993-10-25 1995-09-19 Lsi Logic Corporation Two-part synchronization scheme for digital video decoders
KR970003789B1 (ko) * 1993-11-09 1997-03-21 한국전기통신공사 비디오 부호기의 전송율을 제어하기 위한 비트 할당 방법
DE69422960T2 (de) 1993-12-01 2000-06-15 Matsushita Electric Ind Co Ltd Verfahren und Vorrichtung zum Editieren oder zur Mischung von komprimierten Bildern
US5537440A (en) 1994-01-07 1996-07-16 Motorola, Inc. Efficient transcoding device and method
US5500678A (en) 1994-03-18 1996-03-19 At&T Corp. Optimized scanning of transform coefficients in video coding
US5563593A (en) * 1994-03-18 1996-10-08 Lucent Technologies Inc. Video coding with optimized low complexity variable length codes
US5754235A (en) * 1994-03-25 1998-05-19 Sanyo Electric Co., Ltd. Bit-rate conversion circuit for a compressed motion video bitstream
US5715009A (en) * 1994-03-29 1998-02-03 Sony Corporation Picture signal transmitting method and apparatus
US5541852A (en) * 1994-04-14 1996-07-30 Motorola, Inc. Device, method and system for variable bit-rate packet video communications
US5534937A (en) * 1994-04-14 1996-07-09 Motorola, Inc. Minimum-delay jitter smoothing device and method for packet video communications
JPH07288804A (ja) * 1994-04-18 1995-10-31 Kokusai Denshin Denwa Co Ltd <Kdd> 画像信号の再符号化装置
US5940130A (en) 1994-04-21 1999-08-17 British Telecommunications Public Limited Company Video transcoder with by-pass transfer of extracted motion compensation data
DE4416967A1 (de) * 1994-05-13 1995-11-16 Thomson Brandt Gmbh Verfahren und Vorrichtung zur Transcodierung von Bitströmen mit Videodaten
DE69529579D1 (de) 1994-06-17 2003-03-13 Snell & Wilcox Ltd Komprimieren eines aus kompressionskodierten Videosignalen nach deren Teildekodierung kombinierten Signales
GB9413001D0 (en) 1994-06-28 1994-08-17 Ntl Methods for the synchronisation of successive digital video compression/decompression systems
DE69522861T2 (de) * 1994-06-30 2002-04-11 Koninkl Philips Electronics Nv Verfahren und Einrichtung zur Codeumwandlung von codiertem Datenstrom
US5512953A (en) 1994-08-09 1996-04-30 At&T Corp. Method and apparatus for conversion of compressed bit stream representation of video signal
JPH0865663A (ja) 1994-08-19 1996-03-08 Canon Inc ディジタル画像情報処理装置
JP3629728B2 (ja) 1994-08-31 2005-03-16 ソニー株式会社 動画像信号符号化方法、動画像信号符号化装置及び動画像信号記録媒体
JP3623989B2 (ja) 1994-09-22 2005-02-23 キヤノン株式会社 画像変換方法及び装置
JP3293369B2 (ja) * 1994-10-12 2002-06-17 ケイディーディーアイ株式会社 画像情報の再符号化方法及び装置
JP3058028B2 (ja) 1994-10-31 2000-07-04 三菱電機株式会社 画像符号化データ再符号化装置
US5889561A (en) * 1994-11-04 1999-03-30 Rca Thomson Licensing Corporation Method and apparatus for scaling a compressed video bitstream
GB9501736D0 (en) 1995-01-30 1995-03-22 Snell & Wilcox Ltd Video signal processing
DE69607696T2 (de) * 1995-02-15 2000-10-19 Koninkl Philips Electronics Nv Vorrichtung und verfahren zur transkodierung von videosignalen
JPH08298649A (ja) 1995-04-27 1996-11-12 Oki Electric Ind Co Ltd 映像符号化・復号化システム、映像符号化装置及び映像復号化装置
US5774206A (en) * 1995-05-10 1998-06-30 Cagent Technologies, Inc. Process for controlling an MPEG decoder
GB2301970B (en) * 1995-06-06 2000-03-01 Sony Uk Ltd Motion compensated video processing
JP4666695B2 (ja) 1996-07-15 2011-04-06 アムストラ.インベストメンツ フォー ケイ.ジー.,リミテッド ライアビリティ カンパニー ビデオ信号圧縮処理方法
JP3956323B2 (ja) 1996-07-16 2007-08-08 Kddi株式会社 画像情報の再符号化方法及び装置
JPH1032830A (ja) 1996-07-16 1998-02-03 Kokusai Denshin Denwa Co Ltd <Kdd> 画像情報の再符号化方法及び装置
US6856650B1 (en) 1996-07-16 2005-02-15 Kokusai Denshin Denwa Co., Ltd. Method and apparatus for second or later generation coding of video signal
JPH1051766A (ja) * 1996-08-05 1998-02-20 Mitsubishi Electric Corp 画像符号化データ変換装置
JP3623056B2 (ja) * 1996-09-10 2005-02-23 ソニー株式会社 動画像圧縮装置
GB2318472B (en) 1996-10-09 2000-11-15 Sony Uk Ltd Processing encoded signals
GB2318246B (en) * 1996-10-09 2000-11-15 Sony Uk Ltd Processing digitally encoded signals
US6163573A (en) 1996-12-12 2000-12-19 Sony Corporation Equipment and method for compressing picture data
US5870146A (en) 1997-01-21 1999-02-09 Multilink, Incorporated Device and method for digital video transcoding
EP1025695A4 (en) 1997-05-09 2002-11-27 Neomedia Tech Inc METHOD FOR INTEGRATING LINKS IN A NETWORK RESOURCE IN A TRANSMISSION MEDIUM
JP3022405B2 (ja) * 1997-06-03 2000-03-21 日本電気株式会社 画像メモリ制御装置
US5907374A (en) * 1997-06-30 1999-05-25 Hewlett-Packard Company Method and apparatus for processing a compressed input bitstream representing an information signal
US6012091A (en) 1997-06-30 2000-01-04 At&T Corporation Video telecommunications server and method of providing video fast forward and reverse
US6100940A (en) 1998-01-21 2000-08-08 Sarnoff Corporation Apparatus and method for using side information to improve a coding system
GB2333656B (en) * 1998-01-22 2002-08-14 British Broadcasting Corp Compressed signals
US6574274B2 (en) 1998-02-27 2003-06-03 Sony Corporation Picture signal processing system, decoder, picture signal processing method, and decoding method
JP3724204B2 (ja) 1998-03-10 2005-12-07 ソニー株式会社 符号化装置および方法、並びに記録媒体
CA2265089C (en) 1998-03-10 2007-07-10 Sony Corporation Transcoding system using encoding history information
JP2002508148A (ja) 1998-04-30 2002-03-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データストリームのトランスコーディング
US6167084A (en) 1998-08-27 2000-12-26 Motorola, Inc. Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
JP2000209425A (ja) * 1998-11-09 2000-07-28 Canon Inc 画像処理装置及び方法並びに記憶媒体
KR100571687B1 (ko) * 1999-02-09 2006-04-18 소니 가부시끼 가이샤 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법
JP4295861B2 (ja) 1999-05-31 2009-07-15 株式会社東芝 トランスコーダ装置
KR100357093B1 (ko) 1999-06-02 2002-10-18 엘지전자 주식회사 동영상 압축 복원시스템에서의 오류 은폐장치 및 방법
GB9920929D0 (en) 1999-09-03 1999-11-10 Sony Uk Ltd Video signal processor
JP3694888B2 (ja) 1999-12-03 2005-09-14 ソニー株式会社 復号装置および方法、符号化装置および方法、情報処理装置および方法、並びに記録媒体
US6369722B1 (en) 2000-03-17 2002-04-09 Matra Nortel Communications Coding, decoding and transcoding methods
FR2809573B1 (fr) * 2000-05-26 2002-08-16 Thomson Broadcast Systems Procede de codage d'un flux d'images video
US20020016755A1 (en) * 2000-07-17 2002-02-07 Pearce Kenneth F. Method of establishing a commercial relationship between a service provider and a potential customer of the service, including a reasoning criterion, and method of face-to-face advertising in a public place
JP3632591B2 (ja) * 2000-11-13 2005-03-23 日本電気株式会社 画像処理装置、方法及びコンピュータ読み取り可能な記録媒体
CN1320809C (zh) * 2001-08-29 2007-06-06 佳能株式会社 图像处理装置与方法
JP4196726B2 (ja) * 2003-05-14 2008-12-17 ソニー株式会社 画像処理装置および画像処理方法、記録媒体、並びに、プログラム
JP2005304065A (ja) 2005-05-16 2005-10-27 Sony Corp 復号装置および復号方法、符号化装置および符号化方法、情報処理装置および情報処理方法、並びに、記録媒体

Also Published As

Publication number Publication date
CN1294820A (zh) 2001-05-09
KR20050109629A (ko) 2005-11-21
US20080043839A1 (en) 2008-02-21
CN1241416C (zh) 2006-02-08
JP3672185B2 (ja) 2005-07-13
US8681868B2 (en) 2014-03-25
KR20010042575A (ko) 2001-05-25
US7680187B2 (en) 2010-03-16
KR100571687B1 (ko) 2006-04-18
EP1069779A1 (en) 2001-01-17
US20070253488A1 (en) 2007-11-01
EP1069779A4 (en) 2007-10-10
WO2000048402A1 (en) 2000-08-17
US7236526B1 (en) 2007-06-26
KR100571307B1 (ko) 2006-04-17
EP1069779B1 (en) 2016-04-13

Similar Documents

Publication Publication Date Title
ES2569491T3 (es) Sistema de codificación y método asociado
JP3694888B2 (ja) 復号装置および方法、符号化装置および方法、情報処理装置および方法、並びに記録媒体
US20020080875A1 (en) Coded stream splicing device and method, and coded stream generating device and method
JP3724205B2 (ja) 復号装置および方法、並びに記録媒体
JP3874153B2 (ja) 再符号化装置および再符号化方法、符号化装置および符号化方法、復号装置および復号方法、並びに、記録媒体
JP2005304065A (ja) 復号装置および復号方法、符号化装置および符号化方法、情報処理装置および情報処理方法、並びに、記録媒体
JP3890838B2 (ja) 符号化ストリーム変換装置、および、符号化ストリーム変換方法、並びに、記録媒体
JP4139983B2 (ja) 符号化ストリーム変換装置、および、符号化ストリーム変換方法、並びに、ストリーム出力装置、および、ストリーム出力方法
JP4016290B2 (ja) ストリーム変換装置およびストリーム変換方法、符号化装置および符号化方法、並びに、記録媒体
JP2000059766A (ja) 符号化装置および方法、並びに提供媒体
JP2000059784A (ja) 符号化装置および方法、並びに提供媒体
JP4482811B2 (ja) 記録装置及び方法
JP4543321B2 (ja) 再生装置及び方法
JP4539637B2 (ja) ストリーム記録装置およびストリーム記録方法、ストリーム再生装置およびストリーム再生方法、ストリーム伝送装置およびストリーム伝送方法、並びに、プログラム格納媒体
JP3817951B2 (ja) ストリーム伝送装置および方法、並びに記録媒体
JP4016294B2 (ja) 符号化装置および符号化方法、ストリーム変換装置およびストリーム変換方法、並びに記録媒体
JP3817952B2 (ja) 再符号化装置および方法、符号化装置および方法、並びに記録媒体
JP4478630B2 (ja) 復号装置および復号方法、プログラム、並びに記録媒体
JP4016347B2 (ja) ストリーム変換装置およびストリーム変換方法、並びに、記録媒体
JP4016349B2 (ja) ストリーム変換装置およびストリーム変換方法、並びに、記録媒体
JP4016293B2 (ja) 符号化装置および符号化方法、並びに記録媒体
JP4016348B2 (ja) ストリーム変換装置およびストリーム変換方法、並びに、記録媒体
JP2007259492A (ja) 情報処理装置および方法
JP2000059770A (ja) データ伝送装置および方法、並びに提供媒体
JP2000059783A (ja) 画像データ処理装置および方法、並びに提供媒体