PROCEDIMIENTO DE CODIFICACION Y DESCODIFICACION DE LONGITUD VARIABLE.

Un procedimiento de descodificación para realizar una descodificación de longitud variable en datos codificados obtenidos mediante la realización de una codificación de longitud variable en coeficientes de un bloque que se obtienen mediante la realización de una transformación de frecuencia en los datos de imagen del bloque que posee un tamaño de píxeles predeterminado,

comprendiendo el procedimiento de descodificación: la obtención de un número total de coeficientes distintos de cero del bloque mediante la realización de una descodificación de longitud variable en los datos codificados; la realización de una descodificación de longitud variable en los datos codificados repetidamente partiendo de un componente de alta frecuencia hacia un componente de baja frecuencia hasta que un número total de coeficientes descodificados distintos de cero del bloque alcanza el número total de coeficientes distintos de cero incluidos en el bloque para obtener cada uno de los coeficientes descodificados distintos de cero del bloque; la realización de una descodificación de longitud variable en los datos codificados repetidamente partiendo de un componente de alta frecuencia hacia un componente de baja frecuencia para obtener cada uno de los valores Run descodificados del bloque de forma independiente de la descodificación de los coeficientes distintos de cero del bloque usando una pluralidad de tablas de código que se usan para descodificar los valores Run; la transformación de cada uno de los valores Run descodificados del bloque y de cada uno de los valores Level descodificados del bloque correspondientes a los coeficientes descodificados distintos de cero del bloque en coeficientes unidimensionales del bloque, en la que el valor Level es un valor de coeficiente distinto de cero del bloque y el valor Run es un número de coeficientes cero anterior al coeficiente distinto de cero del bloque; y el escaneo inverso de los coeficientes unidimensionales del bloque en coeficientes bidimensionales del bloque; en el que dicha descodificación de longitud variable en los datos codificados se realiza conmutando entre una pluralidad de tablas de código de longitud variable, se asigna a cada una de ellas un umbral de tal manera que se asigne a la primera tabla el umbral más bajo y a cada una de las siguientes tablas se asigne un umbral que es diferente a y mayor que todos los umbrales asignados anteriormente; en el que dicha descodificación de longitud variable en los datos codificados comienza usando la primera tabla y cuando el valor absoluto de un coeficiente actual distinto de cero que se va a codificar supera el umbral asignado a la tabla usada para la descodificación del coeficiente actual distinto de cero, entonces la tabla de código se conmuta con la siguiente tabla de código que tenga el umbral mayor asignado, el valor umbral usado para comprobar si los valores absolutos de los coeficientes distintos de cero superan el umbral se cambia al umbral asignado a dicha tabla conmutada y el próximo coeficiente distinto de cero que sigue al coeficiente actual distinto de cero se descodifica usando dicha tabla conmutada; y las tablas usadas para la descodificación de los coeficientes distintos de cero del bloque son diferentes de las tablas de código usadas para descodificar los valores Run del bloque

Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E08157872.

Solicitante: MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD..

Nacionalidad solicitante: Japón.

Dirección: 1006, OAZA KADOMA, KADOMA-SHI,,OSAKA 571-8501.

Inventor/es: KADONO, SHINYA, HAGAI, MAKOTO, ABE, KIYOFUMI, KONDO, SATOSHI.

Fecha de Publicación: .

Fecha Solicitud PCT: 16 de Abril de 2003.

Fecha Concesión Europea: 28 de Octubre de 2009.

Clasificación Internacional de Patentes:

  • H03M7/40 ELECTRICIDAD.H03 CIRCUITOS ELECTRONICOS BASICOS.H03M CODIFICACION, DECODIFICACION O CONVERSION DE CODIGO, EN GENERAL (por medio de fluidos F15C 4/00; convertidores ópticos analógico/digitales G02F 7/00; codificación, decodificación o conversión de código especialmente adaptada a aplicaciones particulares, ver las subclases apropiadas, p. ej. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; cifrado o descifrado para la criptografía o para otros fines que implican la necesidad de secreto G09C). › H03M 7/00 Conversión de un código, en el cual la información está representada por una secuencia dada o por un número de dígitos, en un código en el cual la misma información está representada por una secuencia o por un número de dígitos diferentes. › Conversión en, o a partir de códigos la longitud variable, p. ej. código Shanno-Fano, código Huffman, código Morse.
  • H03M7/40A
  • H04N7/26A4V
  • H04N7/26Z12
  • H04N7/30
  • H04N7/30E2
  • H04N7/50

