ES2399422T3 - 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 - Google Patents

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 Download PDF

Info

Publication number
ES2399422T3
ES2399422T3 ES03710347T ES03710347T ES2399422T3 ES 2399422 T3 ES2399422 T3 ES 2399422T3 ES 03710347 T ES03710347 T ES 03710347T ES 03710347 T ES03710347 T ES 03710347T ES 2399422 T3 ES2399422 T3 ES 2399422T3
Authority
ES
Spain
Prior art keywords
data
coding
variable length
probability table
unit
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
ES03710347T
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 Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Application granted granted Critical
Publication of ES2399422T3 publication Critical patent/ES2399422T3/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 procedimiento de codificación de longitud variable, que codifica una unidad de datos de datos deimagen constituida por una pluralidad de subdatos mientras hace referencia a una tabla de probabilidades, quecomprende: una etapa de ajuste de tablas para ajustar una tabla de probabilidades a valores iniciales en funciónde un valor inicial de un parámetro de cuantificación de la unidad de datos; una etapa de codificación de información para codificar información relacionada con la tabla deprobabilidades inicializada y que indica la tabla de probabilidades; una etapa de obtención de parámetros de codificación para obtener, de la tabla de probabilidades,parámetros de codificación que se van a usar en la codificación de subdatos; una etapa de codificación de subdatos para llevar a cabo una codificación aritmética de los subdatoshaciendo referencia a los parámetros de codificación obtenidos; una etapa de actualización de tablas de probabilidades para actualizar la tabla de probabilidades enfunción de valores de subdatos codificados; y una etapa de colocación de información codificada para colocar la información codificada relacionadacon la tabla de probabilidades inicializada en una posición en la que la información codificada se puede obtenerantes que la unidad de datos codificada.

Description

