ES2599637T3 - Sistema de codificación y decodificación de longitud variable y procedimiento de codificación y decodificación de longitud variable - Google Patents

Sistema de codificación y decodificación de longitud variable y procedimiento de codificación y decodificación de longitud variable Download PDF

Info

Publication number
ES2599637T3
ES2599637T3 ES14163034.3T ES14163034T ES2599637T3 ES 2599637 T3 ES2599637 T3 ES 2599637T3 ES 14163034 T ES14163034 T ES 14163034T ES 2599637 T3 ES2599637 T3 ES 2599637T3
Authority
ES
Spain
Prior art keywords
data
decoding
coding
subdata
variable length
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
ES14163034.3T
Other languages
English (en)
Inventor
Shinya Kadono
Yoshinori Matsui
Satoshi Kondo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
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 Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Application granted granted Critical
Publication of ES2599637T3 publication Critical patent/ES2599637T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un sistema de codificación y decodificación de longitud variable que incluye un dispositivo de codificación de longitud variable que codifica una unidad de datos de datos de imagen constituida por una pluralidad de subdatos en referencia a una tabla de probabilidades, y un dispositivo de decodificación de longitud variable que decodifica la unidad de datos codificada de datos de imagen con referencia a la tabla de probabilidades, en el que dicho dispositivo de codificación de longitud variable incluye: un medio de ajuste de tablas que ajusta una tabla de probabilidades a valores iniciales en función de un valor inicial de un parámetro de cuantificación de la unidad de datos; un medio de codificación de información de inicialización que codifica información de inicialización relacionada con dicho valor inicial del parámetro de cuantificación de la unidad de datos; un primer medio de obtención de parámetros que obtiene, de la tabla de probabilidades, parámetros de codificación que se van a usar en la codificación de subdatos; un medio de codificación de subdatos que lleva a cabo una codificación aritmética de los subdatos haciendo referencia a los parámetros de codificación obtenidos; y un primer medio de actualización de tablas de probabilidades que actualiza la tabla de probabilidades en función de los subdatos codificados aritméticamente por el medio de codificación de subdatos, en el que dicho dispositivo de decodificación de longitud variable incluye: un medio de decodificación de información de inicialización que decodifica la información de inicialización codificada relacionada con el valor inicial del parámetro de cuantificación de la unidad de datos; un medio de inicialización de tablas de probabilidades que ajusta la tabla de probabilidades a valores iniciales en función de la información de inicialización decodificada relacionada con el valor inicial del parámetro de cuantificación de la unidad de datos; un segundo medio de obtención de parámetros que obtiene, de la tabla de probabilidades, parámetros de codificación que se van a usar en la decodificación de subdatos; un medio de decodificación de subdatos que lleva a cabo una decodificación aritmética de los subdatos codificados haciendo referencia a los parámetros de codificación obtenidos; y un segundo medio de actualización de tablas de probabilidades que actualiza la tabla de probabilidades en función de subdatos decodificados aritméticamente por el medio de decodificación de subdatos.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Sistema de codificacion y decodificacion de longitud variable y procedimiento de codificacion y decodificacion de longitud variable
Campo tecnico
La presente invencion se refiere a procedimientos de codificacion de longitud variable, a sus correspondientes procedimientos de decodificacion de longitud variable, a soportes de almacenamiento que almacenan programas para ejecutar dichos procedimientos en un ordenador, a dispositivos de codificacion de longitud variable y a sus correspondientes dispositivos de decodificacion de longitud variable. En particular, la presente invencion se refiere a procedimientos de codificacion adaptativa de longitud variable que optimizan los procedimientos de codificacion por medio de datos codificados, a procedimientos de decodificacion de longitud variable que corresponden a estos procedimientos, a soportes de almacenamiento que almacenan programas para ejecutar dichos procedimientos en un ordenador, a dispositivos de codificacion adaptativa de longitud variable que optimizan los procedimientos de codificacion por medio de datos codificados y a dispositivos de decodificacion de longitud variable que corresponden a estos dispositivos.
Tecnica anterior
En los ultimos anos, se han normalizado formatos tales como JPEG, para imagenes fijas, y MPEG, para imagenes en movimiento, como tecnicas para comprimir y descomprimir fotogramas gracias a un intento por crear normas internacionales para esquemas de codificacion de imagenes.
El esquema de codificacion del MPEG (Moving Picture Experts Group - Grupo de Expertos en Fotogramas en Movimiento) esta constituido, principalmente, por una unidad de prediccion intertrama de compensacion de movimiento, una unidad de DCT (transformacion por coseno directo) y una unidad de codificacion de longitud variable. La unidad de prediccion intertrama de compensacion de movimiento detecta vectores de movimiento a partir de datos de fotogramas de entrada y datos de fotogramas anteriores y crea datos de error residual a partir de los vectores de movimiento y datos de fotogramas anteriores. La unidad de DCT lleva a cabo transformaciones DCT en los datos de error residual. Una unidad de cuantificacion cuantifica coeficientes de DCT y la unidad de codificacion de longitud variable asigna palabras de codigo a los coeficientes de DCT cuantificados y vectores de movimiento.
Los datos de imagen codificados del esquema de codificacion del MPEG tienen una estructura jerarquica de seis capas: secuencia, GOP (Grupo de Fotogramas), fotograma, segmento, macrobloque y bloque. Un fotograma es la unidad de codificacion basica que corresponde a un unico fotograma y esta constituido por una pluralidad de segmentos. Un segmento es una unidad de recuperacion de sincronizacion, un area en forma de banda constituida por una o una pluralidad de macrobloques.
La codificacion de longitud variable se refiere a un tipo de codificacion entropica. Dado que existe variacion en la probabilidad de valores, tales como coeficientes post-transformacion DCT (coeficientes de DCT) y valores de vectores de movimiento, la codificacion de longitud variable reduce la cantidad media de datos asignando palabras de codigo corto a los valores que tienen una probabilidad alta y asignando palabras de codigo largo a los valores que tiene una probabilidad baja.
Los principales tipos de codificacion de longitud variable incluyen codificacion Huffman y codificacion aritmetica.
La codificacion Huffman es un procedimiento en el que palabras de codigo se determinan por medio de un arbol de codigos Huffman en el que cada sfmbolo es una hoja. Usa una tabla de correspondencia (tabla de codigos) que incluye palabras de codigo (cadenas de bits) para cada codigo.
Para mejorar el mdice de compresion, la codificacion Huffman usa procedimientos, tales como un procedimiento en el que se crea una tabla de codigos que corresponde a propiedades estadfsticas de la imagen en movimiento cambiante y un procedimiento en el que se preparan una pluralidad de tablas de codigos y las tablas de codigos se conmutan en respuesta a propiedades estadfsticas de los fotogramas. La teona de la informacion establece que una tabla de codigos en la que se asignan bits log2 (1/p) a los codigos de probabilidad p tiene el menor volumen medio de datos. Por eso, en el procedimiento de conmutacion de una pluralidad de tablas de codigos, la probabilidad se calcula a partir de datos codificados y se selecciona una tabla de codigos de manera que numeros de bits cercanos a bits log2 (1/p) se asignan a los codigos de la probabilidad p.
La codificacion aritmetica es una tecnica en la que la secuencia de sfmbolos se proyecta a intervalos [0, 1) en respuesta a la probabilidad y un espacio de probabilidad en una lmea de numeros se expresa en binario con un numero adecuado dentro de ese intervalo. En la codificacion aritmetica, la codificacion se lleva a cabo mientras se controlan constantemente las propiedades estadfsticas. Espedficamente, las tablas de probabilidades se reescriben en respuesta al contenido de los fotogramas y se determinan palabras de codigo mientas se hace referencia a las tablas de probabilidades. Mas espedficamente, en la codificacion aritmetica la probabilidad que se usa en operaciones aritmeticas se actualiza sucesivamente por medio de datos codificados, de manera que se asignan bits
5
10
15
20
25
30
35
40
45
50
log2 (1/p) a un codigo de la probabilidad p.
A diferencia de la codificacion Huffman, en la codificacion aritmetica, se pueden obtener cadenas de bits correspondientes a palabras de codigo solo con operaciones aritmeticas (suma, resta, multiplicacion y division) y, por lo tanto, se puede reducir la cantidad de memoria necesaria para almacenar la tabla de codigos en comparacion con la codificacion Huffman. Ademas, se puede responder a cambios de propiedades estadfsticas durante la codificacion reescribiendo la tabla de probabilidades. No obstante, las operaciones aritmeticas, en particular, las operaciones de multiplicacion y de division, necesitan gran capacidad aritmetica, por lo tanto, un inconveniente es que resulta diffcil efectuar operaciones aritmeticas en dispositivos con baja capacidad aritmetica.
En los procedimientos de codificacion adaptativa que se han descrito anteriormente, se puede mejorar la eficacia de compresion en comparacion con procedimientos de codificacion fija, dado que el procedimiento de codificacion se sigue optimizando dinamicamente con datos codificados.
No obstante, cuando el procedimiento de codificacion se optimiza dinamicamente con datos codificados surgen los siguientes problemas.
Se llevan a cabo procedimientos de codificacion dinamica basados en aprendizaje, por ejemplo, en datos de fotograma detras de la cabecera, es decir, en cada segmento, macrobloque o bloque. En este caso, la codificacion aritmetica usa una tabla de probabilidades fija para los valores iniciales correspondientes a cada subunidad para codificacion en cada fotograma y la codificacion Huffman usa una tabla de codigos fijos de longitud variable como tabla de codigos inicial en cada fotograma. . Dado que los valores iniciales fijos se usan de este modo, la eficacia de compresion de la codificacion no se puede considerar favorable hasta que se obtienen tablas de probabilidades y tablas de codigos optimas con el aprendizaje tras la inicializacion. En particular, cuando la cantidad total de datos es reducida, aumenta la proporcion de datos necesaria para el aprendizaje y el mdice de compresion no es tan alto.
Por otro lado, cuando una parte de los datos codificados que se usa en el aprendizaje se pierde en la lmea de transmision, no se puede llevar a cabo un aprendizaje apropiado en el dispositivo de decodificacion y la decodificacion resulta imposible. Y, en el caso de datos de imagen, se produce un deterioro de la calidad de los fotogramas debido a errores de transmision. Si bien, el reajuste frecuente de los resultados del aprendizaje protege contra los errores de transmision, dicha proteccion es propensa a error cuando el intervalo de reajuste es prolongado y, por lo tanto, es inevitable que el intervalo de reajuste sea, en cierta medida, corto.
A menos que se solucione el problema de transmision, que se ha descrito anteriormente, la eficacia de compresion de los procedimientos de codificacion adaptativa actuales no mejorara lo suficiente.
Descripcion de la invencion
Un objetivo de la presente invencion es mejorar la eficacia de compresion de los procedimientos de codificacion de longitud variable que se usan en areas tales como compresion de imagenes.
Otro objetivo de la presente invencion es decodificar correctamente datos codificados mediante un procedimiento de codificacion de longitud variable que tiene mayor eficacia de compresion.
La presente invencion proporciona un sistema de codificacion y decodificacion de longitud variable, como se define en la reivindicacion 1, y un procedimiento de codificacion y decodificacion de longitud variable, como se define en la reivindicacion 3.
Breve descripcion de los dibujos
La Fig. 1 es un diagrama de bloques que muestra la configuracion global de un dispositivo de codificacion de longitud variable segun una primera forma de realizacion de la presente invencion;
la Fig. 2 es un diagrama de bloques que muestra la configuracion global de un dispositivo de codificacion de imagenes estandar;
la Fig. 3 es un diagrama de flujo que muestra un esquema del funcionamiento de una unidad de codificacion de datos;
la Fig. 4 es un diagrama de flujo que muestra un esquema del funcionamiento de una version modificada de la unidad de codificacion de datos;
la Fig. 5 muestra un ejemplo de la estructura de un flujo de datos de imagen; la Fig. 6 muestra otro ejemplo de la estructura de un flujo de datos de imagen;
la Fig. 7 muestra estructuras de datos de flujo de bits generadas por medio de un dispositivo de codificacion de longitud variable;
5
10
15
20
25
30
35
40
45
la Fig. 8 muestra estructuras de datos de flujo de bits generadas por medio de un dispositivo de codificacion de longitud variable;
la Fig. 9 es un diagrama de bloques que muestra la configuracion global de un dispositivo de decodificacion de longitud variable segun la primera forma de realizacion de la presente invencion;
la Fig. 10 es un diagrama de bloques que muestra la configuracion global de un dispositivo de decodificacion de imagenes estandar;
la Fig. 11 es un diagrama de flujo que muestra un esquema del funcionamiento de una unidad de decodificacion de datos;
la Fig. 12 es un diagrama de bloques que muestra la configuracion global de un dispositivo de codificacion de longitud variable segun una segunda forma de realizacion de la presente invencion;
la Fig. 13 muestra las estructuras de una pluralidad de tablas de codigos de longitud variable;
la Fig. 14 es un diagrama de flujo que muestra un esquema del funcionamiento de una unidad de codificacion de datos;
la Fig. 15 muestra estructuras de datos de flujo de longitud variable;
la Fig. 16 muestra estructuras de datos de flujo de longitud variable;
la Fig. 17 es un diagrama de bloques que muestra la configuracion global de un dispositivo de decodificacion de longitud variable segun la segunda forma de realizacion de la presente invencion;
la Fig. 18 es un diagrama de flujo que muestra un esquema del funcionamiento de una unidad de decodificacion de datos;
la Fig. 19 ilustra una situacion en la que la presente invencion se ejecuta en un sistema informatico usando un disco flexible en el que estan almacenados el procedimiento de codificacion de longitud variable o el procedimiento de decodificacion de longitud variable segun la primera o la segunda forma de realizacion;
la Fig. 20 es un diagrama de bloques que muestra toda la configuracion de un sistema de suministro de contenidos;
la Fig. 21 muestra un ejemplo de un telefono movil que usa un procedimiento de codificacion de imagenes en movimiento y un procedimiento de decodificacion de imagenes en movimiento;
la Fig. 22 es un diagrama de bloques de un telefono movil; y
la Fig. 23 muestra un ejemplo de un sistema para emision digital.
Mejor modo de llevar a cabo la invencion
1. Primera forma de realizacion
(1) Configuracion del dispositivo de codificacion de longitud variable
[1] Dispositivo de codificacion de longitud variable segun la presente invencion
La Fig. 1 es un diagrama de bloques de la configuracion global de un dispositivo de codificacion de longitud variable 1 segun una forma de realizacion de la presente invencion. El dispositivo de codificacion de longitud variable 1 es un dispositivo para llevar a cabo una codificacion de longitud variable en datos introducidos y crear flujos de bits. En particular, el dispositivo de codificacion de longitud variable 1 se caracteriza porque emplea codificacion aritmetica como procedimiento de codificacion principal. Cabe senalar que la codificacion aritmetica se refiere a un procedimiento de codificacion que aumenta la eficacia de codificacion actualizando dinamicamente una tabla de probabilidades en respuesta a la probabilidad de sfmbolos que se producen realmente.
Para el dispositivo de codificacion de longitud variable 1 son posibles varios tipos de datos de entrada, sin embargo, esta forma de realizacion se describira como uno en el que se introducen datos de imagen. Es decir, el dispositivo de codificacion de longitud variable 1 tiene una funcion que lleva a cabo una codificacion entropica en senales de imagen que se han convertido en datos. Con el esquema del MPEG, en particular, los datos de imagen que se introducen en el dispositivo de codificacion de longitud variable 1 son datos de imagen, tales como coeficientes de DCT cuantificados y vectores de movimiento.
El dispositivo de codificacion de longitud variable 1 incluye una unidad de codificacion de datos 2 y un codificador de cabeceras 3.
bits generadas por medio de un dispositivo de codificacion de bits generadas por medio de un dispositivo de codificacion de
5
10
15
20
25
30
35
40
45
50
55
La unidad de codificacion de datos 2 es un dispositivo para llevar a cabo una codificacion aritmetica en datos distintos de cabeceras para cada unidad de datos y esta provista de un codificador aritmetico 7, una unidad de actualizacion de tablas de probabilidades 8 y una unidad de inicializacion 9. Cabe senalar que en el caso de datos de imagen, la unidad de datos a la que se refiere este documento se define como un fotograma o un segmento. Ademas, cada unidad de datos esta constituida por una pluralidad de conjuntos de subdatos. Cuando la unidad de datos es un fotograma, los subdatos son segmentos, macrobloques o bloques y cuando la unidad de datos es un segmento, los subdatos son macrobloques o bloques.
El codificador aritmetico 7 es un dispositivo para enviar los datos generados a la unidad de actualizacion de tablas de probabilidades 8 una vez introducidos los datos y para codificar los datos en funcion de las tablas de probabilidades, es decir, las palabras de codigo, que se envfan desde la unidad de actualizacion de tablas de probabilidades 8.
La unidad de actualizacion de tablas de probabilidades 8 tiene una funcion que actualiza las tablas de probabilidades y es un dispositivo para enviar las tablas de probabilidades, es decir, las palabras de codigo, al codificador aritmetico 7 mientras se actualizan las tablas de probabilidades en respuesta a la probabilidad de los datos generados que se envfan desde el codificador aritmetico 7.
La unidad de inicializacion 9 es un dispositivo para enviar instrucciones de inicializacion de tablas de probabilidades a la unidad de actualizacion de tablas de probabilidades 8.
El codificador de cabeceras 3 es un dispositivo para codificar datos de cabecera con un procedimiento de codificacion fija. Un procedimiento de codificacion fija se refiere a un procedimiento en el que la palabra de codigo correspondiente a cada codigo no cambia durante la codificacion e incluye procedimientos de codificacion de longitud fija y procedimientos de codificacion fija de longitud variable. Dado que se usa un procedimiento de codificacion fija, los datos de cabecera se pueden codificar facilmente.
Por otro lado, un procedimiento de codificacion en el que las palabras de codigo que corresponden a cada cambio de codigo se denomina un procedimiento de codificacion adaptativa. Ademas, dentro de los procedimientos de codificacion adaptativa, existen procedimientos de codificacion estatica, en los que simplemente se conmutan las tablas que indican la relacion entre codigos y las palabras de codigos que corresponden a los codigos, y de codificacion dinamica, en los que se actualizan sucesivamente las palabras de codigo propiamente dichas. Es decir, esto significa que un procedimiento de codificacion estatica no es un procedimiento de codificacion dinamica (un procedimiento de codificacion, tal como codificacion aritmetica, en el que la relacion correspondiente entre los codigos y las palabras de codigo que corresponden a dichos codigos vana dinamicamente). Por consiguiente, el mdice de compresion se puede mejorar mas con un procedimiento de codificacion dinamica que con un procedimiento de codificacion estatica.
El dispositivo de codificacion de longitud variable 1 esta provisto ademas de un codificador de tablas de probabilidades 6. El codificador de tablas de probabilidades 6 es un dispositivo para codificar las tablas de probabilidades que se envfan desde la unidad de actualizacion de tablas de probabilidades 8 con un procedimiento de codificacion fija. Dado que usa un procedimiento de codificacion fija, las tablas de probabilidades se pueden codificar facilmente.
Un multiplexor 4 es un dispositivo para multiplexar los datos de cabecera codificados que se envfan desde el codificador de cabeceras 3, los datos codificaos distintos de cabeceras que se envfan desde el codificador aritmetico 7 y los datos de tablas de probabilidades codificados que se envfan desde el codificador de tablas de probabilidades 6, asf como para generar cadenas de codigos (flujos de bits) y enviar las mismas a una lmea de transmision.
[2] Dispositivo de codificacion de imagenes estandar
En este caso, se usara el diagrama de bloques de la Fig. 2 para ilustrar una configuracion de un dispositivo de codificacion de imagenes estandar 100. El dispositivo de codificacion de imagenes estandar 100 incluye una unidad de estimacion/compensacion de movimiento (ME/MC) 102, un restador 103, una unidad de codificacion de conversion 104, una unidad de decodificacion de conversion 105, un sumador 106 y una unidad de codificacion entropica 107. Cabe senalar que la unidad de codificacion de datos 2, que se ha mencionado anteriormente, corresponde a la unidad de codificacion entropica 107.
La unidad de estimacion/compensacion de movimiento 102 recibe datos de fotogramas de entrada Picln y genera datos de bloque previstos para bloques que se van a codificar en el fotograma que se va a codificar. La unidad de estimacion/compensacion de movimiento 102 incluye una unidad de estimacion de movimiento (ME) 111, una unidad de compensacion de movimiento (MC) 112 y una memoria de fotogramas 113.
La unidad de estimacion de movimiento 111 recibe los fotogramas de entrada PicIn y calcula vectores de movimiento MV, que son movimientos de los fotogramas de entrada Picln correspondientes a imagenes reconstruidas en la memoria de fotogramas 113. La unidad de estimacion de movimiento 111 envfa los vectores de movimiento MV a la unidad de compensacion de movimiento 112, a la memoria de fotogramas 113 y a la unidad de codificacion entropica 107. En funcion de los vectores de movimiento MV de la unidad de estimacion de movimiento
5
10
15
20
25
30
35
40
45
50
55
111, la unidad de compensacion de movimiento 112 genera (compensa por movimiento) datos de fotograma como fotogramas de referencia que corresponden a los movimientos de los fotogramas reconstruidos almacenados en la memoria de fotogramas 113 y los envfa al restador 103 y al sumador 106. La memoria de fotogramas 113 almacena los fotogramas reconstruidos y los fotogramas reconstruidos se leen con la unidad de estimacion de movimiento 111 y con la unidad de compensacion de movimiento 112. Cabe senalar que en la codificacion intrafotogramas, el valor de pixel del fotograma de referencia de movimiento compensado se considera 0, y el restador 103 y el sumador 106 envfan los datos de entrada tal cual, sin restar ni sumar.
El restador 103 determina valores diferenciales entre datos objetivo del fotograma de entrada Picln y un fotograma de referencia de la unidad de compensacion de movimiento 112 y envfa datos diferenciales correspondientes a esos valores diferenciales a la unidad de codificacion de conversion 104.
La unidad de codificacion de conversion 104 ejecuta un proceso de compresion de datos en los datos diferenciales del restador 103 y envfa datos comprimidos. La unidad de codificacion de conversion 104 incluye una unidad de transformacion ortogonal 114 y una unidad de cuantificacion 115. La unidad de transformacion ortogonal 114 realiza un proceso de transformacion por coseno directo (proceso de DCT) en los datos diferenciales del restador 103 y envfa esos datos a la unidad de cuantificacion 115. El proceso de DCT es un tipo de proceso de transformacion ortogonal en el que los datos del dominio espacial se convierten en datos del dominio frecuencial. La unidad de cuantificacion 115 cuantifica los datos de DCT de la unidad de transformacion ortogonal 114 con una etapa de cuantificacion y envfa coeficientes de cuantificacion a la unidad de decodificacion de conversion 105 y a la unidad de codificacion entropica 107.
La unidad de decodificacion de conversion 105 lleva a cabo un proceso de expansion de datos en la salida de la unidad de codificacion de conversion 104 y envfa datos expandidos. La unidad de decodificacion de conversion 105 incluye una unidad de cuantificacion inversa 116 y una unidad de transformacion ortogonal inversa 117. La unidad de cuantificacion inversa 116 cuantifica inversamente la salida de la unidad de codificacion de conversion 104 con la etapa de cuantificacion que se ha descrito anteriormente y la envfa a la unidad de transformacion ortogonal inversa 117. La unidad de transformacion ortogonal inversa 117 realiza un proceso de transformacion inversa por coseno directo (proceso de IDCT) en la salida de la unidad de cuantificacion inversa 116 y envfa datos expandidos como senales residuales predictivas al sumador 106. El proceso de IDCT es un procedimiento en el que los datos del dominio frecuencial se transforman en datos del dominio espacial.
Cuando los macrobloques se han sometido a codificacion de prediccion de compensacion de movimiento intertramas, el sumador 106 envfa los datos de fotograma obtenidos anadiendo las senales residuales predictivas de la unidad de decodificacion de conversion 105 y los fotogramas de referencia de la unidad de compensacion de movimiento 112 a la memoria de fotogramas 113 como fotogramas reconstruidos.
La unidad de codificacion entropica 107 realiza un codificacion entropica en los datos cuantificados post-DCT de la unidad de codificacion de DCT 104. La codificacion entropica se refiere a una codificacion en la que una cadena de bits de “0”s y “1”s se convierte en una cadena de bits mas corta usando propiedades estadfsticas de la cadena de bits.
(2) Funcionamiento del dispositivo de codificacion de longitud variable
[1] Funcionamiento de la unidad de codificacion de datos y del codificador de tablas de probabilidades
La Fig. 3 es un diagrama de flujo que muestra un esquema del funcionamiento de la unidad de codificacion de datos 2 y del codificador de tablas de probabilidades 6.
En la etapa S1, la unidad de inicializacion 9 envfa una instruccion de inicializacion a la unidad de actualizacion de tablas de probabilidades 8 y la unidad de actualizacion de tablas de probabilidades 8 ajusta una tabla de probabilidades correspondiente a cada unidad de datos a valores iniciales. En dicha operacion de inicializacion, la unidad de inicializacion 9 y la unidad de actualizacion de tablas de probabilidades 8 llevan a cabo una inicializacion de tablas de probabilidades en funcion de datos de inicializacion de la cabecera. Datos que son comunes a todas las unidades de datos se pueden usar como datos de inicializacion en las tablas de probabilidades. Cuando la unidad de datos es un fotograma, ejemplos de datos comunes eficaces para inicializacion incluyen tipos de codificacion de imagenes (que distinguen entre fotogramas intracodificados, fotogramas codificados predictivos y fotogramas codificados bipredictivos) y valores iniciales de parametros de cuantificacion de fotogramas. Cabe senalar que datos comunes sin mucha relacion con la inicializacion incluyen parametros, tales como el orden de codificacion de imagenes, el orden de visualizacion de fotogramas, vectores de movimiento y tamano de imagen. Cuando la unidad de datos es un segmento, ejemplos incluyen tipos de codificacion de segmentos (que distinguen entre segmentos intracodificados, segmentos codificados predictivos y segmentos bipredictivos) y valores iniciales de parametros de cuantificacion de segmentos.
En la etapa S2, el codificador aritmetico 7 y la unidad de actualizacion de tablas de probabilidades 8 cooperan para llevar a cabo una codificacion aritmetica en los subdatos. Mas espedficamente, en funcion de la tabla de probabilidades enviada desde la unidad de actualizacion de tablas de probabilidades 8, el codificador aritmetico 7 obtiene probabilidades que se usan en la codificacion de subdatos de la tabla de probabilidades y hace referencia a
esas probabilidades para codificar los subdatos. Espedficamente, la unidad de datos son fotogramas o segmentos y macrobloques o bloques que son los subdatos codificados.
En la etapa S3, la tabla de probabilidades de datos generados se actualiza por medio de la unidad de actualizacion de tablas de probabilidades 8 de acuerdo con los datos generados. En esta forma de realizacion, la tabla de 5 probabilidades actualizada se usa cuando se lleva a cabo una codificacion aritmetica en los subdatos siguientes.
En la etapa S4, se determina si esta o no terminada la codificacion de todos los subdatos. Si se determina que la codificacion de todos los subdatos no esta terminada, el procedimiento vuelve a la etapa S2 y se repite la operacion que se ha descrito anteriormente.
En la etapa S5, se determina si codificar o no la tabla de probabilidades y si se va a codificar, el procedimiento pasa 10 a la etapa S6 y si no se va a codificar, se salta la etapa S6. El codificador aritmetico 7 genera un indicador de valores iniciales que sirve para identificar el resultado de la determinacion y lo envfa, junto con los datos codificados, al multiplexor 4. Cabe senalar que la tabla de probabilidades que se usa como valores iniciales no se codifica en casos en los que, por ejemplo, la cantidad de datos hasta que se inicializa la tabla de probabilidades siguiente es lo suficientemente grande (es decir, la proporcion de la cantidad de datos necesaria para el aprendizaje respecto a la 15 cantidad total de datos que se ocupa es lo suficientemente reducida y, por lo tanto, la eficacia del aprendizaje es buena) o cuando la tabla de probabilidades que se usa como valores iniciales es sustancial o totalmente coherente con la tabla de probabilidades optima obtenida mediante aprendizaje.
En la etapa S6, la tabla de probabilidades de la unidad de actualizacion de tablas de probabilidades 8 se codifica por medio del codificador de tablas de probabilidades 6.
20 La eficacia de compresion mejora con el procedimiento de codificacion que se ha descrito anteriormente porque, excepto para la primera codificacion de subdatos, la tabla de probabilidades se actualiza en funcion de los valores de subdatos codificados y las probabilidades se obtienen de la tabla de probabilidades. En particular, dado que la tabla de probabilidades que se va a usar para codificar subdatos es una tabla de probabilidades actualizada mediante codificacion aritmetica de los subdatos anteriores, la codificacion se puede lograr en tiempo real y 25 aumentara la velocidad de codificacion. Ademas, se puede obtener una eficacia de compresion favorable debido a la correlacion espacial y temporal de los fotogramas.
Cabe senalar que la codificacion aritmetica se puede llevar a cabo usando una tabla de probabilidades obtenida llevando a cabo una codificacion aritmetica de los valores iniciales de la unidad de datos. En este caso, hay una eficacia de compresion alta cuando existe una gran diferencia entre el contenido de la unidad de datos y la unidad 30 de datos anterior.
El diagrama de flujo que se muestra en la Fig. 4 es una modificacion del diagrama de flujo que se muestra en la Fig. 3 y una situacion en la que solo se codifica una parte de la tabla de probabilidades cuando la tabla de codigos de la unidad de actualizacion de tablas de probabilidades 8 se codifica por medio del codificador de tablas de probabilidades 6 en la etapa S6. En esta situacion, se puede reducir la cantidad de codigos y, ademas, empleando 35 un procedimiento en el que solo se codifican las partes de datos codificados con probabilidad alta de la tabla de probabilidades obtenida, a la hora de decodificar se puede lograr una decodificacion lo suficientemente adecuada. Partes de datos con probabilidad baja se inicializan con valores iniciales. En la etapa S7, partes que no se codificaron de la tabla de probabilidades se inicializan con valores iniciales. Es decir, cuando solo se codifican las partes importantes de la tabla de probabilidades, inicializando con valores iniciales las partes que no se codifican, 40 todos los indices de la tabla de probabilidades se pueden ajustar a valores espedficos cuando se especifica la tabla de probabilidades para codificacion sin contar con valores de la tabla de probabilidades hasta ese momento y se pueden equiparar las tablas de probabilidades del dispositivo de codificacion y del dispositivo de decodificacion.
[2] Funcionamiento de la unidad de codificacion de cabeceras
El codificador de cabeceras 3 codifica los datos de cabecera introducidos y envfa los datos de cabecera codificados 45 al multiplexor 4.
[3] Funcionamiento del multiplexor
El multiplexor 4 genera un flujo de bits a partir de los datos que se envfan desde el codificador aritmetico 7, el codificador de cabeceras 3 y el codificador de tablas de probabilidades 6 y lo envfa a una lmea de transmision.
La Fig. 5 muestra un ejemplo de la estructura de un flujo de datos de fotograma. Como se muestra en la Fig. 5, el 50 flujo esta constituido por areas de datos comunes, tales como una cabecera, y areas de GOP (Grupo de Fotogramas). Las areas de GOP estan constituidas por areas de datos comunes, tales como una cabecera y similar, y una pluralidad de areas de fotogramas. Las areas de fotogramas estan constituidas por areas de datos comunes, tales como una cabecera y similar, y una pluralidad de areas de datos de segmentos. Las areas de datos de segmentos estan constituidas por areas de datos comunes, tales como una cabecera y similar, y una pluralidad de 55 areas de datos de macrobloques.
5
10
15
20
25
30
35
40
45
50
55
Ademas, el flujo no tiene que ser un flujo de bits continuo. Cuando se transmite en paquetes (que son unidades de datos divididas con precision), las partes de cabecera y las partes de datos se pueden separar y transmitir por separado. En este caso, las partes de cabecera y las partes de datos no son un unico flujo de bits como el que se muestra en la Fig. 5. No obstante, en el caso de paquetes, aunque la secuencia de transmision correspondiente a la parte de cabecera y a la parte de datos no es continua, las partes de datos correspondientes y sus correspondientes partes de cabecera se transmiten simplemente en paquetes separados y aunque no es un unico flujo de bits, el concepto es el mismo que el del flujo de bits que se ilustra en la Fig. 5.
La Fig. 6 muestra otro ejemplo de la estructura de un flujo de datos de fotograma. La estructura de este flujo es basicamente la misma estructura que la estructura del flujo que se muestra en la Fig. 5 y, por lo tanto, a continuacion solo se describiran los puntos de diferencia. En la estructura de este flujo, los GOPs y los fotogramas no tienen cabeceras. Solo los segmentos tienen cabeceras. Los GOPs y los fotogramas tienen varios parametros como datos comunes en sus partes principales. Los parametros corresponden a una cabecera, pero la diferencia es que los parametros tambien son efectivos para fotogramas posteriores siempre que los parametros no se actualicen. Por ejemplo, esto significa que los parametros correspondientes a una cabecera de fotograma son la cabecera de fotograma de todos los fotogramas hasta que se transmiten parametros correspondientes a la cabecera de fotograma siguiente.
La Fig. 7 muestra la estructura de datos de un flujo de bits que se envfa desde el multiplexor 4 cuando la unidad de datos que se ha descrito anteriormente son los datos de fotograma de un fotograma. Por lo general, un fotograma esta constituido por una cabecera y una pluralidad de segmentos como datos codificados. La cabecera indica el principio de datos codificados correspondientes a un fotograma y esta constituida, principalmente, por los datos comunes correspondientes a cada segmento (por ejemplo, el tipo de codificacion de imagenes [que distingue entre fotogramas intracodificados y fotogramas codificados predictivos] y parametros, tales como numeros, que indican el orden de codificacion de fotogramas o el orden de visualizacion).
En la cabecera se coloca un indicador de valores iniciales. El indicador de valores iniciales es un indicador para identificar si se codifica o no la tabla de probabilidades que se usa para los valores iniciales. Si se codifica la tabla de probabilidades, el indicador es “1”, si no se codifica, el indicador es “0”.
Ademas, como se muestra en la Fig. 7(a), los datos de tablas de probabilidades codificados se colocan dentro de la cabecera como valores iniciales de tablas de probabilidades. Cuando no se codifica la tabla de probabilidades, los datos codificados de tablas de probabilidades no se envfan del codificador de tablas de probabilidades 6 al multiplexor 4, lo que tiene como resultado, como se muestra en la Fig. 7(b), que los datos codificados de tablas de probabilidades no se colocan en el flujo de bits.
Como se ha descrito anteriormente, la cabecera incluye partes de datos comunes (que originalmente estan en la parte de cabecera) que se codifican por medio del codificador de cabeceras 3, un indicador de valores iniciales generado por medio del codificador aritmetico 7 y datos de tablas de probabilidades codificados, codificados por medio del codificador de tablas de probabilidades 6. Mas en particular, las partes de datos comunes se dividen en un lateral de partes principales y un lateral de datos de fotograma e insertados entre las mismas estan el indicador de valores iniciales y los datos de tablas de probabilidades codificados, en ese orden.
La Fig. 8 muestra la estructura de datos de un flujo de bits que se envfa desde el multiplexor 4 cuando la unidad de datos es un segmento de datos de imagen. Por lo general, un segmento esta constituido por una cabecera y una pluralidad de bloques (o macrobloques) como subdatos codificados. La cabecera indica el principio de los datos codificados de un segmento y esta constituida, principalmente, por los datos comunes correspondientes a cada segmento (parametros, tales como un codigo de inicio y una escala de cuantificacion). Ademas, en la cabecera se coloca un indicador de valores iniciales. El indicador de valores iniciales es un indicador para identificar si se codifica o no la tabla de probabilidades que se usa como valores iniciales. Si se codifica la tabla de probabilidades, el indicador es “1”, si no se codifica, el indicador es “0”.
Ademas, como se muestra en la Fig. 8(a), los datos de tablas de probabilidades codificados se colocan dentro de la cabecera como valores iniciales de tablas de probabilidades. Cuando no se codifica la tabla de probabilidades, los datos de tablas de probabilidades codificados no se envfan del codificador de tablas de probabilidades 6 al multiplexor 4, lo que tiene como resultado, como se muestra en la Fig. 8(b), que los datos de tablas de probabilidades codificados no se colocan en el flujo de bits.
Como se ha descrito anteriormente, la cabecera incluye partes de datos comunes (que originalmente estan en la parte de cabecera) que se codifican por medio del codificador de cabeceras 3, un indicador de valores iniciales generado por medio del codificador aritmetico 7 y datos de tablas de probabilidades codificados, codificados por medio del codificador de tablas de probabilidades 6. Mas en particular, las partes de datos comunes se dividen en un lateral de partes principales y un lateral de datos de fotograma e insertados entre las mismas estan el indicador de valores iniciales y los datos codificados de tablas de probabilidad, en ese orden.
Cabe senalar que en esta forma de realizacion la tabla de probabilidades propiamente dicha se codifico e inserto en la cabecera como datos relacionados con las tablas de probabilidades, si bien, en lugar de eso, se puede codificar e
5
10
15
20
25
30
35
40
45
50
insertar en la cabecera informacion que indique la tabla de probabilidades obtenida (por ejemplo, una formula, un indicador que indique la tabla de probabilidades o informacion que indique una combinacion de estos). En este caso, se puede reducir la cantidad de codificacion porque no se codifica la tabla de probabilidades propiamente dicha.
Como ejemplo adicional de informacion que indica la tabla de probabilidades obtenida, se puede usar una parte de datos comunes de la cabecera. En este caso, se puede reducir aun mas la cantidad de codificacion porque esos datos tambien hacen las veces de una parte de datos comunes de la unidad de datos. Cuando la unidad de datos es un fotograma, ejemplos de datos comunes incluyen tipos de codificacion de imagenes (que distinguen entre fotogramas intracodificados, fotogramas codificados predictivos y fotogramas bipredictivos) y valores iniciales de parametros de cuantificacion de fotogramas. Cabe senalar que datos comunes sin mucha relacion con la inicializacion incluyen parametros, tales como el orden de codificacion de imagenes, el orden de visualizacion de fotogramas, vectores de movimiento y tamano de imagen. Cuando la unidad de datos es un segmento, ejemplos incluyen tipos de codificacion de segmentos (que distinguen entre segmentos intracodificados, segmentos codificados predictivos y segmentos bipredictivos) y valores iniciales de parametros de cuantificacion de segmentos. Ademas, se puede omitir el indicador de valores iniciales asegurandose de que siempre se actualicen los valores iniciales, es decir, asegurandose de que siempre se envfen valores iniciales.
(3) Configuracion del dispositivo de decodificacion de longitud variable
[1] Dispositivo de decodificacion de longitud variable segun la presente invencion
La Fig. 9 es un diagrama de bloques que muestra la configuracion global de un dispositivo de decodificacion de longitud variable 11 segun una forma de realizacion de la presente invencion. El dispositivo de decodificacion de longitud variable 11 es, por ejemplo, un dispositivo para decodificar datos que se han codificado por medio del dispositivo de codificacion de longitud variable 1. Cuando el objeto son datos de imagen, el dispositivo de decodificacion de longitud variable 11 tiene las funciones de llevar a cabo una decodificacion entropica de datos y obtener datos de imagen transformados.
El dispositivo de decodificacion de longitud variable 11 esta, principalmente, provisto de una unidad de decodificacion de datos 12 y una unidad de decodificacion de cabeceras 13.
La unidad de decodificacion de datos 12 es un dispositivo para llevar a cabo una decodificacion aritmetica en datos distintos de la cabecera de cada unidad de datos y esta provista de un decodificador aritmetico 17, una unidad de actualizacion de tablas de probabilidades 18 y una unidad de inicializacion 19. Cabe senalar que la unidad de datos a la que se refiere este documento, en el caso de datos de imagen, significa un fotograma o un segmento.
El decodificador aritmetico 17 es un dispositivo para enviar datos generados a la unidad de actualizacion de tablas de probabilidades 18 una vez introducidos los datos codificados y para decodificar datos codificados en funcion de los datos de tablas de probabilidades, es decir, palabras de codigo, que se envfan desde la unidad de actualizacion de tablas de probabilidades 18.
La unidad de actualizacion de tablas de probabilidades 18 tiene la funcion de actualizar las tablas de probabilidades y es un dispositivo para enviar las tablas de probabilidades, es decir, las palabras de codigo, al decodificador aritmetico 17 mientras se actualiza la tabla de probabilidades en respuesta a la probabilidad de los datos generados que se envfan desde el decodificador aritmetico 17.
La unidad de inicializacion 19 es un dispositivo para enviar una instruccion de inicializacion de la tabla de probabilidades a la unidad de actualizacion de tablas de probabilidades 18.
El decodificador de cabeceras 13 es un dispositivo para decodificar datos de cabecera codificados con un procedimiento de decodificacion fija.
El dispositivo de decodificacion de longitud variable 11 esta provisto, ademas, de un decodificador de tablas de probabilidades 16. El decodificador de tablas de probabilidades 16 es un dispositivo para decodificar datos de tablas de probabilidades codificados con un procedimiento de decodificacion fija.
Un demultiplexor 14 es un dispositivo para demultiplexar y enviar un flujo de bits como datos de cabecera codificados, datos codificados distintos de cabeceras y datos de tablas de probabilidades codificados.
[2] Dispositivo de decodificacion de imagenes estandar
En este caso, se usara el diagrama de bloques de la Fig. 10 para ilustrar una configuracion interna de un dispositivo de decodificacion de imagenes estandar 200. El dispositivo de decodificacion de imagenes 200 incluye una unida de generacion de datos de prediccion 202, una unidad de decodificacion de conversion 204, un sumador 206 y una unidad de decodificacion entropica 207. Cabe senalar que la unidad de decodificacion de datos 12 que se ha mencionado anteriormente corresponde a la unidad de decodificacion entropica 207.
La unidad de decodificacion entropica 207 realiza una decodificacion entropica de los datos de flujo que se introducen, en funcion de la tabla de probabilidades, y envfa esos datos a la unidad de decodificacion de conversion
5
10
15
20
25
30
35
40
45
50
204 y a la unidad de generacion de datos de prediccion 202. La decodificacion entropica es un procedimiento en la direccion inversa de la codificacion entropica y, en esta forma de realizacion, se refiere a decodificacion aritmetica.
La unidad de generacion de datos de prediccion 202 incluye una unidad de compensacion de movimiento 212 y una memoria de fotogramas 213. Los fotogramas de salida del sumador 206 se env^an como fotogramas de referencia y se almacenan en la memoria de fotogramas 213. En funcion de los vectores de movimiento MV decodificados por medio de la unidad de decodificacion entropica 207, la unidad de compensacion de movimiento 212 genera datos de fotograma como datos de prediccion (compensacion de movimiento) correspondientes a los vectores de movimiento MV de los fotogramas de referencia almacenados en la memoria de fotogramas 213 y los envfa al sumador 206. Cabe senalar que cuando se codifican fotogramas intracodificados, los valores de pixel del fotograma de referencia de movimiento compensado se consideran 0 y el sumador 206 envfa los datos de entrada tal cual, sin llevar a cabo sumas. Ademas, los vectores de movimiento decodificados se almacenan en la memoria de fotogramas 213.
La unidad de decodificacion de conversion 204 realiza un proceso de expansion de datos en la salida de la unidad de decodificacion entropica 207 y envfa datos expandidos. La unidad de decodificacion de conversion 204 incluye una unidad de cuantificacion inversa 214 y una unidad de transformacion ortogonal inversa 215. La unidad de cuantificacion inversa 214 cuantifica inversamente la salida de la unidad de decodificacion entropica 207 y la envfa a la unidad de transformacion ortogonal inversa 215. La unidad de transformacion ortogonal inversa 215 realiza un proceso de transformacion inversa por coseno directo (proceso de IDCT) en la salida de la unidad de cuantificacion inversa 214 y envfa los datos expandidos al sumador 206. El proceso de IDCT es un procedimiento en el que los datos del dominio frecuencial se transforman en datos del dominio espacial.
El sumador 206 envfa, como fotogramas de salida, los datos de fotograma obtenidos anadiendo los datos de fotograma de la unidad de codificacion de conversion 204 y los datos de fotograma con el fotograma de estimacion de la unidad de compensacion de movimiento 212 sumado y, ademas, envfa el resultado a la memoria de fotogramas 213.
(4) Funcionamiento del dispositivo de decodificacion de longitud variable
[1] Funcionamiento del demultiplexor
El demultiplexor 14 demultiplexa un flujo de bits, envfa datos de cabecera codificados al decodificador de cabeceras 13, envfa datos codificados distintos de cabeceras al decodificador aritmetico 17 y envfa datos de tablas de probabilidades codificados al decodificador de tablas de probabilidades 16 cuando existen datos de tablas de probabilidades codificados. Cabe senalar que el decodificador de cabeceras 13 envfa el indicador de valores iniciales decodificados de la cabecera a la unidad de inicializacion 19.
[2] Funcionamiento del decodificador de cabeceras
El decodificador de cabeceras 13 decodifica los datos de cabecera codificados que se envfan desde el demultiplexor 14 y envfa datos de cabecera.
[3] Funcionamiento de la unidad de decodificacion de datos y del codificador de tablas de probabilidades
La Fig. 11 es un diagrama de flujo que muestra un esquema del funcionamiento de la unidad de decodificacion de datos 12 y del decodificador de tablas de probabilidades 16.
En la etapa S21, la unidad de inicializacion 19 inicializa la unidad de actualizacion de tablas de probabilidades 18 a fin de ajustar una tabla de probabilidades a valores iniciales.
En la etapa S22, en funcion del indicador de valores iniciales insertado en la cabecera, la unidad de inicializacion 19 determina si se codifica o no la tabla de probabilidades. Si se determina que se codifica la tabla de probabilidades, el procedimiento pasa a la etapa S23 y si se determina que no se codifica la tabla de probabilidades, el procedimiento se salta la etapa S23 y pasa a la etapa S24.
En la etapa S23, la unidad de actualizacion de tablas de probabilidades 18 actualiza la tabla de probabilidades con la tabla de probabilidades que se envfa desde el decodificador de tablas de probabilidades 16. Los datos de tablas de probabilidades codificados que se introducen en el decodificador de tablas de probabilidades 16 son, a veces, toda la tabla de probabilidades y, a veces, una parte de la tabla de probabilidades. Incluso cuando solo se codifica una parte de la tabla de probabilidades, si se codifica la parte correspondiente a los datos codificados con una probabilidad alta de la tabla de probabilidades obtenida, se puede lograr una decodificacion apropiada en una operacion de decodificacion (que se describira mas adelante). Cabe senalar que cuando solo se codifica una parte de la tabla de codigos, la tabla de probabilidades que no se codifica se inicializa con los mismos valores que en la etapa S21.
Cabe senalar que cuando se codifica informacion que indica la tabla de probabilidades y no la tabla de probabilidades propiamente dicha, primero se decodifica esa informacion y, a continuacion, la unidad de actualizacion de tablas de probabilidades 18 selecciona la tabla de probabilidades indicada por esos datos.
5
10
15
20
25
30
35
40
45
50
55
En la etapa S24, el decodificador aritmetico 17 y la unidad de actualizacion de tablas de probabilidades 18 cooperan para llevar a cabo una decodificacion aritmetica en subdatos. Espedficamente, en funcion de la tabla de probabilidades de la unidad de actualizacion de tablas de probabilidades 18, el decodificador aritmetico 17 decodifica los subdatos codificados y envfa datos. Cuando la unidad de datos es un fotograma, por ejemplo, se decodifican los segmentos. En la etapa S26, los datos generados del decodificador aritmetico 17 se envfan a la unidad de actualizacion de tablas de probabilidades 18 y la unidad de actualizacion de tablas de probabilidades 18 reescribe la tabla de probabilidades con los datos generados. En la etapa S24, la tabla de probabilidades actualizada se usa en la decodificacion de los subdatos siguientes.
En la etapa S25, se determina si esta terminada o no la decodificacion de todos los subdatos. Si se determina que la decodificacion de todos los subdatos no esta terminada, el procedimiento vuelve a la etapa S24 y se repite la operacion que se ha descrito anteriormente.
(5) Eficacia del procedimiento de codificacion y del procedimiento de decodificacion que se han descrito anteriormente
[1] La eficacia de compresion mejora con los procedimientos de codificacion y de decodificacion que se han descrito anteriormente porque los subdatos se codifican en funcion de la tabla de probabilidades obtenida mediante codificacion aritmetica. Es decir, con estos procedimientos de codificacion y decodificacion, se puede aumentar la eficacia de compresion debido a la alta eficacia de aprendizaje, incluso si la cantidad total de datos es reducida y, por lo tanto, la proporcion de la cantidad de datos codificados que sena necesaria con procedimientos convencionales hasta que se obtiene una codificacion optima mediante aprendizaje es considerable.
Ademas, dado que la tabla de probabilidades inicializada se codifica y se coloca en la cabecera de la unidad de datos codificada, la unidad de datos codificada se puede decodificar adecuadamente durante la decodificacion con esa tabla de probabilidades como valores iniciales.
[2] La frecuencia con que se codifica la tabla de probabilidades es adecuada con los procedimientos de codificacion y decodificacion que se han descrito anteriormente, dado que la tabla de probabilidades se codifica en unidades de segmento o fotograma. En primer lugar, incluso si una parte de los datos codificados que se debena usar en el aprendizaje se pierde en un error de transmision y la misma tabla de probabilidades que la del momento de la codificacion no se puede reproducir durante la decodificacion, un estado en el que las imagenes no son reproducibles no dura mas de unos segundos, dado que la tabla de probabilidades codificada se decodifica con frecuencia alta. Si se codifica en unidades de GOP o flujo, la frecuencia de codificacion de la tabla de probabilidades es baja y cuando una parte de los datos codificados que se debena usar en el aprendizaje se pierde en un error de transmision y la tabla de probabilidades no se puede reproducir, se crea una condicion en la que las imagenes no son reproducibles durante mas de varios segundos. En segundo lugar, no habra una gran cantidad de datos de tablas de probabilidades redundantes. Si se codifica en unidades de bloque (o macrobloque), la redundancia de los datos de inicializacion sera excesiva.
[3] En los procedimientos de codificacion y decodificacion que se han descrito anteriormente, con una codificacion aritmetica se logra una eficacia de compresion alta para la mayor parte de los datos de imagen. A diferencia de esto, las cabeceras, que son datos comunes, se codifican simple y estaticamente con un procedimiento de codificacion fija. Mas en particular, partes de cabecera originales de la cabecera se codifican con un procedimiento de codificacion fija y los valores iniciales de tablas de probabilidades insertados tambien se codifican con un procedimiento de codificacion fija. Dado que la eficacia de compresion para cabeceras es siempre baja comparada con la mayor parte de los datos de imagen, no existe un problema especialmente importante por usar un procedimiento de codificacion fija, por cuanto se refiere a la eficacia de compresion global.
2. Segunda forma de realizacion
(1) Configuracion del dispositivo de codificacion de longitud variable
La Fig. 12 es un diagrama de bloques de la configuracion global de un dispositivo de codificacion de longitud variable 21 segun una forma de realizacion de la presente invencion. El dispositivo de codificacion de longitud variable 21 es un dispositivo para llevar a cabo una codificacion de longitud variable en datos de entrada y crear flujos de bits. En particular, el dispositivo de codificacion de longitud variable 21 se caracteriza porque conmuta entre una pluralidad de tablas de codigos de longitud variable como procedimiento principal de codificacion. Un ejemplo tfpico de codificacion de longitud variable es la codificacion Huffman y en la siguiente explicacion se usara la codificacion Huffman como ejemplo.
Para el dispositivo de codificacion de longitud variable 21 son posibles varios tipos de datos de entrada, sin embargo, esta forma de realizacion se describira como uno en el que se introducen datos de imagen. Es decir, el dispositivo de codificacion de longitud variable 21 tiene una funcion que lleva a cabo una codificacion entropica en senales de fotograma que se han convertido en datos. Con el esquema del MPEG, en particular, los datos de fotograma que se introducen en el dispositivo de codificacion de longitud variable 21 son coeficientes de DCT cuantificados y vectores de movimiento.
5
10
15
20
25
30
35
40
45
50
55
El dispositivo de codificacion de longitud variable 21 incluye una unidad de codificacion de datos 22 y un codificador de cabeceras 23.
La unidad de codificacion de datos 22 es un dispositivo para llevar a cabo una codificacion Huffman de datos distintos de cabeceras para cada unidad de datos e incluye un codificador de longitud variable 27, una unidad de seleccion de tablas de codigos 28 y una unidad de inicializacion 29. Cabe senalar que la unidad de datos esta constituida por una pluralidad de conjuntos de subdatos y cuando la unidad de datos es un fotograma, los subdatos son segmentos, macrobloques o bloques y cuando la unidad de subdatos es un segmento, los subdatos son macrobloques o bloques. Ademas, la unidad de codificacion de datos 22 corresponde a la unidad de codificacion entropica 107 del dispositivo de codificacion de imagenes estandar 100 que se muestra en la Fig. 2.
El codificador de longitud variable 27 es un dispositivo para enviar datos generados a la unidad de seleccion de tablas de codigos 28 una vez introducidos los datos y para codificar datos en funcion de las tablas de codigos de longitud variables 30, es decir, las palabras de codigo, que se conmutan por medio de la unidad de seleccion de tablas de codigos 28.
La unidad de seleccion de tablas de codigos 28 es un dispositivo para enviar una senal de seleccion de tablas de codigos a un conmutador 25 en respuesta a la probabilidad de datos generados enviados desde el codificador de longitud variable 27.
El conmutador 25 es un dispositivo para conmutar las tablas de codigos de longitud variable 30 que se usan cuando el codificador de longitud variable 27 codifica datos de acuerdo con la senal de seleccion de tablas de codigos que se envfa desde la unidad de seleccion de tablas de codigos 28.
La unidad de inicializacion 29 es un dispositivo para enviar una instruccion de inicializacion de la senal de seleccion de tablas de codigos a la unidad de seleccion de tablas de codigos 28.
La fig. 13 muestra ejemplos espedficos de tablas de codigos de longitud variable 30. Cada una de las tablas de codigos de longitud variable 30a a 30c esta constituida por una combinacion de datos y cadenas de bits que corresponden a esos datos. Se emplean cadenas de bits comunes en las partes blancas de las tablas de codigos de longitud variable 30a a 30c (desde dato 1 de la tabla de codigos 30a, desde dato 2 de la tabla de codigos 30b y desde dato 4 de la tabla de codigos 30c). Ademas, se emplean cadenas de bits diferentes en las partes comunes (dato 0 de la tabla de codigos 30a, dato 0 y 1 de la tabla de codigos 30b, dato 0 a 3 de la tabla de codigos 30c). Los datos de las partes comunes son datos con una probabilidad relativamente alta. Si datos con una probabilidad alta se pueden procesar con un bit, se selecciona la tabla de codigos 30a, si datos con una probabilidad alta se pueden procesar con dos bits se selecciona la tabla de codigos 30b y si codigos con una probabilidad alta se pueden procesar con tres bits se selecciona la tabla de codigos 30c. A diferencia de esto, los codigos de las partes blancas son para datos con una probabilidad relativamente baja. De este modo, disponiendo cadenas de bits comunes para datos con una probabilidad relativamente baja, se pueden preparar tablas de codigos de longitud variable diferentes con una pequena cantidad de datos para reducir la memoria y, ademas, la operacion de codificacion resultara mas facil.
El codificador de cabeceras 23 es un dispositivo para codificar datos de cabecera con un procedimiento de codificacion fija.
El dispositivo de codificacion de longitud variable 21 esta provisto, ademas, de un codificador de senales de seleccion 26. El codificador de senales de seleccion 26 es un dispositivo para codificar las senales de seleccion de tablas de codigos que se envfan desde la unidad de seleccion de tablas de codigos 28 con un procedimiento de codificacion fija.
Un multiplexor 24 es un dispositivo para multiplexar los datos de cabecera codificados que se envfan desde el codificador de cabeceras 23, los datos codificados distintos de cabeceras que se envfan desde el codificador de longitud variable 27 y los datos de senales de seleccion codificados que se envfan desde el codificador de senales de seleccion 26 y generar cadenas de bits (flujos de bits) y enviarlas a una lmea de transmision.
(2) Funcionamiento del dispositivo de codificacion de longitud variable
[1] Funcionamiento de la unidad de codificacion de datos y del dispositivo de codificacion de senales de seleccion
La Fig. 14 es un diagrama de flujo que muestra un esquema del funcionamiento de la unidad de codificacion de datos 22 y del codificador de senales de seleccion 26.
En la etapa S31, la unidad de inicializacion 29 envfa una instruccion de inicializacion a la unidad de seleccion de tablas de codigos 28 y la unidad de seleccion de tablas de codigos 28 envfa una senal de seleccion de tablas de codigos al conmutador 25. El resultado de esto es que el conmutador 25 selecciona una tabla de codigos de longitud variable 30 como valores iniciales de la codificacion de la unidad de datos. En esta operacion de inicializacion, la unidad de inicializacion 29 y la unidad de seleccion de tablas de codigos 28 seleccionan una tabla de codigos de longitud variable 30 en funcion de datos de inicializacion de la cabecera. Cabe senalar que, en la Fig. 12, se omite la
5
10
15
20
25
30
35
40
45
50
55
lmea por la que los datos de cabecera se envfan a la unidad de inicializacion 29 y a la unidad de seleccion de tablas de codigos 28.
En la etapa S32, el codificador de longitud variable 27 y la unidad de seleccion de tablas de codigos 28 cooperan para llevar a cabo una codificacion Huffman de subdatos. Mas en particular, la unidad de seleccion de tablas de codigos 28 envfa una senal de seleccion de tablas de codigos al conmutador 25 en funcion de datos generados hasta ese momento. En funcion de la senal de seleccion de tablas de codigos, el conmutador 25 conmuta las tablas de codigos de longitud variable 30 y el codificador de longitud variable 27 codifica los subdatos con las palabras de codigo de la tabla de codigos de longitud variable 30 seleccionada. Ademas, cada unidad de datos esta constituida por una pluralidad de conjuntos de subdatos. Espedficamente, segmentos, macrobloques o bloques se codifican como subdatos cuando la unidad de datos es un fotograma y macrobloques o bloques se codifican como subdatos cuando la unidad de datos es un segmento.
En etapa S33, los subdatos se envfan a la unidad de seleccion de tablas de codigos 28 y la unidad de seleccion de tablas de codigos 28 actualiza la frecuencia de generacion de subdatos, que indica que tabla de codigos se debena seleccionar cuando el conmutador 25 vuelva a llevar a cabo una conmutacion. En esta forma de realizacion, se usa esta tabla de codigos cuando se lleva a cabo una codificacion de longitud variable en los subdatos siguientes.
En la etapa S34, se determina si esta terminada o no la codificacion de todos los subdatos. Si se determina que la codificacion de todos los subdatos no esta terminada, el procedimiento vuelve a la etapa S32 y se repite la operacion que se ha descrito anteriormente.
En la etapa S35, se determina si codificar o no la informacion que indica la tabla de codigos de longitud variable 30 que se usa para los valores iniciales (es decir, las senales de seleccion de tablas de codigos). Si se va a codificar esta informacion, el procedimiento pasa a la etapa S36 y si no se va a codificar esta informacion, se salta la etapa S36. Cabe senalar que la tabla de codigos de longitud variable que se usa para los valores iniciales no se codifica en los casos en que, por ejemplo, la cantidad de datos hasta que se inicializa la tabla de codigos de longitud variable siguiente es lo suficientemente grande (es decir, la proporcion de la cantidad de datos necesaria para el aprendizaje respecto a la cantidad total de datos es lo suficientemente reducida y, por lo tanto, la eficacia del aprendizaje es buena) o cuando la tabla de codigos de longitud variable que se usa como valores iniciales es coherente con la tabla de codigos optima seleccionada mediante aprendizaje. El codificador de longitud variable 27 genera un indicador de valores iniciales para identificar el resultado de la determinacion y lo envfa, junto con los datos codificados, al multiplexor 24.
En la etapa S36, las senales de seleccion de tablas de codigos, por las que la unidad de seleccion de tablas de codigos 28 indica la tabla de codigos de longitud variable correspondiente, se envfan al codificador de senales de seleccion 26.
La eficacia de compresion para los subdatos mejora con el procedimiento de codificacion que se ha descrito anteriormente porque, excepto para la primera codificacion de subdatos, la tabla de codigos de longitud variable se selecciona en funcion de los valores de subdatos codificados. En particular, dado que la tabla de codigos de longitud variable que se usa para codificar subdatos es una tabla de codigos de longitud variable seleccionada mediante codificacion Huffman de los subdatos anteriores, la codificacion se puede lograr en tiempo real y aumentara la velocidad de codificacion. Ademas, se puede obtener una eficacia de compresion favorable con una correlacion espacial y temporal de los fotogramas.
[2] Funcionamiento de la unidad de codificacion de cabeceras
El codificador de cabeceras 23 codifica los datos de cabecera introducidos y los envfa al multiplexor 24.
[3] Funcionamiento del multiplexor
El multiplexor 24 genera un flujo de bits a partir de los datos que se envfan desde el codificador de longitud variable 27, el codificador de cabeceras 23 y el codificador de senales de seleccion 26 y lo envfa a una lmea de transmision.
La Fig. 15 muestra estructuras de datos de flujo de bits que se envfan desde el multiplexor 24 cuando la unidad de datos es un fotograma de datos de imagen. Por lo general, un fotograma esta constituido por una cabecera y una pluralidad de segmentos como subdatos codificados. La cabecera indica el principio de los datos codificados de un fotograma y tiene datos comunes para cada segmento (por ejemplo, el tipo de codificacion de imagenes [que distingue entre fotogramas intracodificados, fotogramas codificados predictivos y fotogramas codificados bipredictivos] y valores iniciales de parametros de cuantificacion de fotogramas). Cabe senalar que datos comunes sin mucha relacion con la inicializacion incluyen parametros, tales como el orden de codificacion de imagenes, el orden de visualizacion de fotogramas, vectores de movimiento y tamano de imagen.
En la cabecera se coloca un indicador de valores iniciales. El indicador de valores iniciales es un indicador para identificar si se codifica o no la informacion que indica la tabla de codigos de longitud variable. Si se codifica la informacion que indica la tabla de codigos de longitud variable, el indicador es “1” y si no se codifica, el indicador es
“0”.
5
10
15
20
25
30
35
40
45
50
55
Ademas, como se muestra en la Fig. 15(a), los datos de senales de seleccion codificados (por ejemplo, una formula, un indicador que indica una tabla de probabilidades o informacion que indica una combinacion de estos) que indican la tabla de codigos de longitud variable que se va a usar se colocan en la cabecera. Cabe senalar que cuando no se codifica la informacion que indica la tabla de codigos de longitud variable, los datos de senales de seleccion codificados no se envfan del codificador de senales de seleccion 26 al multiplexor 24 y, por lo tanto, el resultado es que los datos de senales de seleccion codificados no se colocan en el flujo de bits, como se muestra en la Fig. 15(b).
Como se ha descrito anteriormente, la cabecera incluye partes de datos comunes (que originalmente estan en la parte de cabecera) que se codifican por medio del codificador de cabeceras 23, un indicador de valores iniciales generado por medio del codificador de longitud variable 27 y datos de senales de seleccion codificados, codificados por medio del codificador de senales de seleccion 26. Mas en particular, las partes de datos comunes se dividen en un lateral de partes principales y un lateral de datos de fotograma e insertados entre las mismas estan el indicador de valores iniciales y los datos de seleccion de senales codificados, en ese orden.
La Fig. 16 muestra la estructura de datos de un flujo de bits que se envfa desde el multiplexor 24 cuando la unidad de datos es un segmento de datos de imagen. Por lo general, un segmento esta constituido por una cabecera y una pluralidad de bloques (o macrobloques) como subdatos codificados. La cabecera indica el principio de los datos codificados de un segmento y esta constituida, principalmente, por los datos comunes correspondientes a cada segmento (parametros, tales como un codigo de inicio y una escala de cuantificacion).
Ejemplos de datos comunes incluyen tipos de codificacion de segmentos (que distinguen entre segmentos intracodificados, segmentos codificados predictivos y segmentos codificados bipredictivos) y valores iniciales de parametros de cuantificacion de segmentos.
Ademas, en la cabecera se coloca un indicador de valores iniciales. El indicador de valores iniciales es un indicador para identificar si se codifica o no la informacion que indica la tabla de codigos de longitud variable. Si se codifica la informacion que indica la tabla de codigos de longitud variable, el indicador es “1” y si no se codifica, el indicador es
“0”.
Ademas, como se muestra en la Fig. 16(a), la informacion de senales de seleccion codificada que indica la tabla de codigos de longitud variable que se va a usar se coloca en la cabecera. Cabe senalar que cuando no se codifica la tabla de codigos de longitud variable, los datos de senales de seleccion codificados no se envfan del codificador de senales de seleccion 26 al multiplexor 24 y, por lo tanto, el resultado es que los datos de senales de seleccion codificados no se colocan en el flujo de bits, como se muestra en la Fig. 16(b).
Como se ha descrito anteriormente, la cabecera incluye partes de datos comunes (que originalmente estan en la parte de cabecera) que se codifican por medio del codificador de cabeceras 23, un indicador de valores iniciales generado por medio del codificador de longitud variable 27 y datos de senales de seleccion codificados, codificados por medio del codificador de senales de seleccion 26. Mas en particular, las partes de datos comunes se dividen en un lateral de partes principales y un lateral de datos de fotograma e insertados entre las mismas estan el indicador de valores iniciales e informacion de senales de seleccion codificada, en ese orden.
Cabe senalar que en esta forma de realizacion la tabla de codigos de longitud variable propiamente dicha no se codifico ni se inserto en la cabecera, sino que, por el contrario, se inserto en la cabecera informacion de senales de seleccion codificada que indica la tabla de codigos de longitud variable que se va a usar. Por consiguiente, se puede reducir la cantidad de codificacion porque no se codifica la tabla de codigos de longitud variable propiamente dicha.
Como ejemplo adicional de informacion de senales de seleccion codificada que indica la tabla de codigos de longitud variable que se va a usar, se puede usar una parte de datos comunes de la cabecera. En este caso, se puede reducir aun mas la cantidad de codificacion porque esos datos tambien hacen las veces de una parte de datos comunes de la unidad de datos. Cuando la unidad de datos es un fotograma, ejemplos de datos comunes incluyen tipos de codificacion de imagenes (que distinguen entre fotogramas intracodificados, fotogramas codificados predictivos y fotogramas codificados bipredictivos) y valores iniciales de parametros de cuantificacion de fotogramas. Cabe senalar que datos comunes sin mucha relacion con la inicializacion incluyen parametros, tales como el orden de codificacion de imagenes, el orden de visualizacion de fotogramas, vectores de movimiento y tamano de imagen. Cuando la unidad de datos es un segmento, ejemplos incluyen tipos de codificacion de segmentos (que distinguen entre segmentos intracodificados, segmentos codificados predictivos y segmentos codificados bipredictivos) y valores iniciales de parametros de cuantificacion de segmentos.
Ademas, se puede omitir el indicador de valores iniciales asegurandose de que siempre se actualicen los valores iniciales.
(3) Configuracion del dispositivo de decodificacion de longitud variable
La Fig. 17 es un diagrama de bloques que muestra la configuracion global de un dispositivo de decodificacion de longitud variable 31 segun una forma de realizacion de la presente invencion. El dispositivo de decodificacion de longitud variable 31 es, por ejemplo, un dispositivo para decodificar datos que se han codificado por medio del dispositivo de codificacion de longitud variable 21. Cuando el objeto son datos de imagen, el dispositivo de
5
10
15
20
25
30
35
40
45
50
decodificacion de longitud variable 31 tiene las funciones de llevar a cabo una decodificacion entropica de datos y obtener datos de imagen transformados.
El dispositivo de decodificacion de longitud variable 31 incluye una unidad de decodificacion de datos 32 y una unidad de decodificacion de cabeceras 33.
La unidad de decodificacion de datos 32 es un dispositivo para llevar a cabo una decodificacion Huffman en datos distintos de la cabecera de cada unidad de datos y esta provista de un dispositivo de decodificacion de longitud variable 37 y de un decodificador de senales de seleccion 36. Cabe senalar que la unidad de datos a la que se refiere este documento, en el caso de datos de imagen, significa un fotograma o un segmento. Ademas, la unidad de decodificacion de datos 32 corresponde a la unidad de decodificacion entropica 207 del dispositivo de codificacion de imagenes estandar 200 que se muestra en la Fig. 10.
El dispositivo de decodificacion de longitud variable 37 es un dispositivo para decodificar datos codificados en funcion de las palabras de codigo de las tablas de codigos de longitud variable 30 que se conmutaron por medio de un conmutador 35.
El decodificador de senales de seleccion 36 es un dispositivo para decodificar los datos de senales de seleccion codificados que se envfan desde un demultiplexor 34 con un procedimiento de decodificacion fija y enviarlos al conmutador 35.
El conmutador 35 es un dispositivo para conmutar las tablas de codigos de longitud variable 30 que se usan cuando el dispositivo de decodificacion de longitud variable 37 decodifica datos de acuerdo con la senal de seleccion de tablas de codigos que se envfa desde la unidad de decodificacion de senales de seleccion 36.
La unidad de inicializacion 39 es un dispositivo para enviar instrucciones de inicializacion a la unidad de decodificacion de senales de seleccion 36.
El decodificador de cabeceras 33 es un dispositivo para decodificar datos de cabecera codificados con un procedimiento de decodificacion fija.
Un demultiplexor 34 es un dispositivo para demultiplexar y enviar un flujo de bits como datos de cabecera codificados, datos codificados distintos de cabeceras y datos de senales de seleccion codificados.
(4) Funcionamiento del dispositivo de decodificacion de longitud variable
[1] Funcionamiento del demultiplexor
El demultiplexor 34 demultiplexa un flujo de bits, envfa datos de cabecera codificados al decodificador de cabeceras 33, envfa datos codificados distintos de cabeceras al dispositivo de decodificacion de longitud variable 37 y envfa datos de senales de seleccion codificados al decodificador de senales de seleccion 36 cuando existen datos de senales de seleccion codificados. Cabe senalar que el decodificador de cabeceras 33 envfa el indicador de valores iniciales de la cabecera a la unidad de inicializacion 39.
[2] Funcionamiento del decodificador de cabeceras
El decodificador de cabeceras 33 decodifica los datos de cabecera codificados que se envfan desde el demultiplexor 34 y envfa datos de cabecera.
[3] Funcionamiento de la unidad de decodificacion de datos
La Fig. 18 es un diagrama de flujo que muestra un esquema del funcionamiento de la unidad de decodificacion de datos 32.
En la etapa S51, la unidad de inicializacion 39 envfa instrucciones de inicializacion al decodificador de senales de seleccion 36 y el decodificador de senales de seleccion 36 envfa una senal de seleccion de tablas de codigos al conmutador 35. El resultado es que el conmutador 35 selecciona la tabla de codigos de longitud variable 30 como valores iniciales para decodificar la unidad de datos.
En la etapa S52, en funcion del indicador de valores iniciales insertado en la cabecera, la unidad de decodificacion de longitud variable 37 determina si se codifica o no la informacion que indica la tabla de codigos de longitud variable que se va a usar. Si se determina que se codifica la informacion que indica la tabla de codigos de longitud variable, el procedimiento pasa a la etapa S53 y si se determina que no se codifica, el procedimiento se salta la etapa 53 y pasa a la etapa S54.
En la etapa S53, el conmutador 35 selecciona la tabla de codigos de longitud variable 30 que se indica por medio de la senal de seleccion enviada desde el decodificador de senales de seleccion 36.
En la etapa S54, el dispositivo de decodificacion de longitud variable 37 lleva a cabo una decodificacion Huffman en
5
10
15
20
25
30
35
40
45
50
55
subdatos. Mas en particular, en funcion de la tabla de codigos de longitud variable 30 seleccionada por medio del conmutador 35, el dispositivo de decodificacion de longitud variable 37 decodifica los subdatos codificados y envfa datos. Cuando la unidad de datos es un fotograma, por ejemplo, se decodifican los segmentos. En la etapa S56, el dispositivo de decodificacion de longitud variable 37 selecciona la tabla de codigos de longitud variable 30 con los datos generados por medio del conmutador 35. En la etapa S54, se usa la tabla de codigos de longitud variable 30 seleccionada para la decodificacion de los subdatos siguientes.
En la etapa S55, se determina si esta terminada o no la decodificacion de todos los subdatos. Si se determina que la decodificacion de todos los subdatos no esta terminada, el procedimiento vuelve a la etapa S52 y se repite la operacion que se ha descrito anteriormente.
(5) Eficacia del procedimiento de codificacion y del procedimiento de decodificacion que se han descrito anteriormente
[1] La eficacia de compresion mejora con los procedimientos de codificacion y de decodificacion que se han descrito anteriormente porque los subdatos se codifican en funcion de una tabla de codigos de longitud variable obtenida mediante codificacion Huffman. Es decir, con estos procedimientos de codificacion y decodificacion, se puede aumentar la eficacia de compresion con alta eficacia de aprendizaje, incluso si la cantidad total de datos es reducida y, por lo tanto, la proporcion de la cantidad de datos codificados, que sena necesaria con procedimientos convencionales hasta que se obtiene una codificacion optima mediante aprendizaje, es considerable.
Ademas, dado que la informacion que indica la tabla de codigos inicializada se codifica y se coloca en la cabecera de una unidad de datos codificada, la unidad de datos codificada se puede decodificar adecuadamente durante la decodificacion con la tabla de codigos de longitud variable indicada por esa informacion como valores iniciales.
[2] La frecuencia con que se codifica la informacion que indica la tabla de codigos de longitud variable es adecuada con los procedimientos de codificacion y decodificacion que se han descrito anteriormente, dado que la tabla de codigos de longitud variable se codifica en unidades de segmento o fotograma. En primer lugar, incluso si los datos de senales de seleccion codificados se pierden en un error de transmision, las imagenes nunca seran irreproducibles durante mas de varios segundos, porque la tabla de probabilidades codificada se decodifica con frecuencia alta. Cuando se codifica en unidades de GOP o flujo, la informacion que indica la tabla de codigos de longitud variable se codifica con una frecuencia baja y cuando los datos de senales de seleccion codificados se pierdan en un error de la lmea de transmision, las imagenes no seran reproducibles durante mas de varios segundos. En segundo lugar, no habra una gran cantidad de informacion redundante que indica la tabla de codigos de longitud variable. Cuando se codifica en unidades de bloque (o macrobloque), los datos de inicializacion redundantes son excesivos.
[3] En los procedimientos de codificacion y decodificacion que se han descrito anteriormente, con una codificacion Huffman que conmuta entre una pluralidad de tablas de codigos de longitud variable se logra una eficacia de compresion alta para la mayor parte de los datos de imagen. A diferencia de esto, las cabeceras (que son datos comunes) se codifican con un procedimiento de codificacion fija. Mas en particular, partes de cabecera originales de la cabecera se codifican con un procedimiento de codificacion fija y la informacion insertada que indica la tabla de codigos de longitud variable tambien se codifican con un procedimiento de codificacion fija. Dado que la eficacia de compresion para cabeceras es siempre baja comparada con la mayor parte de los datos de imagen, no existe un problema especialmente importante por usar un procedimiento de codificacion fija, por cuanto se refiere a la eficacia de compresion global.
3. Forma de realizacion de soporte de almacenamiento
Almacenando un programa que ejecuta el procedimiento de codificacion de longitud variable o el procedimiento de decodificacion de longitud variable, que se muestran en las formas de realizacion que se han descrito anteriormente, en un soporte de almacenamiento, tal como un disco flexible, se pueden ejecutar facilmente los procedimientos que se muestran en las formas de realizacion en un sistema informatico independiente.
La Fig. 19 ilustra un caso en el que la presente invencion se ejecuta en un sistema informatico usando un disco flexible en el que esta almacenado un procedimiento de codificacion de longitud variable o un procedimiento de decodificacion de longitud variable.
La Fig. 19(b) muestra una vista de frente del exterior de un disco flexible, su vista transversal y un disco flexible. La fig. 19(a) muestra un ejemplo del formato ffsico de un disco flexible (que es la parte principal del soporte de almacenamiento). Un disco flexible FD esta integrado en una carcasa F y una pluralidad de pistas Tr estan formadas concentricamente desde el borde exterior hasta el borde interior en la superficie del disco. Cada pista esta dividida en una orientacion angular en 16 sectores Se. Por lo tanto, con un disco flexible en el que esta almacenado el programa que se ha descrito anteriormente, el procedimiento de codificacion de longitud variable o el procedimiento de decodificacion de longitud variable se grabara en zonas asignadas del disco flexible FD como el programa que se ha mencionado anteriormente.
Ademas, la Fig. 19(c) muestra una configuracion para grabar y reproducir el programa en el disco flexible FD. Cuando se graba el programa en el disco flexible FD, el procedimiento de codificacion de longitud variable o el
5
10
15
20
25
30
35
40
45
50
55
procedimiento de decodificacion de longitud variable se escribe desde un sistema informatico Cs a traves de una unidad de disco flexible. Ademas, cuando el procedimiento de codificacion de longitud variable o el procedimiento de decodificacion de longitud variable se construye en un sistema informatico por medio del programa del disco flexible, el programa se lee del disco flexible por medio de una unidad de disco flexible y se transfiere a un sistema informatico.
Cabe senalar que, para ilustrar la explicacion anterior, se usa un disco flexible como soporte de almacenamiento, sin embargo, tambien se puede usar de manera similar un disco digital. Ademas, el soporte de almacenamiento no se limita a los ejemplos que se han mencionado anteriormente y siempre que sea un soporte en el que se puede realizar una grabacion, tal como una CD-ROM, una tarjeta de memoria o un casete ROM, el programa se puede ejecutar del mismo modo.
4. Aplicaciones de ejemplo de la presente invencion y sistemas que usan las mismas
Lo siguiente es una explicacion de aplicaciones de ejemplo de los procedimientos de codificacion de imagenes en movimiento y los procedimientos de decodificacion de imagenes en movimiento que se muestran en las formas de realizacion que se han descrito anteriormente, asf como de sistemas que usan las mismas.
La Fig. 20 es un diagrama de bloques que muestra toda la configuracion de un sistema de suministro de contenidos ex100 que efectua un servicio de suministro de contenidos. Areas para suministrar servicios de comunicaciones estan divididas en tamanos deseados y estaciones base ex107 a ex110 (que son estaciones inalambricas fijas) estan instaladas dentro de las respectivas celulas.
El sistema de suministro de contenidos ex100 conecta, por ejemplo, a un proveedor de servicios de internet ex102 en internet ex101 y a una red telefonica ex104, asf como a varios dispositivos, tales como un ordenador ex111, un PDA (asistente digital personal) ex112, una camara ex113, un telefono movil ex114 y un telefono movil equipado con camara ex115 a traves de las estaciones base ex107 a ex110.
No obstante, el sistema de suministro de contenidos ex100 no se limita a la disposicion que se muestra en la FIG. 17 y se puede disponer y conectar cualquier combinacion de estos dispositivos. Ademas, los dispositivos pueden estar conectados directamente por medio de la red telefonica ex104 y no a traves de las estaciones base ex107 a ex110 (que son estaciones inalambricas fijas).
La camara ex113 es un dispositivo, tal como una camara de video digital, capaz de captar imagenes en movimiento. Ademas, los telefonos moviles pueden ser dispositivos que operan en protocolos, tales como PDC (Comunicaciones Digitales Personales), CDMA (Acceso Multiple por Division de Codigo), W-CDMA (Acceso Multiple por Division de Codigo de Banda Ancha) o GSM (Sistema Mundial de Comunicaciones Moviles), PHS (Sistema de Telefoma Inalambrica Personal) y similares.
Ademas, un servidor de transmision en continuo ex103 puede estar conectado a la camara ex113 a traves de la estacion base ex109 y la red telefonica ex104 y un usuario puede realizar una transmision en vivo en funcion de datos codificados usando la camara ex113. El proceso para codificar los datos captados se puede llevar a cabo por medio de la camara ex113 o por medio de un servidor o similar que transmite los datos. Ademas, datos de fotograma en movimiento captados por medio de una camara ex116 se pueden enviar al servidor de transmision en continuo ex103 a traves del ordenador ex111. La camara ex116 es un dispositivo, tal como una camara digital, capaz de captar imagenes fijas e imagenes en movimiento. En este caso, la codificacion de los datos de imagen en movimiento se puede llevar a cabo por medio de la camara ex116 o del ordenador ex111. Ademas, el procedimiento de codificacion se lleva a cabo por medio de un microcircuito LSI ex117 provisto en el ordenador ex111 o en la camara ex116. Cabe senalar que el software para codificar/decodificar imagenes puede estar integrado en cualquier soporte de almacenamiento (tal como, CD-ROMs, discos flexibles y discos duros) que se pueda leer por medio del ordenador ex111 o similar. Ademas, datos de imagen en movimiento se pueden transmitir por medio del telefono movil equipado con camara ex115. Cuando esto ocurre, los datos de imagen en movimiento son datos codificados por medio de un microcircuito LSI provisto en el telefono movil ex115.
Con el sistema de suministro de contenidos ex100, contenidos (por ejemplo, imagenes que captan un concierto en directo), que un usuario esta captando con la camara ex113, la camara ex116 o similar, se codifican del mismo modo que en las formas de realizacion que se han descrito anteriormente y se transmiten al servidor de transmision en continuo ex103 y el servidor de transmision en continuo ex103 transmite los contenidos en continuo a un cliente que lo haya solicitado. Ejemplos del cliente incluyen dispositivos capaces de decodificar los datos codificados, tales como el ordenador ex111, el PDA ex112, la camara ex113 y el telefono movil ex114. Por lo tanto, el sistema de suministro de contenidos ex100 es un sistema que posibilita a un cliente recibir y reproducir datos codificados. Ademas, se pueden lograr emisiones individuales con el sistema recibiendo, decodificando y reproduciendo en un cliente datos codificados.
El dispositivo de codificacion de imagenes en movimiento o el dispositivo de decodificacion de imagenes en movimiento de las formas de realizacion que se han descrito anteriormente se puede usar en los dispositivos de codificacion y decodificacion que conforman este sistema.
5
10
15
20
25
30
35
40
45
50
55
En el ejemplo siguiente se describe el uso de un telefono movil con la presente invencion.
La FIG. 21 muestra un telefono movil ex115 que usa el procedimiento de codificacion de imagenes en movimiento y el procedimiento de decodificacion de imagenes en movimiento que se han descrito en las formas de realizacion anteriores. El telefono movil ex115 esta provisto de una antena ex201, para enviar a la estacion base ex110 y recibir de la misma ondas de radio; una unidad de camara ex203, tal como una camara de CDD, capaz de captar imagenes y fotogramas fijos; una unidad de visualizacion ex202, tal como un visualizador de cristal lfquido, que visualiza datos de imagen decodificados captados por medio de la unidad de camara ex203 o recibidos por medio de la antena ex201; una unidad principal constituida por teclas de operacion ex204; una unidad de salida de voz ex208, tal como un altavoz, para enviar voz; una unidad de entrada de voz ex205, tal como un microfono, para introducir voz; un soporte de almacenamiento ex207 para guardar datos codificados o decodificados, tales como datos de imagen en movimiento o de imagen fija captados, datos de correo electronico recibidos y datos de imagen en movimiento o datos de imagen fija, y una ranura ex206 para permitir que el soporte de almacenamiento ex207 este instalado en el telefono movil ex115. El soporte de almacenamiento ex207 esta alojado en un dispositivo de memoria flash, que es un tipo de EEPROM (Memoria de Solo Lectura Que Se Puede Programar y Borrar Electricamente) que es una memoria no volatil alojada en una carcasa de plastico y que se puede reescribir y borrar electricamente, tal como una tarjeta de SD.
Se describira detalladamente el telefono movil ex115 haciendo referencia a la FIG. 22. Una unidad de circuito de energfa ex310, una unidad de control de entrada de operaciones ex304, una unidad de codificacion de imagenes ex312, una unidad de interfaz de camara ex303, una unidad de control de LCD (visualizador de cristal lfquido) ex302, una unidad de decodificacion de imagenes ex309, una unidad de multiplexacion/demultiplexacion ex308, una unidad de reproduccion de grabacion ex307, una unidad de circuito de modem ex306 y una unidad de procesamiento de voz 305 estan interconectadas a traves de un bus de sincronizacion ex313 a una unidad de control principal ex311 que controla de manera centralizada cada unidad de la unidad principal provista de la unidad de visualizacion ex202 y las teclas de operacion ex204.
Cuando finaliza una llamada o el usuario pulsa la tecla de encendido, la unidad de circuito de energfa ex310 suministra energfa a cada unidad desde un conjunto de batenas activando, de ese modo, el telefono movil digital equipado con camara ex115 para que funcione.
En funcion del control de la unidad de control principal ex311 (que incluye una CPU, una ROM y una RAM y similares), el telefono movil ex115 convierte las senales de voz, recogidas en un modo de llamada de voz por la unidad de entrada de voz ex205, en datos de voz digitales, con la unidad de procesamiento de voz ex305 y estas se someten a un proceso de espectro expandido por medio de la unidad de circuito de modem ex306 y se transmiten, a traves de la antena ex201, por medio de la unidad de circuito de recepcion/envfo ex301 tras someterse a conversion de digital a analogico y a transformacion de frecuencia. Ademas, con el telefono movil ex115 en el modo de llamada de voz, tras la recepcion las senales recibidas por medio de la antena ex201 se amplifican y se someten a transformacion de frecuencia, a conversion de digital a analogico y a un proceso de espectro expandido inverso por medio de la unidad de circuito de modem ex306 y se convierten en senales de voz analogicas por medio de la unidad de procesamiento de voz ex305 y se envfan a traves de la unidad de salida de voz ex208.
Ademas, cuando un correo electronico se envfa en modo de transmision de datos, los datos de texto del correo electronico, que se introducen mediante el funcionamiento de las teclas de operacion ex204 de la unidad principal, se envfan a la unidad de control principal ex311 a traves de la unidad de control de entrada de operacion ex304. La unidad de control principal ex311 transmite los datos de texto a la estacion base ex110 a traves de la antena ex201 una vez ejecutado el proceso de espectro expandido en los mismos por medio de la unidad de circuito de modem ex306 y, posteriormente, se someten a conversion de digital a analogico y a transformacion de frecuencia por medio de la unidad de circuito de recepcion/envfo ex301.
Cuando los datos de imagen se envfan en modo de transmision de datos, los datos de imagen captados por medio de la unidad de camara ex203 se suministran a la unidad de codificacion de imagenes ex312 a traves de la unidad de interfaz de camara ex303. Ademas, si no se estan enviando los datos de imagen, los datos de imagen captados por medio de la unidad de camara ex203 tambien se pueden visualizar directamente en la unidad de visualizacion ex202 a traves de la unidad de interfaz de camara ex303 y de la unidad de control de LCD ex302.
La unidad de codificacion de imagenes ex312 es una configuracion provista de un dispositivo de codificacion de imagenes que se ha descrito en la presente solicitud. Los datos de imagen suministrados por medio de la unidad de camara ex203 se convierten en datos de imagen codificados sometiendolos a codificacion de compresion con el procedimiento de codificacion que se usa en el dispositivo de codificacion de imagenes que se muestra en las formas de realizacion que se han descrito anteriormente y dichos datos se envfan a la unidad de multiplexacion/demultiplexacion ex308. Ademas, el dispositivo de telefono movil ex115 envfa, simultaneamente, la voz recogida por medio de la unidad de entrada de voz ex205 durante la captacion de imagenes por medio de la unidad de camara ex203, a la unidad de multiplexacion/demultiplexacion ex308, a traves de la unidad de procesamiento de voz ex305, como datos de voz digitales.
La unidad de multiplexacion/demultiplexacion ex308 lleva a cabo un proceso de multiplexacion de los datos de
5
10
15
20
25
30
35
40
45
50
55
60
imagen codificados suministrados desde la unidad de codificacion de imagenes ex312 y de los datos de voz suministrados desde la unidad de procesamiento de voz ex305 y, una vez que los datos multiplexados obtenidos como resultado de esto se someten a un proceso de espectro expandido por medio de la unidad de circuito de modem ex306 y se someten a conversion de digital a analogico y a transformacion de frecuencia por medio de la unidad de circuito de recepcion/envfo ex301, dichos datos se transmiten a traves de la antena ex201.
Cuando se reciben datos de fichero de imagenes en movimiento vinculados a un sitio web o similar, en modo de transmision de datos, las senales de recepcion recibidas desde la estacion base ex110, a traves de la antena ex201, se someten a un proceso de espectro expandido inverso por medio de la unidad de circuito de modem ex306 y los datos multiplexados obtenidos como resultado de esto se envfan a la unidad de separacion de multiplexacion ex308.
Ademas, al decodificar los datos multiplexados recibidos a traves de la antena ex201, la unidad de separacion de multiplexacion ex308 divide, mediante demultiplexacion, los datos multiplexados en un flujo de bits de datos de imagen codificados y en un flujo de bits de datos de voz codificados y los datos de voz se suministran a la unidad de procesamiento de voz ex305 junto con los datos de imagen codificados que se suministran a la unidad de decodificacion de imagenes ex309 a traves del bus de sincronizacion ex313.
A continuacion, la unidad de decodificacion de imagenes ex309 es una configuracion provista de un dispositivo de decodificacion de imagenes que se describe en la presente solicitud y datos de imagen en movimiento contenidos en un fichero de fotogramas en movimiento vinculado desde, por ejemplo, un sitio web, se visualizan decodificando el flujo de bits de datos de imagen codificados con un procedimiento de decodificacion, correspondiente al procedimiento de codificacion que se muestra en las formas de realizacion que se han descrito anteriormente, generando datos de reproduccion de imagen en movimiento y suministrandolos a la unidad de visualizacion ex202 a traves de la unidad de control de LCD ex302. Simultaneamente, la unidad de procesamiento de voz ex305 convierte los datos de voz en senales de voz analogicas y, a continuacion, los suministra a la unidad de salida de voz ex208 permitiendo, de ese modo, reproducir los datos de voz contenidos en el fichero de fotogramas en movimientos vinculado desde, por ejemplo, un sitio web.
Cabe senalar que no existen limitaciones respecto a los ejemplos del sistema que se ha descrito anteriormente. En los ultimos anos, es un tema de preocupacion la emision digital via satelite u ondas terrestres y al menos uno de los dispositivos de codificacion de imagenes o dispositivos de decodificacion de imagenes de las formas de realizacion que se han descrito anteriormente se puede incorporar en sistemas que usan emision digital, como se muestra en la Fig. 23. En particular, flujos de bits codificados de datos de imagen se transmiten a traves de ondas de radio a un satelite emisor o de comunicaciones ex410 con una estacion emisora ex409. El satelite emisor ex410 que recibe los flujos de bits emite ondas de radio de emision y dichas ondas de radio se reciben por medio de la antena ex406 de una casa equipada con servicios de recepcion de emision via satelite. El flujo de bits codificado se decodifica por medio de un dispositivo, tal como una television (dispositivo de recepcion) ex401, un modulo de conexion (STB) ex407 o similares, y se reproduce dicho flujo de bits codificado. Ademas, se puede instalar un dispositivo de decodificacion de imagenes, que se muestra en las formas de realizacion que se han descrito anteriormente, en un dispositivo de reproduccion ex403 que lee y decodifica flujos de bits codificados grabados en un soporte de almacenamiento ex402, tales como soportes de almacenamiento de CD y de DVD. En este caso, las senales de fotograma reproducidas se visualizan en un monitor ex404. Ademas, tambien es posible una configuracion en la que el dispositivo de decodificacion de imagenes esta instalado en un modulo de conexion ex407 conectado a un cable ex405 para television por cable o a una antena emisora via ondas terrestres/satelite ex406 y esto se reproduce en un monitor de television ex408. En este caso, el dispositivo de decodificacion de imagenes puede estar incorporado en la television, en lugar de en el modulo de conexion. Ademas, un automovil ex412 provisto de una antena ex411 puede recibir senales del satelite ex410, de la estacion base ex107 o similar y las imagenes en movimiento se pueden reproducir en un dispositivo de visualizacion del automovil ex412, tal como un sistema de navegacion para coches ex4l3.
Ademas, con un dispositivo de codificacion de imagenes que se muestra en las formas de realizacion que se han descrito anteriormente se pueden codificar senales de imagen y grabarlas en un soporte de grabacion. Ejemplos espedficos incluyen grabadoras de DVD, que graban senales de imagen en un disco DVD ex421 y una grabadora ex420, tal como una grabadora de discos, que las graba en un disco duro. Asimismo, se puede grabar en una tarjeta de SD ex422. Si la grabadora ex420 esta provista de un dispositivo de decodificacion de imagenes que se muestra en las formas de realizacion que se han descrito anteriormente, las senales de imagen grabadas en el disco DVD ex421 o en la tarjeta de SD ex422 se pueden reproducir y visualizar en el monitor ex408.
Cabe senalar que la configuracion del sistema de navegacion para coches ex413 puede ser de tal manera que, por ejemplo, se excluyan la unidad de camara ex203, la unida de interfaz de camara ex303 y el dispositivo de codificacion de imagenes ex312, como se muestra en la Fig. 19, y esto es igualmente posible para el ordenador ex111 y la television (dispositivo de recepcion) ex401.
Ademas, el terminal del telefono movil ex114, que se ha descrito anteriormente, puede no solo ser un tipo de terminal de envfo/recepcion que tiene tanto un dispositivo de codificacion como un dispositivo de decodificacion, sino que tambien puede ser un terminal de envfo con solo un dispositivo de codificacion o un terminal de recepcion con solo un dispositivo de decodificacion (tres tipos de instalacion).
De este modo, el procedimiento de codificacion de imagenes en movimiento o el procedimiento de decodificacion de imagenes en movimiento, que se muestran en las formas de realizacion que se han descrito anteriormente, se pueden usar en cualquiera de los sistemas o dispositivos que se han descrito anteriormente y, con eso, obtener los efectos que se han descrito de estas formas de realizacion.
5 5. Otras realizaciones
La presente invencion no se limita a las realizaciones que se han descrito anteriormente y son posibles otras realizaciones y modificaciones diferentes sin apartarse del alcance de la presente invencion.