Clasificación PCT:

  • H04N7/26
  • H04N7/50

Países PCT: Austria, Bélgica, Suiza, Alemania, Dinamarca, España, Francia, Reino Unido, Grecia, Italia, Liechtensein, Luxemburgo, Países Bajos, Suecia, Mónaco, Portugal, Irlanda, Eslovenia, Finlandia, Rumania, Chipre.

PROCEDIMIENTO DE CODIFICACION Y DESCODIFICACION DE LONGITUD VARIABLE.

Fragmento de la descripción:

Procedimiento de codificación y descodificación de longitud variable.

Campo técnico

La presente invención se refiere a un procedimiento de codificación de longitud variable para codificar los coeficientes de cada bloque, que se obtienen realizando una transformación de frecuencia en los datos de imagen de una imagen en movimiento por bloque con un tamaño predeterminado, así como un procedimiento de descodificación de longitud variable, y similares.

Técnica anterior

Al codificar una imagen en movimiento, la compresión del volumen de información se realiza normalmente utilizando redundancias en las direcciones espacial y temporal que posee la imagen en movimiento. Normalmente se usa una transformación en un dominio de frecuencias como procedimiento para utilizar la redundancia espacial, mientras que la codificación por predicción interimagen se usa como procedimiento para utilizar la redundancia temporal.

En un procedimiento de codificación de imagen en movimiento que se encuentra actualmente en proceso de estandarización, la cuantización se realiza en cada bloque de tamaño 4x4 píxeles a fin de generar coeficientes tras realizar la transformación de frecuencias en tal bloque, con vistas a aumentar la eficacia de codificación de un procedimiento de codificación de imagen en movimiento MPEG-4 convencional. Después se realiza un escaneo partiendo desde los componentes de corriente continua hacia los componentes de alta frecuencia, se generan combinaciones de un valor R (Run, denominado en lo sucesivo simplemente "R") que indica el número de coeficientes cero consecutivos y un valor de coeficiente L (Level, denominado en lo sucesivo simplemente "L") posterior al mismo de forma que se cree una secuencia (R, L). Después de transformar esta (R, L) en un número de código usando una tabla de códigos predeterminada, la codificación se realiza transformando el número de código en un código VLC, usando también una única tabla de codificación de longitud variable (VLC). En la tabla de códigos se asigna normalmente un número de código más pequeño a medida que aumenta la probabilidad de que aparezcan. Por ejemplo, se asigna un número de código pequeño a una combinación en la que tanto R como L indican valores pequeños ya que la probabilidad de que aparezca es alta. En ciertas tablas de códigos VLC, se asigna un código VCL que posee una longitud de código corta a un número de código pequeño (véase la referencia al documento ISO/IEC 14496-2: "Information technology-Coding of audio-visual objects-Part 2: Visual" 7.4.1, págs. 119 a 120, 12/1999).

Sin embargo, el uso del procedimiento existente ocasiona una disminución en la eficiencia de la codificación debido a que la longitud del código se hace más larga a medida que crecen el número de coeficientes R cero consecutivos y un valor de coeficiente L. Normalmente, la disminución en la eficiencia resulta evidente cuando se codifica un componente de baja frecuencia, ya que el valor de coeficiente L como valor del componente de baja frecuencia es alto.

Concretamente, a consecuencia de asignar una única tabla VLC de acuerdo con la probabilidad de aparición y un único y exclusivo código de longitud variable a un par formado por R y L, el valor de coeficiente L que indica un valor alto se transforma en un código de longitud variable que posee una longitud de código muy larga. Aún cuando se codifica L por separado de R (codificación unidimensional de L) usando una única tabla VLC, surge el mismo problema que en el caso de codificar R y L como un par.

Descripción de la invención

La presente invención se concibe pensando en los anteriores problemas y trata de proporcionar el procedimiento de codificación de longitud variable y el procedimiento de descodificación de longitud variable que pueden mejorar la eficiencia de la codificación cuando se codifica el valor L.

