ES2279945T3 - Procedimiento de codificacion de longitud variable y procedimiento de descodificacion de longitud variable. - Google Patents
Procedimiento de codificacion de longitud variable y procedimiento de descodificacion de longitud variable. Download PDFInfo
- Publication number
- ES2279945T3 ES2279945T3 ES03720905T ES03720905T ES2279945T3 ES 2279945 T3 ES2279945 T3 ES 2279945T3 ES 03720905 T ES03720905 T ES 03720905T ES 03720905 T ES03720905 T ES 03720905T ES 2279945 T3 ES2279945 T3 ES 2279945T3
- Authority
- ES
- Spain
- Prior art keywords
- coefficient
- unit
- coding
- value
- coefficients
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/93—Run-length coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
- Vehicle Body Suspensions (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
- Automatic Focus Adjustment (AREA)
- Studio Devices (AREA)
Abstract
Un procedimiento de codificación para realizar una codificación de longitud variable en coeficientes bidimensionales de un bloque que se obtienen realizando una transformación de frecuencia en los datos de imagen del bloque que posee un tamaño de píxeles predeterminado, comprendiendo el procedimiento: una etapa de escaneo de coeficientes, en la que se escanean coeficientes bidimensionales del bloque en un orden predeterminado partiendo desde un componente de baja frecuencia hacia un componente de alta frecuencia a fin de transformar los coeficientes bidimensionales en coeficientes unidimensionales; y una etapa de codificación, en la que se realiza una codificación de longitud variable en los coeficientes unidimensionales partiendo desde un componente de alta frecuencia hacia un componente de baja frecuencia, mientras se cambia entre una pluralidad de tablas, que se usan para la codificación, y a las que se asignan valores umbral crecientes; en la que, en la etapa de codificación, en el casoen el que un valor absoluto de un coeficiente actual que se va a codificar supera un umbral asignado a la tabla usada para codificar el coeficiente actual, se codifica un siguiente coeficiente que se va a codificar a continuación del coeficiente actual después de que se incremente el umbral y después de que la tabla se cambie por la tabla a la que está asignado dicho umbral incrementado.
Description
Procedimiento de codificación de longitud
variable y procedimiento de descodificación de longitud
variable.
La presente invención se refiere a un
procedimiento de codificación de longitud variable para codificar
los coeficientes de cada bloque, que se obtienen realizando una
transformación de frecuencia en los datos de imagen de una imagen
en movimiento por bloque con un tamaño predeterminado, así como un
procedimiento de descodificación de longitud variable, y
similares.
Al codificar una imagen en movimiento, la
compresión del volumen de información se realiza normalmente
utilizando redundancias en las direcciones espacial y temporal que
posee la imagen en movimiento. Normalmente se usa una
transformación en un dominio de frecuencias como procedimiento para
utilizar la redundancia espacial, mientras que la codificación por
predicción interimagen se usa como procedimiento para utilizar la
redundancia temporal.
En un procedimiento de codificación de imagen en
movimiento que se encuentra actualmente en proceso de
estandarización, la cuantización se realiza en cada bloque de
tamaño 4x4 píxeles a fin de generar coeficientes tras realizar la
transformación de frecuencias en tal bloque, con vistas a aumentar
la eficacia de codificación de un procedimiento de codificación de
imagen en movimiento MPEG-4 convencional. Después se
realiza un escaneo partiendo desde los componentes de corriente
continua hacia los componentes de alta frecuencia, se generan
combinaciones de un valor R (Run, denominado en lo sucesivo
simplemente "R") que indica el número de coeficientes cero
consecutivos y un valor de coeficiente L (Level, denominado
en lo sucesivo simplemente "L") posterior al mismo de forma
que se cree una secuencia (R, L). Después de transformar esta (R, L)
en un número de código usando una tabla de códigos predeterminada,
la codificación se realiza transformando el número de código en un
código VLC, usando también una única tabla de codificación de
longitud variable (VLC). En la tabla de códigos se asigna
normalmente un número de código más pequeño a medida que aumenta la
probabilidad de que aparezcan. Por ejemplo, se asigna un número de
código pequeño a una combinación en la que tanto R como L indican
valores pequeños ya que la probabilidad de que aparezca es alta. En
ciertas tablas de códigos VLC, se asigna un código VCL que posee
una longitud de código corta a un número de código pequeño (véase la
referencia al documento ISO/IEC 14496-2:
"Information technology-Coding of
audio-visual objects-Part 2:
Visual" 7.4.1, págs. 119 a 120, 12/1999).
Sin embargo, el uso del procedimiento existente
ocasiona una disminución en la eficiencia de la codificación debido
a que la longitud del código se hace más larga a medida que crecen
el número de coeficientes R cero consecutivos y un valor de
coeficiente L. Normalmente, la disminución en la eficiencia resulta
evidente cuando se codifica un componente de baja frecuencia, ya
que el valor de coeficiente L como valor del componente de baja
frecuencia es alto.
Concretamente, a consecuencia de asignar una
única tabla VLC de acuerdo con la probabilidad de aparición y un
único y exclusivo código de longitud variable a un par formado por R
y L, el valor de coeficiente L que indica un valor alto se
transforma en un código de longitud variable que posee una longitud
de código muy larga. Aún cuando se codifica L por separado de R
(codificación unidimensional de L) usando una única tabla VLC,
surge el mismo problema que en el caso de codificar R y L como un
par.
En el documento EP 0827345 A1 se describe un
sistema de codificación de imagen en el que una señal de imagen de
entrada se divide en bloques, los bloques resultantes se transforman
en dos o más tipos de coeficientes transformados, los coeficientes
transformados se cuantizan según un tamaño de etapa de cuantización
dado y los coeficientes transformados cuantizados se escanean de
acuerdo con una pluralidad de secuencias de escaneo. Los
coeficientes escanean de ese modo se codifican aún más de acuerdo
con una pluralidad de tablas de codificación, y, entre las
combinaciones de la pluralidad de secuencias de escaneo con la
pluralidad de tablas de codificación, se selecciona una combinación
de secuencia de escaneo con una tabla de codificación que
proporciona la mayor eficiencia de codificación, mediante unos
medios de selección de secuencia de escaneo y tabla de codificación,
de acuerdo con el nivel de distribución de los coeficientes
transformados.
En el documento EP 0616471 se describe una
codificación de longitud variable que hace uso de una pluralidad de
tablas, en la que se generan tablas para cada par
run-level posible de acuerdo con la frecuencia de
aparición. Cuando se van a codificar datos de un coeficiente, se
selecciona una tabla correspondiente al tamaño de los datos del
coeficiente proporcionados antes de que se seleccionen esos datos
del coeficiente y la codificación se realiza basándose en la tabla
seleccionada.
En el documento JP 8214310 se describe una
codificación de longitud variable, cambiando entre 3 tablas de
acuerdo con la correlación entre coeficientes consecutivos.
En el documento EP 0267578 se describe un
sistema de codificación que efectúa una codificación de longitud
variable haciendo uso de una pluralidad de conjuntos de códigos en
la que los conjuntos de códigos se seleccionan por sus componentes
de alta y baja frecuencia.
En el documento US 5751232 se describe un
aparato codificador de alta eficiencia que posee un circuito de
división de datos que aplica un escaneo unidimensional a los datos
transformados ortogonalmente obtenidos mediante la aplicación de
una transformación ortogonal a unos datos digitales divididos en
bloques en la unidad de bloque y divide los datos en datos
run-length y datos de coeficientes, un
circuito de codificación que aplica una codificación
run-length a los datos
run-length divididos, mediante el empleo de
datos con la mayor probabilidad de aparición (por ejemplo 0), y un
circuito de codificación que aplica una codificación
run-length a los datos de coeficientes
divididos mediante el empleo de datos con la mayor probabilidad de
aparición (por ejemplo 1) reduce de ese modo la cantidad de datos
digitales.
La presente invención está concebida en vista de
los anteriores problemas, y pretende proporcionar el procedimiento
de codificación de longitud variable y el procedimiento de
descodificación de longitud variable que pueden mejorar la
eficiencia de la codificación cuando se codifica el valor de
coeficiente L.
Con el fin de lograr el anterior objetivo, se
propone un procedimiento de codificación de longitud variable de
acuerdo con la presente invención, tal como se define en la
reivindicación 1.
De este modo, es posible mejorar la eficiencia
de la codificación, ya que el código de longitud variable con la
longitud de código basada en el coeficiente puede adaptarse a cada
tabla. En otras palabras, es posible acortar notablemente una
longitud de código cambiando de una tabla a otra dependiendo del
coeficiente, de forma que se pueda codificar un coeficiente en un
código de longitud variable cuya longitud de código sea más corta
en una tabla que en la otra cuando el coeficiente es alto.
Aquí, una dirección de cambio entre la
pluralidad de tablas puede ser unidireccional. Así se evita el
frecuente cambio de tablas y por tanto el número de veces que se
cambia de una tabla a otra disminuye. Por lo tanto, es posible
aumentar la eficiencia de la codificación. Por ejemplo, al tener el
área de trabajo de la memoria un espacio limitado, sólo se almacena
una tabla para su uso. En este caso, se tarda un tiempo en comenzar
a codificar el siguiente coeficiente, ya que se tarda un tiempo en
leer la siguiente tabla desde la ROM y en expandirla en el área de
trabajo cada vez que se cambia de tabla. Este cambio unidireccional
de una tabla a otra resulta eficaz para limitar el número de veces
que se cambia de tabla y para reducir el tiempo total necesario
para codificar el siguiente coeficiente.
En la etapa de codificación, la codificación se
puede realizar en cada uno de dichos bloques cambiando entre la
pluralidad de tablas y los coeficientes pueden ser coeficientes
distintos de cero que se hayan unidimensionalizado.
Es preferible que la codificación sea una
codificación no aritmética. De este modo, cuando se determina una
tabla que se va a usar para la codificación, la codificación de
coeficientes para obtener códigos de longitud variable puede
realizarse consultando la tabla.
También es preferible que cada una de las tablas
posea una tasa de cambio diferente en la longitud de código para
coeficientes de forma que una longitud de código para el coeficiente
más pequeño se haga más larga en un orden ascendente de números
asignados respectivamente a cada una de las tablas y una longitud de
código para el coeficiente más largo no se haga más larga en el
mismo orden ascendente de dichos números. Además, también resulta
preferible que cada una de las tablas se construya de forma que una
tasa de aumento en la longitud de código correspondiente a un
aumento en los coeficientes se haga más pequeña en un orden
ascendente de números asignados a cada una de las tablas. De este
modo puede lograrse con seguridad la mejora de la eficiencia de la
codificación, ya que se puede asignar un intervalo en el que una
longitud de código se haga más corta en cada tabla.
También es preferible que en la etapa de
codificación se cambie entre cada una de las tablas basándose en un
valor umbral predeterminado para un valor absoluto del coeficiente.
De este modo resulta fácil juzgar una sincronización para el cambio
de una tabla a otra y, por tanto, se puede lograr la eficiencia en
la codificación.
También es preferible que en la etapa de escaneo
de coeficientes, los coeficientes se escanean partiendo desde los
componentes de alta frecuencia hacia los componentes de baja
frecuencia. Al existir una fuerte tendencia a que el valor absoluto
del coeficiente crezca gradualmente alrededor de "1", resulta
fácil, por tanto, determinar una tabla para codificar el primer
coeficiente del bloque, una estructura de cada tabla y un valor
umbral.
Además, también es preferible que en la etapa de
codificación, se cambie de una tabla usada para codificar un
coeficiente actual que se va a codificar a una tabla cuyo número sea
mayor que el número asignado a dicha tabla, cuando el valor
absoluto del coeficiente actual supera un valor umbral. De este modo
se puede aumentar la eficiencia de la codificación, ya que se puede
acortar una longitud de código cuando se codifica el siguiente
coeficiente.
La presente invención puede realizarse no sólo
como un procedimiento de codificación de longitud variable y un
procedimiento de descodificación de longitud variable, sino también
como un aparato de codificación de longitud variable y un aparato
de descodificación de longitud variable que poseen etapas
características como unidades incluidas en el procedimiento de
codificación de longitud variable y el procedimiento de
descodificación de longitud variable, como un procedimiento de
codificación de imagen en movimiento y un procedimiento de
descodificación de imagen en movimiento que usan las etapas
características incluidas en el procedimiento de codificación de
longitud variable y el procedimiento de descodificación de longitud
variable, y como un programa que hace que un ordenador ejecute
estas etapas. Tal programa puede distribuirse con seguridad a través
de un medio de grabación tal como un CD-ROM y un
medio de transmisión tal como Internet.
La fig. 1 es un diagrama de bloques que muestra
una estructura funcional de un aparato de codificación que usa un
procedimiento de codificación de longitud variable y un
procedimiento de codificación de imagen en movimiento de acuerdo
con una primera forma de realización de la presente invención.
La fig. 2 es un diagrama de bloques que
muestra detalladamente una estructura funcional de una unidad de
codificación de longitud variable que se muestra en la fig. 1.
Las figs. 3A y 3B son diagramas de
patrones para describir el procesamiento ejecutado por una unidad
de generación de secuencias RL que se muestra en la fig. 2.
Las figs. 4A y 4B son diagramas de
patrones para describir una secuencia RL generada por la unidad de
generación de secuencias RL y el procesamiento de reordenación
ejecutado por una unidad de reordenación que se muestra en la fig.
2.
La fig. 5 es un diagrama que muestra un
ejemplo de una tabla de códigos guardada por una unidad de
almacenamiento de tablas que se muestra en la fig. 2.
La fig. 6 es un diagrama que muestra un
ejemplo de una tabla VLC guardada por la unidad de almacenamiento
de tablas que se muestra en la fig. 2.
Las figs. 7A y 7B son diagramas de
patrones para describir otro ejemplo de la secuencia RL generada
por la unidad de generación de secuencias RL y el procesamiento de
reordenación ejecutado por la unidad de reordenación.
La fig. 8 es un diagrama de bloques que muestra
una estructura funcional de un aparato de descodificación que usa
un procedimiento de descodificación de longitud variable y un
procedimiento de descodificación de imagen en movimiento de acuerdo
con una segunda forma de realización de la presente invención.
La fig. 9 es un diagrama de bloques que
muestra detalladamente una estructura funcional de una unidad de
descodificación de longitud variable que se muestra en la fig.
8.
Las figs. 10A y 10B son diagramas de
patrones para describir una secuencia RL generada por una unidad de
conversión de códigos que se muestra en la fig. 9 y el procesamiento
de reordenación ejecutado por una unidad de reordenación que se
muestra en la fig. 9.
La fig. 11 es un diagrama de
patrones para describir el procesamiento ejecutado por una unidad
de generación de coeficientes que se muestra en la fig. 9.
Las figs. 12A y 12B son diagramas de
patrones para describir otro ejemplo de la secuencia RL generada
por la unidad de conversión de códigos y el procesamiento de la
reordenación ejecutado por la unidad de reordenación.
La fig. 13 es un diagrama de
bloques que muestra una estructura de un aparato de codificación de
acuerdo con una tercera forma de realización de la presente
invención.
La fig. 14 es un diagrama de
bloques que muestra una estructura interna de la unidad de
codificación de longitud variable de acuerdo con la tercera forma
de realización de la presente invención.
Las figs. 15A y 15B son diagramas de
patrones que muestran esquemáticamente una secuencia RL producida
por la unidad de generación de secuencias RL de acuerdo con la
tercera forma de realización de la presente invención.
Las figs. 16A, 16B y 16C son diagramas de
patrones que muestran esquemáticamente la secuencia RL producida
por la unidad de generación de secuencias RL de acuerdo con la
tercera forma de realización de la presente inven-
ción.
ción.
La fig. 17 es un diagrama de
transición que muestra un procedimiento de cambio de una tabla de
probabilidades a otra de acuerdo con la tercera forma de realización
de la presente invención.
La fig. 18 es un diagrama de
visualización del contenido de las tablas de probabilidades de
acuerdo con la tercera forma de realización de la presente
invención.
La fig. 19 es un diagrama de
bloques que muestra una estructura de un aparato de descodificación
de imágenes de acuerdo con una cuarta forma de realización de la
presente invención.
La fig. 20 es un diagrama de
bloques que muestra una estructura interna de una unidad de
descodificación de longitud variable de acuerdo con la cuarta forma
de realización de la presente invención.
La fig. 21 es un diagrama de una
tabla que muestra un ejemplo de tabla binaria.
La fig. 22 es un diagrama de
bloques que muestra una estructura funcional de un aparato de
codificación, al que se aplica un procedimiento de codificación de
longitud variable y un procedimiento de codificación de imagen en
movimiento de acuerdo con una quinta forma de realización de la
presente invención.
La fig. 23 es un diagrama de
bloques que muestra detalladamente una estructura funcional de una
unidad de codificación de longitud variable que se muestra en la
fig. 22.
Las figs. 24A y 24B son diagramas que
muestran un ejemplo de secuencia L y secuencia R generadas por una
unidad de generación de secuencias RL que se muestra en la fig.
23.
La fig. 25 es un diagrama que
muestra un ejemplo estructural para cada tabla VLC almacenada en
una unidad de almacenamiento que se muestra en la fig. 23.
La fig. 26 es un diagrama que
muestra un ejemplo estructural de una tabla de valores umbral
almacenada en la unidad de almacenamiento que se muestra en la fig.
23.
La fig. 27 es un diagrama de flujo
que muestra el procesamiento de la asignación de códigos de
longitud variable, ejecutado por una unidad de asignación de códigos
que se muestra en la fig. 23.
La fig. 28 es un diagrama que
muestra una relación entre la tabla VLC usada para la codificación
y un valor umbral.
La fig. 29 es un diagrama de
patrones que muestra el modo en que la unidad de asignación de
códigos lleva a cabo el procesamiento de la codificación.
La fig. 30 es un diagrama de
bloques que muestra una estructura funcional de un aparato de
descodificación que usa un procedimiento de descodificación de
longitud variable y un procedimiento de descodificación de imagen
en movimiento de acuerdo con una sexta forma de realización de la
presente invención.
La fig. 31 es un diagrama de
bloques que muestra detalladamente una estructura funcional de una
unidad de descodificación de longitud variable que se muestra en la
fig. 30.
Las figs. 32A, 32B y 32C son ilustraciones
para un caso en el que se lleva a cabo el procedimiento de
codificación de imagen en movimiento de acuerdo con la primera,
tercera y quinta formas de realización o el procedimiento de
descodificación de imagen en movimiento de acuerdo con la segunda,
cuarta y sexta formas de realización en un sistema informático que
usa un disco flexible en el que hay grabado un programa para
ejecutar estos procedimientos.
La fig. 33 es un diagrama de
bloques que muestra una configuración completa de un sistema de
entrega de contenidos para realizar un servicio de entrega de
contenidos.
La fig. 34 es una ilustración que
muestra un teléfono móvil haciendo uso de un procedimiento de
predicción de imagen en movimiento, el aparato de codificación de
imagen en movimiento y el aparato de descodificación de imagen en
movimiento de acuerdo con la presente invención.
La fig. 35 es un diagrama de
bloques que muestra una estructura de un teléfono móvil de acuerdo
con la presente invención.
La fig. 36 es un diagrama de
bloques que muestra una configuración completa de un sistema de
difusión digital de acuerdo con la presente invención.
A continuación se describen las formas de
realización de acuerdo con la presente invención haciendo referencia
a los diagramas.
Primera forma de
realización
La fig. 1 es un diagrama de bloques que muestra
una estructura funcional de un aparato de codificación al que se
aplica el procedimiento de codificación de imagen en movimiento de
acuerdo con la presente invención. La primera forma de realización
ilustra la estructura funcional en un caso de codificación
intraimagen de una imagen de entrada usando el procedimiento de
codificación de imagen en movimiento de acuerdo con la presente
invención.
Como se muestra en el diagrama, un aparato de
codificación está compuesto por una unidad de conversión de bloques
110, una unidad de transformación de frecuencia 120, una unidad de
cuantización 130 y una unidad de codificación de longitud variable
140. Cada unidad de las que componen tal aparato de codificación
100a se obtiene con una CPU, una ROM para almacenar previamente un
programa o datos ejecutados por la CPU y una memoria para
proporcionar un área de trabajo cuando se ejecuta el programa así
como para almacenar temporalmente la imagen de entrada, o
similares.
La unidad de transformación de bloques 110
divide la imagen de entrada en bloques, cada uno con un tamaño de 4
(horizontal) x 4 (vertical) píxeles y envía cada bloque de píxeles a
la unidad de transformación de frecuencia 120.
La unidad de transformación de frecuencia 120
realiza la transformación de frecuencia en los bloques de píxeles
introducidos y los convierte en coeficientes de frecuencia y después
envía los coeficientes de frecuencia transformados a la unidad de
cuantización 130.
La unidad de cuantización 130 realiza el
procesamiento de la cuantización en los coeficientes de frecuencia
introducidos. El procesamiento de la cuantización se refiere aquí a
un procesamiento equivalente a dividir un coeficiente de frecuencia
por un determinado valor de cuantización. Además, el valor de
cuantización varía dependiendo generalmente de un bloque de píxeles
y una banda de frecuencia. Los coeficientes de frecuencia
cuantizados se introducen en la unidad de codificación de longitud
variable 140.
La unidad de codificación de longitud variable
140 realiza la codificación de longitud variable en valores de los
coeficientes de frecuencia en el bloque cuyo tamaño está
predeterminado (4 x 4 píxeles).
La fig. 2 es un diagrama de bloques que muestra
detalladamente una estructura funcional de la unidad de codificación
de longitud variable 140.
La unidad de codificación de longitud variable
140 incluye una unidad de generación de secuencias RL 141, una
unidad de reordenación 142, una unidad de asignación de códigos 143
y una unidad de almacenamiento 144.
Los coeficientes de frecuencia cuantizados
enviados desde la unidad de cuantización 130 se introducen en la
unidad de generación de secuencias RL 141.
La unidad de generación de secuencias RL 141
convierte en primer lugar los coeficientes de frecuencia cuantizados
en coeficientes unidimensionalizados, usando un procedimiento de
escaneo predeterminado. La unidad de generación de secuencias RL
141 genera después una secuencia (que en lo sucesivo se denominará
"secuencia RL") formada por una combinación de un valor R, que
indica el número de coeficientes cero consecutivos y un valor de
coeficiente distinto de cero L posterior a aquel. Se explica un
ejemplo de esto haciendo referencia a las figs. 3 y 4.
La fig. 3A es un diagrama de bloques que muestra
los coeficientes de frecuencia cuantizados en un bloque, enviados
desde la unidad de cuantización 130. Aquí, el coeficiente de
frecuencia de la parte superior izquierda indica un componente de
corriente continua, y los componentes de la frecuencia en la
dirección horizontal se hacen más grandes hacia la derecha,
mientras que los componentes de la frecuencia en la dirección
vertical se hacen más grandes hacia abajo. La fig. 3B es un
diagrama que muestra un procedimiento de escaneo para
unidimensionalizar los coeficientes de frecuencia cuantizados. La
unidad de generación de secuencias RL 141 unidimensionaliza los
coeficientes realizando el escaneo partiendo desde el dominio de
baja frecuencia hasta el dominio de alta frecuencia.
En la fig. 4A se muestra un resultado de la
generación de una secuencia RL para los valores de los coeficientes
unidimensionalizados, efectuada por la unidad de generación de
secuencias RL 141. En la fig. 4A, EOB (fin de bloque) es un
identificador que indica que los siguientes valores del bloque son
todos "0". Generalmente es más probable que el valor de un
coeficiente sea "0" en el dominio de alta frecuencia. Por lo
tanto, al realizar el escaneo partiendo desde el dominio de baja
frecuencia hacia el dominio de alta frecuencia, es posible reducir
la cantidad de información incluida en la secuencia RL. La secuencia
RL generada se introduce en la unidad de reordenación 142.
La unidad de reordenación 142 ordena la
secuencia RL en orden inverso. No obstante, el EOB no se reordenará.
La fig. 4B muestra un estado posterior a la realización de la
reordenación. La secuencia RL así reordenada se introduce en la
unidad de asignación de códigos 143.
La unidad de almacenamiento de tablas 144 guarda
previamente una tabla de códigos, (véase la referencia a la fig. 5)
que correlaciona valores RL con números de código asignados a los
valores RL así como una pluralidad de tipos de tablas (tablas VLC
en la fig. 6) que correlaciona los números de código con códigos de
longitud variable, y similares.
La unidad de asignación de códigos 143 asigna
los códigos de longitud variable a cada par en la secuencia RL
usando las tablas almacenadas en la unidad de almacenamiento de
tablas 144.
Para expresarlo con mayor precisión, la unidad
de asignación de códigos 143 asigna en primer lugar los números de
código a los valores RL. Aquí, la conversión de los valores RL en
números de código se efectúa usando una tabla de códigos
predeterminada (véase referencia a la fig. 5) almacenada en la
unidad de almacenamiento de tablas 144.
La fig. 5 es un diagrama que muestra un ejemplo
de la tabla de códigos.
La tabla de códigos se construye haciendo uso de
una tendencia a que los números de código más pequeños se asignen
normalmente a medida que aumenta la probabilidad de los valores RL y
la probabilidad aumenta cuando los valores RL indican los valores
más pequeños. Con el uso de esta tabla, por ejemplo, el número de
código "2" se asigna al primer valor RL (0, -1). Para los
valores RL del segundo al quinto (1, 1), (0, -2), (0, 3) y (0, 4),
se asignan los números de código "3", "8", "13" y
"15", respectivamente.
Después, la unidad de asignación de códigos 143
convierte los números de código en los códigos de longitud
variable. Para la conversión de los números de código en los códigos
de longitud variable, se usa una pluralidad de tablas VLC (véase
referencia a la fig. 6) almacenadas en la unidad de almacenamiento
de tablas 144.
La fig. 6 es un diagrama que muestra un ejemplo
de la tabla VLC.
En la primera forma de realización se almacenan
dos tipos de tablas VLC.
La primera tabla VLC 1 y la segunda tabla VLC 2
se construyen de tal modo que el código de longitud variable se
hace más largo a medida que el número de código se hace más grande.
La tabla VLC 1 se construye de forma que el código de longitud
variable se hace más corta a medida que el número de código se hace
más pequeño, comparado con la tabla VLC 2, mientras que la tabla
VLC 2 se construye de forma que el código de longitud variable se
hace más corta a medida que el número de código se hace más grande,
comparado con la tabla VLC 1. Concretamente, se asigna un código
corto a un número de código pequeño en la tabla VLC 1 y se asigna un
código corto a un número de código grande en la tabla VCL 2.
La tabla VCL 1 se usa para el primer valor RL.
En este caso, el número de código para el primer valor RL es
"2", por lo tanto, el código de longitud variable es
"011". Posteriormente se realiza la conversión de los números
de código en códigos de longitud variable, y cuando un valor
absoluto de L supera un valor umbral, se usa la tabla VLC 2 para
los siguientes valores RL. Suponiendo que un valor umbral del valor
absoluto de L es "2", el valor absoluto de L supera el valor
umbral en el cuarto valor RL (0, 3). Por lo tanto, la tabla VCL 1
se usa para los valores RL del primero al cuarto y la tabla VLC 2 se
usa para el quinto valor RL y siguientes.
Aquí, el valor absoluto de L vuelve a bajar del
valor umbral en el séptimo valor RL (1, 2), sin embargo, no se
cambia de tabla a la tabla VLC 1, y se usa la tabla VLC 2 para la
conversión. Esto supone que una dirección de cambio de entre tablas
es unidireccional. Aquí, "unidireccional" quiere decir que la
tabla que se usa una vez no se vuelve a usar. Así, se evita el
cambio frecuente de una tabla a otra y, por tanto, disminuye el
número de veces que se cambia de tabla. El valor absoluto de L
tiende generalmente a aumentar cuando los coeficientes se
unidimensionalizan partiendo desde los componentes de alta
frecuencia hacia los componentes de baja frecuencia. Por lo tanto,
en muchos casos, una vez que el valor absoluto de L sobrepasa el
valor umbral, el coeficiente es el único que baja del valor umbral
aunque el valor absoluto de L vuelva a bajar del valor umbral. Por
lo tanto es posible mejorar la eficiencia de la codificación
dejando de usar las tablas usadas aunque el valor absoluto de L
vuelva a bajar del valor umbral. Por ejemplo, normalmente en un área
de trabajo sólo se almacena la tabla que se va a usar a
continuación, ya que el área de trabajo de la memoria posee un
espacio limitado. En este caso, se tarda un tiempo hasta que se
empieza a codificar el siguiente coeficiente ya que se tarda un
tiempo en leer la siguiente tabla desde la ROM y expandirla en el
área de trabajo cada vez que se cambia de tabla. De este modo, el
cambio unidireccional de tabla resulta eficaz para limitar el número
de veces
que se cambia de tabla y para abreviar un tiempo total necesario para comenzar a codificar el siguiente coeficiente.
que se cambia de tabla y para abreviar un tiempo total necesario para comenzar a codificar el siguiente coeficiente.
La unidad de generación de secuencias RL 141
realiza el escaneo en los valores de coeficiente en una secuencia
de valores de coeficiente que comienza desde los componentes de baja
frecuencia hacia los componentes de alta frecuencia, mientras que
la unidad de asignación de códigos 143 realiza posteriormente la
codificación de longitud variable partiendo desde el final de la
secuencia de valores de coeficiente. Esto facilita las decisiones
rápidas en una tabla que se vaya a usar para codificar el primer
valor de coeficiente del bloque, una estructura de cada tabla y
valor umbral, ya que el valor absoluto del coeficiente tiende a
aumentar hasta alrededor de "1".
Así, el procedimiento de codificación de
longitud variable de acuerdo con la primera forma de realización
realiza un escaneo en los coeficientes de frecuencia del bloque,
partiendo desde el dominio de baja frecuencia hacia el dominio de
alta frecuencia. Entonces se genera una secuencia de valores RL,
cada uno de los cuales es una combinación de un valor R que indica
el número de coeficientes cero consecutivos y un valor de
coeficiente L que indica que se genera un coeficiente distinto de
cero para los coeficientes unidimensionalizados. Los valores RL se
convierten en los códigos de longitud variable en un orden inverso
al orden de escaneo. Es decir, los valores RL pueden convertirse
directamente. Se prepara una pluralidad de tablas para convertir los
valores RL en los códigos de longitud variable. En primer lugar, se
usa la primera tabla VLC para la conversión, y cuando el valor
absoluto de L supera el valor umbral, se usa la segunda tabla VLC
para los siguientes valores RL. Aquí, en la primera tabla VLC, el
código de longitud variable se hace más corto a medida que el número
de código se hace más pequeño, comparado con la segunda tabla VLC,
y en la segunda tabla VLC, el código de longitud variable se hace
más corto a medida que el número de código se hace más grande,
comparado con la tabla VLC.
El valor absoluto de L suele hacerse más grande
en el dominio de baja frecuencia, por lo tanto, el valor absoluto
de L se hace más grande cuando los valores RL se convierten en los
códigos de longitud variable en un orden inverso al orden en que se
generan los valores RL mediante el escaneo de los coeficientes desde
el dominio de baja frecuencia hacia el dominio de alta
frecuencia.
Por lo tanto, cuando el valor absoluto de L se
hace más grande después de que el valor absoluto de L haya superado
el valor umbral, es decir, usando la tabla VLC en la que el código
de longitud variable se hace más corto a medida que el número de
código se hace más grande, se puede reducir la cantidad total de
código. Es decir, la cantidad de código total para L puede
reducirse también codificando L y R por separado y, asimismo, usando
tablas VLC plurales.
La primera forma de realización describe el caso
de la codificación de la imagen usando una codificación intraimagen;
no obstante, se pueden obtener los mismos efectos para el caso en
el que una imagen se codifica por medio de una codificación
interimagen llevando a cabo una compensación de movimiento y otros
tratamientos en una imagen en movimiento de entrada, usando el
procedimiento de acuerdo con la presente forma de realización.
Además, la primera forma de realización describe
el caso de la división de la imagen de entrada en un bloque con un
tamaño de 4 (horizontal) x 4 (vertical) píxeles; no obstante, se
puede dar un tamaño diferente para el tamaño del bloque.
La primera forma de realización describe un
procedimiento de escaneo de un bloque haciendo referencia a la fig.
3; no obstante, se puede emplear otro procedimiento de escaneo
siempre que el escaneo se lleve a cabo partiendo desde el dominio
de baja frecuencia hacia el dominio de alta frecuencia.
Además, se describe un ejemplo de la tabla de
códigos haciendo referencia a la fig. 5; no obstante, puede ser una
tabla de códigos diferente.
Igualmente, se describe un ejemplo de la tabla
VLC haciendo referencia a la fig. 6; no obstante, puede ser una
tabla diferente.
En la presente forma de realización se describe
el caso en que se usan dos tablas VLC; no obstante, se pueden usar
tres tablas VLC con el uso de una pluralidad de valores umbral y las
tablas VLC pueden cambiarse cada vez que se supera el valor
umbral.
En la primera forma de realización se explica
que las tablas VLC se cambian cuando el valor absoluto de L haya
superado el valor umbral; no obstante, se pueden obtener los mismos
efectos en el cambio de tabla VLC cuando el número de código haya
superado el valor umbral.
En la presente forma de realización se describe
también que el EOB se añade al final de la secuencia RL; no
obstante, el número de los valores RL puede añadirse a la cabecera
de la secuencia RL. Las figs. 7A y 7B muestran el número de valores
RL que se van a codificar y la secuencia RL, correspondientes a las
figs. 4A y 4B para este caso.
En la tabla que se muestra en la fig. 5, la
asignación del número de código al EOB resulta innecesaria.
Segunda forma de
realización
La fig. 8 es un diagrama de bloques que muestra
una estructura funcional de un aparato de descodificación al que se
aplica el procedimiento de descodificación de longitud variable de
acuerdo con las formas de realización de la presente invención.
Aquí, se introducirá el flujo de bits generado usando el
procedimiento de codificación de longitud variable de acuerdo con
la presente invención descrito en la primera forma de
realización.
Como se muestra en la fig. 8, un aparato de
descodificación 500a está compuesto por una unidad de
descodificación de longitud variable 510, una unidad de
cuantización inversa 520, una unidad de transformación de frecuencia
inversa 530 y una memoria de imagen 540. Cada unidad de las que
componen tal aparato de descodificación 500a, como el aparato de
codificación 100a, se obtiene con una CPU, una ROM para almacenar
previamente un programa o datos ejecutados por la CPU y una memoria
para proporcionar un área de trabajo cuando el programa se ejecuta,
así como para almacenar temporalmente la imagen de entrada, o
similares.
El flujo de bits se introduce en la unidad de
descodificación de longitud variable 510. La unidad de
descodificación de longitud variable 510 descodifica el flujo de
bits que está codificado mediante codificación de longitud
variable. El flujo de bits se genera mediante la división de los
datos de imagen en bloques, cada uno de los cuales posee un tamaño
predeterminado, unidimensionalizando los coeficientes de frecuencia
del bloque usando un procedimiento de escaneo predeterminado y
codificando una secuencia de combinaciones (valores RL) del valor R
que indica el número de coeficientes cero consecutivos y el valor de
coeficiente L posterior al mismo.
La fig. 9 es un diagrama de bloques que muestra
detalladamente una estructura funcional de la unidad de
descodificación de longitud variable 510.
Como se muestra en la fig. 9, la unidad de
descodificación de longitud variable 510 incluye una unidad de
conversión de códigos 511, una unidad de almacenamiento de tablas
512, una unidad de reordenación 513 y una unidad de generación de
coeficientes 514.
La unidad de almacenamiento de tablas 512 se
construye del mismo modo que la unidad de almacenamiento de tablas
144 y almacena previamente una pluralidad de tipos de tablas (tablas
VLC en la fig. 6) que correlacionan los números de código con los
códigos de longitud variable y la tabla (una tabla de códigos, véase
referencia a la fig. 5) que correlaciona los valores RL con los
números de código asignados a los mismos.
La unidad de conversión de códigos 511 convierte
el código de longitud variable en números de código para el flujo
de bits introducido usando las tablas (pluralidad de tablas VLC)
almacenadas en la unidad de almacenamiento de tablas 512. La
conversión de los códigos de longitud variable en números de código
se lleva a cabo usando una pluralidad de tablas VLC. Las tablas VLC
se almacenan en la unidad de almacenamiento de tablas 512 y los
códigos de longitud variable se convierten en los números de código
consultando la unidad de almacenamiento de tablas 512.
Se explica un ejemplo de la tabla VLC en
referencia a la fig. 6. Aquí se almacenan dos tipos de tablas VLC.
Se asigna un código más corto a un número de código más pequeño en
la tabla VLC 1 mientras que se asigna un código más corto a un
número de código más grande en la tabla VLC 2. Suponemos que aquí un
código de una parte de cabecera del flujo de bits introducido es
"01100100000100100011100010011". La tabla VLC 1 se usa para el
primer código de longitud variable. Cuando se consulta la tabla VLC
1 de la fig. 6, el código de longitud variable "011"
corresponde al flujo de bits introducido, por lo tanto, en este caso
el número de código es "2".
La unidad de conversión de códigos 511 convierte
entonces el número de código obtenido en un valor RL. En este caso,
se usa una tabla de códigos predeterminada. La tabla de códigos se
almacena en la unidad de almacenamiento de tablas 512, y el número
de código se convierte en un valor RL en referencia a la unidad de
almacenamiento de tablas 512. En la fig. 5 se muestra un ejemplo de
la tabla de códigos. El número de código es, en este caso,
"2", por lo tanto, el valor RL es (0, -1).
Igualmente, al transcurrir secuencialmente la
conversión de los códigos de longitud variable en los números de
código, uno por uno, usando la tabla VLC 1, el código de longitud
variable "00100" se convierte en el número de código "3",
el código de longitud variable "0001001" en el número de código
"8" y el código de longitud variable "0001110" en el
número de código "13" respectivamente, y los números de código
respectivos se convierten a su vez en los valores RL (1, 1), (0,
-2) y (0, 3).
Aquí, cuando el valor absoluto de L del valor RL
obtenido supera el valor umbral, la unidad de conversión de códigos
511 usa la tabla VLC 2 para la conversión de los siguientes códigos
de longitud variable. Suponemos que el valor umbral del valor
absoluto de L es "2", el valor absoluto de L sobrepasa el valor
umbral en el cuarto valor RL (0, 3). Por lo tanto, para los
siguientes valores RL, la conversión se efectúa usando la tabla VLC
2. Por consiguiente, el siguiente código de longitud variable
"0010011" se convierte en el número de código "15" y se
convierte a su vez en el valor RL (0, 4).
Aunque el valor absoluto de L del valor RL
obtenido en la posterior descodificación vuelve a bajar del valor
umbral, el cambio a la tabla VLC 1 no se efectúa, y se usa la tabla
VLC 2 para la conversión. Así, cuando se generan los valores RL
equivalentes a un único bloque (se detecta un EOB), se introducen en
la unidad de reordenación 513. Aquí se supone que se genera la
secuencia RL que se muestra en la fig. 10A.
La unidad de reordenación 513 ordena en orden
inverso la secuencia RL introducida. No obstante, el EOB no se
reordenará. La fig. 10B muestra el estado tras la reordenación. La
secuencia RL reordenada de este modo se introduce en la unidad de
generación de coeficientes 514.
La unidad de generación de coeficientes 514
convierte en coeficientes la secuencia RL introducida y
bidimensionaliza un bloque de coeficientes usando un procedimiento
de escaneo predeterminado. Cuando la secuencia RL se convierte en
los coeficientes, se genera un coeficiente "0" para el número
indicado por R basándose en el orden de escaneo predeterminado, y
luego se genera el coeficiente indicado por L. Aquí, suponiendo que
los coeficientes se escanean en zigzag partiendo desde el dominio
de baja frecuencia hacia el dominio de alta frecuencia, la
secuencia RL que se muestra en la fig. 10B se convierte en el bloque
de coeficientes que se muestra en la fig. 11. El bloque de
coeficientes generado se introduce en la unidad de cuantización
inversa 520.
La unidad de cuantización inversa 520 realiza el
procesamiento de la cuantización inversa en el bloque de
coeficientes introducido. La cuantización inversa se refiere aquí a
integrar un valor de cuantización predeterminado a cada coeficiente
del bloque de coeficientes. El valor aquí cuantizado depende
normalmente de un bloque o una banda de frecuencias que usa un
valor obtenido del flujo de bits o bien un valor predeterminado. El
bloque de coeficientes cuantizado por cuantización inversa se
introduce en la unidad de transformación de frecuencia inversa
530.
La unidad de transformación de frecuencia
inversa 530 realiza la transformación de frecuencia inversa en otros
bloques de coeficientes cuantizados mediante cuantización inversa a
fin de convertirlos en bloques de píxeles. Los bloques de píxeles
convertidos se introducen en la memoria de imagen 540.
Los bloques de píxeles descodificados se
almacenan uno por uno en la memoria de imagen 540, y enviados como
una imagen de salida después de que se almacenen los bloques de
píxeles equivalentes a una única imagen.
Así, el procedimiento de descodificación de
longitud variable de acuerdo con la presente invención descodifica
un flujo de bits de entrada en primer lugar usando la primera tabla
VLC y genera una secuencia de valores RL que consisten en una
combinación de R, que indica el número de coeficientes cero
consecutivos, y L, que indica un coeficiente distinto de cero
posterior al mismo. Después, cuando el valor absoluto de L supera el
valor umbral, se usa la segunda tabla VLC para descodificar los
siguientes códigos de longitud variable. Después, el valor RL se
convierte en un coeficiente basándose en un procedimiento
predeterminado de escaneo del bloque tras poner los valores RL en
orden inverso.
Con el anterior procesamiento, resulta posible
descodificar correctamente el flujo de bits que se codifica usando
el procedimiento de codificación de longitud variable de acuerdo con
la presente invención mediante el uso del procedimiento de
descodificación de longitud variable de la presente invención.
En la segunda forma de realización se explica el
caso de la descodificación del flujo de bits generado usando una
codificación intraimagen; no obstante, se pueden obtener los mismos
efectos en el caso de descodificar el flujo de bits generado
realizando una codificación interimagen en una imagen en movimiento
de entrada, con el uso de compensación de movimiento y otros
tratamientos, empleando el procedimiento de acuerdo con la presente
forma de realización.
La segunda forma de realización describe el caso
en el que la imagen de entrada se divide en bloques, cada uno de
los cuales posee un tamaño de 4 (horizontal) x 4 (vertical) píxeles,
y se codifica; no obstante, se puede dar un tamaño diferente para
el tamaño del bloque.
Además, la segunda forma de realización describe
un procedimiento de escaneo de un bloque en referencia a la fig.
11; no obstante se puede usar un orden de escaneo diferente siempre
que sea el mismo que se haya usado para la codificación.
En la segunda forma de realización se explica el
ejemplo de la tabla de códigos en referencia a la fig. 11; no
obstante, se puede usar una tabla de códigos diferente siempre que
sea la misma que se haya usado para la codifi-
cación.
cación.
Además, se explica un ejemplo de la tabla VLC en
referencia a la fig. 6; no obstante, se puede usar una tabla
diferente siempre que sea la misma que se haya usado para la
codificación. En la presente forma de realización se describe el
caso del uso de dos tablas VLC; no obstante, se pueden usar tres
tablas VLC con el uso de una pluralidad de valores umbral, y la
tabla VLC puede cambiarse cada vez que se supere un valor umbral.
No obstante, la estructura de la tabla VLC y el valor umbral serán
los mismos que los usados para la codificación.
La segunda forma de realización también describe
el caso del cambio de tabla VLC cuando el valor absoluto de L ha
superado el valor umbral; no obstante, se pueden obtener los mismos
efectos en el cambio de tabla VLC cuando el número de código ha
superado el valor umbral.
En la segunda forma de realización se describe
el caso de la descodificación del flujo de bits codificado con el
EOB añadido al final de la secuencia RL; no obstante, el flujo de
bits que está codificado con el número de valores RL añadidos a la
cabecera de la secuencia RL puede descodificarse. Las figs. 12A y
12B muestran el número de valores RL y la secuencia RL obtenidos
del procesamiento de la descodificación, correspondientes a las
figs. 10A y 10B para este caso. En este caso, en la tabla de códigos
que se muestra en la fig. 5, la asignación del número de código al
EOB resulta innecesaria.
El procedimiento de codificación de longitud
variable de acuerdo con la presente invención realiza el escaneo en
los coeficientes de frecuencia del bloque partiendo desde el dominio
de baja frecuencia hacia el dominio de alta frecuencia y los
unidimensionaliza. Después, se genera para los coeficientes
unidimensionalizados una secuencia de valores RL, cada uno de los
cuales es una combinación de R, el número de coeficientes cero
consecutivos, y L, el coeficiente distinto de cero posterior al
mismo. Los valores RL se convierten después en códigos de longitud
variable en un orden inverso al orden de escaneo. Se prepara una
pluralidad de tablas VLC para convertir los valores RL en los
códigos de longitud variable. Después, la conversión se realiza en
primer lugar usando la primera tabla VLC, y cuando el valor absoluto
de L o el número de código superen el valor umbral, se usa la
segunda tabla VLC para convertir los siguientes valores RL. En este
caso, en la primera tabla VLC, el código de longitud variable se
hace más corto a medida que el número de código se hace más pequeño,
en comparación con la segunda tabla VLC, y en la segunda tabla VLC,
el código de longitud variable se hace más corto a medida que
número de código se hace más grande, en comparación con la primera
tabla VLC.
Normalmente, el valor absoluto de L y el número
de código se hacen más grandes en el dominio de baja frecuencia,
por lo tanto, el valor absoluto de L se hace más grande cuando los
valores RL se convierten en los códigos de longitud variable en un
orden inverso al orden en que se generan los valores RL realizando
el escaneo partiendo desde el dominio de baja frecuencia hasta el
dominio de alta frecuencia. Por lo tanto, la cantidad de código
total puede reducirse usando la tabla VLC en la que el código de
longitud variable se hace más corto a medida que el número de
código se hace más grande, después de que el valor absoluto de L
haya superado el valor umbral.
El procedimiento de descodificación de longitud
variable de acuerdo con la presente invención descodifica en primer
lugar el flujo de bits de entrada usando la primera tabla VLC y
genera una secuencia de los valores RL, cada uno de los cuales es
una combinación de R, el número de coeficientes cero consecutivos, y
L, el coeficiente distinto de cero que le sigue. Cuando el valor
absoluto de L o el número de código superan el valor umbral, se usa
la segunda tabla VLC para descodificar los siguientes códigos de
longitud variable. Después, los valores RL se convierten en los
coeficientes basándose en el orden predeterminado de escaneo del
bloque tras poner los valores RL en orden inverso.
Con el anterior procesamiento, resulta posible,
mediante el uso del procedimiento de descodificación de longitud
variable de acuerdo con la presente invención, descodificar
correctamente el flujo de bits que se codifica usando el
procedimiento de codificación de longitud variable de acuerdo con la
presente invención.
Tercera forma de
realización
A continuación se describe un aparato de
codificación de acuerdo con la tercera forma de realización, en
referencia a los diagramas.
La fig. 13 es un diagrama de bloques que muestra
una estructura del aparato de codificación 100b de acuerdo con la
tercera forma de realización de la presente invención.
Este aparato de codificación de imágenes 100b,
que realiza una codificación intraimagen en una imagen de entrada
(datos de imagen) con una eficiencia de codificación mejorada, está
compuesto por una unidad de conversión de bloques 101, una unidad
de transformación de frecuencia 102, una unidad de cuantización 103
y una unidad de codificación de longitud variable 150.
La unidad de transformación de bloques 101
divide la imagen de entrada en bloques de píxeles, cada uno de los
cuales posee un tamaño de 4 (horizontal) x 4 (vertical) píxeles, y
los envía a la unidad de transformación de frecuencia 102.
La unidad de transformación de frecuencia 102
realiza la transformación de frecuencia en cada uno de los bloques
de píxeles divididos a fin de generar coeficientes de frecuencia.
Después, la unidad de transformación de frecuencia 102 envía los
coeficientes de frecuencia generados a la unidad de cuantización
103.
La unidad de cuantización 103 realiza la
cuantización en los coeficientes de frecuencia producidos por la
unidad de transformación de frecuencia 102. La cuantización se
refiere aquí a un procesamiento equivalente a dividir un
coeficiente de frecuencia por un valor de cuantización
predeterminado. Además, el valor de cuantización varía dependiendo
generalmente de un bloque de píxeles y una banda de frecuencia. A
continuación, la unidad de cuantización 103 envía los coeficientes
de frecuencia cuantizados a la unidad de codificación de longitud
variable 150.
La unidad de codificación de longitud variable
150 realiza una codificación de longitud variable en los
coeficientes de frecuencia cuantizados por la unidad de
cuantización 103.
La fig. 14 es un diagrama de bloques que muestra
una estructura interna de la unidad de codificación de longitud
variable 150.
Como se muestra en la fig. 14, la unidad de
codificación de longitud variable 150 está compuesta por una unidad
de generación de secuencias RL 201, una unidad de reordenación 202,
una unidad de binarización 203, una unidad de almacenamiento de
tablas 204 y una unidad de codificación aritmética 205.
La unidad de generación de secuencias RL 201
convierte los coeficientes de frecuencia cuantizados (abreviados
como "coeficientes" en lo sucesivo) producidos por la unidad de
cuantización 103 en coeficientes unidimensionalizados, usando un
procedimiento de escaneo predeterminado. La unidad de generación de
secuencias RL 201 genera después una secuencia (que en lo sucesivo
se denominará "secuencia RL") formada por combinaciones de un
valor R que indica el número de coeficientes cero consecutivos y un
valor de coeficiente L que indica un coeficiente distinto de cero
(que en lo sucesivo se denominarán "valores RL"). Se explica un
ejemplo de esto haciendo referencia a las figs. 15 y 16.
La fig. 15A muestra un bloque de coeficientes
compuesto por una pluralidad de coeficientes producidos por la
unidad de cuantización 103. El coeficiente de frecuencia de la parte
superior izquierda denota aquí un componente de corriente continua,
y los componentes de frecuencia en la dirección horizontal se hacen
más grandes hacia la derecha, mientras que los componentes de
frecuencia en la dirección vertical se hacen más grandes hacia
abajo.
La fig. 15B es un diagrama de explicativo para
explicar un procedimiento de escaneo para unidimensionalizar una
pluralidad de coeficientes en un bloque de coeficientes. Según
indican las flechas en la fig. 15B, la unidad de generación de
secuencias RL 201 unidimensionaliza los coeficientes mediante la
realización de un escaneo partiendo desde el dominio de baja
frecuencia hacia el dominio de alta frecuencia.
La fig. 16A muestra una secuencia RL producida
por la unidad de generación de secuencias 201. En la fig. 16A, el
primer número indica el número de coeficientes. Generalmente, es más
probable que el valor de un coeficiente sea "0" en el dominio
de alta frecuencia. Por lo tanto, mediante la realización del
escaneo partiendo desde el dominio de baja frecuencia hacia el
dominio de alta frecuencia, es posible reducir la cantidad de
información incluida en una secuencia RL (entre ésta, la cantidad
de información de los números R). La secuencia RL generada se
introduce en la unidad de reordenación 202.
La unidad de reordenación 202 ordena en orden
inverso la secuencia RL introducida. No obstante, el número de
coeficientes no se reordenará.
La fig. 16B muestra la secuencia RL reordenada
por la unidad de reordenación 202. Realizando la reordenación de
este modo, es posible reducir la cantidad de información, tal como
se describe anteriormente, y, por consiguiente, unidimensionalizar
coeficientes aplicando un escaneo al bloque de coeficientes desde el
dominio de alta frecuencia hacia el dominio de baja frecuencia.
Posteriormente, la secuencia RL así ordenada se envía a la unidad de
binarización 203.
La unidad de binarización 203 efectúa la
binarización en el número de coeficientes y cada valor RL, es decir,
los convierte en datos binarios compuestos por "0" y "1".
Aquí, el valor R y el valor de coeficiente L se binarizan por
separado.
La fig. 16C muestra únicamente los valores de
coeficiente L en la secuencia RL reordenada por la unidad de
reordenación 202. Los valores absolutos y los signos de estos
valores de coeficiente L se procesan por separado. Además, la
unidad de binarización 203 efectúa la binarización en los valores R
y los valores absolutos de los valores de coeficiente L, usando una
tabla binaria predeterminada, tal como se muestra en la fig. 21,
por ejemplo. Después, la unidad binaria 203 envía a la unidad de
codificación aritmética 205 los datos binarios resultantes de
efectuar la binarización en ellos.
La unidad de codificación aritmética 205 realiza
una codificación aritmética binaria en los valores de los números R
y los valores absolutos de los valores de coeficiente L
representados como datos binarios, mientras que al mismo tiempo se
codifican los signos de los valores de coeficiente L. Aquí se da una
explicación para la codificación aritmética que se realizará en el
valor absoluto del valor de coeficiente L. La unidad de
codificación aritmética 205 usa una pluralidad de tablas de
probabilidades cambiando de una a otra, cuando se realiza la
codificación aritmética en el valor absoluto del valor de
coeficiente L representado como datos binarios. La pluralidad de
tablas de probabilidades se almacena en la unidad de almacenamiento
de tablas 204.
La fig. 17 es un diagrama de transición que
muestra un procedimiento de cambio de una tabla de probabilidades a
otra.
Como se muestra en la fig. 17, la unidad de
codificación aritmética 205 usa cuatro tablas de probabilidades, de
las cuales se usa la tabla de probabilidades 1 para realizar la
codificación aritmética en el valor absoluto del primer valor de
coeficiente L. Mientras, para los siguientes valores de coeficiente
L, la unidad de codificación aritmética 205 cambia a otra tabla de
probabilidades para hacer uso de la misma, dependiendo del número de
tabla de la tabla de probabilidades usada para la codificación del
valor absoluto del valor de coeficiente L previo, así como del
valor absoluto. Aquí hay cuatro tablas de probabilidades, que son la
tabla de probabilidades 1, la tabla de probabilidades 2, la tabla
de probabilidades 3, y la tabla de probabilidades 4; y el número de
tabla de la tabla de probabilidades 2 es "2", el número de
tabla de la tabla de probabilidades 3 es "3", y el número de
tabla de la tabla de probabilidades 4 es "4".
Más concretamente, la tabla de probabilidades 2
se usa cuando se cumple una de las siguientes condiciones: cuando
se usa la tabla de probabilidades 1 para codificar el valor absoluto
del valor de coeficiente L previo y su valor absoluto es "1";
y cuando se usa la tabla de probabilidades 2 para codificar el valor
absoluto del valor de coeficiente L previo y su valor absoluto es
"1". Mientras, la tabla de probabilidades 3 se usa cuando se
cumple una de las siguientes condiciones: cuando se usa la tabla de
probabilidades 1 para codificar el valor absoluto del valor de
coeficiente L previo y su valor absoluto es "2"; y cuando se
usa la tabla de probabilidades 2 para codificar el valor absoluto
del valor de coeficiente L previo y su valor absoluto es "2";
y cuando se usa la tabla de probabilidades 3 para codificar el valor
absoluto del valor de coeficiente L previo y su valor absoluto es
"2 o menos". Y la tabla de probabilidades 4 se usa cuando se
cumple una de las siguientes condiciones: cuando el valor absoluto
del valor de coeficiente L previo es "3"; y cuando se usa la
tabla de probabilidades 4 para codificar el valor absoluto del valor
de coeficiente L
previo.
previo.
Tal como se describe anteriormente, se cambia de
una tabla de probabilidades a otra en una dirección, es decir, de
una tabla de probabilidades con un número de tabla menor a una tabla
de probabilidades con un número de tabla mayor. Por consiguiente,
aunque el valor absoluto del valor de coeficiente L previo sea igual
o menor que un valor umbral predeterminado, no se invertirá la
dirección del cambio de tablas de probabilidades. Este el rasgo que
distingue la presente invención de la técnica existente.
La fig. 18 es un diagrama de visualización del
contenido de las tablas de probabilidades que muestra el contenido
de las cuatro tablas de probabilidades 1 a 4 mencionadas
anteriormente.
Como se muestra en la fig. 18, cada una de las
cuatro tablas de probabilidades 1 a 4 está compuesta por la
probabilidad de que aparezca el "0" y la probabilidad de que
aparezca el "1".
Por ejemplo, la tabla de probabilidades 1 está
compuesta por la probabilidad "0,1" de que aparezca el "0"
y la probabilidad "0,9" con que aparece el "1", y la
tabla de probabilidades 2 está compuesta por la probabilidad
"0,2" de que aparezca el "0" y la probabilidad "0,8"
de que aparezca el "1".
Para explicarlo de otro modo, cuando el valor
absoluto del valor de coeficiente L es "2", el resultado de
binarizar el "2" es "01", y por lo tanto, cuando se usa la
tabla de probabilidades 1 para realizar la codificación aritmética
en el "01", la unidad de codificación aritmética 205 realiza la
codificación aritmética en el "01" usando la probabilidad
"0,1" correspondiente a "0" en tal "01" y la
probabilidad "0,9" correspondiente a "1" en tal
"01".
Debido a que la suma de la probabilidad de que
aparezca el "0" y la probabilidad de aparezca el "1" es
1,0, no es necesario aquí mantener estas dos probabilidades, y por
lo tanto sólo se puede conservar una de estas probabilidades.
A continuación se explica un ejemplo de cambio
de tabla de probabilidades en un caso en el que la codificación se
efectúa en los valores absolutos (binarizados) de los valores de
coeficiente L que se muestran en la fig. 16C.
La unidad de codificación aritmética 205 usa la
tabla de probabilidades 1 para el valor absoluto del primer valor
de coeficiente L (-2). Debido a que el valor absoluto de tal valor
de coeficiente L es 2, aquí la unidad de codificación aritmética
205 cambia de la tabla de probabilidades 1 a la tabla de
probabilidades 3 para hacer uso de la misma. Por consiguiente, la
unidad de codificación aritmética 205 usa la tabla de probabilidades
3 para realizar la codificación aritmética en el valor absoluto del
segundo valor de coeficiente L (3). Debido a que el valor absoluto
de tal valor de coeficiente L es "3", aquí la unidad de
codificación aritmética 205 cambia de la tabla de probabilidades 3
a la tabla de probabilidades 4 para hacer uso de la misma. Por
consiguiente, la unidad de codificación aritmética 205 usa la tabla
de probabilidades 4 para realizar la codificación aritmética en el
valor absoluto del tercer valor de coeficiente L (6). Debido a que
se ha cambiado de la tabla de probabilidades que se va a usar a la
tabla de probabilidades 4, aquí la unidad de codificación aritmética
205 usa la tabla de probabilidades 4 para realizar la codificación
aritmética en los valores absolutos de todos los valores de
coeficiente L posteriores. Por ejemplo, el valor absoluto del quinto
valor de coeficiente L es "2", pero a diferencia de la técnica
existente, la unidad de codificación aritmética 205 usa la tabla de
probabilidades 4 cuando realiza la codificación aritmética en el
valor absoluto del sexto valor de coeficiente L y de ahí en
adelante, sin cambiar a otra tabla de probabilidades.
Además, ya que cada una de las tablas de
probabilidades se actualiza a medida que se necesite dependiendo de
si una entrada es "0" o "1", tales tablas de
probabilidades se actualizan para adaptarse a la entrada.
Tal como se describe anteriormente, en el
procedimiento de coeficiente de longitud variable empleado por la
unidad de codificación de longitud variable 150 en el aparato de
codificación de imagen 100b de acuerdo con la presente invención,
se realiza la unidimensionalización en los coeficientes de un bloque
de coeficientes escaneándolos partiendo desde el dominio de baja
frecuencia hacia el dominio de alta frecuencia. Después genera una
secuencia de valores RL (secuencia RL) compuestos por una
combinación de un número R que indica los valores de coeficiente
cero consecutivos y un valor de coeficiente L distinto de cero
posterior al mismo. Tales valores RL se convierten después en
códigos de longitud variable en un orden opuesto al que se ha
aplicado en el escaneo. Cuando los valores RL se convierten en
códigos de longitud variable, los números R, los valores absolutos
de los valores de coeficiente L y los signos de los valores de
coeficiente L se convierten por separado. Cuando se convierten, la
binarización se efectúa en primer lugar, seguida de la codificación
aritmética. A fin de efectuar la codificación aritmética en los
valores absolutos de los valores de coeficiente L, se cambia entre
una pluralidad de tablas de probabilidades. Cuando se cambia de una
tabla de probabilidades a otra tabla de probabilidades, la tabla de
probabilidades que se va a usar para codificar el valor absoluto del
siguiente valor de coeficiente L se determina dependiendo del
número de tabla de la tabla de probabilidades actual y el valor
absoluto del valor de coeficiente L actual. Las tablas de
probabilidades sólo se cambiarán en una dirección, y una vez que el
valor absoluto de un valor de coeficiente L supera un valor
predeterminado, se usa la misma tabla de probabilidades desde ese
momento para realizar la codificación
aritmética.
aritmética.
Cuando el escaneo se aplica desde el dominio de
alta frecuencia y después al dominio de baja frecuencia, es
probable que el valor absoluto del valor de coeficiente L se haga
más grande, ya que el valor absoluto del valor de coeficiente L se
hace generalmente más grande hacia el dominio de baja frecuencia.
Por lo tanto, una vez que el valor del valor de coeficiente L
supera un valor predeterminado, aunque después de eso el valor
absoluto de otro valor de coeficiente L resulte más pequeño que el
valor predeterminado, es muy posible que sólo el valor absoluto de
tal valor de coeficiente sea pequeño. Así, al efectuar la
codificación aritmética haciendo uso de la misma tabla de
probabilidades, la actualización de una tabla de probabilidades
llega a adaptarse más fácilmente a las entradas. Por consiguiente,
esto hace posible que la probabilidad de aparición de símbolos
("0" o "1" en datos binarios) en cada tabla de
probabilidades esté más sesgado (es decir, la probabilidad de
aparición de "0" o "1" se convierte en un valor más
próximo a 1,0). La codificación aritmética posee la característica
de que cuanto más sesgado estén los valores de probabilidad en una
tabla de probabilidades, mayor será la eficiencia de la
codificación. Por consiguiente, la eficiencia de la codificación
puede mejorarse usando el procedimiento de codificación de longitud
variable de acuerdo con la presente invención.
Se ha explicado el aparato de codificación de
imagen de acuerdo con la presente invención usando la presente
forma de realización, pero la presente invención no se limita a
esto.
En la presente forma de realización, por
ejemplo, se proporciona una explicación para el caso en el que se
codifica una imagen por medio de una codificación intraimagen, pero
se pueden obtener los mismos efectos para el caso en el que se
codifica una imagen por medio de una codificación interimagen
realizando una compensación de movimiento y otros tratamientos en
una imagen en movimiento de entrada.
Además, aunque en la presente forma de
realización se da una explicación para el caso en el que una imagen
de entrada se divide en bloques de píxeles, cada uno de los cuales
posee un tamaño de 4 (horizontal) x 4 (vertical) píxeles, se puede
dar un tamaño diferente para el bloque de píxeles.
Además, en la presente forma de realización,
aunque se usa la fig. 15B para explicar un procedimiento para
realizar el escaneo sin un bloque de coeficientes, también se puede
emplear otro orden de escaneo siempre que el escaneo se realice
desde el dominio de baja frecuencia hacia el dominio de alta
frecuencia.
Además, en la presente forma de realización se
da una explicación para el caso en el que la unidad de generación
de secuencias RL 201 convierte los coeficientes de frecuencia
cuantizados en coeficientes unidimensionalizados usando un
procedimiento de escaneo predeterminado, y genera una secuencia
(secuencia RL) compuesta por combinaciones de R, que indica el
número de valores de coeficiente cero consecutivos, y L, que indica
un valor de coeficiente distinto de cero posterior a aquel, pero se
puede generar aparte una secuencia de los números R y una secuencia
de los valores de coeficiente L. Cuando se genera una secuencia de
valores de coeficiente L, por ejemplo, se puede omitir la unidad de
reordenación 202, si tal secuencia se genera realizando el escaneo
partiendo desde el dominio de alta frecuencia hacia el dominio de
baja frecuencia y seleccionando los coeficientes cuyos valores
indican que son distintos de cero.
Además, en la presente forma de realización se
da una explicación para el caso en el que se cambia de una tabla de
probabilidades a otra de acuerdo con la tabla de transición que se
ilustra en la fig. 17, pero se pueden dar diferentes valores para
el número de tablas de probabilidades y para valores umbral para el
valor absoluto del valor de coeficiente L cuando se cambia de una
tabla de probabilidades a otra tal como se ilustra en la fig.
17.
Además, la fig. 21 se presenta como un ejemplo
de tabla binaria, pero se puede emplear otra tabla.
Además, en la presente forma de realización, se
da una explicación para el caso en el que la unidad de codificación
aritmética realiza una codificación aritmética binaria; no obstante,
se puede realizar una codificación aritmética multivalor. En tal
caso, es posible omitir la unidad de binarización 203.
Cuarta forma de
realización
A continuación se explica un aparato de
descodificación de imagen de acuerdo con la cuarta forma de
realización de la presente invención, haciendo referencia a los
diagramas.
La fig. 19 es un diagrama de bloques que muestra
una estructura de un aparato de descodificación 500b de acuerdo con
la cuarta forma de realización de la presente invención.
Este aparato de descodificación 500b realiza una
descodificación intraimagen en el flujo de bits resultante de
realizar una codificación intraimagen en unos datos de imagen, y
está compuesto por una unidad de descodificación de longitud
variable 601, una unidad de cuantización inversa 602, una unidad de
transformación de frecuencia inversa 603, y una unidad de memoria
604. El flujo de bits que se va a introducir aquí se genera usando
el procedimiento de codificación de longitud variable empleado por
el aparato de codificación 100b de acuerdo con la tercera forma de
realización, y se obtiene en primer lugar mediante la unidad de
descodificación de longitud variable 601.
Al recibir el flujo de bits, la unidad de
descodificación de longitud variable 601 genera un bloque de
coeficientes compuesto por una pluralidad de coeficientes, tal como
se muestra en la fig. 15A, realizando una descodificación de
longitud variable en tal flujo de bits.
La unidad de cuantización inversa 602, que
recibe el bloque de coeficientes procedente de la unidad de
descodificación de de longitud variable 601, realiza una
cuantización inversa en tal bloque de coeficientes. Cuantización
inversa significa aquí integrar un valor de cuantización
predeterminado en tal bloque de coeficientes. Generalmente, un
valor de cuantización varía según un bloque de coeficientes o una
banda de frecuencia, y se obtiene a partir de un flujo de bits.
Después, la unidad de cuantización inversa 602 envía el bloque de
coeficientes cuantizados por cuantización inversa hacia la unidad
de transformación de frecuencia inversa 603.
La unidad de transformación de frecuencia
inversa 603 realiza una transformación de frecuencia inversa en el
bloque de coeficientes cuantizados por cuantización inversa, y
después convierte el bloque de coeficientes en un bloque de
píxeles. Después, la unidad de transformación de frecuencia inversa
603 envía a la memoria de imagen 604 el bloque de píxeles
convertido.
La memoria de imagen 604 almacena los bloques de
píxeles descodificados en secuencia, y cuando se almacenan los
bloques de píxeles equivalentes a una imagen, envía estos bloques de
píxeles como imagen de salida.
Aquí se da una explicación detallada para la
unidad de descodificación de longitud variable 601 descrita
anteriormente.
La fig. 20 es un diagrama de bloques que muestra
una estructura interna de la unidad de descodificación de longitud
variable 601.
Como se muestra en la fig. 20, la unidad de
descodificación de longitud variable 601 está compuesta por una
unidad de descodificación aritmética 701, una unidad de conversión
multivalor 702, una unidad de almacenamiento de tablas 703, una
unidad de reordenación 704, y una unidad de generación de
coeficientes 705.
La unidad de almacenamiento de tablas 703
almacena, por ejemplo, cuatro tablas de probabilidades 1 a 4, tal
como se muestra en la fig. 18.
Al recibir el flujo de bits, la unidad de
descodificación aritmética 701 realiza en primer lugar una
descodificación aritmética en el flujo de bits. Aquí se da una
explicación para la descodificación aritmética binaria que se
realiza en los valores absolutos (binarizados) de valores de
coeficiente L incluidos en el flujo de bits.
Cuando se realiza la descodificación aritmética
en el valor absoluto del valor de coeficiente L codificado, la
unidad de descodificación aritmética 701 obtiene de la unidad de
conversión multivalor 702 el valor absoluto del valor de
coeficiente L previo que ya se ha descodificado y convertido en un
multivalor. Después, la unidad de descodificación aritmética 701
cambia entre las tablas de probabilidades 1 a 4 almacenadas por la
unidad de almacenamiento de tablas 703 del modo que se muestra en
la fig. 17, dependiendo del valor absoluto de tal valor de
coeficiente L, y realiza la descodificación aritmética binaria en el
valor absoluto de cada uno de los valores de coeficiente L
codificados a fin de producir datos binarios correspondientes a cada
uno de ellos.
La unidad de conversión multivalor 702 convierte
los datos binarios producidos por la unidad de descodificación
aritmética 701 en multivalores, usando, por ejemplo, una tabla
binaria tal como se muestra en la fig. 21, a fin de representarlos
como los valores absolutos de los valores de coeficiente L. Después,
la unidad de conversión multivalor 702 envía los valores absolutos
de tales valores de coeficiente L a la unidad de descodificación
aritmética 701 y la unidad de reordenación 704.
Se da una explicación para el funcionamiento
detallado de la unidad de descodificación aritmética 701 y la
unidad de conversión multivalor 702.
En primer lugar, la unidad de descodificación
aritmética 701 usa la tabla de probabilidades 1 para realizar una
descodificación aritmética en el valor absoluto del primer valor de
coeficiente L codificado. Después, la unidad de descodificación
aritmética 701 envía a la unidad de conversión multivalor 702 los
datos binarios obtenidos al realizar la descodificación aritmética.
La unidad de conversión multivalor 702 usa la tabla binaria a fin
de convertir los datos binarios en el valor absoluto del valor de
coeficiente L, y envía el valor absoluto a la unidad de
descodificación aritmética 701 y la unidad de reordenación 704.
Después, para los valores absolutos de los
siguientes valores de coeficiente L codificados, la unidad de
descodificación aritmética 701 cambia a otra tabla de
probabilidades para hacer uso de ella, dependiendo del número de
tabla de la tabla de probabilidades usada cuando el valor absoluto
del anterior valor de coeficiente L codificado se descodifica
mediante una descodificación aritmética binaria, así como del valor
absoluto de tal valor de coeficiente L anterior obtenido de la
unidad de conversión multivalor 702. Como se muestra en la fig. 17,
la tabla de probabilidades 2 se usa cuando se cumple una de las
siguientes condiciones: cuando se usa la tabla de probabilidades 1
para realizar una descodificación aritmética en el valor absoluto
del anterior valor de coeficiente L codificado y el valor absoluto
del anterior valor de coeficiente L obtenido de la unidad de
conversión multivalor 702 indica "1"; y cuando se usa la tabla
de probabilidades 2 para realizar una descodificación aritmética en
el valor absoluto del anterior valor de coeficiente L codificado
obtenido de la unidad de conversión multivalor 702 indica "1".
La tabla de probabilidades 3 se usa cuando se cumple una de las
siguientes condiciones: cuando se usa la tabla de probabilidades 1
para realizar una descodificación aritmética en el valor absoluto
del anterior valor de coeficiente L codificado y el valor absoluto
del anterior valor de coeficiente L obtenido de la unidad de
conversión multivalor 702 indica "2"; cuando se usa la tabla de
probabilidades 2 para realizar una descodificación aritmética en el
valor absoluto del anterior valor de coeficiente L codificado
obtenido de la unidad de conversión multivalor 702 indica "2";
y cuando se usa la tabla de probabilidades 3 para realizar una
descodificación aritmética en el valor absoluto del anterior valor
de coeficiente L codificado obtenido de la unidad de conversión
multivalor 702 indica "2 o menos". Y la tabla de probabilidades
4 se usa cuando se cumple una de las siguientes condiciones: cuando
el valor absoluto del anterior valor de coeficiente L obtenido de
la unidad de conversión multivalor 702 indica "3 o un valor
mayor"; y cuando se usa la tabla de probabilidades 4 para
realizar una descodificación aritmética en el valor absoluto del
anterior valor de coeficiente L codificado. Como se muestra
anteriormente, las tablas de probabilidades 1 a 4 se cambian en una
dirección, es decir, de una tabla de probabilidades con un número
de tabla más pequeño a una tabla de probabilidades con un número de
tabla más grande. Por consiguiente, aunque el valor absoluto del
anterior valor de coeficiente L obtenido de la unidad de conversión
multivalor 702 sea igual o menor que un valor umbral predeterminado,
no se cambiará de una tabla de probabilidades a otra en la
dirección opuesta. Este es el rasgo que distingue la presente
invención de la técnica existente.
A continuación se explica un ejemplo de cambio
entre las tablas de probabilidades, en un caso en el que se realiza
una descodificación en los valores absolutos de valores de
coeficiente L que se muestran en la fig. 16C.
La unidad de descodificación aritmética 701 usa
la tabla de probabilidades 1 para realizar una descodificación
aritmética en el valor absoluto del primer valor de coeficiente L
codificado (-2) a fin de descodificarlo para obtener los datos
binarios "01". Debido a que, a partir de la unidad de
conversión multivalor 702, la unidad de descodificación aritmética
701 obtiene "2", que es un multivalor convertido desde tales
datos binarios "01", cambia de la tabla de probabilidades 1 a
la tabla de probabilidades 3, para hacer uso de la misma. Por
consiguiente, la unidad de descodificación aritmética 701 usa la
tabla de probabilidades 3 para realizar una descodificación
aritmética en el valor absoluto del segundo valor de coeficiente L
codificado (3) a fin de descodificarlo para obtener los datos
binarios "001". Debido a que, de la unidad de conversión
multivalor 702, la unidad de descodificación aritmética 701 obtiene
aquí "3", que es un multivalor convertido desde tales datos
binarios "001", se cambia de la tabla de probabilidades 3 a la
tabla de probabilidades 4 para hacer uso de la misma. Por
consiguiente, la unidad de descodificación aritmética 701 usa la
tabla de probabilidades 4 para realizar una descodificación
aritmética en el valor absoluto del tercer valor de coeficiente L
codificado (6) a fin de descodificarlo para obtener los datos
binarios "000001". Debido a que la tabla de probabilidades que
se va a usar se cambia a la tabla de probabilidades 4, la unidad de
descodificación aritmética 701 usa aquí la tabla de probabilidades
4 para realizar una descodificación aritmética en los valores
absolutos de todos los valores de coeficiente L posteriores. Por
ejemplo, el valor absoluto del quinto valor de coeficiente L
codificado se descodifica y se convierte en un multivalor "2",
pero a diferencia de la técnica anterior, la unidad de
descodificación aritmética 701 usa la tabla de probabilidades 4 para
realizar la descodificación aritmética en el valor absoluto del
sexto valor de coeficiente L codificado y siguientes, sin cambiar a
otra tabla de probabilidades.
A través de la anterior operación, cuando se
generan los valores absolutos de los valores de coeficiente L, los
números R y los signos de los valores de coeficiente L equivalentes
a un bloque de coeficientes, se introducen en la unidad de
reordenación 704 como una secuencia RL.
La unidad de reordenación 704 ordena en orden
inverso tal secuencia RL introducida. No obstante, el número de
coeficientes no se reordenará. La fig. 16A ilustra una secuencia RL
reordenada. Posteriormente, la unidad de reordenación 704 envía a
la unidad de generación de coeficientes 705 la secuencia RL
reordenada de este modo.
La unidad de generación de coeficientes 705
convierte en un bloque de coeficientes la secuencia RL introducida.
Al hacerlo, la unidad de generación de coeficientes 705 realiza una
conversión desde la secuencia RL a un bloque de coeficientes
llevando a cabo repetidamente la siguiente operación: generación de
coeficientes cero para el número indicado por un número R y después
generación de un coeficiente con un valor indicado por un valor de
coeficiente L. La unidad de generación de coeficientes 705 realiza
aquí un escaneo en zigzag partiendo desde el dominio de baja
frecuencia hasta el dominio de alta frecuencia, tal como se muestra
en la fig. 15B, a fin de convertir la secuencia RL que se muestra
en la fig. 16A en el bloque de coeficientes que se muestra en la
fig. 15A. Después, la unidad de generación
de coeficientes 705 envía a la unidad de cuantización inversa 602 el bloque de coeficientes generado de este modo.
de coeficientes 705 envía a la unidad de cuantización inversa 602 el bloque de coeficientes generado de este modo.
Tal como se describe anteriormente, en el
procedimiento de descodificación aritmética empleado por la unidad
de descodificación de longitud variable 601 en el aparato de
descodificación 500b de acuerdo con la presente invención, se
cambia entre una pluralidad de tablas de probabilidades cuando se
realiza una descodificación aritmética en los valores absolutos de
los valores de coeficiente L incluidos en un flujo de bits de
entrada. Cuando se cambia a otra tabla de probabilidades, la tabla
de probabilidades que se va a usar para descodificar el valor
absoluto del siguiente valor de coeficiente L se determina
dependiendo del número de tabla de la tabla de probabilidades
actual y del valor absoluto de un valor de coeficiente L obtenido de
la descodificación. Sólo se cambia de tabla de probabilidades en
una dirección en este caso, y cuando el valor absoluto del valor de
coeficiente L obtenido de la descodificación supera un valor
predeterminado, se usa la misma tabla de probabilidades para
realizar la descodificación aritmética en todos los valores
absolutos posteriores.
Resulta evidente a partir de lo anterior que el
uso del procedimiento de descodificación aritmética de acuerdo con
la presente invención hace que sea posible descodificar
correctamente un flujo de bits codificados con el uso del
procedimiento de codificación de longitud variable de acuerdo con la
presente invención.
El aparato de descodificación de acuerdo con la
presente invención se ha explicado anteriormente usando la presente
forma de realización, pero la presente invención no se limita a
esto.
En la presente forma de realización, por
ejemplo, se proporciona una explicación para el caso en el que se
realiza una descodificación en un flujo de bits que se ha generado
usando una codificación intraimagen, pero también se pueden obtener
los mismos efectos para el caso en el que la descodificación se
realiza en un flujo de bits que se haya generado usando una
codificación interimagen realizando una compensación de movimiento
y otros tratamientos en una imagen en movimiento de entrada.
Además, aunque en la presente forma de
realización se da una explicación para el caso en el que los datos
de imagen se codifican estando divididos en bloques de píxeles, cada
uno de los cuales posee un tamaño de 4 (horizontal) x 4 (vertical)
píxeles, se puede dar un tamaño diferente para el bloque de
píxeles.
Además, en la presente forma de realización se
da una explicación para el caso en el que se usan cuatro tablas de
probabilidades y se cambia de una a otra de acuerdo con la tabla de
transición ilustrada en la fig. 17, pero se pueden emplear valores
diferentes para el número de tablas de probabilidades y valores
umbral para los valores absolutos de los valores de coeficiente L
cuando de una tabla de probabilidades a otra tal como se ilustra en
la fig. 17.
Además, en la presente forma de realización,
aunque se usa la fig. 15B para explicar un procedimiento para
realizar el escaneo sin un bloque de coeficientes, también se puede
emplear otro orden de escaneo siempre que sea el mismo que en el
procedimiento de escaneo empleado en el momento de la
codificación.
Además, se describe un ejemplo de tabla binaria
haciendo referencia a la fig. 21, pero se puede emplear otra tabla
siempre que sea la misma que la tabla binaria usada en el momento de
la codificación.
Además, aunque en la presente forma de
realización se da una explicación para el caso en el que la unidad
de descodificación aritmética 701 realiza una descodificación
aritmética binaria, en lugar de ello se puede realizar una
descodificación aritmética multivalor. En tal caso, es posible
omitir la unidad de conversión multivalor 702.
Por consiguiente, se describen otras formas de
realización de acuerdo con la presente invención haciendo referencia
a los diagramas.
Quinta forma de
realización
La fig. 22 es un diagrama de bloques que muestra
una estructura funcional de un aparato de codificación 100c al que
se aplica el procedimiento de codificación de longitud variable de
acuerdo con la presente invención y el procedimiento de
codificación de imágenes en movimiento que hace uso del mismo. En la
quinta forma de realización, se describe la estructura funcional
para un caso de codificación intraimagen de una imagen de entrada
usando el procedimiento de codificación de imagen en movimiento de
la presente invención, tal como se ilustra para los aparatos de
codificación 100a y 100b descritos en la primera y la tercera formas
de realización. Además, cada unidad de las que componen tal aparato
de codificación 100c puede obtenerse con una CPU, una ROM para
almacenar previamente un programa o datos ejecutados por la CPU y
una memoria para proporcionar un área de trabajo para ejecutar el
programa, así como para almacenar temporalmente la imagen de
entrada, y similares.
Como se muestra en la fig. 22, el aparato de
codificación de acuerdo con la quinta forma de realización está
compuesto por la unidad de conversión de bloques 110, la unidad de
transformación de frecuencia 120, la unidad de cuantización 130 y
una unidad de codificación de longitud variable 160.
Aquí, el aparato de codificación 100a de acuerdo
con la primera forma de realización está estructurado de forma que
los pares de R y L se codifiquen usando una pluralidad de tablas de
codificación de longitud variable (tablas VLC) y el aparato de
codificación 100b de acuerdo con la tercera forma de realización
está estructurado de manera que L y R se codifiquen aritméticamente
por separado usando una pluralidad de tablas de probabilidades. No
obstante, el aparato de codificación 100c de acuerdo con la quinta
forma de realización está estructurado de forma que L y R se
codifiquen por separado usando una pluralidad de tablas VLC, lo cual
distingue el aparato de codificación 100c de los aparatos de
codificación 100a y 100b. Por lo tanto, el aparato de codificación
100c incluye la unidad de codificación de longitud variable 160 en
lugar de las unidades de codificación de longitud variable 140 y
150 de los aparatos de codificación 100a y 100b. En cuanto a los
otros componentes, las descripciones se abrevian debido a que son
las mismas que las descritas para los aparatos de codificación 100a
y 100b, y la unidad de codificación de longitud variable 160 se
describe detalladamente.
La unidad de codificación de longitud variable
160 genera una secuencia L y una secuencia R basándose en los
coeficientes de frecuencia cuantizados mediante la unidad de
cuantización 130 y después genera un flujo de bits de valores
absolutos de coeficientes |L|, o similares, usando un
procedimiento de cambio de VLC unidimen-
sional.
sional.
La fig. 23 es un diagrama de bloques que muestra
detalladamente una estructura funcional de la unidad de codificación
de longitud variable 160.
Como se muestra en la fig. 23, la unidad de
codificación de longitud variable 160 está compuesta por una unidad
de generación de secuencias RL 161, una unidad de asignación de
códigos 163 y una unidad de almacenamiento de tablas 164.
La unidad de generación de secuencias RL 161
genera la secuencia R y la secuencia L por separado realizando un
escaneo en zigzag en los coeficientes de frecuencia cuantizados
(denominados simplemente "coeficientes" en lo sucesivo)
partiendo desde el dominio de baja frecuencia hacia el dominio de
alta frecuencia.
Para ser más precisos, cuando se introducen los
coeficientes del bloque que se muestra en la fig. 3A, la unidad de
generación de secuencias RL 161 realiza un escaneo en zigzag tal
como se muestra en la fig. 3B. Después, la unidad de generación de
secuencias RL 161 obtiene en primer lugar para la secuencia L un
valor m que indica el número de valores de coeficiente L distintos
de cero, una secuencia de valores absolutos de tales coeficientes
|L| y una secuencia de signos para tales coeficientes, tal como
se muestra en la fig. 24A. Esto es debido a que L no depende de R
y puede obtenerse independientemente, mientras que R depende de L.
Por consiguiente, la unidad de generación de secuencias RL 161
genera una secuencia de R (secuencia R) tal como se muestra en la
fig. 24B.
La unidad de almacenamiento de tablas 164
almacena una pluralidad de tablas VLC (por ejemplo, 8) de 1641a a
1641g para realizar una codificación de longitud variable en cada
valor absoluto de los coeficientes |L| de la secuencia, una
pluralidad de valores umbral para el valor absoluto del coeficiente
|L|, y una tabla de valores umbral 1642 para cambiar de forma
adaptable entre las tablas VLC 1641a a 1641g de acuerdo con el
valor absoluto del coeficiente
|L|.
|L|.
La fig. 25 es un diagrama que muestra ejemplos
estructurales para las tablas VLC 1641a a 1641g. Cada una de las
tablas VLC 1641a a 1641g relaciona, de hecho, valores absolutos de
los coeficientes |L| y códigos binarios, que se muestran en una
única tabla en el diagrama.
Aquí se asigna un número de código más pequeño
al valor absoluto del coeficiente |L| a medida que una
frecuencia de aparición del valor absoluto del coeficiente |L|
se hace más grande, y generalmente, cuanto más pequeño es el valor
absoluto del coeficiente |L|, mayor será la frecuencia de
aparición. Esto se debe a que el mayor valor del valor absoluto del
coeficiente |L| se dispersa, tanto en un vídeo como en pantalla,
de tal forma que la frecuencia de aparición del mismo valor es baja
mientras que el valor más pequeño del valor absoluto del
coeficiente |L|, es decir, un componente de alta frecuencia,
tiende en gran medida a indicar "1" y "2", y de ese modo
la frecuencia de aparición del mismo valor se hace mayor. Por otra
parte, usando únicamente el valor absoluto del coeficiente |L|,
el código binario y la tabla VLC, que están correlacionados entre
sí, se obtiene una longitud de código muy larga a medida que el
valor absoluto del coeficiente |L| se hace más grande. Por lo
tanto, las tablas VLC 1641a a 1641g que se van a aplicar dependiendo
del valor absoluto del coeficiente |L| se preparan previamente
de tal forma que la longitud del código no se haga más larga aunque
el valor absoluto del coeficiente |L| se haga más grande.
Cada una de las tablas VLC 1641a a 1641g posee
una tasa de cambio diferente en la longitud del código para
coeficientes: una longitud de código para el valor más pequeño del
coeficiente se hace más larga en un orden ascendente de los números
k asignados a cada una de las tablas y una longitud de código para
el valor más grande del coeficiente se hace más corta en un orden
ascendente del número k.
Para expresarlo de forma más concreta, la tabla
VLC 1641a es una tabla en la que una longitud de código es la más
corta cuando el valor absoluto del coeficiente |L| es pequeño y
una longitud de código es la más larga cuando el valor absoluto del
coeficiente |L| es grande. Es decir, la tabla VLC 1641a, de
entre las tablas VLC 1641a a 1641g, es una tabla en la que la tasa
de cambio en la longitud del código para valores absolutos de los
coeficientes |L| es la más grande,
y resulta apropiada para el caso en el que el valor absoluto del coeficiente |L| es pequeño (por ejemplo, "1" a "3").
y resulta apropiada para el caso en el que el valor absoluto del coeficiente |L| es pequeño (por ejemplo, "1" a "3").
La tabla de longitud variable 1641g es una tabla
en la que una longitud de código es la más larga cuando el valor
absoluto del coeficiente |L| es grande y una longitud de código
es la más corta cuando el valor absoluto del coeficiente |L| es
grande. Concretamente, la tabla VLC 1641g, de entre las tablas VLC
1641a a 1641g, es una tabla en la que la tasa de cambio en la
longitud de código para valores absolutos de los coeficientes
|L| es la más pequeña, y resulta adecuada para el caso en el que
el valor absoluto del coeficiente |L| es grande (por ejemplo,
"193").
Las tablas VLC 1641b a 1641f son las tablas en
las que la longitud del código se hace más larga gradualmente a
medida que el valor absoluto del coeficiente |L| se hace más
pequeño, y se hace gradualmente más corta a medida que el valor
absoluto del coeficiente |L| se hace más grande, en un orden
ascendente desde 1641b a 1641f. Concretamente, las tablas VLC 1641
b a 1641f son las tablas en las que la tasa de cambio en la longitud
del código para valores de los coeficientes |L| se hace
gradualmente más pequeña. La tabla VLC 1641b resulta adecuada para
usarla cuando el valor absoluto del coeficiente |L| es, por
ejemplo, de entre "4" y "6", mientras que la tabla VLC
1641c resulta adecuada para usarla cuando el valor absoluto del
coeficiente |L| es, por ejemplo, de entre "7" y
"12".
Así, es posible mejorar la eficiencia de la
codificación debido a que el código de longitud variable con la
longitud de código basada en el coeficiente puede adaptarse a cada
tabla. En otras palabras, es posible acortar la longitud del código
de forma notable cambiando entre las tablas dependiendo del
coeficiente, de tal forma que el coeficiente pueda codificarse para
obtener el código de longitud variable cuya longitud de código es
más corta en una tabla que en la otra cuando el coeficiente es
grande. Además, puede lograrse la mejora de la eficiencia de la
codificación debido a que se puede asignar a cada una de las tablas
un intervalo en el que la longitud del código se hace más corta. La
codificación no usa una codificación aritmética sino un
procedimiento VLC; por lo tanto, resulta innecesario el complicado
procesamiento que se exige a la codificación aritmética, y la
codificación de longitud variable se realiza fácilmente consultando
una tabla una vez que se determina la tabla para la
codificación.
La fig. 26 es un diagrama que muestra un ejemplo
estructural de la tabla de valores umbral 1642.
La tabla de valores umbral 1642 se establece de
antemano de acuerdo con las características de las tablas VLC 1641a
a 1641g y guarda una pluralidad de valores umbral para usarlos para
cambiar entre las tablas VLC 1641a a 1641f. Por ejemplo, los
valores umbral se establecen respectivamente del siguiente modo:
"4" para el cambio entre las tablas VLC 1641a y 1641b,
"7" para el cambio entre las tablas VLC 1641b y 1641c, ... y
"193" para el cambio entre las tablas VLC 1641f y 1641g. Así
se puede predecir fácilmente la sincronización para cambiar de una
tabla a otra, por lo tanto, es posible cambiar a la tabla óptima de
acuerdo con el valor absoluto del coeficiente |L|.
La unidad de asignación de códigos 163 realiza
una codificación de longitud variable en los valores absolutos de
los coeficientes |L| enviados desde la unidad de generación de
secuencias RL 161, por separado de la secuencia R, usando las
tablas VLC 1641a a 1641g, así como la tabla de valores umbral 1642
almacenada en la unidad de almacenamiento de tablas 164 y después
les asigna códigos binarios. Para expresarlo brevemente, la unidad
de asignación de códigos 163 unidimensionaliza los valores absolutos
de los coeficientes |L|.
A continuación se describe una operación de
codificación realizada por el aparato de codificación 100c. Las
operaciones realizadas por la unidad de conversión de bloques 110 a
la unidad de cuantización 130 se abrevian, ya que son las mismas
que las descritas para los aparatos de codificación 100a y 100b, y
la codificación de longitud variable realizada por la unidad de
codificación de longitud variable 160 se explica detalladamente.
Los coeficientes de frecuencia cuantizados
mediante la unidad de cuantización 130 se introducen en la unidad
de generación de secuencias RL 161 del aparato de codificación de
longitud variable 160.
La unidad de generación de secuencias RL 161,
como en la fig. 3B, unidimensionaliza en primer lugar los
coeficientes de frecuencia cuantizados del bloque realizando un
escaneo en zigzag en los mismos partiendo desde el dominio de los
componentes de corriente continua hacia el de los componentes de
alta frecuencia. Después, la unidad de generación de secuencias RL
161 genera por separado una secuencia de valores "L", cada uno
de los cuales indica un coeficiente distinto de cero (que se
denominará "secuencia L" en lo sucesivo) y una secuencia de
valores R, cada uno de los cuales indica el número de coeficientes
cero consecutivos (que se denominará "secuencia R" en lo
sucesivo). Las figs. 24A y 24B muestran ejemplos de la secuencia L y
la secuencia R generadas. En cuanto a la secuencia L, ésta puede
dividirse en el número de coeficientes m, valores absolutos de los
coeficientes |L| y signos de los coeficientes. Por lo que
respecta a los signos de los coeficientes, "0" indica que el
coeficiente es positivo, mientras que "1" indica que el
coeficiente es negativo.
Aquí, el coeficiente de la secuencia L se
aproxima a "1" escaneando desde el dominio de baja frecuencia
hacia el dominio de alta frecuencia, ya que el coeficiente del
componente de alta frecuencia tiende generalmente a ser
"0".
La unidad de asignación de códigos 163 codifica
cada valor de L de la secuencia L generada por la unidad de
generación de secuencias RL 161 en un orden opuesto al orden usado
para escanear en zigzag, es decir, partiendo desde los coeficientes
de alta frecuencia. Concretamente, la unidad de asignación de
códigos 163 obtiene códigos de Huffman en secuencia (códigos de
longitud variable) correspondientes a los valores absolutos de los
coeficientes L comenzando desde el final de la secuencia L, usando
las tablas VLC 1641a a 1641g.
El motivo para codificar el valor L en un orden
inverso al orden usado para escanear en zigzag consiste en que los
coeficientes distintos de cero en el dominio de alta frecuencia
convergen en las proximidades del coeficiente "1", y resulta
sencillo determinar la primera tabla para la codificación, para
generar las tablas VLC 1641a a 1641g y para determinar los valores
umbral.
La unidad de asignación de códigos 163 asigna
los códigos de longitud variable a valores "L" en la secuencia
L y valores R en la secuencia R usando diversas tablas almacenadas
en la unidad de almacenamiento de tablas 164. La unidad de
asignación de códigos 163 asigna también un código de longitud
variable al número de coeficientes m, pero aquí se describe el
procesamiento de la asignación de los códigos de longitud variable a
los valores absolutos de los coeficientes |L|.
La fig. 27 es un diagrama de flujo que muestra
el procesamiento de la asignación de códigos de longitud variable
efectuado por la unidad de asignación de códigos 163.
La unidad de asignación de códigos 163 establece
el número de coeficientes m enviados desde la unidad de generación
de secuencias RL 161 como un comienzo para la codificación de los
coeficientes (valores absolutos de los coeficientes |L|) del
bloque (S101). Después, la unidad de asignación de códigos 163
establece "0" para el número de tabla k como valor inicial de
la tabla VLC que se usará como referencia (S102), consulta la tabla
de valores umbral 1642 y establece un valor umbral igual a "4"
(S103).
Cuando termina la configuración del número de
coeficientes m, la tabla VLC de referencia (tabla VLC 1641a en este
caso) y el valor umbral, la unidad de asignación de códigos 163 lee
el valor absoluto del coeficiente |L|, que sale de la unidad de
generación de secuencias RL 161, comenzando desde el último (S104) y
codifica el valor absoluto de la lectura del coeficiente |L|
para obtener un código de longitud variable usando la tabla VLC con
el número establecido de antemano (S105). Después, cuando finaliza
la codificación, la unidad de asignación de códigos 163 almacena el
código binario obtenido mediante la codificación en una memoria
temporal (por ejemplo, memoria temporal FILO) que no se muestra en
el diagrama (S106), resta "1" al número de coeficientes m
(S107) y juzga si el número m reducido indica "0" o no, es
decir, si todos los coeficientes incluidos en la secuencia L se
codifican o no (S108).
Cuando el número de coeficientes m no indica
"0" ("No" en S108), se juzga si el valor absoluto del
coeficiente inmediatamente anterior ha superado o no el valor
umbral (S109). Cuando no supera el valor umbral ("No" en
S109), la unidad de asignación de códigos 163 lee el valor absoluto
del siguiente coeficiente |L|, comenzando desde el último
(S104), y ejecuta las etapas S105 a S108, o similares.
Concretamente, la unidad de asignación de códigos 163 codifica el
valor absoluto del siguiente coeficiente usando la misma tabla VLC
que se usa para el coeficiente
anterior.
anterior.
Cuando el valor absoluto del coeficiente |L|
inmediatamente anterior ha superado el valor umbral ("No" en
S109), la unidad de asignación de códigos 163 incrementa en "1"
el número de tabla k (S110). Así, en la codificación del valor
absoluto del siguiente coeficiente |L|, se consulta la tabla VLC
con una baja tasa de cambio en la longitud del código, que se puede
aplicar a la codificación del valor absoluto del coeficiente |L|
cuya longitud de código sea larga (por ejemplo, se consulta la
tabla VLC 1641b con k=1 cuando la tabla VLC anterior es 1641a con
k=0).
Cuando termina el incremento para el número de
tabla k, la unidad de asignación de códigos 163 consulta la tabla
de valores umbral 1642 y la actualiza con el siguiente valor umbral
(por ejemplo "7" cuando el anterior valor umbral es "4")
(S111). Así, se puede cambiar de tabla a la siguiente tabla VLC con
una baja tasa de cambio en la longitud del código, que se puede
aplicar a la codificación del valor absoluto del coeficiente
|L| cuya longitud de código sea larga, sólo cuando el valor
absoluto del coeficiente |L| haya superado el nuevo valor
umbral.
Más exactamente, cuando el valor absoluto del
anterior coeficiente |L| ha superado el valor umbral "4"
asignado al cambio entre las tablas VLC 1641a con el número de
tabla "0" y 1641b con el número de tabla "1", la
referencia se cambia de la tabla VLC 1641a a la tabla VLC 1641b
para codificar el valor absoluto del siguiente coeficiente, y se
establece el valor umbral "7", tal como se muestra en la fig.
28.
Igualmente, cuando el valor absoluto del
anterior coeficiente |L| ha superado el valor umbral "7" a
"193" entre la tabla VLC 1641b con el número de tabla "1"
y la tabla VLC 1641g con el número de tabla "6", la referencia
para codificar el valor absoluto del siguiente coeficiente |L|
se cambia secuencialmente de la tabla VLC 1641b con el número de
tabla "1" a la tabla VLC 1641c con el número de tabla "2",
... y a la tabla VLC 1641g. Esto se muestra en la fig. 28.
Aquí, una dirección de cambio entre las tablas
es unidireccional y no vuelve hacia atrás. Así, se puede evitar el
cambio frecuente de una tabla a otra dependiendo del coeficiente, y
de este modo se puede reducir el número de veces que se cambia de
una tabla a otra. Por ejemplo, ya que el área de trabajo en la
memoria tiene un espacio limitado, sólo se almacena la tabla que se
va a usar. En este caso, se tarda un tiempo en empezar a codificar
el siguiente coeficiente ya que se tarda un tiempo en leer la
siguiente tabla desde la ROM y en expandirla en el área de trabajo
cada vez que se cambia de tabla. Esta forma de cambiar
unidireccionalmente entre las tablas resulta eficaz para limitar el
número de veces que se cambia entre las tablas y para abreviar el
tiempo total necesario para codificar el siguiente coeficiente.
Cuando termina el incremento del número de tabla
y la actualización del valor umbral como tales, la unidad de
asignación de códigos 163 lee el valor absoluto del siguiente
coeficiente |L|, comenzando desde el último (S104) y ejecuta
las etapas S105 a S108, o similares. Concretamente, la codificación
se realiza usando la tabla VLC adecuada para el caso en el que el
valor absoluto del coeficiente |L| es mayor que el que le
precede.
Tal procesamiento se ejecuta repetidamente hasta
que el número de coeficientes m indica "0", momento en el que
finaliza la codificación de los valores absolutos de los
coeficientes |L| del bloque actual.
Para expresarlo de forma más concreta, cuando la
secuencia de los valores absolutos de los coeficientes |L| del
bloque es "1", "1", "2", "3", "4",
"12", "2", "3", "31", "22", "5",
"9" y "38", comenzando desde el final de la secuencia, la
unidad de asignación de códigos 163 los codifica respectivamente
para obtener códigos binarios "1", "1", "010",
"011", "00100" y "0001100" en este orden, usando en
primer lugar la tabla VLC 1641a. La unidad de asignación de
códigos 163 cambia después la tabla para la codificación a la tabla
VLC 1641b con el número de tabla k=1, ya que el valor umbral
"4" se supera al codificar el valor absoluto del coeficiente
|L| que indica "12".
Después, la unidad de asignación de códigos 163
codifica respectivamente el valor absoluto del siguiente coeficiente
|L| que indica "2", "3" y "31" para obtener
códigos binarios "11", "0100" y "0000100000" con el
uso de la tabla VLC 1641b a la cual se ha cambiado la tabla. La
unidad de asignación de códigos 163 cambia después de tabla para la
codificación a la tabla VLC 1641c con el número de tabla k=2, ya
que el valor umbral "7" se supera al codificar el valor
absoluto del coeficiente |L| que indica "31".
Además, la unidad de asignación de códigos 163
codifica el valor absoluto del siguiente coeficiente para obtener
un código binario "0011001" usando la tabla VLC 1641c a la cual
se cambia la tabla. La unidad de asignación de códigos 163 cambia
después de tabla para la codificación a la tabla VLC 1641d con el
número de tabla k=3, ya que el valor umbral "13" se supera al
codificar el valor absoluto del coeficiente |L| que indica
"22".
Después, la unidad de asignación de códigos 163
codifica respectivamente los valores absolutos de los siguientes
coeficientes |L| que indican "5", "9" y "38" para
obtener códigos binarios "1100", "010000" y
"00101101" usando la tabla VLC 1641d a la cual se cambia la
tabla.
Por consiguiente, en la memoria temporal se
almacena el código binario "11010011001000001100110100000
01000000011001110001000000101101".
El número de coeficientes en la secuencia L, m,
los códigos binarios de los valores absolutos de los coeficientes
|L|, los signos de los coeficientes y los códigos binarios de
los valores R en la secuencia R, que se codifican, también se
almacenan en la memoria temporal y se transmiten al aparato de
descodificación a través de un medio de grabación como un CD, y un
medio de transmisión tal como Internet, una difusión por satélite, o
similares.
Cuando aquí se supone que los valores absolutos
de los coeficientes en la secuencia L, "1", "1", "2",
"3", "4", "12", "2", "3", "31",
"22", "5", "9" y "38" se codifican usando
únicamente la tabla VLC 1641a, los códigos binarios son "1",
"1", "010", "011", "00100", "0001100",
"010" "011", "010", "011", "000011111",
"000010110", "00101", "001001" y "00000100110",
cuya longitud de código equivale a 64 bits.
A diferencia de esto, usando el procedimiento de
codificación de acuerdo con la quinta forma de realización, es
posible mejorar la eficiencia de la codificación aunque el valor más
grande del valor absoluto del coeficiente |L| del bloque sea
relativamente pequeño y el valor absoluto del coeficiente |L| no
aumente gradualmente, ya que la longitud del código equivale a 61
bits. Esto se debe en gran medida al hecho de que cuando el valor
absoluto del coeficiente |L| indica, por ejemplo, "22" y
"38", se requieren 9 bits para "000010110" y 11 bits para
"00000100110" usando únicamente la tabla VLC 1641a para la
codificación, mientras que sólo se requieren 7 bits para
"0011001" y 8 bits para "00101101" usando el presente
procedimiento. Por lo tanto, es posible mejorar la eficiencia de la
codificación de forma notable cuando el valor más grande del
coeficiente |L| del bloque normal es relativamente alto y el
valor absoluto del coeficiente |L| aumenta gradualmente.
En la quinta forma de realización, cuando el
valor absoluto del coeficiente |L| inmediatamente anterior ha
superado el valor umbral ("Sí" en S109), el número de tabla k
se incrementa en "1" (S110) y la codificación se realiza
usando la tabla VLC con el siguiente número (véase la referencia a
la fig. 28). No obstante, la tabla puede saltarse hasta llegar a la
tabla VLC adaptada al valor absoluto del coeficiente |L|
dependiendo del valor absoluto del coeficiente |L|
inmediatamente anterior que ha superado el valor umbral.
Concretamente, cuando el valor absoluto del coeficiente |L|
inmediatamente anterior que se va a codificar haciendo referencia a
la tabla con el número k=1 es "20", por ejemplo, existe una
gran posibilidad de que el valor absoluto del siguiente coeficiente
|L| sea mayor que "20"; por lo tanto, la tabla con el
número k=3 puede usarse como referencia para codificar el valor
absoluto del siguiente coeficiente |L|. En este caso, se puede
establecer el valor umbral que corresponda a la tabla VLC (por
ejemplo, 25).
Se explica que se usan ocho tablas VLC, pero el
número de tablas VLC puede ser de entre 2 y 7 o mayor que ocho,
usando una pluralidad de valores umbral, y la tabla VLC puede
cambiarse cada vez que se supera el valor
umbral.
umbral.
Además, en la quinta forma de realización, el
valor absoluto y el signo del coeficiente se codifican por separado
y ninguna de las tablas VLC para valores absolutos de coeficientes
contiene signos (valores absolutos); no obstante, se pueden
codificar los coeficientes con los signos. Por ejemplo, se puede
añadir 1 bit para el signo a un bit LSB para el código de longitud
variable.
En la quinta forma de realización se describe el
caso en el que se codifica una imagen por medio de una codificación
intraimagen; no obstante, se pueden obtener los mismos efectos para
el caso en el que se codifica una imagen por medio de una
codificación interimagen, usando el procedimiento de acuerdo con la
presente invención.
Además, la quinta forma de realización describe
el caso de la división de la imagen de entrada en bloques, cada uno
de un tamaño de 4 (horizontal) x 4 (vertical) píxeles; no obstante,
se puede dar un tamaño diferente para el tamaño del bloque.
La quinta forma de realización describe un
procedimiento de escaneo de un bloque haciendo referencia a la fig.
3B; no obstante, se puede emplear otro procedimiento de escaneo
siempre que el escaneo se realice partiendo desde el dominio de
baja frecuencia hacia el dominio de alta frecuencia.
Además, se describe un ejemplo de la tabla VLC
haciendo referencia a la fig. 25; no obstante, puede ser una tabla
de códigos diferente.
La quinta forma de realización describe el caso
en que se añade el número de valores L al comienzo de la secuencia
L; no obstante, el EOB puede unirse al final de la secuencia L.
Sexta forma de
realización
La fig. 30 es un diagrama de bloques que muestra
una estructura funcional de un aparato de descodificación al que se
aplica el procedimiento de descodificación de longitud variable y el
procedimiento de descodificación de imagen en movimiento que hace
uso del mismo de acuerdo con la forma de realización de la presente
invención. Aquí, se usará el flujo de bits generado usando el
procedimiento de codificación de longitud variable de la presente
invención descrito en la quinta forma de realización.
Como se muestra en la fig. 30, el aparato de
descodificación 500c está compuesto por una unidad de
descodificación de longitud variable 560, una unidad de
cuantización inversa 520, una unidad de transformación de frecuencia
inversa 530 y una memoria de imagen 540. Cada unidad de las que
componen tal aparato de descodificación 500c, puede obtenerse con
una CPU, una ROM para almacenar previamente un programa o datos
ejecutados por la CPU y una memoria para proporcionar un área de
trabajo cuando se ejecuta el programa, así como para almacenar
temporalmente un flujo de bits de entrada, o similares. En cuanto a
la unidad de cuantización inversa 520, la unidad de transformación
de frecuencia inversa 530 y la memoria de imagen 540, las
estructuras son las mismas que las descritas para los aparatos de
descodificación 500a y 500b, por lo tanto las descripciones se
abrevian, y la estructura de la unidad de descodificación de
longitud variable 560 se explica detalladamente.
La unidad de descodificación de longitud
variable 560 está compuesta por una unidad de conversión de códigos
561, una unidad de almacenamiento de tablas 562 y una unidad de
generación de coeficientes 564.
La unidad de almacenamiento de tablas 562
almacena por adelantado una pluralidad de tablas VLC 5621a a 5621g
que correlacionan códigos de longitud variable con valores absolutos
de los coeficientes |L| de la secuencia, así como una tabla de
valores umbral 5622, o similar. Las tablas VLC 5621a a 5621g se
construyen del mismo modo que las tablas VLC 1641a a 1641g que se
muestran en la fig. 25 y la tabla de valores umbral 5622 se
construye del mismo modo que la tabla de valores umbral 1642 que se
muestra en la fig. 26.
La unidad de conversión de códigos 561 realiza
una conversión en un flujo de bits de entrada de tal forma que los
códigos de longitud variable se convierten en el número de
coeficientes en la secuencia L, m, los valores absolutos de los
coeficientes |L| y los valores R en la secuencia R, usando las
tablas almacenadas en la unidad de almacenamiento de tablas 562
(las tablas VLC 5621a a 5621g y la tabla de valores umbral 5622, y
similares). Las tablas VLC 5621a a 5621g se usan para la conversión
de los valores absolutos de los coeficientes |L|.
La unidad de generación de coeficientes 564
convierte los valores RL en coeficientes basándose en la secuencia
L y la secuencia R introducidas y los bidimensionaliza usando un
procedimiento de escaneo predeterminado. Cuando se convierte la
secuencia RL en coeficientes, se genera un coeficiente "0" para
el número indicado por R basándose en un orden de escaneo
predeterminado, y entonces se genera el coeficiente indicado por L.
Aquí, suponiendo que los coeficientes se escanean en zigzag
partiendo desde el dominio de baja frecuencia hacia el dominio de
alta frecuencia, la secuencia RL se convierte en un bloque de
coeficientes, que se muestra en la fig. 11. El bloque de
coeficientes generado se introduce en la unidad de cuantización
inversa 520.
A continuación se describen las operaciones de
descodificación en cada unidad de la unidad de descodificación de
longitud variable 560.
En esta descripción se supone que los códigos
del flujo de bits de entrada de códigos binarios introducidos por
la unidad de conversión de códigos 561 son "1", "1",
"101", "011", "00100", "0001100", "11",
"0100", "0000100000", "0011001", "1100",
"010000" y "00101101" en secuencia comenzando por la
cabecera.
La unidad de conversión de códigos 561, como
punto de partida para descodificar los códigos de longitud variable,
descodifica el número de coeficientes m enviados desde el aparato
de codificación 100c y establece el número de coeficientes m
descodificado. La unidad de conversión de códigos 561 establece
después un número de tabla k igual a "0" como valor inicial de
una tabla VLC de referencia. Después, la unidad de asignación de
códigos 163 consulta la tabla de valores umbral 5622 y establece un
valor umbral igual a "4" (S103). Después de establecer el
número de coeficientes m, la tabla VLC de referencia (en este caso,
tabla VLC 5621a) y el valor umbral, la unidad de conversión de
códigos 561 lee secuencialmente los valores absolutos de los
coeficientes |L| desde la cabecera (es decir, desde los que
están en el dominio de alta frecuencia) en un orden en el que se
envían desde el aparato de codificación 100c y realiza una
descodificación de longitud variable en los códigos de longitud
variable leídos para obtener los valores absolutos de los
coeficientes |L| usando la tabla VLC con el número establecido.
Tras descodificar cada código de longitud variable, la unidad de
conversión de códigos 561 almacena el valor absoluto del
coeficiente |L| obtenido en la descodificación en una memoria
temporal que no se muestra en el diagrama (por ejemplo, una memoria
intermedia FILO), disminuye en "1" el número de coeficientes m
y juzga si el número m indica "0" o no tras la disminución, es
decir, si se han descodificado o no todos los coeficientes
incluidos en la secuencia L.
Cuando el número de coeficientes m no indica
"0", se juzga si el valor absoluto del coeficiente |L|
inmediatamente anterior que se ha obtenido mediante una
descodificación de longitud variable supera o no el valor umbral.
Cuando no ha superado el valor umbral, la unidad de conversión de
códigos 561 lee el siguiente código de longitud variable desde el
final y lo descodifica como un valor absoluto del coeficiente
|L| usando la misma tabla usada para el anterior.
Cuando el valor absoluto del coeficiente |L|
inmediatamente anterior que se ha obtenido mediante descodificación
de longitud variable ha superado el valor umbral, la unidad de
conversión de códigos 561 incrementa en "1" el número de tabla
k. Así, al codificar el valor absoluto del siguiente coeficiente
|L|, se consulta la tabla VLC con baja tasa de cambio en la
longitud del código, que se puede aplicar a la codificación del
valor absoluto del coeficiente |L| cuya longitud de código sea
grande (por ejemplo, la tabla VLC 5621b se consulta cuando la
tabla VLC anterior es 5621a). Cuando termina el incremento para el
número de tabla k, la unidad de conversión de códigos 561 consulta
la tabla de valores umbral 5622 y la actualiza con el siguiente
valor umbral (por ejemplo, "7" cuando el valor umbral anterior
es "4"). Así, la tabla puede cambiarse por la siguiente tabla
VLC con baja tasa de cambio en la longitud del código, que se puede
aplicar a la codificación del valor absoluto del coeficiente
|L| cuya longitud de código es grande, sólo cuando el valor
absoluto del coeficiente |L| haya superado el nuevo valor
umbral.
Para expresarlo de forma más concreta, la tabla
VLC 5621a con el número de tabla k=0 se consulta para el primer
código de longitud variable. Ahora, suponiendo que se consulta la
tabla VLC 5621a, el código de longitud variable que corresponde al
flujo de bits de entrada es "1" y el valor absoluto del
coeficiente |L| es en este caso "1". Igualmente, al
transcurrir secuencialmente la conversión de códigos de longitud
variable para obtener valores absolutos de los coeficientes |L|
usando la tabla VLC 5621a, los códigos de longitud variable se
convierten en los valores absolutos de los coeficientes |L| del
siguiente modo: el código de longitud variable "2" en el valor
absoluto del coeficiente |L| "1"; el código de longitud
variable "010" en el valor absoluto del coeficiente |L|
"3"; el código de longitud variable "00100" en el valor
absoluto del coeficiente |L| "4"; y el código de longitud
variable "0001100" en el valor absoluto del coeficiente |L|
"12".
Aquí, suponiendo que el valor umbral para el
valor absoluto del coeficiente |L| es "4", el valor
absoluto del coeficiente |L| supera el valor umbral cuando se
convierte el sexto código de longitud variable. Por lo tanto, la
unidad de conversión de códigos 561 usa la siguiente tabla VLC 5621b
con el número k=1 para la conversión de los siguientes valores
absolutos de los coeficientes |L|, establece el valor umbral
"7" y los convierte en los valores absolutos de los
coeficientes |L|. Por consiguiente, el séptimo código de
longitud variable "11" se convierte en el valor absoluto del
coeficiente |L| "2".
El octavo código de longitud variable
"0100" se convierte en el valor absoluto del coeficiente
|L| "3", mientras que el noveno código de longitud
variable "000010000" se convierte en el valor absoluto del
coeficiente |L| "31". Suponiendo aquí que el valor umbral
para el valor absoluto del coeficiente |L| es "7", el valor
absoluto del coeficiente |L| supera el valor umbral en el
noveno valor absoluto del coeficiente |L| "31". Por lo
tanto la unidad de conversión de códigos 561 usa la tabla VLC 5621b
con el número k=2 para la conversión de los siguientes valores
absolutos de los coeficientes |L|. Mientras tanto, aunque el
valor absoluto del coeficiente |L| obtenido en la
descodificación para obtener el séptimo valor absoluto del
coeficiente |L| baja del valor umbral "7", no se volverá a
cambiar de tabla a la tabla VLC 5621a y la conversión se realiza
usando la tabla VLC 56521b.
Con la repetición del anterior procesamiento, se
generan los valores absolutos de los coeficientes |L|
equivalentes a un único bloque (coeficientes "m") y se
reordenan a la inversa usando un procedimiento de "primero en
salir, último en entrar" ejecutado por la memoria intermedia
FILO. Los signos también se reordenan a la inversa usando un
procedimiento de "primero en salir, último en entrar" ejecutado
por la memoria intermedia FILO. Sin embargo, el número no se
reordenará. Aquí se supone que la secuencia se genera en el mismo
orden que el usado para la secuencia L que se muestra en la fig.
24A (concretamente, un orden partiendo desde el dominio de baja
frecuencia hacia el dominio de alta frecuencia).
Cada uno de los valores absolutos de los
coeficientes |L| en la secuencia L reordenados de este modo se
introduce en la unidad de generación de coeficientes 564. La unidad
de conversión de códigos 561 descodifica cada valor R de la
secuencia R usando el mismo procesamiento que se usó para los
valores absolutos de los coeficientes |L| y envía la secuencia
R que se muestra en la fig. 24A a la unidad de generación de
coeficientes 564.
La unidad de generación de coeficientes 564
convierte la secuencia RL en coeficientes basándose en la secuencia
L y la secuencia R introducidas. Al hacerlo, la unidad de
generación de coeficientes 564 realiza la conversión de la
secuencia RL en coeficientes llevando a cabo la siguiente operación:
generar un coeficiente "0" para el número indicado por R y
después generar el coeficiente para el valor indicado por L
añadiendo los signos. Aquí, suponiendo que el escaneo se realiza en
zigzag partiendo desde el dominio de baja frecuencia hacia el
dominio de alta frecuencia, la secuencia R que se muestra en la
fig. 24A y la secuencia L que se muestra en la fig. 24B se
convierten en un bloque de coeficientes. El bloque de coeficientes
generado se introduce en la unidad de cuantización inversa 520.
Tal como se describe anteriormente, en el
procedimiento de descodificación de longitud variable de acuerdo
con la sexta forma de realización, en primer lugar en la etapa de
descodificación, se cambia en una dirección entre una pluralidad de
tablas de codificación (descodificación) de longitud variable que se
van a usar para la descodificación, los códigos de longitud
variable del flujo de bits se descodifican para obtener coeficientes
distintos de cero de acuerdo con un dominio de frecuencia en un
orden predeterminado, usando la tabla VLC por la que se ha cambiado
la tabla. Posteriormente, en la etapa de conversión de
coeficientes, los coeficientes distintos de cero se convierten en
coeficientes de un bloque basándose en los coeficientes generados.
Aquí, cada una de las tablas posee una tasa de cambio diferente en
la longitud del código para coeficientes, de forma que una longitud
de código del coeficiente más pequeño se hace más larga a medida que
el número asignado a la tabla se hace más grande y una longitud de
código del coeficiente más grande se hace más corta a medida que el
número de tabla se hace más grande. El valor umbral se establece
basándose en la adaptabilidad de cada tabla en la que una longitud
de código correspondiente a un coeficiente es más corta que en la
otra tabla. Los códigos de longitud variable del flujo de bits se
alinean en orden partiendo desde los componentes de alta frecuencia
hacia los componentes de baja frecuencia. En la etapa de
descodificación, los códigos de longitud variable se descodifican
para obtener coeficientes según el orden en que está compuesto el
flujo de bits, se genera una secuencia de coeficientes produciendo
los coeficientes descodificados en orden partiendo desde el final
del flujo de bits. En la etapa de generación de coeficientes, los
coeficientes se escanean según el orden en que está compuesta la
secuencia de coeficientes.
En la etapa de codificación, cuando el valor
absoluto del coeficiente descodificado supera el valor umbral, se
descodifica el siguiente código de longitud variable para obtener
una tabla cuyo número es más grande que el asignado a la presente
tabla.
Con el anterior procesamiento, el flujo de bits
que se codifica usando el procedimiento de codificación de longitud
variable de acuerdo con la presente invención puede descodificarse
correctamente usando el procedimiento de descodificación de
longitud variable de acuerdo con la presente invención.
En la sexta forma de realización, se supone que
cuando el valor absoluto del coeficiente descodificado
inmediatamente anterior |L| supera el valor umbral, el número
de tabla k se incrementa en "1" y la descodificación se realiza
usando la tabla VLC con el siguiente número, como en la quinta
forma de realización. No obstante, se puede saltar de tabla a la
que se adapte al valor absoluto del coeficiente |L| de acuerdo
con el valor absoluto del coeficiente inmediatamente anterior que
ha superado el valor umbral, con la condición de que el
procedimiento de cambio entre las tablas sea el mismo que el usado
para la codificación. En este caso, puede establecerse el valor
umbral que corresponda a la tabla VLC.
En la sexta forma de realización se describe un
ejemplo de la tabla VLC haciendo referencia a la fig. 25, pero se
puede usar una tabla diferente, siempre que sea la que se usó para
la codificación. Además, se describe el caso del uso de ocho
tablas VLC, pero el número de tablas puede estar entre dos y seis o
más de ocho, usando una pluralidad de valores umbral, y las tablas
VLC pueden cambiarse cada vez que se superen los valores umbral. No
obstante, la estructura de la tabla VLC y el valor umbral serán aquí
los mismos que los usados para la codificación.
Además, en la sexta forma de realización, el
valor absoluto y el signo del coeficiente se codifican por separado
y ninguna de las tablas VLC para valores absolutos de coeficientes
contiene signos (valores absolutos); no obstante, se pueden
codificar los coeficientes con los signos. En este caso, los códigos
binarios pueden incluir los signos. Por ejemplo, se puede añadir 1
bit para el signo a un bit LSB para el código de longitud
variable.
Además en la sexta forma de realización, se
cambia de tabla VLC cuando el valor L haya superado el valor umbral.
Se puede usar una tabla VLC con un número grande para descodificar
los valores umbral de los coeficientes |L| en orden descendente
(concretamente, partiendo desde los que están en el dominio de alta
frecuencia) y puede cambiarse a una tabla VLC con un número pequeño
cuando el valor absoluto del coeficiente descodificado |L| baja
del valor umbral.
En la sexta forma de realización se describe el
caso en el que una imagen se codifica por medio de una codificación
intraimagen; no obstante, se pueden obtener los mismos efectos para
el caso en el que una imagen se codifica realizando una
compensación de movimiento y otros tratamientos en una imagen en
movimiento de entrada, usando el procedimiento de acuerdo con la
presente forma de realización.
Además, en la sexta forma de realización se
describe el caso de la división de la imagen de entrada en bloques,
cada uno de los cuales posee un tamaño de 4 (horizontal) x 4
(vertical) píxeles; no obstante, se puede dar un tamaño diferente
para el tamaño del bloque.
En la sexta forma de realización se describe un
procedimiento para escanear un bloque, haciendo referencia a la
fig. 11; no obstante, se puede usar un orden de escaneo diferente
siempre que sea el mismo que se usó para la codificación.
Séptima forma de
realización
A continuación se describe un ejemplo de la
realización del procedimiento de codificación de longitud variable,
procedimiento de descodificación de longitud variable, un aparato de
codificación de longitud variable, el aparato de descodificación de
longitud variable, el procedimiento de codificación de imagen en
movimiento, el procedimiento de descodificación de imagen en
movimiento, el aparato codificador de imagen en movimiento y el
aparato descodificador de imagen en movimiento de acuerdo con la
presente invención en otra forma de realización.
Es posible realizar el procesamiento descrito en
cada una de las anteriores formas de realización en un sistema
informático independiente mediante la grabación de un programa para
obtener las estructuras del aparato de codificación o el aparato de
descodificación que se muestra en cada una de las formas de
realización anteriores en un medio de grabación tal como un disco
flexible o similares.
La fig. 32 es una ilustración para llevar a cabo
el procedimiento de codificación de imagen en movimiento descrito
en la primera, tercera y quinta formas de realización o el
procedimiento de descodificación de imagen en movimiento descrito
en la segunda, cuarta y sexta formas de realización en el sistema
informático usando el programa grabado en el disco flexible en el
que está grabado el programa.
En la fig. 32B se muestra el aspecto completo de
un disco flexible, su estructura en sección transversal y el propio
disco flexible, mientras que en la fig. 32A se muestra un ejemplo de
un formato físico del disco flexible como un cuerpo principal de un
medio de almacenamiento. El disco flexible FD está contenido en una
carcasa F con una pluralidad de pistas "Tr" formadas
concéntricamente desde la periferia hasta el interior en la
superficie del disco, y cada pista se divide en 16 sectores
"Se" en dirección angular. Así, el programa se almacena en un
área asignada para el mismo en el disco flexible FD.
En la fig. 32C se muestra una estructura para
grabar y leer el programa en el disco flexible FD. Cuando el
programa se graba en el disco flexible FD, el sistema informático CS
escribe en el programa a través de una unidad de disco flexible.
Cuando se construye el aparato de codificación y el aparato de
descodificación en el sistema informático usando el programa del
disco flexible, el programa se lee desde el disco flexible y
después se transfiere al sistema informático mediante la unidad de
disco flexible.
La anterior explicación se construye sobre la
suposición de que el medio de almacenamiento es un disco flexible,
pero también se puede realizar el mismo procesamiento usando un
disco óptico. Además, el medio de almacenamiento no se limita a un
disco flexible y un disco óptico, sino que se puede usar cualquier
otro medio tal como una tarjeta IC y un cartucho ROM capaces de
grabar un programa.
A continuación se da una descripción de las
aplicaciones del procedimiento de codificación/descodificación de
imagen que se ilustra en la forma de realización mencionada
anteriormente y un sistema que hace uso del mismo.
La fig. 33 es un diagrama de bloques que muestra
una configuración global de un sistema de suministro de contenidos
ex100 para realizar un servicio de entrega de contenidos. El área
para proporcionar el servicio de comunicación se divide en células
del tamaño deseado, y los emplazamientos celulares ex107 a ex110,
que son estaciones inalámbricas fijas, se encuentran en unas
células respectivas.
El sistema de suministro de contenidos ex100
está conectado a aparatos tales como un ordenador ex111, un PDA
(asistente personal digital) ex112, una cámara ex113, un teléfono
móvil ex114 y un teléfono móvil con cámara ex115 a través de, por
ejemplo, Internet ex101, un proveedor de servicios de Internet
ex102, una red telefónica ex101, así como las ubicaciones de las
células ex107 a ex110.
No obstante, el sistema de suministro de
contenidos ex100 no se limita a la configuración que se muestra en
la fig. 33, y puede estar conectado a una combinación de cualquiera
de ellos. Además, cada aparato puede conectarse directamente a la
red telefónica ex104, no a través de los emplazamientos de las
células ex107 a ex110.
La cámara ex113 es un aparato capaz de captar
vídeo tal como una cámara de vídeo digital. EL teléfono móvil ex112
puede ser un teléfono móvil de uno cualquiera de los siguientes
sistemas: un sistema PDC (comunicación personal digital), un
sistema W-CDMA (acceso múltiple de banda ancha por
división de código) o un sistema GSM (sistema global de
comunicación móvil), un PHS (sistema de teléfono de mano personal) o
similares.
Hay un servidor de streaming (o
transferencia en flujo continuo) ex103 conectado a la cámara ex113 a
través de la red telefónica ex104 y además el emplazamiento celular
ex109, que realiza una distribución en vivo o similar usando la
cámara ex113 basándose en los datos codificados transmitidos desde
el usuario. Tanto la cámara ex113, como el servidor que transmite
los datos o similares pueden codificar los datos. Los datos de
imagen en movimiento captados por una cámara ex116 pueden
transmitirse al servidor de streaming ex103 a través del
ordenador ex111. En este caso, tanto la cámara ex116 como el
ordenador ex111 pueden codificar los datos de imagen en movimiento.
Una LSI ex117 incluida en el ordenador ex111 y la cámara ex116
realiza el procesamiento de la codificación. El software para la
codificación y la descodificación de imágenes se puede integrar en
cualquier tipo de medio de almacenamiento (tal como un
CD-ROM, un disco flexible y un disco duro) que
constituya un medio de grabación que pueda leer el ordenador ex111
o similares. Además, un teléfono móvil con cámara ex115 puede
transmitir los datos de la imagen en movimiento. Estos datos de la
imagen en movimiento son los datos codificados por la LSI incluida
en el teléfono móvil ex115.
El sistema de suministro de contenidos ex100
codifica los contenidos (como por ejemplo, vídeo musical en directo)
captados por un usuario que emplee la cámara ex113, la cámara ex116
o similares del mismo modo que se muestra en la forma de
realización mencionada anteriormente y los transmite al servidor de
streaming ex103, mientras que el servidor de
streaming ex103 hace entrega de un flujo continuo de datos de
los contenidos a los clientes cuando éstos lo solicitan. Los
clientes incluyen el ordenador ex111, la PDA ex112, la cámara ex113,
el teléfono móvil ex114 y demás son capaces de descodificar los
datos codificados mencionados anteriormente. En el sistema de
suministro de contenidos ex100, los clientes pueden, de este modo,
recibir y reproducir los datos codificados, y además pueden
recibir, descodificar y reproducir los datos en tiempo real a fin de
conseguir un sistema de difusión
personal.
personal.
Cuando cada aparato de este sistema realiza la
codificación o descodificación, puede usarse el aparato de
codificación de imagen o el aparato de descodificación de imagen que
se muestran en la forma de realización mencionada anteriormente.
Se explicará un teléfono móvil como ejemplo de
tal aparato.
La fig. 34 es un diagrama que muestra el
teléfono móvil ex115 usando el procedimiento de
codificación/descodifi-
cación de imagen explicado en las formas de realización mencionadas anteriormente. El teléfono móvil ex115 posee una antena ex291 para comunicarse con el emplazamiento celular ex110 a través de ondas de radio, una unidad de cámara ex203 tal como una cámara CCD capaz de captar imágenes fijas y en movimiento, una unidad de visualización ex202 tal como una pantalla de cristal líquido para visualizar los datos tales como las imágenes descodificadas y similares captados por la unidad de cámara ex203 o recibidos por la antena ex201, una unidad de cuerpo que incluye un conjunto de botones de funcionamiento ex204, una unidad de salida de voz ex208 tal como un altavoz para la salida de voz, una unidad de entrada de voz ex205 tal como un micrófono para la entrada de voz, un medio de almacenamiento ex207 para almacenar datos codificados o descodificados tales como datos de imágenes fijas o en movimiento captadas por la cámara, datos de correos electrónicos recibidos y los de imágenes fijas o en movimiento, y una unidad de ranura ex206 para acoplar el medio de almacenamiento ex207 al teléfono móvil ex115. En el medio de almacenamiento ex207 se almacena un elemento de memoria flash, un tipo de EEPROM (memoria de sólo lectura programable y borrable eléctricamente) que consiste en una memoria no volátil que se puede borrar de un cartucho de plástico tal como una tarjeta SD y reescribir en la misma eléctricamente.
cación de imagen explicado en las formas de realización mencionadas anteriormente. El teléfono móvil ex115 posee una antena ex291 para comunicarse con el emplazamiento celular ex110 a través de ondas de radio, una unidad de cámara ex203 tal como una cámara CCD capaz de captar imágenes fijas y en movimiento, una unidad de visualización ex202 tal como una pantalla de cristal líquido para visualizar los datos tales como las imágenes descodificadas y similares captados por la unidad de cámara ex203 o recibidos por la antena ex201, una unidad de cuerpo que incluye un conjunto de botones de funcionamiento ex204, una unidad de salida de voz ex208 tal como un altavoz para la salida de voz, una unidad de entrada de voz ex205 tal como un micrófono para la entrada de voz, un medio de almacenamiento ex207 para almacenar datos codificados o descodificados tales como datos de imágenes fijas o en movimiento captadas por la cámara, datos de correos electrónicos recibidos y los de imágenes fijas o en movimiento, y una unidad de ranura ex206 para acoplar el medio de almacenamiento ex207 al teléfono móvil ex115. En el medio de almacenamiento ex207 se almacena un elemento de memoria flash, un tipo de EEPROM (memoria de sólo lectura programable y borrable eléctricamente) que consiste en una memoria no volátil que se puede borrar de un cartucho de plástico tal como una tarjeta SD y reescribir en la misma eléctricamente.
A continuación se explicará el teléfono móvil
haciendo referencia a la fig. 35. En el teléfono móvil ex115, una
unidad de control principal ex311, diseñada con el fin de controlar
totalmente cada unidad del cuerpo principal que contiene la unidad
de visualización ex202, así como los botones de funcionamiento
ex204, está conectada con una unidad de circuito de alimentación
ex310, una unidad de control de entrada de funcionamiento ex304,
una unidad de codificación de imagen ex312, una unidad de interfaz
de cámara ex303, una unidad de control de LCD (pantalla de cristal
líquido) ex302, una unidad de descodificación de imagen ex309, una
unidad de multiplexado/demultiplexado ex308, una unidad de
lectura/escritura ex307, una unidad de circuito de módem ex306 y una
unidad de procesamiento de voz ex305 a través de un bus síncrono
ex313.
Cuando se enciende un botón de fin de llamada o
de encendido mediante una operación del usuario, la unidad de
circuito de alimentación ex310 suministra energía a las unidades
respectivas desde una batería a fin de activar el teléfono móvil
digital con una cámara ex115 en un estado de disponibilidad.
En el teléfono móvil ex115, la unidad de
procesamiento de voz ex305 convierte las señales de voz recibidas
por la unidad de entrada de voz ex205 en modo de conversación en
datos de voz digital bajo el control de la unidad de control
principal ex311, que incluye un ordenador, ROM y RAM, la unidad de
circuito de módem ex306 realiza un procesamiento de espectro
disperso en los datos de voz digital, y la unidad de circuito de
comunicación ex301 realiza una conversión de digital a analógico y
una transformación de frecuencia en los datos, a fin de
transmitirlos a través de la antena ex201. Además, en el teléfono
móvil ex115, la unidad de circuito de comunicación ex301 amplifica
los datos recibidos por la antena ex201 en modo de conversación y
realiza una transformación de frecuencia y la conversión de
analógico a digital en los datos, la unidad de circuito de módem
ex306 realiza un procesamiento de espectro disperso inverso en los
datos, y la unidad de procesamiento de voz ex305 los convierte en
datos de voz analógica a fin de darles salida a través de la unidad
de salida de voz ex208.
Además, cuando se transmite un correo
electrónico en un modo de comunicación de datos, los datos de texto
del correo electrónico introducidos mediante el accionamiento de los
botones de funcionamiento ex204 del cuerpo principal se envía a la
unidad de control principal ex311 a través de la unidad de control
de entrada de funcionamiento ex304. En la unidad de control
principal ex311, después de que la unidad de circuito de módem
ex306 realice el procesamiento de espectro disperso en los datos de
texto y la unidad de circuito de comunicación ex301 realice la
conversión de digital a analógico y la transformación de frecuencia
en los datos de texto, los datos se transmiten al emplazamiento
celular ex110 a través de la antena ex201.
Cuando se transmiten datos de imagen en el modo
de comunicación de datos, los datos de imagen captados por la
unidad de cámara ex203 se suministran a la unidad de codificación de
imagen ex312 a través de la unidad de interfaz de cámara ex303.
Cuando no se transmite, también es posible visualizar los datos de
imagen captados por la unidad de cámara ex203 directamente en la
unidad de visualización ex202 a través de la unidad de interfaz de
cámara ex303 y la unidad de control de LCD ex302.
La unidad de codificación de imagen ex312, que
incluye el aparato de codificación de imagen que se describe en la
presente invención, comprime y codifica los datos de imagen
suministrados desde la unidad de cámara ex203 usando el
procedimiento de codificación empleado por el aparato de
codificación de imagen que se muestra en la primera forma de
realización a fin de transformarlos en datos de imagen codificados,
y los envía a la unidad de multiplexado/demultiplexado ex308. En
este momento, el teléfono móvil ex115 envía la voz recibida por la
unidad de entrada de voz ex205 durante la filmación con la unidad de
cámara ex203 a la unidad de multiplexado/demultiplexado ex308 como
datos de voz digital a través de la unidad de procesamiento de voz
ex305.
La unidad de multiplexado/demultiplexado ex308
multiplexa los datos de imagen codificados suministrados desde la
unidad de codificación de imagen ex312 y los datos de voz
suministrados desde la unidad de procesamiento de voz ex305, usando
un procedimiento predeterminado, y después la unidad de circuito de
módem ex306 realiza un procesamiento de espectro disperso en los
datos multiplexados obtenidos como resultado del multiplexado, y
por último la unidad de circuito de comunicación ex301 realiza una
conversión de digital a analógico y una transformación de
frecuencia en los datos, para la transmisión a través de la antena
ex201.
En cuanto a la recepción de datos de un archivo
de imagen en movimiento que esté enlazada a una página web o
similar en un modo de comunicación, la unidad de circuito de módem
ex306 realiza un procesamiento de espectro disperso inverso en los
datos recibidos desde el emplazamiento celular ex110 a través ex201,
y envía los datos multiplexados obtenidos como resultado del
procesamiento de espectro disperso inverso.
Para descodificar los datos multiplexados
recibidos a través de la antena ex201, la unidad de
multiplexado/demulti-
plexado ex308 desmultiplexa los datos multiplexados para obtener un flujo codificado de datos de imagen y el de los datos de voz, y suministra los datos de imagen codificados a la unidad de descodificación de imagen ex309 y los datos de voz a la unidad de procesamiento de voz ex305, respectivamente, a través del bus síncrono ex313.
plexado ex308 desmultiplexa los datos multiplexados para obtener un flujo codificado de datos de imagen y el de los datos de voz, y suministra los datos de imagen codificados a la unidad de descodificación de imagen ex309 y los datos de voz a la unidad de procesamiento de voz ex305, respectivamente, a través del bus síncrono ex313.
A continuación, la unidad de descodificación de
imagen ex309, incluido el aparato de descodificación de imagen que
se describe en la presente invención, descodifica el flujo
codificado de los datos de imagen usando el procedimiento de
descodificación correspondiente al procedimiento de codificación que
se muestra en las formas de realización mencionadas anteriormente
para generar datos de imagen en movimiento reproducidos, y
suministra estos datos a la unidad de visualización ex202 a través
de la unidad de control de LCD ex302, y de ese modo se visualizan
los datos de imagen incluidos en el archivo de imagen en movimiento
enlazado a, por ejemplo, una página web. Al mismo tiempo, la unidad
de procesamiento de voz ex305 convierte los datos de voz en datos
de voz analógicos, y suministra estos datos a la unidad de salida de
voz ex208, y así se reproducen los datos de voz incluidos en el
archivo de imagen en movimiento enlazado a, por ejemplo, una página
web.
La presente invención no se limita al sistema
mencionado anteriormente, ya que la difusión digital por satélite o
terrestre ha aparecido recientemente en las noticias y al menos el
aparato de codificación de imagen o el aparato de descodificación
de imagen descritos en la forma de realización mencionada
anteriormente pueden incorporarse en un sistema de difusión digital
tal como se muestra en la fig. 36. Más específicamente, un flujo
codificado de información de vídeo se transmite desde una estación
de difusión ex409 a un satélite de difusión ex410, o se comunica
con el mismo, a través de ondas de radio. Al recibirlo, el satélite
de difusión ex410 transmite ondas de radio para su difusión.
Después, una antena de uso doméstico ex406 con una función de
recepción de difusión por satélite recibe las ondas de radio, y una
televisión (receptor) ex401 o un módulo descodificador (set top
box, STB) ex407 descodifica un flujo de bits codificado para
reproducirlo. El aparato de descodificación de imagen que se
muestra en la forma de realización mencionada anteriormente puede
incorporarse en el aparato reproductor ex403 para leer y
descodificar el flujo codificado grabado en un medio de
almacenamiento ex402 que consiste en un medio de grabación tal como
un CD y un DVD. En este caso, las señales de imagen en movimiento
reproducidas se visualizan en un monitor ex404. También es
concebible la incorporación del aparato de descodificación de
imagen en el módulo descodificador ex407 conectado a un cable ex405
para una televisión por cable o la antena ex406 para difusión por
satélite y/o terrestre a fin de reproducirlas en un monitor ex408
de la televisión ex401. El aparato de descodificación de imagen
puede incorporarse en la televisión, no en el módulo
descodificador. Además, un automóvil ex412 provisto de una antena
411 puede recibir señales desde el satélite ex410 o el
emplazamiento celular ex107 para reproducir imágenes en movimiento
en un dispositivo de visualización tal como un sistema de
navegación para automóviles ex413 instalado en el automóvil
ex412.
Además, el aparato de codificación de imagen que
se muestra en la forma de realización mencionada anteriormente
puede codificar señales de imagen y grabarlas en el medio de
almacenamiento. Como ejemplo concreto, se puede citar un grabador
ex420 tal como un grabador de DVD para grabar señales de imagen en
un disco DVD ex421 o un grabador de disco para grabarlas en un
disco duro. Se pueden grabar en una tarjeta SD ex422. Cuando el
grabador ex420 incluye el aparato de descodificación de imagen que
se muestra en la forma de realización mencionada anteriormente, las
señales de imagen grabadas en el disco DVD ex421 o la tarjeta SD
ex422 pueden reproducirse para visualizarlas en el monitor
ex408.
En cuanto a la estructura del sistema de
navegación para automóviles ex413, se puede concebir la estructura
sin la unidad de cámara ex203, la unidad de interfaz de cámara ex303
y la unidad de codificación de imagen ex312, entre los componentes
que se muestran en la fig. 35. Esto también es válido para el
ordenador ex111, la televisión (receptor) ex401 y otros.
Además, se pueden concebir tres tipos de
aplicaciones para un terminal tal como el teléfono móvil ex114: un
terminal de envío/recepción que incorpore un codificador y un
descodificador, un terminal de envío que sólo incorpore un
codificador y un terminal de recepción que sólo incorpore un
descodificador.
Tal como se describe anteriormente, es posible
usar el procedimiento de codificación de longitud variable, el
procedimiento de descodificación de longitud variable, así como el
aparato de codificación de longitud variable y el aparato de
descodificación de longitud variable que usan este procedimiento, el
procedimiento de codificación de imagen en movimiento, el
procedimiento de descodificación de imagen en movimiento, el aparato
de codificación de imagen en movimiento y el aparato de
descodificación de imagen en movimiento, descritos en la forma de
realización mencionada anteriormente, para cualquiera de los
aparatos mencionados anteriormente y los sistemas descritos
anteriormente, y mediante el uso de estos procedimientos, se pueden
obtener los efectos descritos en las formas de realización
mencionadas anteriormente.
A partir de la invención descrita de este modo,
resultará evidente que las formas de realización de la invención
pueden variarse de muchas maneras. Tales variaciones no deben
considerarse como un alejamiento del espíritu y el alcance de la
invención, y todas estas modificaciones, como resultará obvio para
un experto en la materia, quedarán incluidas en el alcance de las
siguientes reivindicaciones.
Se describe que el aparato de codificación de
longitud variable y el aparato de descodificación de longitud
variable de acuerdo con las formas de realización primera a sexta
realizan un escaneo en los coeficientes en un orden que comienza
desde el componente de baja frecuencia hacia el componente de alta
frecuencia. No obstante, el escaneo puede realizarse en un orden
que comience desde el componente de alta frecuencia hacia el
componente de baja frecuencia. En este caso, el procesamiento de la
reordenación de los coeficientes puede abreviarse.
Se puede aplicar el procedimiento de
codificación de longitud variable y el procedimiento de
descodificación de longitud variable de acuerdo con la presente
invención para codificar o descodificar coeficientes de cada
bloque, que posee un tamaño predeterminado, que se obtiene
realizando una transformación de frecuencia en unos datos de imagen
de una imagen en movimiento usando un aparato informático tal como
un teléfono móvil, un asistente personal digital, un aparato de
difusión de TV, un monitor de TV, un módulo descodificador, o
similares.
Claims (5)
1. Un procedimiento de codificación para
realizar una codificación de longitud variable en coeficientes
bidimensionales de un bloque que se obtienen realizando una
transformación de frecuencia en los datos de imagen del bloque que
posee un tamaño de píxeles predeterminado, comprendiendo el
procedimiento:
una etapa de escaneo de coeficientes, en la que
se escanean coeficientes bidimensionales del bloque en un orden
predeterminado partiendo desde un componente de baja frecuencia
hacia un componente de alta frecuencia a fin de transformar los
coeficientes bidimensionales en coeficientes unidimensionales; y
una etapa de codificación, en la que se realiza
una codificación de longitud variable en los coeficientes
unidimensionales partiendo desde un componente de alta frecuencia
hacia un componente de baja frecuencia, mientras se cambia entre
una pluralidad de tablas, que se usan para la codificación, y a las
que se asignan valores umbral crecientes;
en la que, en la etapa de codificación, en el
caso en el que un valor absoluto de un coeficiente actual que se va
a codificar supera un umbral asignado a la tabla usada para
codificar el coeficiente actual, se codifica un siguiente
coeficiente que se va a codificar a continuación del coeficiente
actual después de que se incremente el umbral y después de que la
tabla se cambie por la tabla a la que está asignado dicho umbral
incrementado.
\vskip1.000000\baselineskip
2. El procedimiento de codificación según la
reivindicación 1,
en el que se determina un umbral entre una
pluralidad de umbrales para cada cambio de tablas.
\vskip1.000000\baselineskip
3. El procedimiento de codificación según la
reivindicación 1,
en el que el cambio de tablas se realiza en
dirección hacia las tablas con mayores umbrales.
\vskip1.000000\baselineskip
4. El procedimiento de codificación según la
reivindicación 1,
en el que el cambio de tablas se realiza en una
dirección.
\vskip1.000000\baselineskip
5. El procedimiento de codificación según la
reivindicación 1,
en el que una longitud de código para un
coeficiente más pequeño se hace más larga tabla a tabla en orden
ascendente de los números asignados respectivamente a cada una de
las tablas.
Applications Claiming Priority (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002118483 | 2002-04-19 | ||
| JP2002-118483 | 2002-04-19 | ||
| JP2002126029 | 2002-04-26 | ||
| JP2002-126029 | 2002-04-26 | ||
| JP2002363106A JP4368575B2 (ja) | 2002-04-19 | 2002-12-13 | 可変長復号化方法、可変長復号化装置およびプログラム |
| JP2002-363106 | 2002-12-13 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2279945T3 true ES2279945T3 (es) | 2007-09-01 |
Family
ID=29255105
Family Applications (11)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES03720905T Expired - Lifetime ES2279945T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de codificacion de longitud variable y procedimiento de descodificacion de longitud variable. |
| ES06123093T Expired - Lifetime ES2307267T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de descodificacion de longitud variable. |
| ES06123090T Expired - Lifetime ES2297811T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de codificacion de longitud variable. |
| ES14162991.5T Expired - Lifetime ES2550993T3 (es) | 2002-04-19 | 2003-04-16 | Sistema y método de codificación y decodificación de longitud variable |
| ES19156147T Expired - Lifetime ES2886861T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de codificación de longitud variable y aparato |
| ES14162995.6T Expired - Lifetime ES2549252T3 (es) | 2002-04-19 | 2003-04-16 | Método de codificación de longitud variable |
| ES06123096T Expired - Lifetime ES2309913T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de codificacion de longitud variable. |
| ES19156149T Expired - Lifetime ES2886874T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento y sistema de codificación y decodificación de longitud variable |
| ES08157872T Expired - Lifetime ES2332159T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de codificacion y descodificacion de longitud variable. |
| ES09168084T Expired - Lifetime ES2388479T3 (es) | 2002-04-19 | 2003-04-16 | procedimiento de codificación de longitud variable |
| ES15161640T Expired - Lifetime ES2730954T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de descodificación de longitud variable y aparato |
Family Applications After (10)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES06123093T Expired - Lifetime ES2307267T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de descodificacion de longitud variable. |
| ES06123090T Expired - Lifetime ES2297811T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de codificacion de longitud variable. |
| ES14162991.5T Expired - Lifetime ES2550993T3 (es) | 2002-04-19 | 2003-04-16 | Sistema y método de codificación y decodificación de longitud variable |
| ES19156147T Expired - Lifetime ES2886861T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de codificación de longitud variable y aparato |
| ES14162995.6T Expired - Lifetime ES2549252T3 (es) | 2002-04-19 | 2003-04-16 | Método de codificación de longitud variable |
| ES06123096T Expired - Lifetime ES2309913T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de codificacion de longitud variable. |
| ES19156149T Expired - Lifetime ES2886874T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento y sistema de codificación y decodificación de longitud variable |
| ES08157872T Expired - Lifetime ES2332159T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de codificacion y descodificacion de longitud variable. |
| ES09168084T Expired - Lifetime ES2388479T3 (es) | 2002-04-19 | 2003-04-16 | procedimiento de codificación de longitud variable |
| ES15161640T Expired - Lifetime ES2730954T3 (es) | 2002-04-19 | 2003-04-16 | Procedimiento de descodificación de longitud variable y aparato |
Country Status (17)
| Country | Link |
|---|---|
| US (12) | US7305035B2 (es) |
| EP (13) | EP1965590B1 (es) |
| JP (1) | JP4368575B2 (es) |
| KR (8) | KR101001411B1 (es) |
| CN (1) | CN1319385C (es) |
| AT (5) | ATE354258T1 (es) |
| AU (1) | AU2003235171C1 (es) |
| BR (2) | BRPI0304543B8 (es) |
| CA (2) | CA2448771C (es) |
| DE (5) | DE60318918T2 (es) |
| DK (5) | DK2919390T3 (es) |
| ES (11) | ES2279945T3 (es) |
| HU (1) | HUE044271T2 (es) |
| MX (1) | MXPA03011198A (es) |
| PT (7) | PT2919390T (es) |
| SI (2) | SI1742484T1 (es) |
| WO (1) | WO2003090472A1 (es) |
Families Citing this family (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
| JP4368575B2 (ja) * | 2002-04-19 | 2009-11-18 | パナソニック株式会社 | 可変長復号化方法、可変長復号化装置およびプログラム |
| JP2005004718A (ja) * | 2003-05-16 | 2005-01-06 | Canon Inc | 信号処理装置及び制御方法 |
| US10554985B2 (en) | 2003-07-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | DC coefficient signaling at small quantization step sizes |
| JPWO2006011197A1 (ja) * | 2004-07-27 | 2008-05-01 | 三菱電機株式会社 | 符号化データ再符号化装置及びその復号装置並びにプログラム |
| KR101349599B1 (ko) * | 2005-09-26 | 2014-01-10 | 미쓰비시덴키 가부시키가이샤 | 동화상 복호 장치 |
| JP4540585B2 (ja) * | 2005-10-20 | 2010-09-08 | パナソニック株式会社 | 符号化装置及び復号化装置 |
| US7903973B1 (en) * | 2005-12-23 | 2011-03-08 | Lockheed Martin Corporation | Dynamic temporal duration optical transmission privacy |
| JP4863840B2 (ja) * | 2006-10-27 | 2012-01-25 | 株式会社リコー | 画素形成装置、光走査装置、光走査方法、画像形成装置、カラー画像形成装置 |
| KR100987028B1 (ko) * | 2008-08-20 | 2010-10-11 | 연세대학교 산학협력단 | 무작위 데이터가 가지는 정렬 구조의 불확실성을 산출하는 장치 및 그 방법, 상기 방법을 구현하는 프로그램이 기록된기록매체 |
| TR201001101A2 (tr) * | 2010-02-12 | 2011-09-21 | Vestel Elektroni̇k Sanayi̇ Ve Ti̇caret A.Ş. | Bir veri sıkıştırma metodu. |
| CN107241604B (zh) * | 2010-04-01 | 2020-11-03 | 索尼公司 | 图像处理设备和方法 |
| US8410959B2 (en) | 2010-04-09 | 2013-04-02 | Qualcomm, Incorporated | Variable length codes for coding of video data |
| US20120082230A1 (en) * | 2010-10-01 | 2012-04-05 | Qualcomm Incorporated | Variable length coding of video block coefficients |
| US9490839B2 (en) | 2011-01-03 | 2016-11-08 | Qualcomm Incorporated | Variable length coding of video block coefficients |
| US8755620B2 (en) | 2011-01-12 | 2014-06-17 | Panasonic Corporation | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding |
| US8687904B2 (en) | 2011-01-14 | 2014-04-01 | Panasonic Corporation | Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus which include arithmetic coding or arithmetic decoding |
| US9516316B2 (en) * | 2011-06-29 | 2016-12-06 | Qualcomm Incorporated | VLC coefficient coding for large chroma block |
| US9338456B2 (en) | 2011-07-11 | 2016-05-10 | Qualcomm Incorporated | Coding syntax elements using VLC codewords |
| KR101710633B1 (ko) | 2011-08-05 | 2017-02-27 | 삼성전자주식회사 | 자동 초점 조절 방법, 자동 초점 조절 장치, 및 이를 포함하는 디지털 촬영장치 |
| WO2013065262A1 (ja) * | 2011-11-04 | 2013-05-10 | 日本電気株式会社 | 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法およびプログラム |
| US9912968B2 (en) * | 2014-01-24 | 2018-03-06 | Mediatek Inc. | Decoding apparatus capable of controlling repetition number of scan procedure based on at least one syntax element decoding result and related method |
| US10171810B2 (en) | 2015-06-22 | 2019-01-01 | Cisco Technology, Inc. | Transform coefficient coding using level-mode and run-mode |
| WO2018045970A1 (en) * | 2016-09-06 | 2018-03-15 | Mediatek Inc. | Efficient coding switching and modem resource utilization in wireless communication systems |
| JP2018085008A (ja) * | 2016-11-25 | 2018-05-31 | 株式会社ジャパンディスプレイ | 画像処理装置および画像処理装置の画像処理方法 |
| US10666985B1 (en) * | 2018-11-18 | 2020-05-26 | Sony Corporation | Sub-block based entropy coding for image coding |
| US10728555B1 (en) * | 2019-02-06 | 2020-07-28 | Sony Corporation | Embedded codec (EBC) circuitry for position dependent entropy coding of residual level data |
| CN112399181B (zh) | 2019-08-19 | 2022-08-26 | 华为技术有限公司 | 图像编解码的方法、装置和存储介质 |
| CN113889046B (zh) * | 2020-07-02 | 2022-12-09 | 京东方科技集团股份有限公司 | 显示面板及其驱动方法、以及显示装置 |
Family Cites Families (62)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4541012A (en) * | 1982-01-04 | 1985-09-10 | Compression Labs, Inc. | Video bandwidth reduction system employing interframe block differencing and transform domain coding |
| CA1296430C (en) * | 1986-11-10 | 1992-02-25 | Masahide Kaneko | Encoding system capable of accomplishing a high efficiency by anterior and/or posterior processing to quantization |
| JPH04100390A (ja) | 1990-08-20 | 1992-04-02 | Hitachi Ltd | 高能率符号化方式 |
| JP3205028B2 (ja) | 1991-02-05 | 2001-09-04 | キヤノン株式会社 | 画像圧縮装置及びその方法 |
| US6546145B1 (en) * | 1991-02-05 | 2003-04-08 | Canon Kabushiki Kaisha | Image compression using selection of quantization method |
| JPH04315270A (ja) | 1991-04-15 | 1992-11-06 | Toshiba Corp | 符号化装置 |
| JP2670201B2 (ja) * | 1991-08-30 | 1997-10-29 | 富士写真フイルム株式会社 | 画像データ圧縮符号化装置および方法 |
| JP3016456B2 (ja) | 1992-06-15 | 2000-03-06 | 日本電信電話株式会社 | 適応的可変長符号化方法 |
| JPH06178282A (ja) | 1992-12-02 | 1994-06-24 | Mitsubishi Electric Corp | 画像の符号化装置 |
| US5367629A (en) * | 1992-12-18 | 1994-11-22 | Sharevision Technology, Inc. | Digital video compression system utilizing vector adaptive transform |
| JP3278948B2 (ja) * | 1993-02-05 | 2002-04-30 | 日本電信電話株式会社 | 可変長符号化方法 |
| JP3277425B2 (ja) * | 1993-03-19 | 2002-04-22 | ソニー株式会社 | ディジタル信号の符号化方法、符号化用テーブル生成方法、符号化装置及び符号化方法 |
| US5510785A (en) * | 1993-03-19 | 1996-04-23 | Sony Corporation | Method of coding a digital signal, method of generating a coding table, coding apparatus and coding method |
| JP3111750B2 (ja) | 1993-06-08 | 2000-11-27 | 松下電器産業株式会社 | 可変長符号復号方式 |
| JP3210996B2 (ja) * | 1993-07-30 | 2001-09-25 | 三菱電機株式会社 | 高能率符号化装置及び高能率復号化装置 |
| JPH0759086A (ja) * | 1993-07-30 | 1995-03-03 | Canon Inc | 画像処理装置 |
| JP3220598B2 (ja) * | 1994-08-31 | 2001-10-22 | 三菱電機株式会社 | 可変長符号テーブルおよび可変長符号化装置 |
| KR100209877B1 (ko) * | 1994-11-26 | 1999-07-15 | 윤종용 | 복수개의 허프만부호테이블을 이용한 가변장부호화장치 및 복호화장치 |
| US5883976A (en) * | 1994-12-28 | 1999-03-16 | Canon Kabushiki Kaisha | Selectively utilizing multiple encoding methods |
| JP3305140B2 (ja) | 1994-12-28 | 2002-07-22 | キヤノン株式会社 | 符号化装置及び方法 |
| JP3624450B2 (ja) * | 1995-02-06 | 2005-03-02 | ソニー株式会社 | 画像データ符号化方法及び画像データ符号化装置 |
| JP3431331B2 (ja) * | 1995-03-01 | 2003-07-28 | 株式会社日立製作所 | 動画像符号化装置及び動画像伝送装置並びにテレビ会議装置 |
| US6104754A (en) * | 1995-03-15 | 2000-08-15 | Kabushiki Kaisha Toshiba | Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system |
| US6704494B1 (en) * | 1995-03-15 | 2004-03-09 | Kabushiki Kaisha Toshiba | Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system |
| JPH08256266A (ja) * | 1995-03-17 | 1996-10-01 | Mitsubishi Electric Corp | 画像符号化方式 |
| JP3992303B2 (ja) * | 1995-06-22 | 2007-10-17 | ソニー株式会社 | 信号圧縮装置と信号伸長装置および信号圧縮方法と信号伸長方法 |
| EP0762771A3 (en) | 1995-09-11 | 1998-09-23 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method for variable-length coding |
| JP3114796B2 (ja) | 1995-09-11 | 2000-12-04 | 松下電器産業株式会社 | 可変長符号化装置及び方法 |
| US5818877A (en) * | 1996-03-14 | 1998-10-06 | The Regents Of The University Of California | Method for reducing storage requirements for grouped data values |
| JPH09307901A (ja) | 1996-05-13 | 1997-11-28 | Toshiba Corp | 映像信号処理装置 |
| JP3743837B2 (ja) | 1996-06-14 | 2006-02-08 | 株式会社大宇エレクトロニクス | ランレングス符号器 |
| US5831977A (en) | 1996-09-04 | 1998-11-03 | Ericsson Inc. | Subtractive CDMA system with simultaneous subtraction in code space and direction-of-arrival space |
| TW366669B (en) | 1996-10-30 | 1999-08-11 | Matsushita Electric Industrial Co Ltd | Picture encoding device and picture encoding method, picture decoding device and picture decoding method, and data recording media |
| JP2870515B2 (ja) * | 1996-12-27 | 1999-03-17 | 日本電気株式会社 | 可変長符号化装置 |
| US5995148A (en) * | 1997-02-14 | 1999-11-30 | At&T Corp | Video coder having scalar dependent variable length coder |
| JP3410629B2 (ja) * | 1997-05-21 | 2003-05-26 | シャープ株式会社 | 可変長符号化回路及び可変長符号化方法 |
| US6118822A (en) | 1997-12-01 | 2000-09-12 | Conexant Systems, Inc. | Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes |
| JPH11243343A (ja) | 1998-02-25 | 1999-09-07 | Victor Co Of Japan Ltd | 可変長符号化方法、可変長復号化方法、及び可変長符号記録媒体 |
| JPH11341497A (ja) | 1998-05-29 | 1999-12-10 | Matsushita Electric Ind Co Ltd | 画像符号化復号化装置及び、画像符号化復号化方法 |
| JP3888597B2 (ja) * | 1998-06-24 | 2007-03-07 | 日本ビクター株式会社 | 動き補償符号化装置、及び動き補償符号化復号化方法 |
| JP2000059234A (ja) * | 1998-08-10 | 2000-02-25 | Mitsubishi Electric Corp | 可変長符号処理装置 |
| JP2001024515A (ja) * | 1999-07-07 | 2001-01-26 | Sony Corp | 信号処理方法及び装置 |
| KR100644498B1 (ko) * | 1999-08-25 | 2006-11-10 | 마츠시타 덴끼 산교 가부시키가이샤 | 노이즈 검출방법과 노이즈 검출장치 및 화상 복호화장치 |
| JP2001308715A (ja) * | 2000-04-20 | 2001-11-02 | Mitsubishi Electric Corp | 可変長符号化装置および可変長復号装置 |
| TW515192B (en) | 2000-06-06 | 2002-12-21 | Noa Kk Off | Compression method of motion picture image data and system there for |
| JP2002261623A (ja) * | 2001-02-28 | 2002-09-13 | Canon Inc | 復号装置、復号方法、記憶媒体及びプログラムソフトウェア |
| WO2002078355A1 (en) * | 2001-03-23 | 2002-10-03 | Nokia Corporation | Variable length coding |
| KR101030862B1 (ko) * | 2001-11-22 | 2011-04-22 | 파나소닉 주식회사 | 부호화 방법 및 부호화 장치 |
| US7099387B2 (en) * | 2002-03-22 | 2006-08-29 | Realnetorks, Inc. | Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses |
| JP4090862B2 (ja) * | 2002-04-26 | 2008-05-28 | 松下電器産業株式会社 | 可変長符号化方法および可変長復号化方法 |
| JP4368575B2 (ja) * | 2002-04-19 | 2009-11-18 | パナソニック株式会社 | 可変長復号化方法、可変長復号化装置およびプログラム |
| US6646578B1 (en) * | 2002-11-22 | 2003-11-11 | Ub Video Inc. | Context adaptive variable length decoding system and method |
| US7602850B2 (en) * | 2003-12-19 | 2009-10-13 | Intel Corporation | Content adaptive variable length coding (CAVLC) decoding |
| US7843997B2 (en) * | 2004-05-21 | 2010-11-30 | Broadcom Corporation | Context adaptive variable length code decoder for decoding macroblock adaptive field/frame coded video data |
| US7643694B2 (en) * | 2004-12-31 | 2010-01-05 | Zoran Corporation | Method and apparatus for processing a compressed image in an order other than the order in which it was compressed |
| JP4540585B2 (ja) * | 2005-10-20 | 2010-09-08 | パナソニック株式会社 | 符号化装置及び復号化装置 |
| US7903973B1 (en) * | 2005-12-23 | 2011-03-08 | Lockheed Martin Corporation | Dynamic temporal duration optical transmission privacy |
| KR100813877B1 (ko) * | 2006-05-11 | 2008-03-18 | 전자부품연구원 | 효율적인 h.264/avc cavlc 디코딩 방법 |
| US7885473B2 (en) * | 2007-04-26 | 2011-02-08 | Texas Instruments Incorporated | Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors |
| US7813567B2 (en) * | 2007-04-26 | 2010-10-12 | Texas Instruments Incorporated | Method of CABAC significance MAP decoding suitable for use on VLIW data processors |
| CN101335000B (zh) * | 2008-03-26 | 2010-04-21 | 华为技术有限公司 | 编码的方法及装置 |
| US7876257B2 (en) * | 2008-04-28 | 2011-01-25 | Mitsubishi Electric Research Laboratories, Inc. | Method and apparatus for compressing SAR signals |
-
2002
- 2002-12-13 JP JP2002363106A patent/JP4368575B2/ja not_active Expired - Lifetime
-
2003
- 2003-04-16 PT PT15161640T patent/PT2919390T/pt unknown
- 2003-04-16 ES ES03720905T patent/ES2279945T3/es not_active Expired - Lifetime
- 2003-04-16 ES ES06123093T patent/ES2307267T3/es not_active Expired - Lifetime
- 2003-04-16 DK DK15161640.6T patent/DK2919390T3/da active
- 2003-04-16 HU HUE15161640 patent/HUE044271T2/hu unknown
- 2003-04-16 AT AT03720905T patent/ATE354258T1/de not_active IP Right Cessation
- 2003-04-16 AT AT06123093T patent/ATE397355T1/de not_active IP Right Cessation
- 2003-04-16 WO PCT/JP2003/004803 patent/WO2003090472A1/ja not_active Ceased
- 2003-04-16 EP EP20080157872 patent/EP1965590B1/en not_active Expired - Lifetime
- 2003-04-16 ES ES06123090T patent/ES2297811T3/es not_active Expired - Lifetime
- 2003-04-16 KR KR1020037011694A patent/KR101001411B1/ko not_active Expired - Lifetime
- 2003-04-16 DK DK06123093T patent/DK1742484T3/da active
- 2003-04-16 DE DE2003618918 patent/DE60318918T2/de not_active Expired - Lifetime
- 2003-04-16 AU AU2003235171A patent/AU2003235171C1/en not_active Expired
- 2003-04-16 PT PT141629956T patent/PT2752994E/pt unknown
- 2003-04-16 DK DK14162995.6T patent/DK2752994T3/en active
- 2003-04-16 ES ES14162991.5T patent/ES2550993T3/es not_active Expired - Lifetime
- 2003-04-16 EP EP20100180442 patent/EP2271118B1/en not_active Expired - Lifetime
- 2003-04-16 CA CA2448771A patent/CA2448771C/en not_active Expired - Lifetime
- 2003-04-16 PT PT141629915T patent/PT2765707E/pt unknown
- 2003-04-16 ES ES19156147T patent/ES2886861T3/es not_active Expired - Lifetime
- 2003-04-16 ES ES14162995.6T patent/ES2549252T3/es not_active Expired - Lifetime
- 2003-04-16 DE DE60311734T patent/DE60311734T2/de not_active Expired - Lifetime
- 2003-04-16 KR KR1020087008522A patent/KR100975487B1/ko not_active Expired - Lifetime
- 2003-04-16 AT AT06123090T patent/ATE385140T1/de not_active IP Right Cessation
- 2003-04-16 KR KR1020087008525A patent/KR101001459B1/ko not_active Expired - Lifetime
- 2003-04-16 ES ES06123096T patent/ES2309913T3/es not_active Expired - Lifetime
- 2003-04-16 KR KR1020087008521A patent/KR100975486B1/ko not_active Expired - Lifetime
- 2003-04-16 PT PT06123096T patent/PT1744560E/pt unknown
- 2003-04-16 DE DE60321406T patent/DE60321406D1/de not_active Expired - Lifetime
- 2003-04-16 KR KR1020087008524A patent/KR101001417B1/ko not_active Expired - Lifetime
- 2003-04-16 KR KR1020107006563A patent/KR101001097B1/ko not_active Expired - Lifetime
- 2003-04-16 ES ES19156149T patent/ES2886874T3/es not_active Expired - Lifetime
- 2003-04-16 KR KR1020087008523A patent/KR101001478B1/ko not_active Expired - Lifetime
- 2003-04-16 DE DE60329873T patent/DE60329873D1/de not_active Expired - Lifetime
- 2003-04-16 SI SI200331210T patent/SI1742484T1/sl unknown
- 2003-04-16 PT PT06123093T patent/PT1742484E/pt unknown
- 2003-04-16 EP EP20060123096 patent/EP1744560B1/en not_active Expired - Lifetime
- 2003-04-16 ES ES08157872T patent/ES2332159T3/es not_active Expired - Lifetime
- 2003-04-16 EP EP14162995.6A patent/EP2752994B8/en not_active Expired - Lifetime
- 2003-04-16 EP EP20100180446 patent/EP2343903B1/en not_active Expired - Lifetime
- 2003-04-16 EP EP15161640.6A patent/EP2919390B1/en not_active Expired - Lifetime
- 2003-04-16 EP EP20060123093 patent/EP1742484B1/en not_active Expired - Lifetime
- 2003-04-16 PT PT09168084T patent/PT2117236E/pt unknown
- 2003-04-16 BR BRPI0304543A patent/BRPI0304543B8/pt unknown
- 2003-04-16 DK DK06123090T patent/DK1742483T3/da active
- 2003-04-16 MX MXPA03011198A patent/MXPA03011198A/es active IP Right Grant
- 2003-04-16 EP EP20060123090 patent/EP1742483B1/en not_active Expired - Lifetime
- 2003-04-16 DK DK14162991.5T patent/DK2765707T3/en active
- 2003-04-16 EP EP20090168084 patent/EP2117236B1/en not_active Expired - Lifetime
- 2003-04-16 ES ES09168084T patent/ES2388479T3/es not_active Expired - Lifetime
- 2003-04-16 DE DE60323171T patent/DE60323171D1/de not_active Expired - Lifetime
- 2003-04-16 PT PT08157872T patent/PT1965590E/pt unknown
- 2003-04-16 BR BR0304543-9A patent/BR0304543A/pt active IP Right Grant
- 2003-04-16 AT AT08157872T patent/ATE447295T1/de active
- 2003-04-16 SI SI200331100T patent/SI1742483T1/sl unknown
- 2003-04-16 EP EP14162991.5A patent/EP2765707B1/en not_active Expired - Lifetime
- 2003-04-16 KR KR1020107006564A patent/KR101001053B1/ko not_active Expired - Lifetime
- 2003-04-16 CA CA2625292A patent/CA2625292C/en not_active Expired - Lifetime
- 2003-04-16 CN CNB038005948A patent/CN1319385C/zh not_active Expired - Lifetime
- 2003-04-16 EP EP19156149.7A patent/EP3515072B1/en not_active Expired - Lifetime
- 2003-04-16 ES ES15161640T patent/ES2730954T3/es not_active Expired - Lifetime
- 2003-04-16 US US10/478,185 patent/US7305035B2/en not_active Expired - Lifetime
- 2003-04-16 AT AT06123096T patent/ATE406051T1/de active
- 2003-04-16 EP EP03720905A patent/EP1424856B1/en not_active Expired - Lifetime
- 2003-04-16 EP EP19156147.1A patent/EP3515071B1/en not_active Expired - Lifetime
-
2007
- 2007-10-17 US US11/907,777 patent/US9020041B2/en active Active
- 2007-10-17 US US11/907,772 patent/US9025671B2/en active Active
- 2007-10-17 US US11/907,776 patent/US9020040B2/en active Active
- 2007-10-17 US US11/907,771 patent/US9054734B2/en active Active
- 2007-10-17 US US11/907,775 patent/US9031133B2/en active Active
-
2015
- 2015-03-31 US US14/674,613 patent/US9661353B2/en not_active Expired - Fee Related
-
2016
- 2016-10-14 US US15/293,707 patent/US10063890B2/en not_active Expired - Lifetime
- 2016-10-14 US US15/293,735 patent/US10057602B2/en not_active Expired - Lifetime
- 2016-10-14 US US15/293,663 patent/US10034025B2/en not_active Expired - Lifetime
- 2016-10-14 US US15/293,687 patent/US10027990B2/en not_active Expired - Lifetime
-
2018
- 2018-07-24 US US16/043,862 patent/US10623781B2/en not_active Expired - Fee Related
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2279945T3 (es) | Procedimiento de codificacion de longitud variable y procedimiento de descodificacion de longitud variable. | |
| ES2281640T3 (es) | Procedimiento de codificacion de longitud variable y procedimiento de decodificacion de longitud variable. | |
| ES2277313T3 (es) | Procedimiento de codificacion de imagen. | |
| JP4819169B2 (ja) | 符号化方法、符号化装置およびプログラム | |
| JP4091108B1 (ja) | 可変長復号化装置および画像復号化装置 | |
| JP4091107B1 (ja) | 可変長符号化装置および画像符号化装置 | |
| JP4091074B2 (ja) | 可変長符号化方法および可変長復号化方法 |