Claims (3)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    REIVINDICACIONES
    1. Un sistema de codificacion y decodificacion de longitud variable que incluye un dispositivo de codificacion de longitud variable que codifica una unidad de datos de datos de imagen constituida por una pluralidad de subdatos en referencia a una tabla de probabilidades, y un dispositivo de decodificacion de longitud variable que decodifica la unidad de datos codificada de datos de imagen con referencia a la tabla de probabilidades,
    en el que dicho dispositivo de codificacion de longitud variable incluye:
    un medio de ajuste de tablas que ajusta una tabla de probabilidades a valores iniciales en funcion de un valor inicial de un parametro de cuantificacion de la unidad de datos;
    un medio de codificacion de informacion de inicializacion que codifica informacion de inicializacion relacionada con dicho valor inicial del parametro de cuantificacion de la unidad de datos;
    un primer medio de obtencion de parametros que obtiene, de la tabla de probabilidades, parametros de codificacion que se van a usar en la codificacion de subdatos;
    un medio de codificacion de subdatos que lleva a cabo una codificacion aritmetica de los subdatos haciendo referencia a los parametros de codificacion obtenidos; y
    un primer medio de actualizacion de tablas de probabilidades que actualiza la tabla de probabilidades en funcion de los subdatos codificados aritmeticamente por el medio de codificacion de subdatos,
    en el que dicho dispositivo de decodificacion de longitud variable incluye:
    un medio de decodificacion de informacion de inicializacion que decodifica la informacion de inicializacion codificada relacionada con el valor inicial del parametro de cuantificacion de la unidad de datos;
    un medio de inicializacion de tablas de probabilidades que ajusta la tabla de probabilidades a valores iniciales en funcion de la informacion de inicializacion decodificada relacionada con el valor inicial del parametro de cuantificacion de la unidad de datos;
    un segundo medio de obtencion de parametros que obtiene, de la tabla de probabilidades, parametros de codificacion que se van a usar en la decodificacion de subdatos;
    un medio de decodificacion de subdatos que lleva a cabo una decodificacion aritmetica de los subdatos codificados haciendo referencia a los parametros de codificacion obtenidos; y
    un segundo medio de actualizacion de tablas de probabilidades que actualiza la tabla de probabilidades en funcion de subdatos decodificados aritmeticamente por el medio de decodificacion de subdatos.
  2. 2. El sistema de codificacion y decodificacion de longitud variable segun la reivindicacion 1, en el que la unidad de datos es un fotograma o un segmento de datos de imagen.
  3. 3. Un procedimiento de codificacion y decodificacion de longitud variable que incluye un procedimiento de codificacion de longitud variable para codificar una unidad de datos de datos de imagen constituida por una pluralidad de subdatos con referencia a una tabla de probabilidades, y un procedimiento de decodificacion de longitud variable para decodificar la unidad de datos codificada de datos de imagen con referencia a la tabla de probabilidades,
    en el que dicho procedimiento de codificacion de longitud variable comprende:
    una etapa de ajuste de tablas para ajustar una tabla de probabilidades a valores iniciales en funcion de un valor inicial de un parametro de cuantificacion de la unidad de datos;
    una etapa de codificacion de informacion de inicializacion para codificar informacion de inicializacion relacionada con el valor inicial del parametro de cuantificacion de la unidad de datos;
    una primera etapa de obtencion de parametros de codificacion para obtener, de la tabla de probabilidades, parametros de codificacion que se van a usar en la codificacion de subdatos;
    una etapa de codificacion de subdatos para llevar a cabo una codificacion aritmetica de los subdatos haciendo referencia a los parametros de codificacion obtenidos; y
    una primera etapa de actualizacion de tablas de probabilidades para actualizar la tabla de probabilidades en funcion de subdatos codificados aritmeticamente en la etapa de codificacion de subdatos,
    en el que dicho procedimiento de decodificacion de longitud variable comprende:
    una etapa de decodificacion de informacion de inicializacion para decodificar la informacion de inicializacion codificada relacionada con el valor inicial del parametro de cuantificacion de la unidad de datos;
    una etapa de inicializacion de tablas de probabilidades para ajustar la tabla de probabilidades a valores iniciales en funcion de la informacion de inicializacion decodificada relacionada con el valor inicial del parametro de 5 cuantificacion de la unidad de datos;
    una segunda etapa de obtencion de parametros de codificacion para obtener, de la tabla de probabilidades, parametros de codificacion que se van a usar en la decodificacion de subdatos;
    una etapa de decodificacion de subdatos para llevar a cabo una decodificacion aritmetica de los subdatos codificados haciendo referencia a los parametros de codificacion obtenidos; y
    10 una segunda etapa de actualizacion de tablas de probabilidades para actualizar la tabla de probabilidades en funcion de subdatos decodificados aritmeticamente en la etapa de decodificacion de subdatos.