Con el fin de lograr el anterior objetivo, el procedimiento de codificación de longitud variable de acuerdo con la presente invención codifica los coeficientes en cada bloque que se obtienen realizando una transformación de frecuencia en los datos de imagen de una imagen en movimiento por bloque que posee un tamaño predeterminado, comprendiendo el procedimiento: una etapa de escaneo de coeficientes en cada uno de dichos bloques en un orden predeterminado; y una etapa de codificación en la que se codifican los coeficientes escaneados en la etapa de escaneo de coeficientes para obtener códigos de longitud variable en un orden predeterminado cambiando entre una pluralidad de tablas que se usan para la codificación.

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 para obtener 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 pequeño y que se pueda codificar un coeficiente para obtener un 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 alto.

Aquí, una dirección de cambio entre la pluralidad de tablas puede ser unidireccional. Así se evita el frecuente cambio de tablas y por tanto el número de veces que se cambia de una tabla a otra disminuye. Por lo tanto, es posible aumentar la eficiencia de la codificación. Por ejemplo, al tener el área de trabajo de la memoria un espacio limitado, sólo se almacena una tabla para su uso. En este caso, se tarda un tiempo en comenzar a codificar el siguiente coeficiente, ya que se tarda un tiempo en leer la siguiente tabla desde la ROM y en expandirla en el área de trabajo cada vez que se cambia de tabla. Este cambio unidireccional de una tabla a otra resulta eficaz para limitar el número de veces que se cambia de tabla y para reducir el tiempo total necesario para codificar el siguiente coeficiente.

En la etapa de codificación, la codificación se puede realizar en cada uno de dichos bloques cambiando entre la pluralidad de tablas y los coeficientes pueden ser coeficientes distintos de cero que se hayan unidimensionalizado.

Es preferible que la codificación sea una codificación no aritmética. De este modo, cuando se determina una tabla que se va a usar para la codificación, la codificación de coeficientes para obtener códigos de longitud variable puede realizarse consultando la tabla.

También es preferible que cada una de las tablas posea una tasa de cambio diferente en la longitud de código para coeficientes de forma que una longitud de código para el coeficiente más pequeño se haga más larga en un orden ascendente de números asignados respectivamente a cada una de las tablas y una longitud de código para el coeficiente más largo no se haga más larga en el mismo orden ascendente de dichos números. Además, también resulta preferible que cada una de las tablas se construya de forma que una tasa de aumento en la longitud de código correspondiente a un aumento en los coeficientes se haga más pequeña en un orden ascendente de números asignados a cada una de las tablas. De este modo, puede lograrse con seguridad la mejora de la eficiencia de la codificación, ya que se puede asignar un intervalo en el que una longitud de código se haga más corta en cada tabla.

También es preferible que en la etapa de codificación se cambie entre cada una de las tablas basándose en un valor umbral predeterminado para un valor absoluto del coeficiente. De este modo, resulta fácil juzgar una sincronización para el cambio de una tabla a otra y, por tanto, se puede lograr la eficiencia en la codificación.

También es preferible que en la etapa de escaneo de coeficientes, los coeficientes se escanean partiendo desde los componentes de alta frecuencia hacia los componentes de baja frecuencia. Al existir una fuerte tendencia a que el valor absoluto del coeficiente crezca gradualmente alrededor de "1", resulta fácil, por tanto, determinar una tabla para codificar el primer coeficiente del bloque, una estructura de cada tabla y un valor umbral.

Además, también es preferible que en la etapa de codificación, se cambie de una tabla usada para codificar un coeficiente actual que se va a codificar a una tabla cuyo número sea mayor que el número asignado a dicha tabla, cuando el valor absoluto del coeficiente actual supera un valor umbral. De este modo, se puede aumentar...

 


Reivindicaciones:

1. Un procedimiento de descodificación para realizar una descodificación de longitud variable en datos codificados obtenidos mediante la realización de una codificación de longitud variable en coeficientes de un bloque que se obtienen mediante la realización de una transformación de frecuencia en los datos de imagen del bloque que posee un tamaño de píxeles predeterminado, comprendiendo el procedimiento de descodificación:

la obtención de un número total de coeficientes distintos de cero del bloque mediante la realización de una descodificación de longitud variable en los datos codificados;

