[go: up one dir, main page]

ES2549252T3 - Método de codificación de longitud variable - Google Patents

Método de codificación de longitud variable Download PDF

Info

Publication number
ES2549252T3
ES2549252T3 ES14162995.6T ES14162995T ES2549252T3 ES 2549252 T3 ES2549252 T3 ES 2549252T3 ES 14162995 T ES14162995 T ES 14162995T ES 2549252 T3 ES2549252 T3 ES 2549252T3
Authority
ES
Spain
Prior art keywords
coefficient
coefficients
unit
coding
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES14162995.6T
Other languages
English (en)
Inventor
Satoshi Kondo
Shinya Kadono
Makoto Hagai
Kiyofumi Abe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Godo Kaisha IP Bridge 1
Original Assignee
Godo Kaisha IP Bridge 1
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=29255105&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2549252(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Godo Kaisha IP Bridge 1 filed Critical Godo Kaisha IP Bridge 1
Application granted granted Critical
Publication of ES2549252T3 publication Critical patent/ES2549252T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection 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/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods 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/172Methods 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 sistema de codificación y decodificación que incluye un aparato de codificación (100a, 100b, 100c) 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 número de píxeles predeterminado y un aparato de decodificación para realizar una decodificación de longitud variable en datos codificados que se obtiene realizando una codificación de longitud variable en los coeficientes distintos de cero del bloque, en el que dicho aparato de codificación incluye: una unidad de escaneo (141, 161, 201) accionable para escanear los 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 unidad de codificación (143,163, 205) accionable para realizar una codificación de longitud variable en cada uno de los coeficientes distintos de cero incluidos 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 codificar y a las que se asignan umbrales crecientes, en el que, en el caso de que un valor absoluto de un coeficiente actual distinto de cero que se tiene que codificar supere un umbral asignado en la tabla usada para codificar el coeficiente actual distinto de cero, el siguiente coeficiente distinto de cero que se tiene que codificar después del coeficiente actual distinto de cero, es codificado por la unidad de codificación, después de que el umbral se aumente y después de que la tabla se cambie por la tabla en la que está asignado dicho umbral aumentado, y en el que, en cada una de una pluralidad de tablas usadas por la unidad de codificación, una longitud de código de un código asignado a un valor mínimo entre los valores absolutos de los coeficientes distintos de cero en cada una de la pluralidad de tablas se hace mayor a medida que aumenta el umbral asignado a la tabla, y en el que dicho aparato de decodificación incluye: una unidad de decodificación accionable para obtener cada uno de los coeficientes distintos de cero incluidos en los coeficientes unidimensionales del bloque realizando una decodificación de longitud variable sobre los datos codificados desde un componente de alta frecuencia hacia un componente de baja frecuencia mientras se cambia entre una pluralidad de tablas, que se usan para decodificar y a las que se asignan umbrales crecientes, y una unidad de escaneo inverso accionable para transformar los coeficientes distintos de cero decodificados, incluidos en los coeficientes unidimensionales, en los coeficientes bidimensionales del bloque, en el que, en el caso de que un valor absoluto de un coeficiente actual distinto de cero que se tiene que decodificar supere un umbral asignado en la tabla usada para decodificar el coeficiente actual distinto de cero, el siguiente coeficiente distinto de cero que se tiene que decodificar después del coeficiente actual distinto de cero, es decodificado por la unidad de decodificación, después de que aumente el umbral y después de que la tabla se cambie por la tabla en la que está asignado dicho umbral aumentado, y en el que, en cada una de una pluralidad de tablas usadas por la unidad de decodificación, una longitud de código de un código asignado a un valor mínimo entre los valores absolutos de los coeficientes distintos de cero en cada una de la pluralidad de tablas se hace mayor a medida que aumenta un umbral asignado a la tabla.

Description

E14162995
05-10-2015
DESCRIPCIÓN
Método de codificación de longitud variable
5 Campo técnico
La presente invención se refiere a un método 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 método de descodificación de longitud
10 variable, y similares.
Técnica anterior
Al codificar una imagen en movimiento, la compresión del volumen de información se realiza normalmente utilizando
15 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 método para utilizar la redundancia espacial, mientras que la codificación por predicción interimagen se usa como método para utilizar la redundancia temporal.
En un método de codificación de imagen en movimiento que se encuentra actualmente en proceso de
20 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 método 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
25 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
30 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—Part2: Visual" 7.4.1, págs. 119 a 120,12/1999).
35 Sin embargo, el uso del método 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
40 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
45 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 se describe sistema de codificación de imágenes en el que una señal de imagen de entrada forma un bloque, los bloques resultantes se transforman en dos o más clases de coeficientes transformados, 50 y los coeficientes transformados se escanean de acuerdo con una pluralidad de secuencias de escaneo. Los coeficientes escaneados de esta manera se codifican adicionalmente 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 55 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 de niveles de ejecución 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
60 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.
65
E14162995
05-10-2015
Descripción de la invención
La presente invención está concebida en vista de los anteriores problemas, y pretende proporcionar el método de codificación de longitud variable y el método de descodificación de longitud variable que pueden mejorar la eficiencia 5 de la codificación cuando se codifica el valor de coeficiente L.
Con el fin de lograr el anterior objetivo, se propone un método y sistema de codificación y decodificación de longitud variable de acuerdo con la presente invención tal como se define en las reivindicaciones.
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.
15 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.
La codificación y la decodificación se pueden realizar en cada uno de dichos bloques cambiando entre la pluralidad 25 de tablas y los coeficientes pueden ser coeficientes distintos de cero que se hayan unidimensionalizado.
Es preferible que la codificación y la decodificación sean 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
35 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 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.
45 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 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.
55 Breve descripción de los dibujos
La fig. 1 es un diagrama de bloques que muestra una estructura funcional de un aparato de codificación que usa un método de codificación de longitud variable y un método 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
65 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.
5
15
25
35
45
55
65 E14162995
05-10-2015
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 método de descodificación de longitud variable y un método 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 invención. La fig. 17 es un diagrama de transición que muestra un método 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 método de codificación de longitud variable y un método 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 método de descodificación de longitud variable y un método 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 método de codificación de imagen en movimiento de acuerdo con la primera, tercera y quinta formas de realización o el método 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 métodos. 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.
E14162995
05-10-2015
La fig. 34 es una ilustración que muestra un teléfono móvil haciendo uso de un método 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
5 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.
Mejor modo de llevar a cabo la 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)
15 La fig. 1 es un diagrama de bloques que muestra una estructura funcional de un aparato de codificación al que se aplica el método 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 método 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
25 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.
35 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 (4x4 píxeles).
La fig. 2 es un diagrama de bloques que muestra detalladamente una estructura funcional de la unidad de 45 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 método de escaneo predeterminado. La unidad de generación de
55 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 comente 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 método de escaneo para unidimensionalizar los coeficientes de frecuencia cuantizados. La unidad de generación de secuencias RL 141 unidimensionaliza los
65 coeficientes realizando el escaneo partiendo desde el dominio de baja frecuencia hasta el dominio de alta frecuencia.
E14162995
05-10-2015
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
5 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
15 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.
25 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.
35 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.
45 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 VCL2.
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.
55 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,
65 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
E14162995
05-10-2015
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.
5 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 método 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
15 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.
25 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.
35 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 método 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.
45 La primera forma de realización describe un método de escaneo de un bloque haciendo referencia a la fig. 3; no obstante, se puede emplear otro método 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.
55 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
65 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.
E14162995
05-10-2015
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)
5 La fig. 8 es un diagrama de bloques que muestra una estructura funcional de un aparato de descodificación al que se aplica el método 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 método 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
15 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 método 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.
25 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)
35 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
45 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,
55 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 65 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
E14162995
05-10-2015
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
5 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 método de escaneo predeterminado. Cuando la secuencia RL
15 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 25 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.
35 Así, el método 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 método 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 método de codificación de longitud variable de acuerdo con la presente invención mediante el uso del método de
45 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 método 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
55 tamaño diferente para el tamaño del bloque.
Además, la segunda forma de realización describe un método 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 codificación. Además, se explica un ejemplo de la tabla VLC en referencia a la fig. 6; no obstante, se puede usar una tabla
65 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
E14162995
05-10-2015
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 5 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.
15 El método 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
25 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.
35 El método 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 método de descodificación de longitud variable de acuerdo con la presente invención, descodificar correctamente el flujo de bits que se codifica usando el método
45 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.
55 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
65 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.
E14162995
05-10-2015
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 5 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.
15 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 método 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
25 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 método 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
35 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 45 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
55 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
65 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
E14162995
05-10-2015
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.
5 La fig. 17 es un diagrama de transición que muestra un método 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
15 "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
25 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.
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.
35 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".
45 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.
55 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 65 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
E14162995
05-10-2015
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
5 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 método 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 15 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
25 de coeficiente L supera un valor predeterminado, se usa la misma tabla de probabilidades desde ese momento para realizar la codificación 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
35 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 método 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.
45 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 método para realizar el
55 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 método 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
65 desde el dominio de alta frecuencia hacia el dominio de baja frecuencia y seleccionando los coeficientes cuyos valores indican que son distintos de cero.
E14162995
05-10-2015
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
5 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)
15 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 método de
25 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 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,
35 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 45 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
55 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
65 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
E14162995
05-10-2015
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.
5 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
15 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 25 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 35 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
45 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 descodificario 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 55 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 65 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
E14162995
05-10-2015
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 5 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 10 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 15 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
20 generado de este modo.
Tal como se describe anteriormente, en el método 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 25 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
30 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 método 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 35 método 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.
40 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.
45 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.
50 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.
55 Además, en la presente forma de realización, aunque se usa la fig. 15B para explicar un método 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 método 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 60 siempre que sea la misma que la tabla binaria usada en el momento de la codificación.
E14162995
05-10-2015
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.
5 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 método de codificación de longitud variable de acuerdo con la presente invención y el método 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 método de codificación de imagen en movimiento de la presente invención, tal como se ilustra para los aparatos de codificación 15 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
25 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.
35 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 método de cambio de VLC unidimensional.
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
45 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
55 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|.
65 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
E14162995
05-10-2015
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 5 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
10 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.
15 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.
20 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,
25 "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
30 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 1641 f son las tablas en las que la longitud del código se hace más larga gradualmente a
35 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
40 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 45 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 método 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
50 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
55 1641a a 1641g y guarda una pluralidad de valores umbral para usarlos para cambiar entre las tablas VLC 1641a a 1641 f. 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|.
60 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
65 asignación de códigos 163 unidimensionaliza los valores absolutos de los coeficientes |L|.
E14162995
05-10-2015
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.
5 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 comente 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á
15 "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
25 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
35 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
45 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)
55 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.
65 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
E14162995
05-10-2015
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 1641 b con k=1 cuando la tabla VLC anterior es 1641 a con k=0).
5 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.
15 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
25 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.
35 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".
45 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".
55 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 "1101001100100000110011010000001000000011001110001000000101101".
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
65 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.
E14162995
05-10-2015
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.
5 A diferencia de esto, usando el método 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 método. 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.
15 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).
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.
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
35 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 método 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 método de escaneo de un bloque haciendo referencia a la fig. 3B; no obstante, se puede emplear otro método de escaneo siempre que el escaneo se realice partiendo desde el dominio de baja frecuencia hacia el dominio de alta frecuencia.
45 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
55 se aplica el método de descodificación de longitud variable y el método 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 método 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í
65 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
E14162995
05-10-2015
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, 5 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 5621 g 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
10 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
15 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
20 la secuencia R introducidas y los bidimensionaliza usando un método 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
25 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.
30 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,
35 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
40 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
45 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
50 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.
55 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).
60 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.
65
E14162995
05-10-2015
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
5 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".
10 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
15 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". 20 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
25 tabla VLC 5621a y la conversión se realiza usando la tabla VLC 56521 b.
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 método de "primero en salir, último en entrar" ejecutado por la memoria intermedia FILO. Los signos también se reordenan a la inversa usando un método
30 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).
35 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.
40 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
45 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 método de descodificación de longitud variable de acuerdo con la sexta
50 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
55 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
60 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
65 escanean según el orden en que está compuesta la secuencia de coeficientes.
E14162995
05-10-2015
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.
5 Con el anterior procesamiento, el flujo de bits que se codifica usando el método de codificación de longitud variable de acuerdo con la presente invención puede descodificarse correctamente usando el método 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 método de cambio entre las tablas sea el mismo que el usado para la codificación. En este caso, puede establecerse el valor umbral que
15 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,
25 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
35 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 método 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 método 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.
45 (Séptima forma de realización)
A continuación se describe un ejemplo de la realización del método de codificación de longitud variable, método de descodificación de longitud variable, un aparato de codificación de longitud variable, el aparato de descodificación de longitud variable, el método de codificación de imagen en movimiento, el método 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
55 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 método de codificación de imagen en movimiento descrito en la primera, tercera y quinta formas de realización o el método 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
65 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
E14162995
05-10-2015
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.
5 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.
15 A continuación se da una descripción de las aplicaciones del método 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
25 (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
35 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
45 software para la codificación y la descodificación de imágenes se puede integraren 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
55 é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.
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.
65 La fig. 34 es un diagrama que muestra el teléfono móvil ex115 usando el método de codificación/descodificación de
E14162995
05-10-2015
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
5 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.
15 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
25 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 ex 115 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
35 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
45 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
55 usando el método 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 método 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
65 ú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.
E14162995
05-10-2015
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
5 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/demultiplexado 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 método de
15 descodificación correspondiente al método 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 25 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 (ser 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
35 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
45 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.
55 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 método de codificación de longitud variable, el método 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 método, el método de codificación de imagen en movimiento, el método 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 65 anteriormente, para cualquiera de los aparatos mencionados anteriormente y los sistemas descritos anteriormente, y mediante el uso de estos métodos, se pueden obtener los efectos descritos en las formas de realización
E14162995
05-10-2015
mencionadas anteriormente.
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
5 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.
Aplicabilidad industrial
10 Se puede aplicar el método de codificación de longitud variable y el método 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,
15 un aparato de difusión de TV, un monitor de TV, un módulo descodificador, o similares.

Claims (5)

  1. REIVINDICACIONES
    1. Un sistema de codificación y decodificación que incluye un aparato de codificación (100a, 100b, 100c) para realizar una codificación de longitud variable en coeficientes bidimensionales de un bloque que se obtienen
    5 realizando una transformación de frecuencia en los datos de imagen del bloque que posee un número de píxeles predeterminado y un aparato de decodificación para realizar una decodificación de longitud variable en datos codificados que se obtiene realizando una codificación de longitud variable en los coeficientes distintos de cero del bloque, en el que dicho aparato de codificación incluye:
    una unidad de escaneo (141, 161, 201) accionable para escanear los 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 unidad de codificación (143,163, 205) accionable para realizar una codificación de longitud variable en
    15 cada uno de los coeficientes distintos de cero incluidos 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 codificar y a las que se asignan umbrales crecientes, en el que, en el caso de que un valor absoluto de un coeficiente actual distinto de cero que se tiene que codificar supere un umbral asignado en la tabla usada para codificar el coeficiente actual distinto de cero, el siguiente coeficiente distinto de cero que se tiene que codificar después del coeficiente actual distinto de cero, es codificado por la unidad de codificación, después de que el umbral se aumente y después de que la tabla se cambie por la tabla en la que está asignado dicho umbral aumentado, y en el que, en cada una de una pluralidad de tablas usadas por la unidad de codificación, una longitud de código de un código asignado a un valor mínimo entre los valores absolutos de los coeficientes distintos de cero en
    25 cada una de la pluralidad de tablas se hace mayor a medida que aumenta el umbral asignado a la tabla, y en el que dicho aparato de decodificación incluye:
    una unidad de decodificación accionable para obtener cada uno de los coeficientes distintos de cero incluidos en los coeficientes unidimensionales del bloque realizando una decodificación de longitud variable sobre los datos codificados desde un componente de alta frecuencia hacia un componente de baja frecuencia mientras se cambia entre una pluralidad de tablas, que se usan para decodificar y a las que se asignan umbrales crecientes, y una unidad de escaneo inverso accionable para transformar los coeficientes distintos de cero decodificados, incluidos en los coeficientes unidimensionales, en los coeficientes bidimensionales del
    35 bloque, en el que, en el caso de que un valor absoluto de un coeficiente actual distinto de cero que se tiene que decodificar supere un umbral asignado en la tabla usada para decodificar el coeficiente actual distinto de cero, el siguiente coeficiente distinto de cero que se tiene que decodificar después del coeficiente actual distinto de cero, es decodificado por la unidad de decodificación, después de que aumente el umbral y después de que la tabla se cambie por la tabla en la que está asignado dicho umbral aumentado, y en el que, en cada una de una pluralidad de tablas usadas por la unidad de decodificación, una longitud de código de un código asignado a un valor mínimo entre los valores absolutos de los coeficientes distintos de cero en cada una de la pluralidad de tablas se hace mayor a medida que aumenta un umbral asignado a la tabla.
    45
  2. 2. Un método de codificación y decodificación que comprende un método 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 número de píxeles predeterminado y un método de decodificación para realizar una decodificación de longitud variable en datos codificados que se obtienen realizando una codificación de longitud variable en los coeficientes distintos de cero del bloque, en el que dicho método de codificación comprende:
    una etapa de escaneo para escanear los coeficientes bidimensionales del bloque en un orden predeterminado partiendo desde un componente de baja frecuencia hacia un componente de alta frecuencia a fin de
    55 transformar los coeficientes bidimensionales en coeficientes unidimensionales; y una etapa de codificación para realizar una codificación de longitud variable sobre cada uno de los coeficientes distintos de cero incluidos 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 codificar y a las que se asignan umbrales crecientes, en el que, en el caso de que un valor absoluto de un coeficiente actual distinto de cero que se tiene que codificar supere un umbral asignado a la tabla usada para codificar el coeficiente actual distinto de cero, el siguiente coeficiente distinto de cero que se tiene que codificar después del coeficiente actual distinto de cero, es codificado en la etapa de codificación, después de que aumente el umbral y después de que la tabla se cambie por la tabla a la que está asignado dicho umbral aumentado, y
    65 en el que, en cada una de una pluralidad de tablas usadas en la etapa de codificación, una longitud de código de un código asignado a un valor mínimo entre los valores absolutos de los coeficientes distintos de cero en
    29
    cada una de la pluralidad de tablas se hace mayor a medida que aumenta un umbral asignado a la tabla, y en el que dicho método de decodificación comprende:
    una etapa de decodificación para obtener cada uno de los coeficientes distintos de cero incluidos en los
    5 coeficientes unidimensionales del bloque realizando la decodificación de longitud variable en los datos codificados desde un componente de alta frecuencia hacia un componente de baja frecuencia mientras se cambia entre una pluralidad de tablas, que se usan para decodificar y a las que se han asignado umbrales crecientes; y una etapa de escaneo inverso para transformar los coeficientes distintos de cero decodificados, incluidos
    10 en los coeficientes unidimensionales, en los coeficientes bidimensionales del bloque, en donde, en el caso de que un valor absoluto de un coeficiente actual distinto de cero que se tiene que decodificar supere un umbral asignado a la tabla usada para decodificar el coeficiente actual distinto de cero, el siguiente coeficiente distinto de cero que se tiene que decodificar después del coeficiente actual distinto de cero, es decodificado en la etapa de decodificación, después de que aumente el umbral y después de que la tabla
    15 se cambie por la tabla a la que está asignado dicho umbral aumentado, y en el que, en cada una de una pluralidad de tablas usadas en la etapa de decodificación, una longitud de código de un código asignado a un valor mínimo entre los valores absolutos de los coeficientes distintos de cero en cada una de la pluralidad de tablas se hace mayor a medida que aumenta un umbral asignado a la tabla.
    20
  3. 3. El método de codificación y decodificación según la reivindicación 2, en el que se determina un umbral asignado a la tabla entre una pluralidad de umbrales para cada cambio de las tablas.
  4. 4. El método de codificación y decodificación según la reivindicación 3, en el que el cambio de las tablas se realiza 25 en dirección hacia las tablas con mayores umbrales.
  5. 5. El método de codificación y decodificación según la reivindicación 2, en el que el cambio de las tablas se realiza en una dirección.
    30
ES14162995.6T 2002-04-19 2003-04-16 Método de codificación de longitud variable Expired - Lifetime ES2549252T3 (es)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2002118483 2002-04-19
JP2002118483 2002-04-19
JP2002126029 2002-04-26
JP2002126029 2002-04-26
JP2002363106 2002-12-13
JP2002363106A JP4368575B2 (ja) 2002-04-19 2002-12-13 可変長復号化方法、可変長復号化装置およびプログラム

Publications (1)

Publication Number Publication Date
ES2549252T3 true ES2549252T3 (es) 2015-10-26

Family

ID=29255105

Family Applications (11)

Application Number Title Priority Date Filing Date
ES06123090T Expired - Lifetime ES2297811T3 (es) 2002-04-19 2003-04-16 Procedimiento de codificacion de longitud variable.
ES03720905T Expired - Lifetime ES2279945T3 (es) 2002-04-19 2003-04-16 Procedimiento de codificacion de longitud variable y procedimiento de descodificacion 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
ES06123096T Expired - Lifetime ES2309913T3 (es) 2002-04-19 2003-04-16 Procedimiento de codificacion de longitud variable.
ES15161640T Expired - Lifetime ES2730954T3 (es) 2002-04-19 2003-04-16 Procedimiento de descodificación de longitud variable y aparato
ES19156149T Expired - Lifetime ES2886874T3 (es) 2002-04-19 2003-04-16 Procedimiento y sistema de codificación y decodificación de longitud variable
ES09168084T Expired - Lifetime ES2388479T3 (es) 2002-04-19 2003-04-16 procedimiento de codificación de longitud variable
ES08157872T Expired - Lifetime ES2332159T3 (es) 2002-04-19 2003-04-16 Procedimiento de codificacion y descodificacion de longitud variable.
ES06123093T Expired - Lifetime ES2307267T3 (es) 2002-04-19 2003-04-16 Procedimiento de descodificacion de longitud variable.
ES14162995.6T Expired - Lifetime ES2549252T3 (es) 2002-04-19 2003-04-16 Método de codificación de longitud variable

Family Applications Before (10)

Application Number Title Priority Date Filing Date
ES06123090T Expired - Lifetime ES2297811T3 (es) 2002-04-19 2003-04-16 Procedimiento de codificacion de longitud variable.
ES03720905T Expired - Lifetime ES2279945T3 (es) 2002-04-19 2003-04-16 Procedimiento de codificacion de longitud variable y procedimiento de descodificacion 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
ES06123096T Expired - Lifetime ES2309913T3 (es) 2002-04-19 2003-04-16 Procedimiento de codificacion de longitud variable.
ES15161640T Expired - Lifetime ES2730954T3 (es) 2002-04-19 2003-04-16 Procedimiento de descodificación de longitud variable y aparato
ES19156149T Expired - Lifetime ES2886874T3 (es) 2002-04-19 2003-04-16 Procedimiento y sistema de codificación y decodificación de longitud variable
ES09168084T Expired - Lifetime ES2388479T3 (es) 2002-04-19 2003-04-16 procedimiento de codificación de longitud variable
ES08157872T Expired - Lifetime ES2332159T3 (es) 2002-04-19 2003-04-16 Procedimiento de codificacion y descodificacion de longitud variable.
ES06123093T Expired - Lifetime ES2307267T3 (es) 2002-04-19 2003-04-16 Procedimiento de descodificacion de longitud variable.

Country Status (17)

Country Link
US (12) US7305035B2 (es)
EP (13) EP2343903B1 (es)
JP (1) JP4368575B2 (es)
KR (8) KR101001053B1 (es)
CN (1) CN1319385C (es)
AT (5) ATE354258T1 (es)
AU (1) AU2003235171C1 (es)
BR (2) BR0304543A (es)
CA (2) CA2625292C (es)
DE (5) DE60329873D1 (es)
DK (5) DK1742483T3 (es)
ES (11) ES2297811T3 (es)
HU (1) HUE044271T2 (es)
MX (1) MXPA03011198A (es)
PT (7) PT2919390T (es)
SI (2) SI1742483T1 (es)
WO (1) WO2003090472A1 (es)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
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
WO2006011197A1 (ja) * 2004-07-27 2006-02-02 Mitsubishi Denki Kabushiki Kaisha 符号化データ再符号化装置及びその復号装置並びにプログラム
EP3220647B1 (en) * 2005-09-26 2020-07-01 Mitsubishi Electric Corporation Moving image coding apparatus and moving image coding method
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.
US10362316B2 (en) * 2010-04-01 2019-07-23 Sony Corporation Image processing device and method
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 日本電気株式会社 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法およびプログラム
CN105940676B (zh) * 2014-01-24 2019-06-21 联发科技股份有限公司 解码装置与相关的解码方法
US10171810B2 (en) 2015-06-22 2019-01-01 Cisco Technology, Inc. Transform coefficient coding using level-mode and run-mode
EP3504853B1 (en) * 2016-09-06 2021-11-03 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)

* Cited by examiner, † Cited by third party
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 高能率符号化方式
US6546145B1 (en) * 1991-02-05 2003-04-08 Canon Kabushiki Kaisha Image compression using selection of quantization method
JP3205028B2 (ja) 1991-02-05 2001-09-04 キヤノン株式会社 画像圧縮装置及びその方法
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 日本電信電話株式会社 可変長符号化方法
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
JP3277425B2 (ja) * 1993-03-19 2002-04-22 ソニー株式会社 ディジタル信号の符号化方法、符号化用テーブル生成方法、符号化装置及び符号化方法
JP3111750B2 (ja) 1993-06-08 2000-11-27 松下電器産業株式会社 可変長符号復号方式
JPH0759086A (ja) 1993-07-30 1995-03-03 Canon Inc 画像処理装置
JP3210996B2 (ja) * 1993-07-30 2001-09-25 三菱電機株式会社 高能率符号化装置及び高能率復号化装置
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 ソニー株式会社 信号圧縮装置と信号伸長装置および信号圧縮方法と信号伸長方法
KR970019653A (ko) 1995-09-11 1997-04-30 원본미기재 가변 부호화 장치 및 방법
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 Ind 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
KR100947399B1 (ko) * 2001-11-22 2010-03-12 파나소닉 주식회사 부호화 방법
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 디코딩 방법
US7813567B2 (en) * 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
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
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

Also Published As

Publication number Publication date
CA2448771A1 (en) 2003-10-30
US9020041B2 (en) 2015-04-28
KR101001411B1 (ko) 2010-12-14
US20080260039A1 (en) 2008-10-23
US7305035B2 (en) 2007-12-04
ES2297811T3 (es) 2008-05-01
US20180332311A1 (en) 2018-11-15
ES2332159T3 (es) 2010-01-27
US10034025B2 (en) 2018-07-24
US20080056374A1 (en) 2008-03-06
DE60321406D1 (de) 2008-07-10
DE60311734D1 (de) 2007-03-29
DE60329873D1 (de) 2009-12-10
US20080260038A1 (en) 2008-10-23
KR101001459B1 (ko) 2010-12-14
ATE447295T1 (de) 2009-11-15
ATE354258T1 (de) 2007-03-15
EP2765707B1 (en) 2015-08-19
PT1742484E (pt) 2008-06-12
ES2307267T3 (es) 2008-11-16
EP1744560B1 (en) 2008-08-20
EP3515072B1 (en) 2021-06-30
US9025671B2 (en) 2015-05-05
KR100975486B1 (ko) 2010-08-11
ES2886874T3 (es) 2021-12-21
DE60311734T2 (de) 2007-11-15
US9031133B2 (en) 2015-05-12
WO2003090472A1 (fr) 2003-10-30
KR20080041749A (ko) 2008-05-13
PT2919390T (pt) 2019-07-11
EP1424856B1 (en) 2007-02-14
EP1965590A1 (en) 2008-09-03
KR100975487B1 (ko) 2010-08-11
SI1742483T1 (sl) 2008-04-30
EP2752994B8 (en) 2015-09-02
EP2765707A2 (en) 2014-08-13
CA2448771C (en) 2012-05-29
US20080260037A1 (en) 2008-10-23
EP2343903B1 (en) 2014-05-21
DK2752994T3 (en) 2015-11-09
EP2343903A1 (en) 2011-07-13
US9020040B2 (en) 2015-04-28
US20150208099A1 (en) 2015-07-23
KR20040105543A (ko) 2004-12-16
KR101001097B1 (ko) 2010-12-14
EP2117236B1 (en) 2012-07-11
US9661353B2 (en) 2017-05-23
KR101001417B1 (ko) 2010-12-14
EP1742483B1 (en) 2008-01-23
DE60318918T2 (de) 2009-01-08
ES2388479T3 (es) 2012-10-15
US20170034539A1 (en) 2017-02-02
PT1965590E (pt) 2009-11-24
PT2752994E (pt) 2015-10-26
EP1744560A1 (en) 2007-01-17
ATE406051T1 (de) 2008-09-15
EP1742484B1 (en) 2008-05-28
ES2886861T3 (es) 2021-12-21
US10057602B2 (en) 2018-08-21
BRPI0304543B8 (pt) 2020-12-29
EP2752994B1 (en) 2015-07-29
HUE044271T2 (hu) 2019-10-28
EP1424856A4 (en) 2004-11-24
ES2309913T3 (es) 2008-12-16
US20170034514A1 (en) 2017-02-02
CA2625292A1 (en) 2003-10-30
ES2730954T3 (es) 2019-11-13
US10027990B2 (en) 2018-07-17
DK1742484T3 (da) 2008-08-18
US9054734B2 (en) 2015-06-09
EP1742484A1 (en) 2007-01-10
KR20080041751A (ko) 2008-05-13
JP4368575B2 (ja) 2009-11-18
PT2765707E (pt) 2015-11-17
ES2550993T3 (es) 2015-11-13
EP2765707A3 (en) 2014-08-20
PT2117236E (pt) 2012-09-24
BR0304543A (pt) 2004-08-03
KR20100052547A (ko) 2010-05-19
KR20080041747A (ko) 2008-05-13
DK1742483T3 (da) 2008-05-13
KR20080041748A (ko) 2008-05-13
CA2625292C (en) 2012-05-29
EP1424856A1 (en) 2004-06-02
US20080063083A1 (en) 2008-03-13
CN1522544A (zh) 2004-08-18
EP2271118B1 (en) 2012-11-07
EP3515072A1 (en) 2019-07-24
AU2003235171B2 (en) 2007-12-20
DE60318918D1 (de) 2008-03-13
PT1744560E (pt) 2008-09-10
EP2752994A1 (en) 2014-07-09
KR20080041750A (ko) 2008-05-13
DE60323171D1 (de) 2008-10-02
KR20100051864A (ko) 2010-05-18
EP1742483A1 (en) 2007-01-10
KR101001053B1 (ko) 2010-12-14
EP2919390A1 (en) 2015-09-16
EP2271118A2 (en) 2011-01-05
US20170034541A1 (en) 2017-02-02
EP2117236A2 (en) 2009-11-11
DK2765707T3 (en) 2015-10-12
US20170034540A1 (en) 2017-02-02
US20050099522A1 (en) 2005-05-12
MXPA03011198A (es) 2004-02-26
JP2004007381A (ja) 2004-01-08
US10623781B2 (en) 2020-04-14
EP2117236A3 (en) 2011-05-04
EP2271118A3 (en) 2011-05-04
CN1319385C (zh) 2007-05-30
BRPI0304543B1 (pt) 2018-02-14
KR101001478B1 (ko) 2010-12-14
EP3515071B1 (en) 2021-06-30
EP1965590B1 (en) 2009-10-28
AU2003235171A1 (en) 2003-11-03
EP2919390B1 (en) 2019-04-03
AU2003235171B8 (en) 2003-11-03
ES2279945T3 (es) 2007-09-01
AU2003235171C1 (en) 2009-01-08
US10063890B2 (en) 2018-08-28
ATE397355T1 (de) 2008-06-15
EP3515071A1 (en) 2019-07-24
ATE385140T1 (de) 2008-02-15
DK2919390T3 (da) 2019-07-15
SI1742484T1 (sl) 2008-08-31

Similar Documents

Publication Publication Date Title
ES2549252T3 (es) Método de codificación de longitud variable
ES2294768T3 (es) Procedimiento de codificacion de longitud variable.
ES2277313T3 (es) Procedimiento de codificacion de imagen.
JP4819169B2 (ja) 符号化方法、符号化装置およびプログラム
JP4091108B1 (ja) 可変長復号化装置および画像復号化装置
JP2008154252A (ja) 可変長符号化装置および画像符号化装置
JP2006135968A (ja) 可変長符号化方法および可変長復号化方法