ES14163034.3T 2002-03-27 2003-03-13 Sistema de codificación y decodificación de longitud variable y procedimiento de codificación y decodificación de longitud variable Expired - Lifetime ES2599637T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002088345 2002-03-27
JP2002088345 2002-03-27

Publications (1)

Publication Number Publication Date
ES2599637T3 true ES2599637T3 (es) 2017-02-02

Family

ID=28449441

Family Applications (4)

Application Number Title Priority Date Filing Date
ES10181733.6T Expired - Lifetime ES2493616T3 (es) 2002-03-27 2003-03-13 Procedimiento de decodificación de longitud variable, soporte de almacenamiento, dispositivo de decodificación de longitud variable
ES16171139T Expired - Lifetime ES2724399T3 (es) 2002-03-27 2003-03-13 Procedimiento y dispositivo de codificación de longitud variable
ES14163034.3T Expired - Lifetime ES2599637T3 (es) 2002-03-27 2003-03-13 Sistema de codificación y decodificación de longitud variable y procedimiento de codificación y decodificación de longitud variable
ES03710347T Expired - Lifetime ES2399422T3 (es) 2002-03-27 2003-03-13 Procedimiento de codificación de longitud variable, procedimiento de decodificación de longitud variable, soporte de almacenamiento, dispositivo de codificación de longitud variable y flujo de bits