la realización de una descodificación de longitud variable en los datos codificados repetidamente partiendo de un componente de alta frecuencia hacia un componente de baja frecuencia hasta que un número total de coeficientes descodificados distintos de cero del bloque alcanza el número total de coeficientes distintos de cero incluidos en el bloque para obtener cada uno de los coeficientes descodificados distintos de cero del bloque;

la realización de una descodificación de longitud variable en los datos codificados repetidamente partiendo de un componente de alta frecuencia hacia un componente de baja frecuencia para obtener cada uno de los valores Run descodificados del bloque de forma independiente de la descodificación de los coeficientes distintos de cero del bloque usando una pluralidad de tablas de código que se usan para descodificar los valores Run;

la transformación de cada uno de los valores Run descodificados del bloque y de cada uno de los valores Level descodificados del bloque correspondientes a los coeficientes descodificados distintos de cero del bloque en coeficientes unidimensionales del bloque, en la que el valor Level es un valor de coeficiente distinto de cero del bloque y el valor Run es un número de coeficientes cero anterior al coeficiente distinto de cero del bloque; y

el escaneo inverso de los coeficientes unidimensionales del bloque en coeficientes bidimensionales del bloque;

en el que dicha descodificación de longitud variable en los datos codificados se realiza conmutando entre una pluralidad de tablas de código de longitud variable, se asigna a cada una de ellas un umbral de tal manera que se asigne a la primera tabla el umbral más bajo y a cada una de las siguientes tablas se asigne un umbral que es diferente a y mayor que todos los umbrales asignados anteriormente;

en el que dicha descodificación de longitud variable en los datos codificados comienza usando la primera tabla y cuando el valor absoluto de un coeficiente actual distinto de cero que se va a codificar supera el umbral asignado a la tabla usada para la descodificación del coeficiente actual distinto de cero, entonces la tabla de código se conmuta con la siguiente tabla de código que tenga el umbral mayor asignado, el valor umbral usado para comprobar si los valores absolutos de los coeficientes distintos de cero superan el umbral se cambia al umbral asignado a dicha tabla conmutada y el próximo coeficiente distinto de cero que sigue al coeficiente actual distinto de cero se descodifica usando dicha tabla conmutada; y

las tablas usadas para la descodificación de los coeficientes distintos de cero del bloque son diferentes de las tablas de código usadas para descodificar los valores Run del bloque.

2. El procedimiento de descodificación según la reivindicación 1,

en el que un umbral es determinado de entre una pluralidad de umbrales para cada conmutación de las tablas.

3. El procedimiento de descodificación según la reivindicación 2,

en el que la conmutación de las tablas se realiza en una dirección hacia tablas con umbrales mayores.

4. El procedimiento de descodificación según la reivindicación 1,

en el que la conmutación de las tablas se realiza en una dirección.

5. El procedimiento de descodificación según la reivindicación 1,

en el que una longitud de código para un coeficiente más pequeño distintos de cero va creciendo tabla a tabla en un orden ascendente de números respectivamente asignados a cada una de las tablas.

6. Un aparato de descodificación para realizar una descodificación de longitud variable en datos codificados obtenidos mediante la realización de una codificación de longitud variable en coeficientes de un bloque que se obtienen mediante la realización de una transformación de frecuencia en datos de imagen del bloque que posee un tamaño de píxeles predeterminado, comprendiendo el aparato de descodificación:

un total de unidades de descodificación de longitud variable que pueden ponerse en funcionamiento para obtener un número total de coeficientes distintos de cero del bloque mediante la realización de una descodificación de longitud variable en los datos codificados;

una primera unidad de descodificación que puede ponerse en funcionamiento para realizar una descodificación de longitud variable en los datos codificados repetidamente partiendo de un componente de alta frecuencia hacia un componente de baja frecuencia hasta que un número total de coeficientes descodificados distintos de cero del bloque alcanza el número total de coeficientes distintos de cero incluidos en el bloque para obtener cada uno de los coeficientes descodificados distintos de cero del bloque;

una segunda unidad de descodificación que puede ponerse en funcionamiento para realizar una descodificación de longitud variable en los datos codificados repetidamente partiendo de un componente de alta frecuencia hacia un componente de baja frecuencia para obtener cada uno de los valores Run descodificados del bloque de forma independiente de la descodificación de los coeficientes distintos de cero del bloque usando una pluralidad de tablas de código que se usan para descodificar los valores Run;