Procedimiento de codificación de longitud variable, procedimiento de decodificación de longitud variable, soporte de almacenamiento, dispositivito de codificación de longitud variable, dispositivo de decodificación de longitud variable y flujo de bits
CAMPO TÉCNICO
La presente invención se refiere a procedimientos de codificación de longitud variable, a sus correspondientes procedimientos de decodificación de longitud variable, a soportes de almacenamiento que almacenan programas para ejecutar dichos procedimientos en un ordenador, a dispositivos de codificación de longitud variable y a sus correspondientes dispositivos de decodificación de longitud variable. En particular, la presente invención se refiere a procedimientos de codificación adaptativa de longitud variable que optimizan los procedimientos de codificación por medio de datos codificados, a procedimientos de decodificación 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 codificación adaptativa de longitud variable que optimizan los procedimientos de codificación por medio de datos codificados y a dispositivos de decodificación de longitud variable que corresponden a estos dispositivos.
TÉCNICA ANTERIOR
En los últimos años, se han normalizado formatos tales como JPEG, para imágenes fijas, y MPEG, para imágenes en movimiento, como técnicas para comprimir y descomprimir fotogramas gracias a un intento por crear normas internacionales para esquemas de codificación de imágenes.
El esquema de codificación del MPEG (Moving Picture Experts Group – Grupo de Expertos en Fotogramas en Movimiento) está constituido, principalmente, por una unidad de predicción intertrama de compensación de movimiento, una unidad de DCT (transformación por coseno directo) y una unidad de codificación de longitud variable. La unidad de predicción intertrama de compensación 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 cuantificación cuantifica coeficientes de DCT y la unidad de codificación de longitud variable asigna palabras de código a los coeficientes de DCT cuantificados y vectores de movimiento.
Los datos de imagen codificados del esquema de codificación del MPEG tienen una estructura jerárquica de seis capas: secuencia, GOP (Grupo de Fotogramas), fotograma, segmento, macrobloque y bloque. Un fotograma es la unidad de codificación básica que corresponde a un único fotograma y está constituido por una pluralidad de segmentos. Un segmento es una unidad de recuperación de sincronización, un área en forma de banda constituida por una o una pluralidad de macrobloques.
La codificación de longitud variable se refiere a un tipo de codificación entrópica. Dado que existe variación en la probabilidad de valores, tales como coeficientes post-transformación DCT (coeficientes de DCT) y valores de vectores de movimiento, la codificación de longitud variable reduce la cantidad media de datos asignando palabras de código corto a los valores que tienen una probabilidad alta y asignando palabras de código largo a los valores que tiene una probabilidad baja.
Los principales tipos de codificación de longitud variable incluyen codificación Huffman y codificación aritmética.
La codificación Huffman es un procedimiento en el que palabras de código se determinan por medio de un árbol de códigos Huffman en el que cada símbolo es una hoja. Usa una tabla de correspondencia (tabla de códigos) que incluye palabras de código (cadenas de bits) para cada código.
Para mejorar el índice de compresión, la codificación Huffman usa procedimientos, tales como un procedimiento en el que se crea una tabla de códigos que corresponde a propiedades estadísticas de la imagen en movimiento cambiante y un procedimiento en el que se preparan una pluralidad de tablas de códigos y las tablas de códigos se conmutan en respuesta a propiedades estadísticas de los fotogramas. La teoría de la información establece que una tabla de códigos en la que se asignan bits log2 (1/p) a los códigos de probabilidad p tiene el menor volumen medio de datos. Por eso, en el procedimiento de conmutación de una pluralidad de tablas de códigos, la probabilidad se calcula a partir de datos codificados y se selecciona una tabla de códigos de manera que números de bits cercanos a bits log2 (1/p) se asignan a los códigos de la probabilidad p.
La codificación aritmética es una técnica en la que la secuencia de símbolos se proyecta a intervalos [0, 1) en respuesta a la probabilidad y un espacio de probabilidad en una línea de números se expresa en binario con un número adecuado dentro de ese intervalo. En la codificación aritmética, la codificación se lleva a cabo mientras se controlan constantemente las propiedades estadísticas. Específicamente, las tablas de probabilidades se reescriben en respuesta al contenido de los fotogramas y se determinan palabras de código mientas se hace referencia a las tablas de probabilidades. Más específicamente, en la codificación aritmética la probabilidad que se usa en operaciones aritméticas se actualiza sucesivamente por medio de datos codificados, de manera que se asignan bits log2 (1/p) a un código de la probabilidad p.
A diferencia de la codificación Huffman, en la codificación aritmética, se pueden obtener cadenas de bits correspondientes a palabras de código sólo con operaciones aritméticas (suma, resta, multiplicación y división) y, por lo tanto, se puede reducir la cantidad de memoria necesaria para almacenar la tabla de códigos en comparación con la codificación Huffman. Además, se puede responder a cambios de propiedades estadísticas durante la codificación reescribiendo la tabla de probabilidades. No obstante, las operaciones aritméticas, en particular, las operaciones de multiplicación y de división, necesitan gran capacidad aritmética, por lo tanto, un inconveniente es que resulta difícil efectuar operaciones aritméticas en dispositivos con baja capacidad aritmética.
En los procedimientos de codificación adaptativa que se han descrito anteriormente, se puede mejorar la eficacia de compresión en comparación con procedimientos de codificación fija, dado que el procedimiento de codificación se sigue optimizando dinámicamente con datos codificados.
No obstante, cuando el procedimiento de codificación se optimiza dinámicamente con datos codificados surgen los siguientes problemas.
Se llevan a cabo procedimientos de codificación dinámica basados en aprendizaje, por ejemplo, en datos de fotograma detrás de la cabecera, es decir, en cada segmento, macrobloque o bloque. En este caso, la codificación aritmética usa una tabla de probabilidades fija para los valores iniciales correspondientes a cada subunidad para codificación en cada fotograma y la codificación Huffman usa una tabla de códigos fijos de longitud variable como tabla de códigos inicial en cada fotograma. . Dado que los valores iniciales fijos se usan de este modo, la eficacia de compresión de la codificación no se puede considerar favorable hasta que se obtienen tablas de probabilidades y tablas de códigos óptimas con el aprendizaje tras la inicialización. En particular, cuando la cantidad total de datos es reducida, aumenta la proporción de datos necesaria para el aprendizaje y el índice de compresión no es tan alto.
Por otro lado, cuando una parte de los datos codificados que se usa en el aprendizaje se pierde en la línea de transmisión, no se puede llevar a cabo un aprendizaje apropiado en el dispositivo de decodificación y la decodificación resulta imposible. Y, en el caso de datos de imagen, se produce un deterioro de la calidad de los fotogramas debido a errores de transmisión. Si bien, el reajuste frecuente de los resultados del aprendizaje protege contra los errores de transmisión, dicha protección 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 transmisión, que se ha descrito anteriormente, la eficacia de compresión de los procedimientos de codificación adaptativa actuales no mejorará lo suficiente.
DESCRIPCIÓN DE LA INVENCIÓN
Un objetivo de la presente invención es mejorar la eficacia de compresión de los procedimientos de codificación de longitud variable que se usan en áreas tales como compresión de imágenes.
Otro objetivo de la presente invención es decodificar correctamente datos codificados mediante un procedimiento de codificación de longitud variable que tiene mayor eficacia de compresión.
En las reivindicaciones adjuntas se definen medios para lograr estos objetivos según la presente invención.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La Fig. 1 es un diagrama de bloques que muestra la configuración global de un dispositivo de codificación de
longitud variable según una primera forma de realización de la presente invención;
la Fig. 2 es un diagrama de bloques que muestra la configuración global de un dispositivo de codificación de imágenes estándar; la Fig. 3 es un diagrama de flujo que muestra un esquema del funcionamiento de una unidad de codificación de
datos;
la Fig. 4 es un diagrama de flujo que muestra un esquema del funcionamiento de una versión modificada de la unidad de codificación 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 codificación de
longitud variable;
la Fig. 8 muestra estructuras de datos de flujo de bits generadas por medio de un dispositivo de codificación de longitud variable; la Fig. 9 es un diagrama de bloques que muestra la configuración global de un dispositivo de decodificación de
longitud variable según la primera forma de realización de la presente invención;
la Fig. 10 es un diagrama de bloques que muestra la configuración global de un dispositivo de decodificación de imágenes estándar; la Fig. 11 es un diagrama de flujo que muestra un esquema del funcionamiento de una unidad de decodificación de
datos;
la Fig. 12 es un diagrama de bloques que muestra la configuración global de un dispositivo de codificación de longitud variable según una segunda forma de realización de la presente invención; la Fig. 13 muestra las estructuras de una pluralidad de tablas de códigos de longitud variable; la Fig. 14 es un diagrama de flujo que muestra un esquema del funcionamiento de una unidad de codificación de
datos;
la Fig. 15 muestra estructuras de datos de flujo de bits generadas por medio de un dispositivo de codificación de longitud variable; la Fig. 16 muestra estructuras de datos de flujo de bits generadas por medio de un dispositivo de codificación de
longitud variable;
la Fig. 17 es un diagrama de bloques que muestra la configuración global de un dispositivo de decodificación de longitud variable según la segunda forma de realización de la presente invención; la Fig. 18 es un diagrama de flujo que muestra un esquema del funcionamiento de una unidad de decodificación de
datos; la Fig. 19 ilustra una situación en la que la presente invención se ejecuta en un sistema informático usando un disco
flexible en el que están almacenados el procedimiento de codificación de longitud variable o el procedimiento de decodificación de longitud variable según la primera o la segunda forma de realización; la Fig. 20 es un diagrama de bloques que muestra toda la configuración de un sistema de suministro de contenidos; la Fig. 21 muestra un ejemplo de un teléfono móvil que usa un procedimiento de codificación de imágenes en
movimiento y un procedimiento de decodificación de imágenes en movimiento;
la Fig. 22 es un diagrama de bloques de un teléfono móvil; y
la Fig. 23 muestra un ejemplo de un sistema para emisión digital.
MEJOR MODO DE LLEVAR A CABO LA INVENCIÓN
1. Primera forma de realización
(1) Configuración del dispositivo de codificación de longitud variable
[1] Dispositivo de codificación de longitud variable según la presente invención
La Fig. 1 es un diagrama de bloques de la configuración global de un dispositivo de codificación de longitud variable 1 según una forma de realización de la presente invención. El dispositivo de codificación de longitud variable 1 es un dispositivo para llevar a cabo una codificación de longitud variable en datos introducidos y crear flujos de bits. En particular, el dispositivo de codificación de longitud variable 1 se caracteriza porque emplea codificación aritmética como procedimiento de codificación principal. Cabe señalar que la codificación aritmética se refiere a un procedimiento de codificación que aumenta la eficacia de codificación actualizando dinámicamente una tabla de probabilidades en respuesta a la probabilidad de símbolos que se producen realmente.
Para el dispositivo de codificación de longitud variable 1 son posibles varios tipos de datos de entrada, sin embargo, esta forma de realización se describirá como uno en el que se introducen datos de imagen. Es decir, el dispositivo de codificación de longitud variable 1 tiene una función que lleva a cabo una codificación entrópica en señales 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 codificación de longitud variable 1 son datos de imagen, tales como coeficientes de DCT cuantificados y vectores de movimiento.
El dispositivo de codificación de longitud variable 1 incluye una unidad de codificación de datos 2 y un codificador de cabeceras 3.
La unidad de codificación de datos 2 es un dispositivo para llevar a cabo una codificación aritmética en datos distintos de cabeceras para cada unidad de datos y está provista de un codificador aritmético 7, una unidad de actualización de tablas de probabilidades 8 y una unidad de inicialización 9. Cabe señalar 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. Además, cada unidad de datos está 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 aritmético 7 es un dispositivo para enviar los datos generados a la unidad de actualización de tablas de probabilidades 8 una vez introducidos los datos y para codificar los datos en función de las tablas de probabilidades, es decir, las palabras de código, que se envían desde la unidad de actualización de tablas de probabilidades 8.
La unidad de actualización de tablas de probabilidades 8 tiene una función que actualiza las tablas de probabilidades y es un dispositivo para enviar las tablas de probabilidades, es decir, las palabras de código, al codificador aritmético 7 mientras se actualizan las tablas de probabilidades en respuesta a la probabilidad de los datos generados que se envían desde el codificador aritmético 7.
La unidad de inicialización 9 es un dispositivo para enviar instrucciones de inicialización de tablas de probabilidades a la unidad de actualización de tablas de probabilidades 8.
El codificador de cabeceras 3 es un dispositivo para codificar datos de cabecera con un procedimiento de codificación fija. Un procedimiento de codificación fija se refiere a un procedimiento en el que la palabra de código correspondiente a cada código no cambia durante la codificación e incluye procedimientos de codificación de longitud fija y procedimientos de codificación fija de longitud variable. Dado que se usa un procedimiento de codificación fija, los datos de cabecera se pueden codificar fácilmente.
Por otro lado, un procedimiento de codificación en el que las palabras de código que corresponden a cada cambio de código se denomina un procedimiento de codificación adaptativa. Además, dentro de los procedimientos de codificación adaptativa, existen procedimientos de codificación estática, en los que simplemente se conmutan las tablas que indican la relación entre códigos y las palabras de códigos que corresponden a los códigos, y de codificación dinámica, en los que se actualizan sucesivamente las palabras de código propiamente dichas. Es decir, esto significa que un procedimiento de codificación estática no es un procedimiento de codificación dinámica (un procedimiento de codificación, tal como codificación aritmética, en el que la relación correspondiente entre los códigos y las palabras de código que corresponden a dichos códigos varía dinámicamente). Por consiguiente, el índice de compresión se puede mejorar más con un procedimiento de codificación dinámica que con un procedimiento de codificación estática.
El dispositivo de codificación de longitud variable 1 está provisto además 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 envían desde la unidad de actualización de tablas de probabilidades 8 con un procedimiento de codificación fija. Dado que usa un procedimiento de codificación fija, las tablas de probabilidades se pueden codificar fácilmente.
Un multiplexor 4 es un dispositivo para multiplexar los datos de cabecera codificados que se envían desde el codificador de cabeceras 3, los datos codificaos distintos de cabeceras que se envían desde el codificador aritmético 7 y los datos de tablas de probabilidades codificados que se envían desde el codificador de tablas de probabilidades 6, así como para generar cadenas de códigos (flujos de bits) y enviar las mismas a una línea de transmisión.
[2] Dispositivo de codificación de imágenes estándar
En este caso, se usará el diagrama de bloques de la Fig. 2 para ilustrar una configuración de un dispositivo de codificación de imágenes estándar 100. El dispositivo de codificación de imágenes estándar 100 incluye una unidad de estimación / compensación de movimiento (ME / MC) 102, un restador 103, una unidad de codificación de conversión 104, una unidad de decodificación de conversión 105, un sumador 106 y una unidad de codificación entrópica 107. Cabe señalar que la unidad de codificación de datos 2, que se ha mencionado anteriormente, corresponde a la unidad de codificación entrópica 107.
La unidad de estimación / compensación 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 estimación / compensación de movimiento 102 incluye una unidad de estimación de movimiento (ME) 111, una unidad de compensación de movimiento (MC) 112 y una memoria de fotogramas 113.
La unidad de estimación 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 imágenes reconstruidas en la memoria de fotogramas 113. La unidad de estimación de movimiento 111 envía los vectores de movimiento MV a la unidad de compensación de movimiento 112, a la memoria de fotogramas 113 y a la unidad de codificación entrópica 107. En función de los vectores de movimiento MV de la unidad de estimación de movimiento 111, la unidad de compensación 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 envía 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 estimación de movimiento 111 y con la unidad de compensación de movimiento 112. Cabe señalar que en la codificación intrafotogramas, el valor de píxel del fotograma de referencia de movimiento compensado se considera 0, y el restador 103 y el sumador 106 envían los datos de entrada tal cual, sin restar ni sumar.
El restador 103 determina valores diferenciales entre datos objetivo del fotograma de entrada PicIn y un fotograma de referencia de la unidad de compensación de movimiento 112 y envía datos diferenciales correspondientes a esos valores diferenciales a la unidad de codificación de conversión 104.
La unidad de codificación de conversión 104 ejecuta un proceso de compresión de datos en los datos diferenciales del restador 103 y envía datos comprimidos. La unidad de codificación de conversión 104 incluye una unidad de transformación ortogonal 114 y una unidad de cuantificación 115. La unidad de transformación ortogonal 114 realiza un proceso de transformación por coseno directo (proceso de DCT) en los datos diferenciales del restador 103 y envía esos datos a la unidad de cuantificación 115. El proceso de DCT es un tipo de proceso de transformación ortogonal en el que los datos del dominio espacial se convierten en datos del dominio frecuencial. La unidad de cuantificación 115 cuantifica los datos de DCT de la unidad de transformación ortogonal 114 con una etapa de cuantificación y envía coeficientes de cuantificación a la unidad de decodificación de conversión 105 y a la unidad de codificación entrópica 107.
La unidad de decodificación de conversión 105 lleva a cabo un proceso de expansión de datos en la salida de la unidad de codificación de conversión 104 y envía datos expandidos. La unidad de decodificación de conversión 105 incluye una unidad de cuantificación inversa 116 y una unidad de transformación ortogonal inversa 117. La unidad de cuantificación inversa 116 cuantifica inversamente la salida de la unidad de codificación de conversión 104 con la etapa de cuantificación que se ha descrito anteriormente y la envía a la unidad de transformación ortogonal inversa
117. La unidad de transformación ortogonal inversa 117 realiza un proceso de transformación inversa por coseno directo (proceso de IDCT) en la salida de la unidad de cuantificación inversa 116 y envía datos expandidos como señales 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 codificación de predicción de compensación de movimiento intertramas, el sumador 106 envía los datos de fotograma obtenidos añadiendo las señales residuales predictivas de la unidad de decodificación de conversión 105 y los fotogramas de referencia de la unidad de compensación de movimiento 112 a la memoria de fotogramas 113 como fotogramas reconstruidos.
La unidad de codificación entrópica 107 realiza un codificación entrópica en los datos cuantificados post-DCT de la unidad de codificación de DCT 104. La codificación entrópica se refiere a una codificación en la que una cadena de bits de “0”s y “1”s se convierte en una cadena de bits más corta usando propiedades estadísticas de la cadena de bits.
(2) Funcionamiento del dispositivo de codificación de longitud variable
[1] Funcionamiento de la unidad de codificación 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 codificación de datos 2 y del codificador de tablas de probabilidades 6.
En la etapa S1, la unidad de inicialización 9 envía una instrucción de inicialización a la unidad de actualización de tablas de probabilidades 8 y la unidad de actualización de tablas de probabilidades 8 ajusta una tabla de probabilidades correspondiente a cada unidad de datos a valores iniciales. En dicha operación de inicialización, la unidad de inicialización 9 y la unidad de actualización de tablas de probabilidades 8 llevan a cabo una inicialización de tablas de probabilidades en función de datos de inicialización de la cabecera. Datos que son comunes a todas las unidades de datos se pueden usar como datos de inicialización en las tablas de probabilidades. Cuando la unidad de datos es un fotograma, ejemplos de datos comunes eficaces para inicialización incluyen tipos de codificación de imágenes (que distinguen entre fotogramas intracodificados, fotogramas codificados predictivos y fotogramas codificados bipredictivos) y valores iniciales de parámetros de cuantificación de fotogramas. Cabe señalar que datos comunes sin mucha relación con la inicialización incluyen parámetros, tales como el orden de codificación de imágenes, el orden de visualización de fotogramas, vectores de movimiento y tamaño de imagen. Cuando la unidad de datos es un segmento, ejemplos incluyen tipos de codificación de segmentos (que distinguen entre segmentos intracodificados, segmentos codificados predictivos y segmentos bipredictivos) y valores iniciales de parámetros de cuantificación de segmentos.
En la etapa S2, el codificador aritmético 7 y la unidad de actualización de tablas de probabilidades 8 cooperan para llevar a cabo una codificación aritmética en los subdatos. Más específicamente, en función de la tabla de probabilidades enviada desde la unidad de actualización de tablas de probabilidades 8, el codificador aritmético 7 obtiene probabilidades que se usan en la codificación de subdatos de la tabla de probabilidades y hace referencia a esas probabilidades para codificar los subdatos. Específicamente, 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 actualización de tablas de probabilidades 8 de acuerdo con los datos generados. En esta forma de realización, la tabla de probabilidades actualizada se usa cuando se lleva a cabo una codificación aritmética en los subdatos siguientes.
En la etapa S4, se determina si está o no terminada la codificación de todos los subdatos. Si se determina que la codificación de todos los subdatos no está terminada, el procedimiento vuelve a la etapa S2 y se repite la operación 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 a la etapa S6 y si no se va a codificar, se salta la etapa S6. El codificador aritmético 7 genera un indicador de valores iniciales que sirve para identificar el resultado de la determinación y lo envía, junto con los datos codificados, al multiplexor 4. Cabe señalar 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 proporción de la cantidad de datos necesaria para el aprendizaje respecto a la 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 óptima obtenida mediante aprendizaje.
En la etapa S6, la tabla de probabilidades de la unidad de actualización de tablas de probabilidades 8 se codifica por medio del codificador de tablas de probabilidades 6.
La eficacia de compresión mejora con el procedimiento de codificación que se ha descrito anteriormente porque, excepto para la primera codificación de subdatos, la tabla de probabilidades se actualiza en función 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 codificación aritmética de los subdatos anteriores, la codificación se puede lograr en tiempo real y aumentará la velocidad de codificación. Además, se puede obtener una eficacia de compresión favorable debido a la correlación espacial y temporal de los fotogramas.
Cabe señalar que la codificación aritmética se puede llevar a cabo usando una tabla de probabilidades obtenida llevando a cabo una codificación aritmética de los valores iniciales de la unidad de datos. En este caso, hay una eficacia de compresión alta cuando existe una gran diferencia entre el contenido de la unidad de datos y la unidad de datos anterior.
El diagrama de flujo que se muestra en la Fig. 4 es una modificación del diagrama de flujo que se muestra en la Fig. 3 y una situación en la que sólo se codifica una parte de la tabla de probabilidades cuando la tabla de códigos de la unidad de actualización de tablas de probabilidades 8 se codifica por medio del codificador de tablas de probabilidades 6 en la etapa S6. En esta situación, se puede reducir la cantidad de códigos y, además, empleando un procedimiento en el que sólo 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 decodificación 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 sólo se codifican las partes importantes de la tabla de probabilidades, inicializando con valores iniciales las partes que no se codifican, todos los índices de la tabla de probabilidades se pueden ajustar a valores específicos cuando se especifica la tabla de probabilidades para codificación sin contar con valores de la tabla de probabilidades hasta ese momento y se pueden equiparar las tablas de probabilidades del dispositivo de codificación y del dispositivo de decodificación.
[2] Funcionamiento de la unidad de codificación de cabeceras
El codificador de cabeceras 3 codifica los datos de cabecera introducidos y envía los datos de cabecera codificados al multiplexor 4.
[3] Funcionamiento del multiplexor
El multiplexor 4 genera un flujo de bits a partir de los datos que se envían desde el codificador aritmético 7, el codificador de cabeceras 3 y el codificador de tablas de probabilidades 6 y lo envía a una línea de transmisión.
La Fig. 5 muestra un ejemplo de la estructura de un flujo de datos de fotograma. Como se muestra en la Fig. 5, el flujo está constituido por áreas de datos comunes, tales como una cabecera, y áreas de GOP (Grupo de Fotogramas). Las áreas de GOP están constituidas por áreas de datos comunes, tales como una cabecera y similar, y una pluralidad de áreas de fotogramas. Las áreas de fotogramas están constituidas por áreas de datos comunes, tales como una cabecera y similar, y una pluralidad de áreas de datos de segmentos. Las áreas de datos de segmentos están constituidas por áreas de datos comunes, tales como una cabecera y similar, y una pluralidad de áreas de datos de macrobloques.
Además, el flujo no tiene que ser un flujo de bits continuo. Cuando se transmite en paquetes (que son unidades de datos divididas con precisión), 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 único flujo de bits como el que se muestra en la Fig. 5. No obstante, en el caso de paquetes, aunque la secuencia de transmisión 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 único 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 básicamente la misma estructura que la estructura del flujo que se muestra en la Fig. 5 y, por lo tanto, a continuación sólo se describirán los puntos de diferencia. En la estructura de este flujo, los GOPs y los fotogramas no tienen cabeceras. Sólo los segmentos tienen cabeceras. Los GOPs y los fotogramas tienen varios parámetros como datos comunes en sus partes principales. Los parámetros corresponden a una cabecera, pero la diferencia es que los parámetros también son efectivos para fotogramas posteriores siempre que los parámetros no se actualicen. Por ejemplo, esto significa que los parámetros correspondientes a una cabecera de fotograma son la cabecera de fotograma de todos los fotogramas hasta que se transmiten parámetros correspondientes a la cabecera de fotograma siguiente.
La Fig. 7 muestra la estructura de datos de un flujo de bits que se envía 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 está 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 está constituida, principalmente, por los datos comunes correspondientes a cada segmento (por ejemplo, el tipo de codificación de imágenes [que distingue entre fotogramas intracodificados y fotogramas codificados predictivos] y parámetros, tales como números, que indican el orden de codificación de fotogramas o el orden de visualización).
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”.
Además, 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 envían 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 están 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 aritmético 7 y datos de tablas de probabilidades codificados, codificados por medio del codificador de tablas de probabilidades 6. Más 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 están 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 envía desde el multiplexor 4 cuando la unidad de datos es un segmento de datos de imagen. Por lo general, un segmento está 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 está constituida, principalmente, por los datos comunes correspondientes a cada segmento (parámetros, tales como un código de inicio y una escala de cuantificación). Además, 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”.
Además, 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 envían 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 están 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 aritmético 7 y datos de tablas de probabilidades codificados, codificados por medio del codificador de tablas de probabilidades 6. Más 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 están el indicador de valores iniciales y los datos codificados de tablas de probabilidad, en ese orden.
Cabe señalar que en esta forma de realización la tabla de probabilidades propiamente dicha se codificó e insertó en la cabecera como datos relacionados con las tablas de probabilidades, si bien, en lugar de eso, se puede codificar e insertar en la cabecera información que indique la tabla de probabilidades obtenida (por ejemplo, una fórmula, un indicador que indique la tabla de probabilidades o información que indique una combinación de éstos). En este caso, se puede reducir la cantidad de codificación porque no se codifica la tabla de probabilidades propiamente dicha.
Como ejemplo adicional de información que indica la tabla de probabilidades obtenida, se puede usar una parte de datos comunes de la cabecera. En este caso, se puede reducir aún más la cantidad de codificación porque esos datos también 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 codificación de imágenes (que distinguen entre fotogramas intracodificados, fotogramas codificados predictivos y fotogramas bipredictivos) y valores iniciales de parámetros de cuantificación de fotogramas. Cabe señalar que datos comunes sin mucha relación con la inicialización incluyen parámetros, tales como el orden de codificación de imágenes, el orden de visualización de fotogramas, vectores de movimiento y tamaño de imagen. Cuando la unidad de datos es un segmento, ejemplos incluyen tipos de codificación de segmentos (que distinguen entre segmentos intracodificados, segmentos codificados predictivos y segmentos bipredictivos) y valores iniciales de parámetros de cuantificación de segmentos. Además, se puede omitir el indicador de valores iniciales asegurándose de que siempre se actualicen los valores iniciales, es decir, asegurándose de que siempre se envíen valores iniciales.
(3) Configuración del dispositivo de decodificación de longitud variable
[1] Dispositivo de decodificación de longitud variable según la presente invención
La Fig. 9 es un diagrama de bloques que muestra la configuración global de un dispositivo de decodificación de longitud variable 11 según una forma de realización de la presente invención. El dispositivo de decodificación de longitud variable 11 es, por ejemplo, un dispositivo para decodificar datos que se han codificado por medio del dispositivo de codificación de longitud variable 1. Cuando el objeto son datos de imagen, el dispositivo de decodificación de longitud variable 11 tiene las funciones de llevar a cabo una decodificación entrópica de datos y obtener datos de imagen transformados.
El dispositivo de decodificación de longitud variable 11 está, principalmente, provisto de una unidad de decodificación de datos 12 y una unidad de decodificación de cabeceras 13.
La unidad de decodificación de datos 12 es un dispositivo para llevar a cabo una decodificación aritmética en datos distintos de la cabecera de cada unidad de datos y está provista de un decodificador aritmético 17, una unidad de actualización de tablas de probabilidades 18 y una unidad de inicialización 19. Cabe señalar 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 aritmético 17 es un dispositivo para enviar datos generados a la unidad de actualización de tablas de probabilidades 18 una vez introducidos los datos codificados y para decodificar datos codificados en función de los datos de tablas de probabilidades, es decir, palabras de código, que se envían desde la unidad de actualización de tablas de probabilidades 18.
La unidad de actualización de tablas de probabilidades 18 tiene la función de actualizar las tablas de probabilidades y es un dispositivo para enviar las tablas de probabilidades, es decir, las palabras de código, al decodificador aritmético 17 mientras se actualiza la tabla de probabilidades en respuesta a la probabilidad de los datos generados que se envían desde el decodificador aritmético 17.
La unidad de inicialización 19 es un dispositivo para enviar una instrucción de inicialización de la tabla de probabilidades a la unidad de actualización de tablas de probabilidades 18.
El decodificador de cabeceras 13 es un dispositivo para decodificar datos de cabecera codificados con un procedimiento de decodificación fija.
El dispositivo de decodificación de longitud variable 11 está provisto, además, 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 decodificación 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 decodificación de imágenes estándar
En este caso, se usará el diagrama de bloques de la Fig. 10 para ilustrar una configuración interna de un dispositivo de decodificación de imágenes estándar 200. El dispositivo de decodificación de imágenes 200 incluye una unida de generación de datos de predicción 202, una unidad de decodificación de conversión 204, un sumador 206 y una unidad de decodificación entrópica 207. Cabe señalar que la unidad de decodificación de datos 12 que se ha mencionado anteriormente corresponde a la unidad de decodificación entrópica 207.
La unidad de decodificación entrópica 207 realiza una decodificación entrópica de los datos de flujo que se introducen, en función de la tabla de probabilidades, y envía esos datos a la unidad de decodificación de conversión 204 y a la unidad de generación de datos de predicción 202. La decodificación entrópica es un procedimiento en la dirección inversa de la codificación entrópica y, en esta forma de realización, se refiere a decodificación aritmética.
La unidad de generación de datos de predicción 202 incluye una unidad de compensación 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 función de los vectores de movimiento MV decodificados por medio de la unidad de decodificación entrópica 207, la unidad de compensación de movimiento 212 genera datos de fotograma como datos de predicción (compensación de movimiento) correspondientes a los vectores de movimiento MV de los fotogramas de referencia almacenados en la memoria de fotogramas 213 y los envía al sumador 206. Cabe señalar que cuando se codifican fotogramas intracodificados, los valores de píxel del fotograma de referencia de movimiento compensado se consideran 0 y el sumador 206 envía los datos de entrada tal cual, sin llevar a cabo sumas. Además, los vectores de movimiento decodificados se almacenan en la memoria de fotogramas 213.
La unidad de decodificación de conversión 204 realiza un proceso de expansión de datos en la salida de la unidad de decodificación entrópica 207 y envía datos expandidos. La unidad de decodificación de conversión 204 incluye una unidad de cuantificación inversa 214 y una unidad de transformación ortogonal inversa 215. La unidad de cuantificación inversa 214 cuantifica inversamente la salida de la unidad de decodificación entrópica 207 y la envía a la unidad de transformación ortogonal inversa 215. La unidad de transformación ortogonal inversa 215 realiza un proceso de transformación inversa por coseno directo (proceso de IDCT) en la salida de la unidad de cuantificación inversa 214 y envía 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 envía, como fotogramas de salida, los datos de fotograma obtenidos añadiendo los datos de fotograma de la unidad de codificación de conversión 204 y los datos de fotograma con el fotograma de estimación de la unidad de compensación de movimiento 212 sumado y, además, envía el resultado a la memoria de fotogramas 213.
(4) Funcionamiento del dispositivo de decodificación de longitud variable
[1] Funcionamiento del demultiplexor
El demultiplexor 14 demultiplexa un flujo de bits, envía datos de cabecera codificados al decodificador de cabeceras 13, envía datos codificados distintos de cabeceras al decodificador aritmético 17 y envía datos de tablas de probabilidades codificados al decodificador de tablas de probabilidades 16 cuando existen datos de tablas de probabilidades codificados. Cabe señalar que el decodificador de cabeceras 13 envía el indicador de valores iniciales decodificados de la cabecera a la unidad de inicialización 19.
[2] Funcionamiento del decodificador de cabeceras
El decodificador de cabeceras 13 decodifica los datos de cabecera codificados que se envían desde el demultiplexor 14 y envía datos de cabecera.
[3] Funcionamiento de la unidad de decodificación 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 decodificación de datos 12 y del decodificador de tablas de probabilidades 16.
En la etapa S21, la unidad de inicialización 19 inicializa la unidad de actualización de tablas de probabilidades 18 a fin de ajustar una tabla de probabilidades a valores iniciales.
En la etapa S22, en función del indicador de valores iniciales insertado en la cabecera, la unidad de inicialización 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 actualización de tablas de probabilidades 18 actualiza la tabla de probabilidades con la tabla de probabilidades que se envía 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 sólo 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 decodificación apropiada en una operación de decodificación (que se describirá más adelante). Cabe señalar que cuando sólo se codifica una parte de la tabla de códigos, la tabla de probabilidades que no se codifica se inicializa con los mismos valores que en la etapa S21.
Cabe señalar que cuando se codifica información que indica la tabla de probabilidades y no la tabla de probabilidades propiamente dicha, primero se decodifica esa información y, a continuación, la unidad de actualización de tablas de probabilidades 18 selecciona la tabla de probabilidades indicada por esos datos.
En la etapa S24, el decodificador aritmético 17 y la unidad de actualización de tablas de probabilidades 18 cooperan para llevar a cabo una decodificación aritmética en subdatos. Específicamente, en función de la tabla de probabilidades de la unidad de actualización de tablas de probabilidades 18, el decodificador aritmético 17 decodifica los subdatos codificados y envía datos. Cuando la unidad de datos es un fotograma, por ejemplo, se decodifican los segmentos. En la etapa S26, los datos generados del decodificador aritmético 17 se envían a la unidad de actualización de tablas de probabilidades 18 y la unidad de actualización 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 decodificación de los subdatos siguientes.
En la etapa S25, se determina si está terminada o no la decodificación de todos los subdatos. Si se determina que la decodificación de todos los subdatos no está terminada, el procedimiento vuelve a la etapa S24 y se repite la operación que se ha descrito anteriormente.
(5) Eficacia del procedimiento de codificación y del procedimiento de decodificación que se han descrito anteriormente
[1] La eficacia de compresión mejora con los procedimientos de codificación y de decodificación que se han descrito anteriormente porque los subdatos se codifican en función de la tabla de probabilidades obtenida mediante codificación aritmética. Es decir, con estos procedimientos de codificación y decodificación, se puede aumentar la eficacia de compresión debido a la alta eficacia de aprendizaje, incluso si la cantidad total de datos es reducida y, por lo tanto, la proporción de la cantidad de datos codificados que sería necesaria con procedimientos convencionales hasta que se obtiene una codificación óptima mediante aprendizaje es considerable.
Además, 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 decodificación 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 codificación y decodificación 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 debería usar en el aprendizaje se pierde en un error de transmisión y la misma tabla de probabilidades que la del momento de la codificación no se puede reproducir durante la decodificación, un estado en el que las imágenes no son reproducibles no dura más 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 codificación de la tabla de probabilidades es baja y cuando una parte de los datos codificados que se debería usar en el aprendizaje se pierde en un error de transmisión y la tabla de probabilidades no se puede reproducir, se crea una condición en la que las imágenes no son reproducibles durante más de varios segundos. En segundo lugar, no habrá 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 inicialización será excesiva.
[3] En los procedimientos de codificación y decodificación que se han descrito anteriormente, con una codificación aritmética se logra una eficacia de compresión alta para la mayor parte de los datos de imagen. A diferencia de esto, las cabeceras, que son datos comunes, se codifican simple y estáticamente con un procedimiento de codificación fija. Más en particular, partes de cabecera originales de la cabecera se codifican con un procedimiento de codificación fija y los valores iniciales de tablas de probabilidades insertados también se codifican con un procedimiento de codificación fija. Dado que la eficacia de compresión 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 codificación fija, por cuanto se refiere a la eficacia de compresión global.
2. Segunda forma de realización
(1) Configuración del dispositivo de codificación de longitud variable
La Fig. 12 es un diagrama de bloques de la configuración global de un dispositivo de codificación de longitud variable 21 según una forma de realización de la presente invención. El dispositivo de codificación de longitud variable 21 es un dispositivo para llevar a cabo una codificación de longitud variable en datos de entrada y crear flujos de bits. En particular, el dispositivo de codificación de longitud variable 21 se caracteriza porque conmuta entre una pluralidad de tablas de códigos de longitud variable como procedimiento principal de codificación. Un ejemplo típico de codificación de longitud variable es la codificación Huffman y en la siguiente explicación se usará la codificación Huffman como ejemplo.
Para el dispositivo de codificación de longitud variable 21 son posibles varios tipos de datos de entrada, sin embargo, esta forma de realización se describirá como uno en el que se introducen datos de imagen. Es decir, el dispositivo de codificación de longitud variable 21 tiene una función que lleva a cabo una codificación entrópica en señales 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 codificación de longitud variable 21 son coeficientes de DCT cuantificados y vectores de movimiento.
El dispositivo de codificación de longitud variable 21 incluye una unidad de codificación de datos 22 y un codificador de cabeceras 23.
La unidad de codificación de datos 22 es un dispositivo para llevar a cabo una codificación Huffman de datos distintos de cabeceras para cada unidad de datos e incluye un codificador de longitud variable 27, una unidad de selección de tablas de códigos 28 y una unidad de inicialización 29. Cabe señalar que la unidad de datos está 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. Además, la unidad de codificación de datos 22 corresponde a la unidad de codificación entrópica 107 del dispositivo de codificación de imágenes estándar 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 selección de tablas de códigos 28 una vez introducidos los datos y para codificar datos en función de las tablas de códigos de longitud variables 30, es decir, las palabras de código, que se conmutan por medio de la unidad de selección de tablas de códigos 28.
La unidad de selección de tablas de códigos 28 es un dispositivo para enviar una señal de selección de tablas de códigos 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 códigos de longitud variable 30 que se usan cuando el codificador de longitud variable 27 codifica datos de acuerdo con la señal de selección de tablas de códigos que se envía desde la unidad de selección de tablas de códigos 28.
La unidad de inicialización 29 es un dispositivo para enviar una instrucción de inicialización de la señal de selección de tablas de códigos a la unidad de selección de tablas de códigos 28.
La fig. 13 muestra ejemplos específicos de tablas de códigos de longitud variable 30. Cada una de las tablas de códigos de longitud variable 30a a 30c está constituida por una combinación 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 códigos de longitud variable 30a a 30c (desde dato 1 de la tabla de códigos 30a, desde dato 2 de la tabla de códigos 30b y desde dato 4 de la tabla de códigos 30c). Además, se emplean cadenas de bits diferentes en las partes comunes (dato 0 de la tabla de códigos 30a, dato 0 y 1 de la tabla de códigos 30b, dato 0 a 3 de la tabla de códigos 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 códigos 30a, si datos con una probabilidad alta se pueden procesar con dos bits se selecciona la tabla de códigos 30b y si códigos con una probabilidad alta se pueden procesar con tres bits se selecciona la tabla de códigos 30c. A diferencia de esto, los códigos 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 códigos de longitud variable diferentes con una pequeña cantidad de datos para reducir la memoria y, además, la operación de codificación resultará más fácil.
El codificador de cabeceras 23 es un dispositivo para codificar datos de cabecera con un procedimiento de codificación fija.
El dispositivo de codificación de longitud variable 21 está provisto, además, de un codificador de señales de selección 26. El codificador de señales de selección 26 es un dispositivo para codificar las señales de selección de tablas de códigos que se envían desde la unidad de selección de tablas de códigos 28 con un procedimiento de codificación fija.
Un multiplexor 24 es un dispositivo para multiplexar los datos de cabecera codificados que se envían desde el codificador de cabeceras 23, los datos codificados distintos de cabeceras que se envían desde el codificador de longitud variable 27 y los datos de señales de selección codificados que se envían desde el codificador de señales de selección 26 y generar cadenas de bits (flujos de bits) y enviarlas a una línea de transmisión.
(2) Funcionamiento del dispositivo de codificación de longitud variable
[1] Funcionamiento de la unidad de codificación de datos y del dispositivo de codificación de señales de selección
La Fig. 14 es un diagrama de flujo que muestra un esquema del funcionamiento de la unidad de codificación de datos 22 y del codificador de señales de selección 26.
En la etapa S31, la unidad de inicialización 29 envía una instrucción de inicialización a la unidad de selección de tablas de códigos 28 y la unidad de selección de tablas de códigos 28 envía una señal de selección de tablas de códigos al conmutador 25. El resultado de esto es que el conmutador 25 selecciona una tabla de códigos de longitud variable 30 como valores iniciales de la codificación de la unidad de datos. En esta operación de inicialización, la unidad de inicialización 29 y la unidad de selección de tablas de códigos 28 seleccionan una tabla de códigos de longitud variable 30 en función de datos de inicialización de la cabecera. Cabe señalar que, en la Fig. 12, se omite la línea por la que los datos de cabecera se envían a la unidad de inicialización 29 y a la unidad de selección de tablas de códigos 28.
En la etapa S32, el codificador de longitud variable 27 y la unidad de selección de tablas de códigos 28 cooperan para llevar a cabo una codificación Huffman de subdatos. Más en particular, la unidad de selección de tablas de códigos 28 envía una señal de selección de tablas de códigos al conmutador 25 en función de datos generados hasta ese momento. En función de la señal de selección de tablas de códigos, el conmutador 25 conmuta las tablas de códigos de longitud variable 30 y el codificador de longitud variable 27 codifica los subdatos con las palabras de código de la tabla de códigos de longitud variable 30 seleccionada. Además, cada unidad de datos está constituida por una pluralidad de conjuntos de subdatos. Específicamente, 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 envían a la unidad de selección de tablas de códigos 28 y la unidad de selección de tablas de códigos 28 actualiza la frecuencia de generación de subdatos, que indica qué tabla de códigos se debería seleccionar cuando el conmutador 25 vuelva a llevar a cabo una conmutación. En esta forma de realización, se usa esta tabla de códigos cuando se lleva a cabo una codificación de longitud variable en los subdatos siguientes.
En la etapa S34, se determina si está terminada o no la codificación de todos los subdatos. Si se determina que la codificación de todos los subdatos no está terminada, el procedimiento vuelve a la etapa S32 y se repite la operación que se ha descrito anteriormente.
En la etapa S35, se determina si codificar o no la información que indica la tabla de códigos de longitud variable 30 que se usa para los valores iniciales (es decir, las señales de selección de tablas de códigos). Si se va a codificar esta información, el procedimiento pasa a la etapa S36 y si no se va a codificar esta información, se salta la etapa S36. Cabe señalar que la tabla de códigos 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 códigos de longitud variable siguiente es lo suficientemente grande (es decir, la proporción 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 códigos de longitud variable que se usa como valores iniciales es coherente con la tabla de códigos óptima seleccionada mediante aprendizaje. El codificador de longitud variable 27 genera un indicador de valores iniciales para identificar el resultado de la determinación y lo envía, junto con los datos codificados, al multiplexor 24.
En la etapa S36, las señales de selección de tablas de códigos, por las que la unidad de selección de tablas de códigos 28 indica la tabla de códigos de longitud variable correspondiente, se envían al codificador de señales de selección 26.
La eficacia de compresión para los subdatos mejora con el procedimiento de codificación que se ha descrito anteriormente porque, excepto para la primera codificación de subdatos, la tabla de códigos de longitud variable se selecciona en función de los valores de subdatos codificados. En particular, dado que la tabla de códigos de longitud variable que se usa para codificar subdatos es una tabla de códigos de longitud variable seleccionada mediante codificación Huffman de los subdatos anteriores, la codificación se puede lograr en tiempo real y aumentará la velocidad de codificación. Además, se puede obtener una eficacia de compresión favorable con una correlación espacial y temporal de los fotogramas.
[2] Funcionamiento de la unidad de codificación de cabeceras
El codificador de cabeceras 23 codifica los datos de cabecera introducidos y los envía al multiplexor 24.
[3] Funcionamiento del multiplexor
El multiplexor 24 genera un flujo de bits a partir de los datos que se envían desde el codificador de longitud variable 27, el codificador de cabeceras 23 y el codificador de señales de selección 26 y lo envía a una línea de transmisión.
La Fig. 15 muestra estructuras de datos de flujo de bits que se envían desde el multiplexor 24 cuando la unidad de datos es un fotograma de datos de imagen. Por lo general, un fotograma está 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 codificación de imágenes [que distingue entre fotogramas intracodificados, fotogramas codificados predictivos y fotogramas codificados bipredictivos] y valores iniciales de parámetros de cuantificación de fotogramas). Cabe señalar que datos comunes sin mucha relación con la inicialización incluyen parámetros, tales como el orden de codificación de imágenes, el orden de visualización de fotogramas, vectores de movimiento y tamaño 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 información que indica la tabla de códigos de longitud variable. Si se codifica la información que indica la tabla de códigos de longitud variable, el indicador es “1” y si no se codifica, el indicador es “0”.
Además, como se muestra en la Fig. 15(a), los datos de señales de selección codificados (por ejemplo, una fórmula, un indicador que indica una tabla de probabilidades o información que indica una combinación de éstos) que indican la tabla de códigos de longitud variable que se va a usar se colocan en la cabecera. Cabe señalar que cuando no se codifica la información que indica la tabla de códigos de longitud variable, los datos de señales de selección codificados no se envían del codificador de señales de selección 26 al multiplexor 24 y, por lo tanto, el resultado es que los datos de señales de selección 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 están 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 señales de selección codificados, codificados por medio del codificador de señales de selección 26. Más 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 están el indicador de valores iniciales y los datos de selección de señales codificados, en ese orden.
La Fig. 16 muestra la estructura de datos de un flujo de bits que se envía desde el multiplexor 24 cuando la unidad de datos es un segmento de datos de imagen. Por lo general, un segmento está 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 está constituida, principalmente, por los datos comunes correspondientes a cada segmento (parámetros, tales como un código de inicio y una escala de cuantificación).
Ejemplos de datos comunes incluyen tipos de codificación de segmentos (que distinguen entre segmentos intracodificados, segmentos codificados predictivos y segmentos codificados bipredictivos) y valores iniciales de parámetros de cuantificación de segmentos.
Además, 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 información que indica la tabla de códigos de longitud variable. Si se codifica la información que indica la tabla de códigos de longitud variable, el indicador es “1” y si no se codifica, el indicador es “0”.
Además, como se muestra en la Fig. 16(a), la información de señales de selección codificada que indica la tabla de códigos de longitud variable que se va a usar se coloca en la cabecera. Cabe señalar que cuando no se codifica la tabla de códigos de longitud variable, los datos de señales de selección codificados no se envían del codificador de señales de selección 26 al multiplexor 24 y, por lo tanto, el resultado es que los datos de señales de selección 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 están 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 señales de selección codificados, codificados por medio del codificador de señales de selección 26. Más 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 están el indicador de valores iniciales e información de señales de selección codificada, en ese orden.
Cabe señalar que en esta forma de realización la tabla de códigos de longitud variable propiamente dicha no se codificó ni se insertó en la cabecera, sino que, por el contrario, se insertó en la cabecera información de señales de selección codificada que indica la tabla de códigos de longitud variable que se va a usar. Por consiguiente, se puede reducir la cantidad de codificación porque no se codifica la tabla de códigos de longitud variable propiamente dicha.
Como ejemplo adicional de información de señales de selección codificada que indica la tabla de códigos 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 aún más la cantidad de codificación porque esos datos también 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 codificación de imágenes (que distinguen entre fotogramas intracodificados, fotogramas codificados predictivos y fotogramas codificados bipredictivos) y valores iniciales de parámetros de cuantificación de fotogramas. Cabe señalar que datos comunes sin mucha relación con la inicialización incluyen parámetros, tales como el orden de codificación de imágenes, el orden de visualización de fotogramas, vectores de movimiento y tamaño de imagen. Cuando la unidad de datos es un segmento, ejemplos incluyen tipos de codificación de segmentos (que distinguen entre segmentos intracodificados, segmentos codificados predictivos y segmentos codificados bipredictivos) y valores iniciales de parámetros de cuantificación de segmentos.
Además, se puede omitir el indicador de valores iniciales asegurándose de que siempre se actualicen los valores iniciales.
(3) Configuración del dispositivo de decodificación de longitud variable La Fig. 17 es un diagrama de bloques que muestra la configuración global de un dispositivo de decodificación de longitud variable 31 según una forma de realización de la presente invención. El dispositivo de decodificación de longitud variable 31 es, por ejemplo, un dispositivo para decodificar datos que se han codificado por medio del dispositivo de codificación de longitud variable 21. Cuando el objeto son datos de imagen, el dispositivo de decodificación de longitud variable 31 tiene las funciones de llevar a cabo una decodificación entrópica de datos y obtener datos de imagen transformados.
El dispositivo de decodificación de longitud variable 31 incluye una unidad de decodificación de datos 32 y una unidad de decodificación de cabeceras 33.
La unidad de decodificación de datos 32 es un dispositivo para llevar a cabo una decodificación Huffman en datos distintos de la cabecera de cada unidad de datos y está provista de un dispositivo de decodificación de longitud variable 37 y de un decodificador de señales de selección 36. Cabe señalar 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. Además, la unidad de decodificación de datos 32 corresponde a la unidad de decodificación entrópica 207 del dispositivo de codificación de imágenes estándar 200 que se muestra en la Fig. 10.
El dispositivo de decodificación de longitud variable 37 es un dispositivo para decodificar datos codificados en función de las palabras de código de las tablas de códigos de longitud variable 30 que se conmutaron por medio de un conmutador 35.
El decodificador de señales de selección 36 es un dispositivo para decodificar los datos de señales de selección codificados que se envían desde un demultiplexor 34 con un procedimiento de decodificación fija y enviarlos al conmutador 35.
El conmutador 35 es un dispositivo para conmutar las tablas de códigos de longitud variable 30 que se usan cuando el dispositivo de decodificación de longitud variable 37 decodifica datos de acuerdo con la señal de selección de tablas de códigos que se envía desde la unidad de decodificación de señales de selección 36.
La unidad de inicialización 39 es un dispositivo para enviar instrucciones de inicialización a la unidad de decodificación de señales de selección 36.
El decodificador de cabeceras 33 es un dispositivo para decodificar datos de cabecera codificados con un procedimiento de decodificación 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 señales de selección codificados.
(4) Funcionamiento del dispositivo de decodificación de longitud variable
[1] Funcionamiento del demultiplexor
El demultiplexor 34 demultiplexa un flujo de bits, envía datos de cabecera codificados al decodificador de cabeceras 33, envía datos codificados distintos de cabeceras al dispositivo de decodificación de longitud variable 37 y envía datos de señales de selección codificados al decodificador de señales de selección 36 cuando existen datos de señales de selección codificados. Cabe señalar que el decodificador de cabeceras 33 envía el indicador de valores iniciales de la cabecera a la unidad de inicialización 39.
[2] Funcionamiento del decodificador de cabeceras
El decodificador de cabeceras 33 decodifica los datos de cabecera codificados que se envían desde el demultiplexor 34 y envía datos de cabecera.
[3] Funcionamiento de la unidad de decodificación de datos
La Fig. 18 es un diagrama de flujo que muestra un esquema del funcionamiento de la unidad de decodificación de datos 32.
En la etapa S51, la unidad de inicialización 39 envía instrucciones de inicialización al decodificador de señales de selección 36 y el decodificador de señales de selección 36 envía una señal de selección de tablas de códigos al conmutador 35. El resultado es que el conmutador 35 selecciona la tabla de códigos de longitud variable 30 como valores iniciales para decodificar la unidad de datos.
En la etapa S52, en función del indicador de valores iniciales insertado en la cabecera, la unidad de decodificación de longitud variable 37 determina si se codifica o no la información que indica la tabla de códigos de longitud variable que se va a usar. Si se determina que se codifica la información que indica la tabla de códigos 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 códigos de longitud variable 30 que se indica por medio de la señal de selección enviada desde el decodificador de señales de selección 36.
En la etapa S54, el dispositivo de decodificación de longitud variable 37 lleva a cabo una decodificación Huffman en subdatos. Más en particular, en función de la tabla de códigos de longitud variable 30 seleccionada por medio del conmutador 35, el dispositivo de decodificación de longitud variable 37 decodifica los subdatos codificados y envía datos. Cuando la unidad de datos es un fotograma, por ejemplo, se decodifican los segmentos. En la etapa S56, el dispositivo de decodificación de longitud variable 37 selecciona la tabla de códigos de longitud variable 30 con los datos generados por medio del conmutador 35. En la etapa S54, se usa la tabla de códigos de longitud variable 30 seleccionada para la decodificación de los subdatos siguientes.
En la etapa S55, se determina si está terminada o no la decodificación de todos los subdatos. Si se determina que la decodificación de todos los subdatos no está terminada, el procedimiento vuelve a la etapa S54 y se repite la operación que se ha descrito anteriormente.
(5) Eficacia del procedimiento de codificación y del procedimiento de decodificación que se han descrito anteriormente
[1] La eficacia de compresión mejora con los procedimientos de codificación y de decodificación que se han descrito anteriormente porque los subdatos se codifican en función de una tabla de códigos de longitud variable obtenida mediante codificación Huffman. Es decir, con estos procedimientos de codificación y decodificación, se puede aumentar la eficacia de compresión con alta eficacia de aprendizaje, incluso si la cantidad total de datos es reducida y, por lo tanto, la proporción de la cantidad de datos codificados, que sería necesaria con procedimientos convencionales hasta que se obtiene una codificación óptima mediante aprendizaje, es considerable.
Además, dado que la información que indica la tabla de códigos 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 decodificación con la tabla de códigos de longitud variable indicada por esa información como valores iniciales.
[2] La frecuencia con que se codifica la información que indica la tabla de códigos de longitud variable es adecuada con los procedimientos de codificación y decodificación que se han descrito anteriormente, dado que la tabla de códigos de longitud variable se codifica en unidades de segmento o fotograma. En primer lugar, incluso si los datos de señales de selección codificados se pierden en un error de transmisión, las imágenes nunca serán irreproducibles durante más de varios segundos, porque la tabla de probabilidades codificada se decodifica con frecuencia alta. Cuando se codifica en unidades de GOP o flujo, la información que indica la tabla de códigos de longitud variable se codifica con una frecuencia baja y cuando los datos de señales de selección codificados se pierdan en un error de la línea de transmisión, las imágenes no serán reproducibles durante más de varios segundos. En segundo lugar, no habrá una gran cantidad de información redundante que indica la tabla de códigos de longitud variable. Cuando se codifica en unidades de bloque (o macrobloque), los datos de inicialización redundantes son excesivos.
[3] En los procedimientos de codificación y decodificación que se han descrito anteriormente, con una codificación Huffman que conmuta entre una pluralidad de tablas de códigos de longitud variable se logra una eficacia de compresión 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 codificación fija. Más en particular, partes de cabecera originales de la cabecera se codifican con un procedimiento de codificación fija y la información insertada que indica la tabla de códigos de longitud variable también se codifican con un procedimiento de codificación fija. Dado que la eficacia de compresión 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 codificación fija, por cuanto se refiere a la eficacia de compresión global.
3. Forma de realización de soporte de almacenamiento
Almacenando un programa que ejecuta el procedimiento de codificación de longitud variable o el procedimiento de decodificación de longitud variable, que se muestran en las formas de realización que se han descrito anteriormente, en un soporte de almacenamiento, tal como un disco flexible, se pueden ejecutar fácilmente los procedimientos que se muestran en las formas de realización en un sistema informático independiente.
La Fig. 19 ilustra un caso en el que la presente invención se ejecuta en un sistema informático usando un disco flexible en el que está almacenado un procedimiento de codificación de longitud variable o un procedimiento de decodificación 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 físico de un disco flexible (que es la parte principal del soporte de almacenamiento). Un disco flexible FD está integrado en una carcasa F y una pluralidad de pistas Tr están formadas concéntricamente desde el borde exterior hasta el borde interior en la superficie del disco. Cada pista está dividida en una orientación angular en 16 sectores Se. Por lo tanto, con un disco flexible en el que está almacenado el programa que se ha descrito anteriormente, el procedimiento de codificación de longitud variable o el procedimiento de decodificación de longitud variable se grabará en zonas asignadas del disco flexible FD como el programa que se ha mencionado anteriormente.
Además, la Fig. 19(c) muestra una configuración para grabar y reproducir el programa en el disco flexible FD. Cuando se graba el programa en el disco flexible FD, el procedimiento de codificación de longitud variable o el procedimiento de decodificación de longitud variable se escribe desde un sistema informático Cs a través de una unidad de disco flexible. Además, cuando el procedimiento de codificación de longitud variable o el procedimiento de decodificación de longitud variable se construye en un sistema informático 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 informático.
Cabe señalar que, para ilustrar la explicación anterior, se usa un disco flexible como soporte de almacenamiento, sin embargo, también se puede usar de manera similar un disco digital. Además, 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 grabación, 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 invención y sistemas que usan las mismas
Lo siguiente es una explicación de aplicaciones de ejemplo de los procedimientos de codificación de imágenes en movimiento y los procedimientos de decodificación de imágenes en movimiento que se muestran en las formas de realización que se han descrito anteriormente, así como de sistemas que usan las mismas.
La Fig. 20 es un diagrama de bloques que muestra toda la configuración de un sistema de suministro de contenidosex100 que efectúa un servicio de suministro de contenidos. Áreas para suministrar servicios de comunicaciones están divididas en tamaños deseados y estaciones base ex107 a ex110 (que son estaciones inalámbricas fijas) están instaladas dentro de las respectivas células.
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 telefónica ex104, así como a varios dispositivos, tales como un ordenador ex111, un PDA (asistente digital personal) ex112, una cámara ex113, un teléfono móvil ex114 y un teléfono móvil equipado con cámara ex115 a través de las estaciones base ex107 a ex110.
No obstante, el sistema de suministro de contenidos ex100 no se limita a la disposición que se muestra en la FIG. 17 y se puede disponer y conectar cualquier combinación de estos dispositivos. Además, los dispositivos pueden estar conectados directamente por medio de la red telefónica ex104 y no a través de las estaciones base ex107 a ex110 (que son estaciones inalámbricas fijas).
La cámara ex113 es un dispositivo, tal como una cámara de video digital, capaz de captar imágenes en movimiento. Además, los teléfonos móviles pueden ser dispositivos que operan en protocolos, tales como PDC (Comunicaciones Digitales Personales), CDMA (Acceso Múltiple por División de Código), W-CDMA (Acceso Múltiple por División de Código de Banda Ancha) o GSM (Sistema Mundial de Comunicaciones Móviles), PHS (Sistema de Telefonía Inalámbrica Personal) y similares.
Además, un servidor de transmisión en continuo ex103 puede estar conectado a la cámara ex113 a través de la estación base ex109 y la red telefónica ex104 y un usuario puede realizar una transmisión en vivo en función de datos codificados usando la cámara ex113. El proceso para codificar los datos captados se puede llevar a cabo por medio de la cámara ex113 o por medio de un servidor o similar que transmite los datos. Además, datos de fotograma en movimiento captados por medio de una cámara ex116 se pueden enviar al servidor de transmisión en continuo ex103 a través del ordenador ex111. La cámara ex116 es un dispositivo, tal como una cámara digital, capaz de captar imágenes fijas e imágenes en movimiento. En este caso, la codificación de los datos de imagen en movimiento se puede llevar a cabo por medio de la cámara ex116 o del ordenador ex111. Además, el procedimiento de codificación se lleva a cabo por medio de un microcircuito LSI ex117 provisto en el ordenador ex111 o en la cámara ex116. Cabe señalar que el software para codificar / decodificar imágenes 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. Además, datos de imagen en movimiento se pueden transmitir por medio del teléfono móvil equipado con cámara ex115. Cuando esto ocurre, los datos de imagen en movimiento son datos codificados por medio de un microcircuito LSI provisto en el teléfono móvil ex115.
Con el sistema de suministro de contenidos ex100, contenidos (por ejemplo, imágenes que captan un concierto en directo), que un usuario está captando con la cámara ex113, la cámara ex116 o similar, se codifican del mismo modo que en las formas de realización que se han descrito anteriormente y se transmiten al servidor de transmisión en continuo ex103 y el servidor de transmisión 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 cámara ex113 y el teléfono móvil ex114. Por lo tanto, el sistema de suministro de contenidos ex100 es un sistema que posibilita a un cliente recibir y reproducir datos codificados. Además, se pueden lograr emisiones individuales con el sistema recibiendo, decodificando y reproduciendo en un cliente datos codificados.
El dispositivo de codificación de imágenes en movimiento o el dispositivo de decodificación de imágenes en movimiento de las formas de realización que se han descrito anteriormente se puede usar en los dispositivos de codificación y decodificación que conforman este sistema.
En el ejemplo siguiente se describe el uso de un teléfono móvil con la presente invención.
La FIG. 21 muestra un teléfono móvil ex115 que usa el procedimiento de codificación de imágenes en movimiento y el procedimiento de decodificación de imágenes en movimiento que se han descrito en las formas de realización anteriores. El teléfono móvil ex115 está provisto de una antena ex201, para enviar a la estación base ex110 y recibir de la misma ondas de radio; una unidad de cámara ex203, tal como una cámara de CDD, capaz de captar imágenes y fotogramas fijos; una unidad de visualización ex202, tal como un visualizador de cristal líquido, que visualiza datos de imagen decodificados captados por medio de la unidad de cámara ex203 o recibidos por medio de la antena ex201; una unidad principal constituida por teclas de operación 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 micrófono, 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 electrónico recibidos y datos de imagen en movimiento o datos de imagen fija, y una ranura ex206 para permitir que el soporte de almacenamiento ex207 esté instalado en el teléfono móvil ex115. El soporte de almacenamiento ex207 está alojado en un dispositivo de memoria flash, que es un tipo de EEPROM (Memoria de Sólo Lectura Que Se Puede Programar y Borrar Eléctricamente) que es una memoria no volátil alojada en una carcasa de plástico y que se puede reescribir y borrar eléctricamente, tal como una tarjeta de SD.
Se describirá detalladamente el teléfono móvil ex115 haciendo referencia a la FIG. 22. Una unidad de circuito de energía ex310, una unidad de control de entrada de operaciones ex304, una unidad de codificación de imágenes ex312, una unidad de interfaz de cámara ex303, una unidad de control de LCD (visualizador de cristal líquido) ex302, una unidad de decodificación de imágenes ex309, una unidad de multiplexación / demultiplexación ex308, una unidad de reproducción de grabación ex307, una unidad de circuito de módem ex306 y una unidad de procesamiento de voz 305 están interconectadas a través de un bus de sincronización ex313 a una unidad de control principal ex311 que controla de manera centralizada cada unidad de la unidad principal provista de la unidad de visualización ex202 y las teclas de operación ex204.
Cuando finaliza una llamada o el usuario pulsa la tecla de encendido, la unidad de circuito de energía ex310 suministra energía a cada unidad desde un conjunto de baterías activando, de ese modo, el teléfono móvil digital equipado con cámara ex115 para que funcione.
En función del control de la unidad de control principal ex311 (que incluye una CPU, una ROM y una RAM y similares), el teléfono móvil ex115 convierte las señales 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 éstas se someten a un proceso de espectro expandido por medio de la unidad de circuito de módem ex306 y se transmiten, a través de la antena ex201, por medio de la unidad de circuito de recepción / envío ex301 tras someterse a conversión de digital a analógico y a transformación de frecuencia. Además, con el teléfono móvil ex115 en el modo de llamada de voz, tras la recepción las señales recibidas por medio de la antena ex201 se amplifican y se someten a transformación de frecuencia, a conversión de digital a analógico y a un proceso de espectro expandido inverso por medio de la unidad de circuito de modem ex306 y se convierten en señales de voz analógicas por medio de la unidad de procesamiento de voz ex305 y se envían a través de la unidad de salida de voz ex208.
Además, cuando un correo electrónico se envía en modo de transmisión de datos, los datos de texto del correo electrónico, que se introducen mediante el funcionamiento de las teclas de operación ex204 de la unidad principal, se envían a la unidad de control principal ex311 a través de la unidad de control de entrada de operación ex304. La unidad de control principal ex311 transmite los datos de texto a la estación base ex110 a través de la antena ex201 una vez ejecutado el proceso de espectro expandido en los mismos por medio de la unidad de circuito de módem ex306 y, posteriormente, se someten a conversión de digital a analógico y a transformación de frecuencia por medio de la unidad de circuito de recepción / envío ex301.
Cuando los datos de imagen se envían en modo de transmisión de datos, los datos de imagen captados por medio de la unidad de cámara ex203 se suministran a la unidad de codificación de imágenes ex312 a través de la unidad de interfaz de cámara ex303. Además, si no se están enviando los datos de imagen, los datos de imagen captados por medio de la unidad de cámara ex203 también se pueden visualizar directamente en la unidad de visualización ex202 a través de la unidad de interfaz de cámara ex303 y de la unidad de control de LCD ex302.
La unidad de codificación de imágenes ex312 es una configuración provista de un dispositivo de codificación de imágenes que se ha descrito en la presente solicitud. Los datos de imagen suministrados por medio de la unidad de cámara ex203 se convierten en datos de imagen codificados sometiéndolos a codificación de compresión con el procedimiento de codificación que se usa en el dispositivo de codificación de imágenes que se muestra en las formas de realización que se han descrito anteriormente y dichos datos se envían a la unidad de multiplexación / demultiplexación ex308. Además, el dispositivo de teléfono móvil ex115 envía, simultáneamente, la voz recogida por medio de la unidad de entrada de voz ex205 durante la captación de imágenes por medio de la unidad de cámara ex203, a la unidad de multiplexación / demultiplexación ex308, a través de la unidad de procesamiento de voz ex305, como datos de voz digitales.
La unidad de multiplexación / demultiplexación ex308 lleva a cabo un proceso de multiplexación de los datos de imagen codificados suministrados desde la unidad de codificación de imágenes 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 módem ex306 y se someten a conversión de digital a analógico y a transformación de frecuencia por medio de la unidad de circuito de recepción / envío ex301, dichos datos se transmiten a través de la antena ex201.
Cuando se reciben datos de fichero de imágenes en movimiento vinculados a un sitio web o similar, en modo de transmisión de datos, las señales de recepción recibidas desde la estación base ex110, a través de la antena ex201, se someten a un proceso de espectro expandido inverso por medio de la unidad de circuito de módem ex306 y los datos multiplexados obtenidos como resultado de esto se envían a la unidad de separación de multiplexación ex308.
Además, al decodificar los datos multiplexados recibidos a través de la antena ex201, la unidad de separación de multiplexación ex308 divide, mediante demultiplexación, 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 decodificación de imágenes ex309 a través del bus de sincronización ex313.
A continuación, la unidad de decodificación de imágenes ex309 es una configuración provista de un dispositivo de decodificación de imágenes 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 decodificación, correspondiente al procedimiento de codificación que se muestra en las formas de realización que se han descrito anteriormente, generando datos de reproducción de imagen en movimiento y suministrándolos a la unidad de visualización ex202 a través de la unidad de control de LCD ex302. Simultáneamente, la unidad de procesamiento de voz ex305 convierte los datos de voz en señales de voz analógicas y, a continuación, 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 señalar que no existen limitaciones respecto a los ejemplos del sistema que se ha descrito anteriormente. En los últimos años, es un tema de preocupación la emisión digital vía satélite u ondas terrestres y al menos uno de los dispositivos de codificación de imágenes o dispositivos de decodificación de imágenes de las formas de realización que se han descrito anteriormente se puede incorporar en sistemas que usan emisión digital, como se muestra en la Fig. 23. En particular, flujos de bits codificados de datos de imagen se transmiten a través de ondas de radio a un satélite emisor o de comunicaciones ex410 con una estación emisora ex409. El satélite emisor ex410 que recibe los flujos de bits emite ondas de radio de emisión y dichas ondas de radio se reciben por medio de la antena ex406 de una casa equipada con servicios de recepción de emisión vía satélite. El flujo de bits codificado se decodifica por medio de un dispositivo, tal como una televisión (dispositivo de recepción) ex401, un módulo de conexión (STB) ex407 o similares, y se reproduce dicho flujo de bits codificado. Además, se puede instalar un dispositivo de decodificación de imágenes, que se muestra en las formas de realización que se han descrito anteriormente, en un dispositivo de reproducción 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 señales de fotograma reproducidas se visualizan en un monitor ex404. Además, también es posible una configuración en la que el dispositivo de decodificación de imágenes está instalado en un módulo de conexión ex407 conectado a un cable ex405 para televisión por cable o a una antena emisora vía ondas terrestres / satélite ex406 y esto se reproduce en un monitor de televisión ex408. En este caso, el dispositivo de decodificación de imágenes puede estar incorporado en la televisión, en lugar de en el módulo de conexión. Además, un automóvil ex412 provisto de una antena ex411 puede recibir señales del satélite ex410, de la estación base ex107 o similar y las imágenes en movimiento se pueden reproducir en un dispositivo de visualización del automóvil ex412, tal como un sistema de navegación para coches ex413.
Además, con un dispositivo de codificación de imágenes que se muestra en las formas de realización que se han descrito anteriormente se pueden codificar señales de imagen y grabarlas en un soporte de grabación. Ejemplos específicos incluyen grabadoras de DVD, que graban señales 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 está provista de un dispositivo de decodificación de imágenes que se muestra en las formas de realización que se han descrito anteriormente, las señales 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 señalar que la configuración del sistema de navegación para coches ex413 puede ser de tal manera que, por ejemplo, se excluyan la unidad de cámara ex203, la unida de interfaz de cámara ex303 y el dispositivo de codificación de imágenes ex312, como se muestra en la Fig. 19, y esto es igualmente posible para el ordenador ex111 y la televisión (dispositivo de recepción) ex401.
Además, el terminal del teléfono móvil ex114, que se ha descrito anteriormente, puede no sólo ser un tipo de terminal de envío / recepción que tiene tanto un dispositivo de codificación como un dispositivo de decodificación, sino que también puede ser un terminal de envío con sólo un dispositivo de codificación o un terminal de recepción con sólo un dispositivo de decodificación (tres tipos de instalación).
De este modo, el procedimiento de codificación de imágenes en movimiento o el procedimiento de decodificación de imágenes en movimiento, que se muestran en las formas de realización 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 realización.

Claims (15)

  1. REIVINDICACIONES
    1. Un procedimiento de codificación de longitud variable, que codifica una unidad de datos de datos de imagen constituida por una pluralidad de subdatos mientras hace referencia a una tabla de probabilidades, que comprende:
    una etapa de ajuste de tablas para ajustar 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;
    una etapa de codificación de información para codificar información relacionada con la tabla de probabilidades inicializada y que indica la tabla de probabilidades;
    una etapa de obtención de parámetros de codificación para obtener, de la tabla de probabilidades, parámetros de codificación que se van a usar en la codificación de subdatos;
    una etapa de codificación de subdatos para llevar a cabo una codificación aritmética de los subdatos haciendo referencia a los parámetros de codificación obtenidos;
    una etapa de actualización de tablas de probabilidades para actualizar la tabla de probabilidades en función de valores de subdatos codificados; y
    una etapa de colocación de información codificada para colocar la información codificada relacionada con la tabla de probabilidades inicializada en una posición en la que la información codificada se puede obtener antes que la unidad de datos codificada.
  2. 2.
    El procedimiento de codificación de longitud variable según la reivindicación 1,
    en el que los valores iniciales de los parámetros de codificación que se van a usar en la etapa de codificación de subdatos se obtienen de la tabla de probabilidades en función de valores de los datos codificados inmediatamente anteriores.
  3. 3.
    El procedimiento de codificación de longitud variable según la reivindicación 1,
    en el que los valores iniciales de los parámetros de codificación que se van a usar en la etapa de codificación de subdatos se obtienen de la tabla de probabilidades en función de valores de los subdatos codificados que se van a codificar.
  4. 4.
    El procedimiento de codificación de longitud variable según cualquiera de las reivindicaciones 1 a 3,
    en el que, en la etapa de codificación de subdatos, se lleva a cabo una codificación aritmética de los subdatos haciendo referencia a los parámetros de codificación.
  5. 5.
    El procedimiento de codificación de longitud variable según cualquiera de las reivindicaciones 1 a 4,
    en el que la información relacionada con la tabla de probabilidades inicializada es la tabla de probabilidades propiamente dicha.
  6. 6.
    El procedimiento de codificación de longitud variable según la reivindicación 5,
    en el que, en la etapa de codificación de información, sólo se codifica una parte de la tabla de probabilidades.
  7. 7.
    El procedimiento de codificación de longitud variable según la reivindicación 6,
    en el que la parte de la tabla de probabilidades es una parte de la tabla de probabilidades que corresponde a datos codificados con una probabilidad alta.
  8. 8.
    El procedimiento de codificación de longitud variable según cualquiera de las reivindicaciones 1 a 7,
    en el que, en la etapa de colocación de información codificada, la información codificada relacionada con la tabla de probabilidades inicializada se coloca en una parte de datos comunes correspondiente a la unidad de datos.
  9. 9.
    El procedimiento de codificación de longitud variable según cualquiera de las reivindicaciones 1 a 8,
    en el que, en la etapa de codificación de información, la información relacionada con la tabla de probabilidades inicializada se codifica con un procedimiento de codificación fija.
  10. 10.
    El procedimiento de codificación de longitud variable según cualquiera de las reivindicaciones 1 a 9, que comprende además las etapas de: determinar si se codifica o no información relacionada con una tabla de probabilidades inicializada y colocar un identificador que identifica un resultado de la determinación en una posición en la que el
    indicador se puede obtener antes que la unidad de datos codificada.
  11. 11.
    El procedimiento de codificación de longitud variable según cualquiera de las reivindicaciones 1 a 10, en el que la unidad de datos es un fotograma de datos de imagen.
  12. 12.
    El procedimiento de codificación de longitud variable según cualquiera de las reivindicaciones 1 a 10, en el que la unidad de datos es un segmento de datos de imagen.
  13. 13.
    Un soporte de almacenamiento que almacena un programa para ejecutar una codificación de longitud variable en un ordenador, en el que la codificación de longitud variable es un procedimiento de codificación de longitud variable que codifica una unidad de datos de datos de imagen constituida por una pluralidad de subdatos mientras hace referencia a una tabla de probabilidades, comprendiendo el procedimiento:
    una etapa de ajuste de tablas para ajustar 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;
    una etapa de codificación de información para codificar información de inicialización para indicar la tabla de probabilidades inicializada;
    una etapa de obtención de parámetros de codificación para obtener, de la tabla de probabilidades, parámetros de codificación que se van a usar en la codificación de subdatos;
    una etapa de codificación de subdatos para llevar a cabo una codificación aritmética de los subdatos haciendo referencia a los parámetros de codificación obtenidos;
    una etapa de actualización de tablas de probabilidades para actualizar la tabla de probabilidades en función subdatos codificados aritméticamente en la etapa de llevar a cabo una codificación aritmética; y
    una etapa de colocación de información codificada para colocar la información de inicialización codificada relacionada con la tabla de probabilidades inicializada en una posición en la que la información de inicialización codificada se puede obtener antes que la unidad de datos codificada.
  14. 14. Un dispositivo de codificación de longitud variable que codifica una unidad de datos de datos de imagen constituida por una pluralidad de subdatos mientras hace referencia a una tabla de probabilidades, que comprende:
    un medio de inicialización 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 para indicar la tabla de probabilidades;
    un 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 tabla de probabilidades;
    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;
    un medio de actualización de tablas de probabilidades que actualiza la tabla de probabilidades en función de los subdatos codificados aritméticamente con el medio de codificación de subdatos; y
    un medio de colocación de información codificada que coloca la información de inicialización codificada en una posición en la que la información de inicialización codificada se puede obtener antes que la unidad de datos codificada.
  15. 15. Un flujo de bits generado por medio de un procedimiento de codificación de longitud variable para codificar la unidad de datos mientras hace referencia a la tabla de probabilidades,
    en el que el procedimiento de codificación de longitud variable es el procedimiento de codificación de longitud variable según cualquiera de las reivindicaciones 1 a 12.
ES03710347T 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 Expired - Lifetime ES2399422T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002088345 2002-03-27
JP2002088345 2002-03-27
PCT/JP2003/003035 WO2003081784A1 (en) 2002-03-27 2003-03-13 Variable length encoding method, variable length decoding method, storage medium, variable length encoding device, variable length decoding device, and bit stream

Publications (1)

Publication Number Publication Date
ES2399422T3 true ES2399422T3 (es) 2013-04-01

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 (3)

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

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
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
ES2599637T3 (es) 2017-02-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
ES2399422T3 (es) 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
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
ES2382991T3 (es) Procedimiento de codificación de video
ES2320209T3 (es) Procedimiento de codificacion de imagenes en movimiento y procedimiento de decodificacion de imagenes en movimiento.
JP2008187734A (ja) フィルタリング強度決定方法
JP2010259093A (ja) 動画像復号化方法および動画像復号化装置
JP2004048711A (ja) 動画像の符号化方法および復号化方法およびデータ記録媒体
JP2004088736A (ja) 動画像の符号化方法、復号化方法、データストリーム、データ記録媒体およびプログラム
JP4197262B2 (ja) 可変長符号化方法、可変長復号化方法、記憶媒体、可変長符号化装置、可変長復号化装置、及びビットストリーム
JP4197345B2 (ja) 可変長復号化方法、記憶媒体、及び可変長復号化装置
JP2006187039A (ja) 動画像符号化方法および動画像復号化方法
JP2006287974A (ja) フィルタリング強度の決定方法、動画像符号化方法、および動画像復号化方法