Family Applications Before (2)

Application Number Title Priority Date Filing Date
ES10181733.6T Expired - Lifetime ES2493616T3 (es) 2002-03-27 2003-03-13 Procedimiento de decodificación de longitud variable, soporte de almacenamiento, dispositivo de decodificación de longitud variable
ES16171139T Expired - Lifetime ES2724399T3 (es) 2002-03-27 2003-03-13 Procedimiento y dispositivo de codificación de longitud variable

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES03710347T Expired - Lifetime ES2399422T3 (es) 2002-03-27 2003-03-13 Procedimiento de codificación de longitud variable, procedimiento de decodificación de longitud variable, soporte de almacenamiento, dispositivo de codificación de longitud variable y flujo de bits

Country Status (17)

Country Link
US (3) US6954156B2 (es)
EP (4) EP2765708B1 (es)
KR (1) KR100927510B1 (es)
CN (2) CN101692610B (es)
AU (1) AU2003221378B9 (es)
BR (1) BRPI0303661B1 (es)
CA (1) CA2447840C (es)
CY (1) CY1113502T1 (es)
DK (3) DK2391019T3 (es)
ES (4) ES2493616T3 (es)
HK (1) HK1196720A1 (es)
HU (2) HUE044878T2 (es)
MX (1) MXPA03010827A (es)
PT (3) PT2765708T (es)
SI (3) SI2765708T1 (es)
TR (1) TR201906516T4 (es)
WO (1) WO2003081784A1 (es)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7400727B2 (en) * 1997-07-03 2008-07-15 Matsushita Electric Industrial Co., Ltd. Information embedding method, information extracting method, information embedding apparatus, information extracting apparatus, and recording media
US7286670B2 (en) * 1999-11-09 2007-10-23 Chaoticom, Inc. Method and apparatus for chaotic opportunistic lossless compression of data
JP3807342B2 (ja) * 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
ES2730953T3 (es) * 2002-04-26 2019-11-13 Ntt Docomo Inc Método de decodificación de señal, dispositivo de decodificación de señal, y programa de decodificación de señal
FI114071B (fi) * 2003-01-13 2004-07-30 Nokia Corp Kuvien käsitteleminen rajoitetulla bittimäärällä
WO2004081719A2 (en) * 2003-03-07 2004-09-23 Chaoticom, Inc. Methods and systems for digital rights management of protected content
DE102004007191B3 (de) * 2004-02-13 2005-09-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audiocodierung
US7400277B2 (en) * 2004-04-06 2008-07-15 International Business Machines Corporation Method and system for the compression of probability tables
US7573406B2 (en) * 2004-05-21 2009-08-11 Broadcom Corporation System and method for decoding context adaptive variable length coding
EP1797723A1 (en) * 2004-10-05 2007-06-20 Vectormax Corporation A video compression system
WO2007067168A1 (en) * 2005-12-05 2007-06-14 Thomson Licensing Watermarking encoded content
US7365658B2 (en) * 2006-02-28 2008-04-29 The Board Of Trustees Of The University Of Arkansas Method and apparatus for lossless run-length data encoding
JP4997243B2 (ja) * 2006-08-08 2012-08-08 パナソニック株式会社 画像符号化装置、その方法およびその集積回路
US8942292B2 (en) * 2006-10-13 2015-01-27 Qualcomm Incorporated Efficient significant coefficients coding in scalable video codecs
JP2009152990A (ja) * 2007-12-21 2009-07-09 Panasonic Corp 画像符号化装置及び画像復号化装置
US7557740B1 (en) * 2008-04-18 2009-07-07 Realtek Semiconductor Corp. Context-based adaptive binary arithmetic coding (CABAC) decoding apparatus and decoding method thereof
US20090260397A1 (en) * 2008-04-21 2009-10-22 Cornejo Ivan A Glass Structure Having Sub-Micron and Nano-Size Bandgap Structures and Method For Producing Same
GB2465809B (en) * 2008-12-01 2012-12-12 Advanced Risc Mach Ltd Dynamic selection of suitable codes for variable length coding and decoding
CN102282770B (zh) * 2009-01-23 2014-04-16 日本电信电话株式会社 一种参数选择方法、参数选择装置
JP5274317B2 (ja) * 2009-03-17 2013-08-28 パナソニック株式会社 符号量推定装置、符号量推定方法、符号量推定プログラムおよび、符号量推定集積回路
US9615108B2 (en) 2009-06-29 2017-04-04 Thomson Licensing Methods and apparatus for adaptive probability update for non-coded syntax
US8565811B2 (en) * 2009-08-04 2013-10-22 Microsoft Corporation Software-defined radio using multi-core processor
KR101474756B1 (ko) 2009-08-13 2014-12-19 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
US9753884B2 (en) * 2009-09-30 2017-09-05 Microsoft Technology Licensing, Llc Radio-control board for software-defined radio platform
WO2011052142A1 (ja) 2009-10-29 2011-05-05 パナソニック株式会社 画像符号化方法および画像復号方法
US8627189B2 (en) 2009-12-03 2014-01-07 Microsoft Corporation High performance digital signal processing in software radios
US20110136439A1 (en) * 2009-12-04 2011-06-09 Microsoft Corporation Analyzing Wireless Technologies Based On Software-Defined Radio
CN101770367B (zh) * 2009-12-30 2012-10-31 飞天诚信科技股份有限公司 .net文件压缩方法和装置
CN101794219B (zh) * 2009-12-30 2012-12-12 飞天诚信科技股份有限公司 .net文件的压缩方法和装置
US20110310976A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
PL3751564T3 (pl) * 2010-07-20 2023-03-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Dekoder audio, sposób dekodowania audio i program komputerowy
US20120195366A1 (en) * 2011-02-01 2012-08-02 Mediatek Singapore Pte. Ltd. Method and Apparatus of Adaptive Inter Mode Coding Using Variable Length Codes
WO2012149679A1 (en) 2011-05-04 2012-11-08 Microsoft Corporation Spectrum allocation for base station
US9635374B2 (en) 2011-08-01 2017-04-25 Apple Inc. Systems and methods for coding video data using switchable encoders and decoders
US9130711B2 (en) 2011-11-10 2015-09-08 Microsoft Technology Licensing, Llc Mapping signals from a virtual frequency band to physical frequency bands
US8989286B2 (en) 2011-11-10 2015-03-24 Microsoft Corporation Mapping a transmission stream in a virtual baseband to a physical baseband with equalization
JP6641857B2 (ja) * 2015-10-05 2020-02-05 富士通株式会社 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
US20170180757A1 (en) * 2015-12-18 2017-06-22 Blackberry Limited Binarizer selection for image and video coding
US10869032B1 (en) 2016-11-04 2020-12-15 Amazon Technologies, Inc. Enhanced encoding and decoding of video reference frames
US10484701B1 (en) * 2016-11-08 2019-11-19 Amazon Technologies, Inc. Rendition switch indicator
US10264265B1 (en) 2016-12-05 2019-04-16 Amazon Technologies, Inc. Compression encoding of images
US10681382B1 (en) 2016-12-20 2020-06-09 Amazon Technologies, Inc. Enhanced encoding and decoding of video reference frames
US10944423B2 (en) 2019-03-14 2021-03-09 International Business Machines Corporation Verifying the correctness of a deflate compression accelerator
CN112399181B (zh) * 2019-08-19 2022-08-26 华为技术有限公司 图像编解码的方法、装置和存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287468A (en) * 1987-06-03 1994-02-15 Sony Corporation Method and apparatus for processing information data
US5532694A (en) * 1989-01-13 1996-07-02 Stac Electronics, Inc. Data compression apparatus and method using matching string searching and Huffman encoding
JPH05199422A (ja) * 1992-01-20 1993-08-06 Fujitsu General Ltd 画像伝送装置
JPH06225279A (ja) 1992-10-26 1994-08-12 Sony Corp 符号化方法、復号化方法、符号化装置及び復号化装置
WO1994023428A1 (en) * 1993-03-26 1994-10-13 Sony Corporation Disklike recording medium, apparatus for recording data on disk, and apparatus for reproducing data from disk
US5666161A (en) * 1993-04-26 1997-09-09 Hitachi, Ltd. Method and apparatus for creating less amount of compressd image data from compressed still image data and system for transmitting compressed image data through transmission line
KR970009408B1 (ko) 1994-01-18 1997-06-13 대우전자 주식회사 인터/인트라 테이블 선택 회로
JP3274284B2 (ja) * 1994-08-08 2002-04-15 キヤノン株式会社 符号化装置およびその方法
JP2840589B2 (ja) * 1996-02-09 1998-12-24 富士通株式会社 データ圧縮装置及びデータ復元装置
JP3747525B2 (ja) * 1996-08-28 2006-02-22 株式会社日立製作所 並列データベースシステム検索方法
US5995148A (en) * 1997-02-14 1999-11-30 At&T Corp Video coder having scalar dependent variable length coder
US6493385B1 (en) * 1997-10-23 2002-12-10 Mitsubishi Denki Kabushiki Kaisha Image encoding method, image encoder, image decoding method, and image decoder
CN1173567C (zh) * 2000-02-09 2004-10-27 德国汤姆森-布兰特有限公司 使用加密、解密来保护数据流的方法、编码和解码装置