una unidad de transformación que puede ponerse en funcionamiento para transformar cada uno de los valores Run descodificados del bloque y cada uno de los valores Level descodificados del bloque correspondientes a los coeficientes descodificados distintos de cero del bloque en coeficientes unidimensionales del bloque, en la que el valor Level es un valor de coeficiente distinto de cero del bloque y el valor Run es un número de coeficientes cero anterior al coeficiente distinto de cero del bloque; y

una unidad de escáner inverso que puede ponerse en funcionamiento para escanear inversamente los coeficientes unidimensionales del bloque en coeficientes bidimensionales del bloque;

en el que dicha descodificación de longitud variable en los datos codificados se realiza conmutando entre una pluralidad de tablas de código de longitud variable, se asigna a cada una de ellas un umbral de tal manera que se asigne a la primera tabla el umbral más bajo y a cada una de las siguientes tablas se asigne un umbral que es diferente a y mayor que todos los umbrales asignados anteriormente;

en el que dicha descodificación de longitud variable en los datos codificados comienza usando la primera tabla y cuando el valor absoluto de un coeficiente actual distinto de cero que se va a codificar supera el umbral asignado a la tabla usada para la descodificación del coeficiente actual distinto de cero, entonces la tabla de código se conmuta con la siguiente tabla de código que tenga el umbral mayor asignado, el valor umbral usado para comprobar si los valores absolutos de los coeficientes distintos de cero superan el umbral se cambia al umbral asignado a dicha tabla conmutada y el próximo coeficiente distinto de cero que sigue al coeficiente actual distinto de cero se descodifica usando dicha tabla conmutada; y

las tablas usadas para la descodificación de los coeficientes distintos de cero del bloque son diferentes de las tablas de código usadas para descodificar los valores Run del bloque.


 

Patentes similares o relacionadas:

Imagen de 'Filtro de desbloqueo condicionado por el brillo de los píxeles'Filtro de desbloqueo condicionado por el brillo de los píxeles, del 25 de Marzo de 2020, de DOLBY INTERNATIONAL AB: Método para desbloquear datos de píxeles procesados con compresión de vídeo digital basado en bloque, incluyendo los pasos: - recibir […]

Método para codificar y descodificar imágenes B en modo directo, del 19 de Febrero de 2020, de Godo Kaisha IP Bridge 1: Un método para generar y descodificar una secuencia de bits de una imagen B objetivo, en donde generar la secuencia de bits de la imagen B objetivo incluye las siguientes […]

Interpolación mejorada de cuadros de compresión de vídeo, del 4 de Diciembre de 2019, de DOLBY LABORATORIES LICENSING CORPORATION: Un método para compresión de imágenes de video usando predicción en modo directo, que incluye: proporcionar una secuencia de cuadros predichos […]

Interpolación mejorada de cuadros de compresión de vídeo, del 4 de Diciembre de 2019, de DOLBY LABORATORIES LICENSING CORPORATION: Un método de compresión de imágenes de video que comprende: proporcionar una secuencia de cuadros referenciables (I, P) y predichos bidireccionales […]

Capa de sectores en códec de vídeo, del 27 de Noviembre de 2019, de Microsoft Technology Licensing, LLC: Un procedimiento de decodificación de vídeo e imágenes, que comprende: decodificar una imagen de un flujo de bits codificado que tiene una jerarquía […]

Transformación solapada condicional, del 20 de Noviembre de 2019, de Microsoft Technology Licensing, LLC: Un método para codificar un flujo de bits de vídeo utilizando una transformación solapada condicional, en donde el método comprende: la señalización de un modo de filtro […]

Procedimiento de codificación de longitud variable y procedimiento de decodificación de longitud variable, del 14 de Agosto de 2019, de Godo Kaisha IP Bridge 1: Un método de codificación para codificar un coeficiente de un componente de frecuencia incluido en un bloque objetivo a codificar, comprendiendo el método de codificación: […]

Método de cálculo de vectores de movimiento, del 12 de Junio de 2019, de Panasonic Intellectual Property Corporation of America: Un sistema de codificación y descodificación de imágenes que incluye un aparato de codificación de imágenes que codifica un bloque actual incluido en una imagen actual […]

Utilizamos cookies para mejorar nuestros servicios y mostrarle publicidad relevante. Si continua navegando, consideramos que acepta su uso. Puede obtener más información aquí. .