Also Published As

Publication number Publication date
AU2003221378A1 (en) 2003-10-08
EP1445869A1 (en) 2004-08-11
CN1515078A (zh) 2004-07-21
MXPA03010827A (es) 2004-02-17
US20050156763A1 (en) 2005-07-21
EP1445869B1 (en) 2012-11-28
ES2493616T3 (es) 2014-09-12
EP1445869A4 (en) 2007-03-14
US20060145897A1 (en) 2006-07-06
US7088269B2 (en) 2006-08-08
US20050012647A1 (en) 2005-01-20
HUE030635T2 (en) 2017-06-28
KR20040099101A (ko) 2004-11-26
SI2765708T1 (sl) 2016-11-30
WO2003081784A1 (en) 2003-10-02
ES2724399T3 (es) 2019-09-10
ES2399422T3 (es) 2013-04-01
PT1445869E (pt) 2012-12-17
BR0303661A (pt) 2004-07-13
PT2765708T (pt) 2016-10-25
KR100927510B1 (ko) 2009-11-17
DK2391019T3 (da) 2014-09-01
SI2391019T1 (sl) 2014-09-30
DK1445869T3 (da) 2013-01-02
CA2447840A1 (en) 2003-10-02
CN101692610B (zh) 2014-06-25
HK1196720A1 (zh) 2014-12-19
EP2765708B1 (en) 2016-07-27
EP2765708A1 (en) 2014-08-13
EP2391019A3 (en) 2011-12-28
CN101692610A (zh) 2010-04-07
PT2391019E (pt) 2014-08-29
AU2003221378B2 (en) 2008-07-24
US6954156B2 (en) 2005-10-11
EP2391019B1 (en) 2014-06-25
DK2765708T3 (en) 2016-11-14
US7248190B2 (en) 2007-07-24
HUE044878T2 (hu) 2019-11-28
SI1445869T1 (sl) 2013-01-31
CN100555877C (zh) 2009-10-28
EP3098969B1 (en) 2019-02-20
BRPI0303661B1 (pt) 2016-09-27
EP2391019A2 (en) 2011-11-30
CA2447840C (en) 2011-08-09
AU2003221378B9 (en) 2009-01-08
TR201906516T4 (tr) 2019-05-21
EP3098969A1 (en) 2016-11-30
CY1113502T1 (el) 2016-06-22

Similar Documents

Publication Publication Date Title
ES2599637T3 (es) Sistema de codificación y decodificación de longitud variable y procedimiento de codificación y decodificación de longitud variable
ES2600786T3 (es) Procedimiento de decodificación de vectores de movimiento
ES2644448T3 (es) Procedimiento de codificación de imágenes en movimiento y procedimiento de decodificación de imágenes en movimiento
ES2369065T3 (es) Procedimiento de codificación de imágenes y procedimiento de decodificación de imágenes.
ES2320209T3 (es) Procedimiento de codificacion de imagenes en movimiento y procedimiento de decodificacion de imagenes en movimiento.
ES2382991T3 (es) Procedimiento de codificación de video
JP2010081648A (ja) 動きベクトル符号化方法、装置およびデータ記憶媒体
JP2010259093A (ja) 動画像復号化方法および動画像復号化装置
ES2683241T3 (es) Procedimiento de codificación de imagen y procedimiento de decodificación de imagen
JP2004048711A (ja) 動画像の符号化方法および復号化方法およびデータ記録媒体
JP2004088736A (ja) 動画像の符号化方法、復号化方法、データストリーム、データ記録媒体およびプログラム
JP4197345B2 (ja) 可変長復号化方法、記憶媒体、及び可変長復号化装置
JP4197262B2 (ja) 可変長符号化方法、可変長復号化方法、記憶媒体、可変長符号化装置、可変長復号化装置、及びビットストリーム
JP2006187039A (ja) 動画像符号化方法および動画像復号化方法